From 72890281012b3261ac6a11d1ff3d7abce70eb385 Mon Sep 17 00:00:00 2001 From: Steven Vandevelde Date: Thu, 3 Sep 2026 20:09:36 +0200 Subject: [PATCH] chore: deploy nightly --- artifacts/artifacts.json | 5 + .../APEv2Parser-45TZRDQ6.js | 3 + .../APEv2Parser-45TZRDQ6.js.br | Bin 0 -> 140 bytes .../APEv2Parser-45TZRDQ6.js.map | 1 + .../AiffParser-2JNE3SNK.js | 3 + .../AiffParser-2JNE3SNK.js.br | Bin 0 -> 1563 bytes .../AiffParser-2JNE3SNK.js.map | 1 + .../AsfParser-BPPBZCR7.js | 3 + .../AsfParser-BPPBZCR7.js.br | Bin 0 -> 5187 bytes .../AsfParser-BPPBZCR7.js.map | 1 + .../DsdiffParser-G2OOLUSE.js | 3 + .../DsdiffParser-G2OOLUSE.js.br | Bin 0 -> 1290 bytes .../DsdiffParser-G2OOLUSE.js.map | 1 + .../DsfParser-43FUWDHS.js | 3 + .../DsfParser-43FUWDHS.js.br | Bin 0 -> 1044 bytes .../DsfParser-43FUWDHS.js.map | 1 + .../FlacParser-O2YMFBMO.js | 3 + .../FlacParser-O2YMFBMO.js.br | Bin 0 -> 144 bytes .../FlacParser-O2YMFBMO.js.map | 1 + .../MP4Parser-MX56ESYJ.js | 3 + .../MP4Parser-MX56ESYJ.js.br | Bin 0 -> 5875 bytes .../MP4Parser-MX56ESYJ.js.map | 1 + .../MatroskaParser-S7QBLT5N.js | 3 + .../MatroskaParser-S7QBLT5N.js.br | Bin 0 -> 3843 bytes .../MatroskaParser-S7QBLT5N.js.map | 1 + .../MpegParser-O2RE6KKD.js | 3 + .../MpegParser-O2RE6KKD.js.br | Bin 0 -> 4172 bytes .../MpegParser-O2RE6KKD.js.map | 1 + .../MusepackParser-K4V5PCYW.js | 3 + .../MusepackParser-K4V5PCYW.js.br | Bin 0 -> 1974 bytes .../MusepackParser-K4V5PCYW.js.map | 1 + .../OggParser-ZLVT63EM.js | 3 + .../OggParser-ZLVT63EM.js.br | Bin 0 -> 2753 bytes .../OggParser-ZLVT63EM.js.map | 1 + .../WavPackParser-KLZ65ZHU.js | 3 + .../WavPackParser-KLZ65ZHU.js.br | Bin 0 -> 1566 bytes .../WavPackParser-KLZ65ZHU.js.map | 1 + .../WaveParser-OIX4G4ED.js | 3 + .../WaveParser-OIX4G4ED.js.br | Bin 0 -> 2103 bytes .../WaveParser-OIX4G4ED.js.map | 1 + .../android-chrome-192x192.png | 1 + .../android-chrome-512x512.png | 1 + .../apple-touch-icon.png | 1 + .../base-DQOOZU4W.js | 1 + .../base-DQOOZU4W.js.br | 1 + .../base-DQOOZU4W.js.map | 1 + .../browserconfig.xml | 1 + .../browserconfig.xml.br | 1 + .../butterchurn-Q7SUG6GB.js | 1 + .../butterchurn-Q7SUG6GB.js.br | 1 + .../butterchurn-Q7SUG6GB.js.map | 1 + .../catalogue/index.html | 2756 ++++ .../catalogue/index.html.br | Bin 0 -> 8493 bytes .../chunk-2QN2TM5L.js | 1 + .../chunk-2QN2TM5L.js.br | 1 + .../chunk-2QN2TM5L.js.map | 1 + .../chunk-33B7PAHN.js | 3 + .../chunk-33B7PAHN.js.br | Bin 0 -> 3556 bytes .../chunk-33B7PAHN.js.map | 1 + .../chunk-3ILOIHWO.js | 3 + .../chunk-3ILOIHWO.js.br | Bin 0 -> 630 bytes .../chunk-3ILOIHWO.js.map | 1 + .../chunk-3U47TTXA.js | 1 + .../chunk-3U47TTXA.js.br | 1 + .../chunk-3U47TTXA.js.map | 1 + .../chunk-3XJW57X3.js | 3 + .../chunk-3XJW57X3.js.br | Bin 0 -> 1235 bytes .../chunk-3XJW57X3.js.map | 1 + .../chunk-43TMPYCI.js | 8 + .../chunk-43TMPYCI.js.br | Bin 0 -> 1742 bytes .../chunk-43TMPYCI.js.map | 1 + .../chunk-47J7TE33.js | 1 + .../chunk-47J7TE33.js.br | 1 + .../chunk-47J7TE33.js.map | 1 + .../chunk-4AUG55HO.js | 3 + .../chunk-4AUG55HO.js.br | 1 + .../chunk-4AUG55HO.js.map | 1 + .../chunk-4FK2IFLH.js | 3 + .../chunk-4FK2IFLH.js.br | Bin 0 -> 800 bytes .../chunk-4FK2IFLH.js.map | 1 + .../chunk-4M37HRVT.js | 1 + .../chunk-4M37HRVT.js.br | 1 + .../chunk-4M37HRVT.js.map | 1 + .../chunk-4SQUUFKD.js | 3 + .../chunk-4SQUUFKD.js.br | Bin 0 -> 404 bytes .../chunk-4SQUUFKD.js.map | 1 + .../chunk-53ATAZ4X.js | 1 + .../chunk-53ATAZ4X.js.br | 1 + .../chunk-53ATAZ4X.js.map | 1 + .../chunk-5AREERZ7.js | 1 + .../chunk-5AREERZ7.js.br | 1 + .../chunk-5AREERZ7.js.map | 1 + .../chunk-5EUZQD32.js | 1 + .../chunk-5EUZQD32.js.br | 1 + .../chunk-5EUZQD32.js.map | 1 + .../chunk-6AGURFCR.js | 3 + .../chunk-6AGURFCR.js.br | Bin 0 -> 894 bytes .../chunk-6AGURFCR.js.map | 1 + .../chunk-6BX44RWC.js | 1 + .../chunk-6BX44RWC.js.br | 1 + .../chunk-6BX44RWC.js.map | 1 + .../chunk-6HULTT5H.js | 3 + .../chunk-6HULTT5H.js.br | Bin 0 -> 803 bytes .../chunk-6HULTT5H.js.map | 1 + .../chunk-6NC6NOLO.js | 1 + .../chunk-6NC6NOLO.js.br | 1 + .../chunk-6NC6NOLO.js.map | 1 + .../chunk-6O7EX4DS.js | 3 + .../chunk-6O7EX4DS.js.br | Bin 0 -> 506 bytes .../chunk-6O7EX4DS.js.map | 1 + .../chunk-6RCKN5OB.js | 3 + .../chunk-6RCKN5OB.js.br | Bin 0 -> 813 bytes .../chunk-6RCKN5OB.js.map | 1 + .../chunk-6VPEZDZM.js | 1 + .../chunk-6VPEZDZM.js.br | 1 + .../chunk-6VPEZDZM.js.map | 1 + .../chunk-6XPFWKSW.js | 3 + .../chunk-6XPFWKSW.js.br | Bin 0 -> 3936 bytes .../chunk-6XPFWKSW.js.map | 1 + .../chunk-75BXHJJB.js | 1 + .../chunk-75BXHJJB.js.br | 1 + .../chunk-75BXHJJB.js.map | 1 + .../chunk-75KFZLU6.js | 1 + .../chunk-75KFZLU6.js.br | 1 + .../chunk-75KFZLU6.js.map | 1 + .../chunk-76OIFD3C.js | 1 + .../chunk-76OIFD3C.js.br | 1 + .../chunk-76OIFD3C.js.map | 1 + .../chunk-7F2IU4LR.js | 3 + .../chunk-7F2IU4LR.js.br | Bin 0 -> 746 bytes .../chunk-7F2IU4LR.js.map | 1 + .../chunk-7GJVHJL3.js | 1 + .../chunk-7GJVHJL3.js.br | 1 + .../chunk-7GJVHJL3.js.map | 1 + .../chunk-7NEQFE27.js | 1 + .../chunk-7NEQFE27.js.br | 1 + .../chunk-7NEQFE27.js.map | 1 + .../chunk-7NKQO6T3.js | 3 + .../chunk-7NKQO6T3.js.br | Bin 0 -> 1055 bytes .../chunk-7NKQO6T3.js.map | 1 + .../chunk-A565T3Q3.js | 1 + .../chunk-A565T3Q3.js.br | 1 + .../chunk-A565T3Q3.js.map | 1 + .../chunk-A6BVPHKK.js | 3 + .../chunk-A6BVPHKK.js.br | Bin 0 -> 511 bytes .../chunk-A6BVPHKK.js.map | 1 + .../chunk-ACJPRFDG.js | 3 + .../chunk-ACJPRFDG.js.br | Bin 0 -> 523 bytes .../chunk-ACJPRFDG.js.map | 1 + .../chunk-AHHIFJPO.js | 1 + .../chunk-AHHIFJPO.js.br | 1 + .../chunk-AHHIFJPO.js.map | 1 + .../chunk-AQ5ACXQC.js | 3 + .../chunk-AQ5ACXQC.js.br | Bin 0 -> 365 bytes .../chunk-AQ5ACXQC.js.map | 1 + .../chunk-ARPMZXXD.js | 10 + .../chunk-ARPMZXXD.js.br | Bin 0 -> 1581 bytes .../chunk-ARPMZXXD.js.map | 1 + .../chunk-AS4LJDUA.js | 3 + .../chunk-AS4LJDUA.js.br | Bin 0 -> 382 bytes .../chunk-AS4LJDUA.js.map | 1 + .../chunk-BBP5KHWD.js | 3 + .../chunk-BBP5KHWD.js.br | Bin 0 -> 283 bytes .../chunk-BBP5KHWD.js.map | 1 + .../chunk-BD6UIPEI.js | 1 + .../chunk-BD6UIPEI.js.br | 1 + .../chunk-BD6UIPEI.js.map | 1 + .../chunk-BF2A4D4Q.js | 3 + .../chunk-BF2A4D4Q.js.br | Bin 0 -> 518 bytes .../chunk-BF2A4D4Q.js.map | 1 + .../chunk-BGNSH7PO.js | 3 + .../chunk-BGNSH7PO.js.br | Bin 0 -> 2714 bytes .../chunk-BGNSH7PO.js.map | 1 + .../chunk-BL5737XC.js | 3 + .../chunk-BL5737XC.js.br | Bin 0 -> 1246 bytes .../chunk-BL5737XC.js.map | 1 + .../chunk-BMDRJICQ.js | 3 + .../chunk-BMDRJICQ.js.br | Bin 0 -> 3339 bytes .../chunk-BMDRJICQ.js.map | 1 + .../chunk-BNDDYKYA.js | 1 + .../chunk-BNDDYKYA.js.br | 1 + .../chunk-BNDDYKYA.js.map | 1 + .../chunk-BR5FNG6K.js | 1 + .../chunk-BR5FNG6K.js.br | 1 + .../chunk-BR5FNG6K.js.map | 1 + .../chunk-BTSSVB7R.js | 3 + .../chunk-BTSSVB7R.js.br | Bin 0 -> 470 bytes .../chunk-BTSSVB7R.js.map | 1 + .../chunk-C5GF5WSP.js | 3 + .../chunk-C5GF5WSP.js.br | Bin 0 -> 869 bytes .../chunk-C5GF5WSP.js.map | 1 + .../chunk-CF75KXQM.js | 3 + .../chunk-CF75KXQM.js.br | Bin 0 -> 508 bytes .../chunk-CF75KXQM.js.map | 1 + .../chunk-CR6GBUUD.js | 3 + .../chunk-CR6GBUUD.js.br | Bin 0 -> 217 bytes .../chunk-CR6GBUUD.js.map | 1 + .../chunk-E2G3ZJP4.js | 12 + .../chunk-E2G3ZJP4.js.br | Bin 0 -> 8391 bytes .../chunk-E2G3ZJP4.js.map | 1 + .../chunk-EDKAGOM6.js | 3 + .../chunk-EDKAGOM6.js.br | Bin 0 -> 341 bytes .../chunk-EDKAGOM6.js.map | 1 + .../chunk-EDMPL3NH.js | 3 + .../chunk-EDMPL3NH.js.br | Bin 0 -> 412 bytes .../chunk-EDMPL3NH.js.map | 1 + .../chunk-EDOHDIY7.js | 1 + .../chunk-EDOHDIY7.js.br | 1 + .../chunk-EDOHDIY7.js.map | 1 + .../chunk-EIUJL2DK.js | 1 + .../chunk-EIUJL2DK.js.br | 1 + .../chunk-EIUJL2DK.js.map | 1 + .../chunk-ELB3AQIW.js | 3 + .../chunk-ELB3AQIW.js.br | Bin 0 -> 336 bytes .../chunk-ELB3AQIW.js.map | 1 + .../chunk-EPAUM665.js | 1 + .../chunk-EPAUM665.js.br | 1 + .../chunk-EPAUM665.js.map | 1 + .../chunk-EQQMOAG3.js | 3 + .../chunk-EQQMOAG3.js.br | Bin 0 -> 420 bytes .../chunk-EQQMOAG3.js.map | 1 + .../chunk-EWGIE3HP.js | 3 + .../chunk-EWGIE3HP.js.br | Bin 0 -> 476 bytes .../chunk-EWGIE3HP.js.map | 1 + .../chunk-F5IZ46CN.js | 3 + .../chunk-F5IZ46CN.js.br | Bin 0 -> 1167 bytes .../chunk-F5IZ46CN.js.map | 1 + .../chunk-FALXUBWD.js | 3 + .../chunk-FALXUBWD.js.br | Bin 0 -> 1585 bytes .../chunk-FALXUBWD.js.map | 1 + .../chunk-FESDLVUC.js | 1 + .../chunk-FESDLVUC.js.br | 1 + .../chunk-FESDLVUC.js.map | 1 + .../chunk-FHQAE777.js | 3 + .../chunk-FHQAE777.js.br | Bin 0 -> 1293 bytes .../chunk-FHQAE777.js.map | 1 + .../chunk-FMIQ6TTM.js | 3 + .../chunk-FMIQ6TTM.js.br | Bin 0 -> 654 bytes .../chunk-FMIQ6TTM.js.map | 1 + .../chunk-FQW6BJK7.js | 3 + .../chunk-FQW6BJK7.js.br | Bin 0 -> 425 bytes .../chunk-FQW6BJK7.js.map | 1 + .../chunk-FSTJJKKX.js | 1 + .../chunk-FSTJJKKX.js.br | 1 + .../chunk-FSTJJKKX.js.map | 1 + .../chunk-G3G2PH4F.js | 1 + .../chunk-G3G2PH4F.js.br | 1 + .../chunk-G3G2PH4F.js.map | 1 + .../chunk-GEJ7GEJO.js | 1 + .../chunk-GEJ7GEJO.js.br | 1 + .../chunk-GEJ7GEJO.js.map | 1 + .../chunk-GK6YBSHM.js | 3 + .../chunk-GK6YBSHM.js.br | Bin 0 -> 433 bytes .../chunk-GK6YBSHM.js.map | 1 + .../chunk-GL46KENX.js | 1 + .../chunk-GL46KENX.js.br | 1 + .../chunk-GL46KENX.js.map | 1 + .../chunk-GLDEPDQL.js | 1 + .../chunk-GLDEPDQL.js.br | 1 + .../chunk-GLDEPDQL.js.map | 1 + .../chunk-GSVEIULU.js | 3 + .../chunk-GSVEIULU.js.br | Bin 0 -> 1909 bytes .../chunk-GSVEIULU.js.map | 1 + .../chunk-GUIEXD2J.js | 1 + .../chunk-GUIEXD2J.js.br | 1 + .../chunk-GUIEXD2J.js.map | 1 + .../chunk-H4L773TT.js | 34 + .../chunk-H4L773TT.js.br | Bin 0 -> 188604 bytes .../chunk-H4L773TT.js.map | 1 + .../chunk-H4ULOOR2.js | 1 + .../chunk-H4ULOOR2.js.br | 1 + .../chunk-H4ULOOR2.js.map | 1 + .../chunk-HCA2HGAZ.js | 1 + .../chunk-HCA2HGAZ.js.br | 1 + .../chunk-HCA2HGAZ.js.map | 1 + .../chunk-HYQATFQM.js | 3 + .../chunk-HYQATFQM.js.br | Bin 0 -> 388 bytes .../chunk-HYQATFQM.js.map | 1 + .../chunk-IA3NIKPO.js | 3 + .../chunk-IA3NIKPO.js.br | Bin 0 -> 2208 bytes .../chunk-IA3NIKPO.js.map | 1 + .../chunk-IGEBMN5P.js | 3 + .../chunk-IGEBMN5P.js.br | Bin 0 -> 657 bytes .../chunk-IGEBMN5P.js.map | 1 + .../chunk-IUBFNQRH.js | 1 + .../chunk-IUBFNQRH.js.br | 1 + .../chunk-IUBFNQRH.js.map | 1 + .../chunk-IYPBPO5F.js | 1 + .../chunk-IYPBPO5F.js.br | 1 + .../chunk-IYPBPO5F.js.map | 1 + .../chunk-J3G2CW6Q.js | 1 + .../chunk-J3G2CW6Q.js.br | 1 + .../chunk-J3G2CW6Q.js.map | 1 + .../chunk-JINXEQM7.js | 3 + .../chunk-JINXEQM7.js.br | Bin 0 -> 1171 bytes .../chunk-JINXEQM7.js.map | 1 + .../chunk-JL66OXVZ.js | 1 + .../chunk-JL66OXVZ.js.br | 1 + .../chunk-JL66OXVZ.js.map | 1 + .../chunk-JULAOCV6.js | 1 + .../chunk-JULAOCV6.js.br | 1 + .../chunk-JULAOCV6.js.map | 1 + .../chunk-JZBHDDIW.js | 3 + .../chunk-JZBHDDIW.js.br | Bin 0 -> 317 bytes .../chunk-JZBHDDIW.js.map | 1 + .../chunk-JZVPDEYM.js | 34 + .../chunk-JZVPDEYM.js.br | Bin 0 -> 757 bytes .../chunk-JZVPDEYM.js.map | 1 + .../chunk-K3ALFZSR.js | 7 + .../chunk-K3ALFZSR.js.br | Bin 0 -> 1303 bytes .../chunk-K3ALFZSR.js.map | 1 + .../chunk-KCS3LSBQ.js | 3 + .../chunk-KCS3LSBQ.js.br | Bin 0 -> 834 bytes .../chunk-KCS3LSBQ.js.map | 1 + .../chunk-KOYRYCQG.js | 3 + .../chunk-KOYRYCQG.js.br | Bin 0 -> 277 bytes .../chunk-KOYRYCQG.js.map | 1 + .../chunk-KQX3HL46.js | 1 + .../chunk-KQX3HL46.js.br | 1 + .../chunk-KQX3HL46.js.map | 1 + .../chunk-KZNIRR3C.js | 3 + .../chunk-KZNIRR3C.js.br | 1 + .../chunk-KZNIRR3C.js.map | 1 + .../chunk-L2DWBBFR.js | 58 + .../chunk-L2DWBBFR.js.br | Bin 0 -> 812 bytes .../chunk-L2DWBBFR.js.map | 1 + .../chunk-LINMKWZS.js | 3 + .../chunk-LINMKWZS.js.br | Bin 0 -> 2032 bytes .../chunk-LINMKWZS.js.map | 1 + .../chunk-LNJMJLZE.js | 3 + .../chunk-LNJMJLZE.js.br | Bin 0 -> 1227 bytes .../chunk-LNJMJLZE.js.map | 1 + .../chunk-LRSJBPOP.js | 3 + .../chunk-LRSJBPOP.js.br | Bin 0 -> 1009 bytes .../chunk-LRSJBPOP.js.map | 1 + .../chunk-LUE74EM5.js | 1 + .../chunk-LUE74EM5.js.br | 1 + .../chunk-LUE74EM5.js.map | 1 + .../chunk-M3YB5K5O.js | 1 + .../chunk-M3YB5K5O.js.br | 1 + .../chunk-M3YB5K5O.js.map | 1 + .../chunk-M5LB6FBL.js | 1 + .../chunk-M5LB6FBL.js.br | 1 + .../chunk-M5LB6FBL.js.map | 1 + .../chunk-MJSTYRUI.js | 1 + .../chunk-MJSTYRUI.js.br | 1 + .../chunk-MJSTYRUI.js.map | 1 + .../chunk-MKIFSH6R.js | 1 + .../chunk-MKIFSH6R.js.br | 1 + .../chunk-MKIFSH6R.js.map | 1 + .../chunk-MO4SFPUT.js | 1 + .../chunk-MO4SFPUT.js.br | 1 + .../chunk-MO4SFPUT.js.map | 1 + .../chunk-MSCS7ZYG.js | 3 + .../chunk-MSCS7ZYG.js.br | Bin 0 -> 335 bytes .../chunk-MSCS7ZYG.js.map | 1 + .../chunk-MSROODAH.js | 1 + .../chunk-MSROODAH.js.br | 1 + .../chunk-MSROODAH.js.map | 1 + .../chunk-MZPCBJ4D.js | 1 + .../chunk-MZPCBJ4D.js.br | 1 + .../chunk-MZPCBJ4D.js.map | 1 + .../chunk-N4UC4CSU.js | 3 + .../chunk-N4UC4CSU.js.br | Bin 0 -> 2528 bytes .../chunk-N4UC4CSU.js.map | 1 + .../chunk-NKBMV7UG.js | 1 + .../chunk-NKBMV7UG.js.br | 1 + .../chunk-NKBMV7UG.js.map | 1 + .../chunk-NO5VWJVI.js | 3 + .../chunk-NO5VWJVI.js.br | Bin 0 -> 852 bytes .../chunk-NO5VWJVI.js.map | 1 + .../chunk-NVG7OXSF.js | 8 + .../chunk-NVG7OXSF.js.br | Bin 0 -> 2106 bytes .../chunk-NVG7OXSF.js.map | 1 + .../chunk-NYGD7JS5.js | 3 + .../chunk-NYGD7JS5.js.br | Bin 0 -> 1748 bytes .../chunk-NYGD7JS5.js.map | 1 + .../chunk-O2AMATPK.js | 1 + .../chunk-O2AMATPK.js.br | 1 + .../chunk-O2AMATPK.js.map | 1 + .../chunk-OBMOK4KY.js | 1 + .../chunk-OBMOK4KY.js.br | 1 + .../chunk-OBMOK4KY.js.map | 1 + .../chunk-OLJU5MZL.js | 1 + .../chunk-OLJU5MZL.js.br | 1 + .../chunk-OLJU5MZL.js.map | 1 + .../chunk-OO43XB75.js | 3 + .../chunk-OO43XB75.js.br | Bin 0 -> 532 bytes .../chunk-OO43XB75.js.map | 1 + .../chunk-OOCT36X3.js | 3 + .../chunk-OOCT36X3.js.br | Bin 0 -> 629 bytes .../chunk-OOCT36X3.js.map | 1 + .../chunk-OTCXFJJZ.js | 17 + .../chunk-OTCXFJJZ.js.br | Bin 0 -> 26744 bytes .../chunk-OTCXFJJZ.js.map | 1 + .../chunk-PHFIOWBZ.js | 12 + .../chunk-PHFIOWBZ.js.br | Bin 0 -> 9310 bytes .../chunk-PHFIOWBZ.js.map | 1 + .../chunk-PI4WZOI6.js | 231 + .../chunk-PI4WZOI6.js.br | Bin 0 -> 15067 bytes .../chunk-PI4WZOI6.js.map | 1 + .../chunk-PXOGRNGV.js | 3 + .../chunk-PXOGRNGV.js.br | Bin 0 -> 1157 bytes .../chunk-PXOGRNGV.js.map | 1 + .../chunk-QAEP7ICV.js | 3 + .../chunk-QAEP7ICV.js.br | Bin 0 -> 935 bytes .../chunk-QAEP7ICV.js.map | 1 + .../chunk-QSEZLSGM.js | 1 + .../chunk-QSEZLSGM.js.br | 1 + .../chunk-QSEZLSGM.js.map | 1 + .../chunk-QWRQDER6.js | 1 + .../chunk-QWRQDER6.js.br | 1 + .../chunk-QWRQDER6.js.map | 1 + .../chunk-R6SW7FHX.js | 3 + .../chunk-R6SW7FHX.js.br | Bin 0 -> 2224 bytes .../chunk-R6SW7FHX.js.map | 1 + .../chunk-RHDOE5G3.js | 1 + .../chunk-RHDOE5G3.js.br | 1 + .../chunk-RHDOE5G3.js.map | 1 + .../chunk-RL4C7EJ7.js | 1 + .../chunk-RL4C7EJ7.js.br | 1 + .../chunk-RL4C7EJ7.js.map | 1 + .../chunk-RN5G2ZPZ.js | 1 + .../chunk-RN5G2ZPZ.js.br | 1 + .../chunk-RN5G2ZPZ.js.map | 1 + .../chunk-RN7ZM2JO.js | 1 + .../chunk-RN7ZM2JO.js.br | 1 + .../chunk-RN7ZM2JO.js.map | 1 + .../chunk-RQUYKOSL.js | 3 + .../chunk-RQUYKOSL.js.br | Bin 0 -> 369 bytes .../chunk-RQUYKOSL.js.map | 1 + .../chunk-RW73GFJN.js | 1 + .../chunk-RW73GFJN.js.br | 1 + .../chunk-RW73GFJN.js.map | 1 + .../chunk-RXUZEKYV.js | 1 + .../chunk-RXUZEKYV.js.br | 1 + .../chunk-RXUZEKYV.js.map | 1 + .../chunk-RZNPNMPI.js | 3 + .../chunk-RZNPNMPI.js.br | Bin 0 -> 711 bytes .../chunk-RZNPNMPI.js.map | 1 + .../chunk-SIM5AC6S.js | 3 + .../chunk-SIM5AC6S.js.br | Bin 0 -> 556 bytes .../chunk-SIM5AC6S.js.map | 1 + .../chunk-SL4KJ27C.js | 3 + .../chunk-SL4KJ27C.js.br | Bin 0 -> 405 bytes .../chunk-SL4KJ27C.js.map | 1 + .../chunk-SVXEMCXP.js | 1 + .../chunk-SVXEMCXP.js.br | 1 + .../chunk-SVXEMCXP.js.map | 1 + .../chunk-T35PKO5E.js | 3 + .../chunk-T35PKO5E.js.br | Bin 0 -> 283 bytes .../chunk-T35PKO5E.js.map | 1 + .../chunk-TI42YQ3Z.js | 1 + .../chunk-TI42YQ3Z.js.br | 1 + .../chunk-TI42YQ3Z.js.map | 1 + .../chunk-TI4M42VH.js | 3 + .../chunk-TI4M42VH.js.br | Bin 0 -> 284 bytes .../chunk-TI4M42VH.js.map | 1 + .../chunk-TVBOGSPT.js | 1 + .../chunk-TVBOGSPT.js.br | 1 + .../chunk-TVBOGSPT.js.map | 1 + .../chunk-TYJ2UPEO.js | 3 + .../chunk-TYJ2UPEO.js.br | Bin 0 -> 498 bytes .../chunk-TYJ2UPEO.js.map | 1 + .../chunk-U55EMLDH.js | 3 + .../chunk-U55EMLDH.js.br | Bin 0 -> 1183 bytes .../chunk-U55EMLDH.js.map | 1 + .../chunk-UFYWHVKC.js | 1 + .../chunk-UFYWHVKC.js.br | 1 + .../chunk-UFYWHVKC.js.map | 1 + .../chunk-UIB44MUP.js | 3 + .../chunk-UIB44MUP.js.br | Bin 0 -> 706 bytes .../chunk-UIB44MUP.js.map | 1 + .../chunk-URKFFLAS.js | 49 + .../chunk-URKFFLAS.js.br | Bin 0 -> 901 bytes .../chunk-URKFFLAS.js.map | 1 + .../chunk-VBVWJNZ5.js | 14 + .../chunk-VBVWJNZ5.js.br | Bin 0 -> 499 bytes .../chunk-VBVWJNZ5.js.map | 1 + .../chunk-VELBWKKV.js | 3 + .../chunk-VELBWKKV.js.br | Bin 0 -> 1626 bytes .../chunk-VELBWKKV.js.map | 1 + .../chunk-VIZWZUCQ.js | 3 + .../chunk-VIZWZUCQ.js.br | Bin 0 -> 705 bytes .../chunk-VIZWZUCQ.js.map | 1 + .../chunk-VJVS6ZD2.js | 1 + .../chunk-VJVS6ZD2.js.br | 1 + .../chunk-VJVS6ZD2.js.map | 1 + .../chunk-VMZR66KW.js | 3 + .../chunk-VMZR66KW.js.br | Bin 0 -> 334 bytes .../chunk-VMZR66KW.js.map | 1 + .../chunk-VQAZGKWE.js | 3 + .../chunk-VQAZGKWE.js.br | Bin 0 -> 932 bytes .../chunk-VQAZGKWE.js.map | 1 + .../chunk-VRBKFFFV.js | 3 + .../chunk-VRBKFFFV.js.br | Bin 0 -> 410 bytes .../chunk-VRBKFFFV.js.map | 1 + .../chunk-WBAUNTUN.js | 3 + .../chunk-WBAUNTUN.js.br | Bin 0 -> 384 bytes .../chunk-WBAUNTUN.js.map | 1 + .../chunk-WE3IOYGI.js | 3 + .../chunk-WE3IOYGI.js.br | Bin 0 -> 1638 bytes .../chunk-WE3IOYGI.js.map | 1 + .../chunk-WHKNBNKF.js | 5 + .../chunk-WHKNBNKF.js.br | Bin 0 -> 8261 bytes .../chunk-WHKNBNKF.js.map | 1 + .../chunk-WMITNTCW.js | 1 + .../chunk-WMITNTCW.js.br | 1 + .../chunk-WMITNTCW.js.map | 1 + .../chunk-WOOIJ6FU.js | 28 + .../chunk-WOOIJ6FU.js.br | Bin 0 -> 4684 bytes .../chunk-WOOIJ6FU.js.map | 1 + .../chunk-XILA3E7E.js | 1 + .../chunk-XILA3E7E.js.br | 1 + .../chunk-XILA3E7E.js.map | 1 + .../chunk-XLSGQQFX.js | 3 + .../chunk-XLSGQQFX.js.br | Bin 0 -> 862 bytes .../chunk-XLSGQQFX.js.map | 1 + .../chunk-XQAIXFJF.js | 3 + .../chunk-XQAIXFJF.js.br | Bin 0 -> 375 bytes .../chunk-XQAIXFJF.js.map | 1 + .../chunk-XW67JR5T.js | 3 + .../chunk-XW67JR5T.js.br | Bin 0 -> 405 bytes .../chunk-XW67JR5T.js.map | 1 + .../chunk-Y4Z6Z63V.js | 3 + .../chunk-Y4Z6Z63V.js.br | 1 + .../chunk-Y4Z6Z63V.js.map | 1 + .../chunk-YA42HS5K.js | 1 + .../chunk-YA42HS5K.js.br | 1 + .../chunk-YA42HS5K.js.map | 1 + .../chunk-YIHRBOZK.js | 3 + .../chunk-YIHRBOZK.js.br | Bin 0 -> 968 bytes .../chunk-YIHRBOZK.js.map | 1 + .../chunk-YJPLPXHF.js | 3 + .../chunk-YJPLPXHF.js.br | Bin 0 -> 1097 bytes .../chunk-YJPLPXHF.js.map | 1 + .../chunk-YQHXPY2Q.js | 3 + .../chunk-YQHXPY2Q.js.br | Bin 0 -> 512 bytes .../chunk-YQHXPY2Q.js.map | 1 + .../chunk-YT5N63AW.js | 3 + .../chunk-YT5N63AW.js.br | Bin 0 -> 806 bytes .../chunk-YT5N63AW.js.map | 1 + .../chunk-Z3KOJOLM.js | 3 + .../chunk-Z3KOJOLM.js.br | Bin 0 -> 400 bytes .../chunk-Z3KOJOLM.js.map | 1 + .../chunk-Z642TAXO.js | 3 + .../chunk-Z642TAXO.js.br | Bin 0 -> 455 bytes .../chunk-Z642TAXO.js.map | 1 + .../chunk-ZC6IXECO.js | 3 + .../chunk-ZC6IXECO.js.br | Bin 0 -> 419 bytes .../chunk-ZC6IXECO.js.map | 1 + .../chunk-ZCBN4C3I.js | 1 + .../chunk-ZCBN4C3I.js.br | 1 + .../chunk-ZCBN4C3I.js.map | 1 + .../chunk-ZGMMU2IC.js | 1 + .../chunk-ZGMMU2IC.js.br | 1 + .../chunk-ZGMMU2IC.js.map | 1 + .../chunk-ZMO7IVRY.js | 1 + .../chunk-ZMO7IVRY.js.br | 1 + .../chunk-ZMO7IVRY.js.map | 1 + .../chunk-ZVWOBRJZ.js | 1 + .../chunk-ZVWOBRJZ.js.br | 1 + .../chunk-ZVWOBRJZ.js.map | 1 + .../common/cid.js | 1 + .../common/cid.js.br | 1 + .../common/cid.js.map | 1 + .../common/compare.js | 1 + .../common/compare.js.br | 1 + .../common/compare.js.map | 1 + .../common/element.js | 3 + .../common/element.js.br | Bin 0 -> 252 bytes .../common/element.js.map | 1 + .../common/facets/category.js | 1 + .../common/facets/category.js.br | 1 + .../common/facets/category.js.map | 1 + .../common/facets/constants.js | 1 + .../common/facets/constants.js.br | 1 + .../common/facets/constants.js.map | 1 + .../common/facets/prelude.js | 3 + .../common/facets/prelude.js.br | Bin 0 -> 186 bytes .../common/facets/prelude.js.map | 1 + .../common/facets/utils.js | 3 + .../common/facets/utils.js.br | Bin 0 -> 217 bytes .../common/facets/utils.js.map | 1 + .../common/fast-uri.js | 1 + .../common/fast-uri.js.br | 1 + .../common/fast-uri.js.map | 1 + .../common/foundation.js | 3 + .../common/foundation.js.br | Bin 0 -> 117 bytes .../common/foundation.js.map | 1 + .../common/lens-registry.js | 3 + .../common/lens-registry.js.br | Bin 0 -> 83 bytes .../common/lens-registry.js.map | 1 + .../common/lens.js | 3 + .../common/lens.js.br | Bin 0 -> 194 bytes .../common/lens.js.map | 1 + .../common/loader.js | 3 + .../common/loader.js.br | Bin 0 -> 206 bytes .../common/loader.js.map | 1 + .../common/output.js | 1 + .../common/output.js.br | 1 + .../common/output.js.map | 1 + .../common/pages/code.js | 3 + .../common/pages/code.js.br | Bin 0 -> 300 bytes .../common/pages/code.js.map | 1 + .../common/pages/crud.js | 3 + .../common/pages/crud.js.br | Bin 0 -> 248 bytes .../common/pages/crud.js.map | 1 + .../common/pages/dashboard.js | 3 + .../common/pages/dashboard.js.br | Bin 0 -> 327 bytes .../common/pages/dashboard.js.map | 1 + .../common/pages/from-uri.js | 3 + .../common/pages/from-uri.js.br | Bin 0 -> 260 bytes .../common/pages/from-uri.js.map | 1 + .../common/pages/grid.js | 3 + .../common/pages/grid.js.br | Bin 0 -> 294 bytes .../common/pages/grid.js.map | 1 + .../common/pages/guide.js | 3 + .../common/pages/guide.js.br | Bin 0 -> 195 bytes .../common/pages/guide.js.map | 1 + .../common/pages/nav.js | 1 + .../common/pages/nav.js.br | 1 + .../common/pages/nav.js.map | 1 + .../common/pages/output.js | 3 + .../common/pages/output.js.br | Bin 0 -> 188 bytes .../common/pages/output.js.map | 1 + .../common/pages/ppr.js | 3 + .../common/pages/ppr.js.br | Bin 0 -> 1425 bytes .../common/pages/ppr.js.map | 1 + .../common/pages/version-upgrade.js | 1 + .../common/pages/version-upgrade.js.br | 1 + .../common/pages/version-upgrade.js.map | 1 + .../common/panproto.js | 3 + .../common/panproto.js.br | Bin 0 -> 109 bytes .../common/panproto.js.map | 1 + .../common/playlist.js | 1 + .../common/playlist.js.br | 1 + .../common/playlist.js.map | 1 + .../common/self-describing.js | 3 + .../common/self-describing.js.br | Bin 0 -> 118 bytes .../common/self-describing.js.map | 1 + .../common/signal.js | 1 + .../common/signal.js.br | 1 + .../common/signal.js.map | 1 + .../common/temporal.js | 1 + .../common/temporal.js.br | 1 + .../common/temporal.js.map | 1 + .../common/track.js | 1 + .../common/track.js.br | 1 + .../common/track.js.map | 1 + .../common/utils.js | 1 + .../common/utils.js.br | 1 + .../common/utils.js.map | 1 + .../common/webawesome/detect-dark.js | 1 + .../common/webawesome/detect-dark.js.br | 1 + .../common/webawesome/detect-dark.js.map | 1 + .../common/webawesome/phosphor/bold.js | 1 + .../common/webawesome/phosphor/bold.js.br | 1 + .../common/webawesome/phosphor/bold.js.map | 1 + .../common/webawesome/phosphor/duotone.js | 1 + .../common/webawesome/phosphor/duotone.js.br | 1 + .../common/webawesome/phosphor/duotone.js.map | 1 + .../common/webawesome/phosphor/fill.js | 1 + .../common/webawesome/phosphor/fill.js.br | 1 + .../common/webawesome/phosphor/fill.js.map | 1 + .../common/webawesome/phosphor/light.js | 1 + .../common/webawesome/phosphor/light.js.br | 1 + .../common/webawesome/phosphor/light.js.map | 1 + .../common/webawesome/phosphor/regular.js | 1 + .../common/webawesome/phosphor/regular.js.br | 1 + .../common/webawesome/phosphor/regular.js.map | 1 + .../common/webawesome/phosphor/thin.js | 1 + .../common/webawesome/phosphor/thin.js.br | 1 + .../common/webawesome/phosphor/thin.js.map | 1 + .../common/worker.js | 3 + .../common/worker.js.br | Bin 0 -> 181 bytes .../common/worker.js.map | 1 + .../common/worker/rpc-channel.js | 1 + .../common/worker/rpc-channel.js.br | 1 + .../common/worker/rpc-channel.js.map | 1 + .../artwork/audio-metadata/element.js | 3 + .../artwork/audio-metadata/element.js.br | Bin 0 -> 146 bytes .../artwork/audio-metadata/element.js.map | 1 + .../artwork/audio-metadata/worker.js | 3 + .../artwork/audio-metadata/worker.js.br | Bin 0 -> 608 bytes .../artwork/audio-metadata/worker.js.map | 1 + .../components/artwork/input/element.js | 3 + .../components/artwork/input/element.js.br | Bin 0 -> 146 bytes .../components/artwork/input/element.js.map | 1 + .../components/artwork/input/worker.js | 3 + .../components/artwork/input/worker.js.br | Bin 0 -> 197 bytes .../components/artwork/input/worker.js.map | 1 + .../components/artwork/last.fm/element.js | 3 + .../components/artwork/last.fm/element.js.br | Bin 0 -> 146 bytes .../components/artwork/last.fm/element.js.map | 1 + .../components/artwork/last.fm/worker.js | 3 + .../components/artwork/last.fm/worker.js.br | Bin 0 -> 516 bytes .../components/artwork/last.fm/worker.js.map | 1 + .../components/artwork/musicbrainz/element.js | 3 + .../artwork/musicbrainz/element.js.br | Bin 0 -> 146 bytes .../artwork/musicbrainz/element.js.map | 1 + .../components/artwork/musicbrainz/worker.js | 3 + .../artwork/musicbrainz/worker.js.br | Bin 0 -> 746 bytes .../artwork/musicbrainz/worker.js.map | 1 + .../configurator/artwork/element.js | 3 + .../configurator/artwork/element.js.br | Bin 0 -> 146 bytes .../configurator/artwork/element.js.map | 1 + .../components/configurator/artwork/worker.js | 3 + .../configurator/artwork/worker.js.br | Bin 0 -> 404 bytes .../configurator/artwork/worker.js.map | 1 + .../components/configurator/input/element.js | 3 + .../configurator/input/element.js.br | Bin 0 -> 146 bytes .../configurator/input/element.js.map | 1 + .../components/configurator/input/worker.js | 3 + .../configurator/input/worker.js.br | Bin 0 -> 1199 bytes .../configurator/input/worker.js.map | 1 + .../configurator/metadata/element.js | 3 + .../configurator/metadata/element.js.br | Bin 0 -> 148 bytes .../configurator/metadata/element.js.map | 1 + .../configurator/metadata/worker.js | 3 + .../configurator/metadata/worker.js.br | Bin 0 -> 211 bytes .../configurator/metadata/worker.js.map | 1 + .../components/configurator/output/element.js | 3 + .../configurator/output/element.js.br | Bin 0 -> 259 bytes .../configurator/output/element.js.map | 1 + .../configurator/scrobbles/element.js | 3 + .../configurator/scrobbles/element.js.br | Bin 0 -> 145 bytes .../configurator/scrobbles/element.js.map | 1 + .../components/configurator/upload/element.js | 3 + .../configurator/upload/element.js.br | Bin 0 -> 146 bytes .../configurator/upload/element.js.map | 1 + .../components/configurator/upload/worker.js | 3 + .../configurator/upload/worker.js.br | Bin 0 -> 446 bytes .../configurator/upload/worker.js.map | 1 + .../components/engine/audio/element.js | 3 + .../components/engine/audio/element.js.br | Bin 0 -> 197 bytes .../components/engine/audio/element.js.map | 1 + .../components/engine/queue/element.js | 3 + .../components/engine/queue/element.js.br | Bin 0 -> 146 bytes .../components/engine/queue/element.js.map | 1 + .../components/engine/queue/worker.js | 3 + .../components/engine/queue/worker.js.br | Bin 0 -> 1582 bytes .../components/engine/queue/worker.js.map | 1 + .../engine/repeat-shuffle/element.js | 3 + .../engine/repeat-shuffle/element.js.br | Bin 0 -> 146 bytes .../engine/repeat-shuffle/element.js.map | 1 + .../components/engine/scope/element.js | 3 + .../components/engine/scope/element.js.br | Bin 0 -> 146 bytes .../components/engine/scope/element.js.map | 1 + .../components/index.js | 3 + .../components/index.js.br | Bin 0 -> 1552 bytes .../components/index.js.map | 1 + .../components/input/common.js | 3 + .../components/input/common.js.br | Bin 0 -> 152 bytes .../components/input/common.js.map | 1 + .../components/input/dropbox/common.js | 3 + .../components/input/dropbox/common.js.br | Bin 0 -> 271 bytes .../components/input/dropbox/common.js.map | 1 + .../components/input/dropbox/constants.js | 1 + .../components/input/dropbox/constants.js.br | 1 + .../components/input/dropbox/constants.js.map | 1 + .../components/input/dropbox/element.js | 3 + .../components/input/dropbox/element.js.br | Bin 0 -> 189 bytes .../components/input/dropbox/element.js.map | 1 + .../components/input/dropbox/worker.js | 3 + .../components/input/dropbox/worker.js.br | Bin 0 -> 1217 bytes .../components/input/dropbox/worker.js.map | 1 + .../input/ephemeral-cache/constants.js | 1 + .../input/ephemeral-cache/constants.js.br | 1 + .../input/ephemeral-cache/constants.js.map | 1 + .../input/ephemeral-cache/element.js | 3 + .../input/ephemeral-cache/element.js.br | Bin 0 -> 152 bytes .../input/ephemeral-cache/element.js.map | 1 + .../input/ephemeral-cache/worker.js | 3 + .../input/ephemeral-cache/worker.js.br | Bin 0 -> 631 bytes .../input/ephemeral-cache/worker.js.map | 1 + .../components/input/https-json/common.js | 3 + .../components/input/https-json/common.js.br | Bin 0 -> 214 bytes .../components/input/https-json/common.js.map | 1 + .../components/input/https-json/constants.js | 1 + .../input/https-json/constants.js.br | 1 + .../input/https-json/constants.js.map | 1 + .../components/input/https-json/element.js | 3 + .../components/input/https-json/element.js.br | Bin 0 -> 175 bytes .../input/https-json/element.js.map | 1 + .../components/input/https-json/worker.js | 3 + .../components/input/https-json/worker.js.br | Bin 0 -> 1195 bytes .../components/input/https-json/worker.js.map | 1 + .../components/input/https/common.js | 3 + .../components/input/https/common.js.br | Bin 0 -> 148 bytes .../components/input/https/common.js.map | 1 + .../components/input/https/constants.js | 1 + .../components/input/https/constants.js.br | 1 + .../components/input/https/constants.js.map | 1 + .../components/input/https/element.js | 3 + .../components/input/https/element.js.br | Bin 0 -> 169 bytes .../components/input/https/element.js.map | 1 + .../components/input/https/worker.js | 3 + .../components/input/https/worker.js.br | Bin 0 -> 803 bytes .../components/input/https/worker.js.map | 1 + .../components/input/icecast/common.js | 3 + .../components/input/icecast/common.js.br | Bin 0 -> 181 bytes .../components/input/icecast/common.js.map | 1 + .../components/input/icecast/constants.js | 1 + .../components/input/icecast/constants.js.br | 1 + .../components/input/icecast/constants.js.map | 1 + .../components/input/icecast/element.js | 3 + .../components/input/icecast/element.js.br | Bin 0 -> 168 bytes .../components/input/icecast/element.js.map | 1 + .../components/input/icecast/worker.js | 3 + .../components/input/icecast/worker.js.br | Bin 0 -> 833 bytes .../components/input/icecast/worker.js.map | 1 + .../components/input/local/common.js | 3 + .../components/input/local/common.js.br | Bin 0 -> 257 bytes .../components/input/local/common.js.map | 1 + .../components/input/local/constants.js | 1 + .../components/input/local/constants.js.br | 1 + .../components/input/local/constants.js.map | 1 + .../components/input/local/element.js | 3 + .../components/input/local/element.js.br | Bin 0 -> 216 bytes .../components/input/local/element.js.map | 1 + .../components/input/local/worker.js | 3 + .../components/input/local/worker.js.br | Bin 0 -> 1372 bytes .../components/input/local/worker.js.map | 1 + .../components/input/opensubsonic/class.js | 1 + .../components/input/opensubsonic/class.js.br | 1 + .../input/opensubsonic/class.js.map | 1 + .../components/input/opensubsonic/common.js | 3 + .../input/opensubsonic/common.js.br | Bin 0 -> 242 bytes .../input/opensubsonic/common.js.map | 1 + .../input/opensubsonic/constants.js | 1 + .../input/opensubsonic/constants.js.br | 1 + .../input/opensubsonic/constants.js.map | 1 + .../components/input/opensubsonic/element.js | 3 + .../input/opensubsonic/element.js.br | Bin 0 -> 195 bytes .../input/opensubsonic/element.js.map | 1 + .../components/input/opensubsonic/worker.js | 3 + .../input/opensubsonic/worker.js.br | Bin 0 -> 1761 bytes .../input/opensubsonic/worker.js.map | 1 + .../components/input/s3/common.js | 3 + .../components/input/s3/common.js.br | Bin 0 -> 267 bytes .../components/input/s3/common.js.map | 1 + .../components/input/s3/constants.js | 1 + .../components/input/s3/constants.js.br | 1 + .../components/input/s3/constants.js.map | 1 + .../components/input/s3/element.js | 3 + .../components/input/s3/element.js.br | Bin 0 -> 198 bytes .../components/input/s3/element.js.map | 1 + .../components/input/s3/worker.js | 3 + .../components/input/s3/worker.js.br | Bin 0 -> 1467 bytes .../components/input/s3/worker.js.map | 1 + .../components/input/webdav/common.js | 3 + .../components/input/webdav/common.js.br | Bin 0 -> 250 bytes .../components/input/webdav/common.js.map | 1 + .../components/input/webdav/constants.js | 1 + .../components/input/webdav/constants.js.br | 1 + .../components/input/webdav/constants.js.map | 1 + .../components/input/webdav/element.js | 3 + .../components/input/webdav/element.js.br | Bin 0 -> 189 bytes .../components/input/webdav/element.js.map | 1 + .../components/input/webdav/worker.js | 3 + .../components/input/webdav/worker.js.br | Bin 0 -> 1141 bytes .../components/input/webdav/worker.js.map | 1 + .../components/metadata/audio-file/element.js | 3 + .../metadata/audio-file/element.js.br | Bin 0 -> 146 bytes .../metadata/audio-file/element.js.map | 1 + .../components/metadata/audio-file/worker.js | 3 + .../metadata/audio-file/worker.js.br | Bin 0 -> 558 bytes .../metadata/audio-file/worker.js.map | 1 + .../components/metadata/common.js | 3 + .../components/metadata/common.js.br | Bin 0 -> 173 bytes .../components/metadata/common.js.map | 1 + .../metadata/spectrogram/element.js | 3 + .../metadata/spectrogram/element.js.br | Bin 0 -> 431 bytes .../metadata/spectrogram/element.js.map | 1 + .../components/metadata/spectrogram/fft.js | 1 + .../components/metadata/spectrogram/fft.js.br | 1 + .../metadata/spectrogram/fft.js.map | 1 + .../components/metadata/spectrogram/worker.js | 3 + .../metadata/spectrogram/worker.js.br | Bin 0 -> 909 bytes .../metadata/spectrogram/worker.js.map | 1 + .../orchestrator/artwork/element.js | 3 + .../orchestrator/artwork/element.js.br | Bin 0 -> 146 bytes .../orchestrator/artwork/element.js.map | 1 + .../components/orchestrator/artwork/worker.js | 3 + .../orchestrator/artwork/worker.js.br | Bin 0 -> 623 bytes .../orchestrator/artwork/worker.js.map | 1 + .../orchestrator/auto-queue/element.js | 3 + .../orchestrator/auto-queue/element.js.br | Bin 0 -> 146 bytes .../orchestrator/auto-queue/element.js.map | 1 + .../orchestrator/controller/element.js | 3 + .../orchestrator/controller/element.js.br | Bin 0 -> 146 bytes .../orchestrator/controller/element.js.map | 1 + .../orchestrator/cover-groups/element.js | 3 + .../orchestrator/cover-groups/element.js.br | Bin 0 -> 146 bytes .../orchestrator/cover-groups/element.js.map | 1 + .../orchestrator/favourites/common.js | 3 + .../orchestrator/favourites/common.js.br | Bin 0 -> 122 bytes .../orchestrator/favourites/common.js.map | 1 + .../orchestrator/favourites/element.js | 3 + .../orchestrator/favourites/element.js.br | Bin 0 -> 196 bytes .../orchestrator/favourites/element.js.map | 1 + .../orchestrator/favourites/worker.js | 3 + .../orchestrator/favourites/worker.js.br | Bin 0 -> 560 bytes .../orchestrator/favourites/worker.js.map | 1 + .../orchestrator/media-session/element.js | 3 + .../orchestrator/media-session/element.js.map | 1 + .../components/orchestrator/output/element.js | 3 + .../orchestrator/output/element.js.map | 1 + .../orchestrator/path-collections/element.js | 3 + .../path-collections/element.js.map | 1 + .../orchestrator/process-tracks/element.js | 3 + .../process-tracks/element.js.map | 1 + .../orchestrator/process-tracks/worker.js | 3 + .../orchestrator/process-tracks/worker.js.map | 1 + .../orchestrator/queue-audio/element.js | 3 + .../orchestrator/queue-audio/element.js.map | 1 + .../orchestrator/scoped-tracks/constants.js | 1 + .../scoped-tracks/constants.js.map | 1 + .../orchestrator/scoped-tracks/element.js | 3 + .../orchestrator/scoped-tracks/element.js.map | 1 + .../orchestrator/scoped-tracks/worker.js | 13 + .../orchestrator/scoped-tracks/worker.js.map | 1 + .../orchestrator/scrobble-audio/element.js | 3 + .../scrobble-audio/element.js.map | 1 + .../components/orchestrator/sources/common.js | 1 + .../orchestrator/sources/common.js.map | 1 + .../orchestrator/sources/constants.js | 1 + .../orchestrator/sources/constants.js.map | 1 + .../orchestrator/sources/element.js | 3 + .../orchestrator/sources/element.js.map | 1 + .../orchestrator/spectrogram-audio/element.js | 3 + .../spectrogram-audio/element.js.map | 1 + .../components/output/bytes/dropbox/common.js | 3 + .../output/bytes/dropbox/common.js.map | 1 + .../output/bytes/dropbox/constants.js | 1 + .../output/bytes/dropbox/constants.js.map | 1 + .../output/bytes/dropbox/element.js | 3 + .../output/bytes/dropbox/element.js.map | 1 + .../components/output/bytes/dropbox/worker.js | 3 + .../output/bytes/dropbox/worker.js.map | 1 + .../components/output/bytes/s3/constants.js | 1 + .../output/bytes/s3/constants.js.map | 1 + .../components/output/bytes/s3/element.js | 3 + .../components/output/bytes/s3/element.js.map | 1 + .../components/output/bytes/s3/worker.js | 3 + .../components/output/bytes/s3/worker.js.map | 1 + .../components/output/common.js | 3 + .../components/output/common.js.map | 1 + .../polymorphic/indexed-db/constants.js | 1 + .../polymorphic/indexed-db/constants.js.map | 1 + .../output/polymorphic/indexed-db/element.js | 3 + .../polymorphic/indexed-db/element.js.map | 1 + .../output/raw/atproto-passkey/element.js | 3 + .../output/raw/atproto-passkey/element.js.map | 1 + .../oauth-client-metadata.json | 1 + .../output/raw/atproto-passkey/oauth.js | 3 + .../output/raw/atproto-passkey/oauth.js.map | 1 + .../output/raw/atproto-space/element.js | 9 + .../output/raw/atproto-space/element.js.map | 1 + .../atproto-space/oauth-client-metadata.json | 1 + .../output/raw/atproto-space/oauth.js | 1 + .../output/raw/atproto-space/oauth.js.map | 1 + .../components/supplement/last.fm/element.js | 3 + .../supplement/last.fm/element.js.map | 1 + .../supplement/listenbrainz/element.js | 3 + .../supplement/listenbrainz/element.js.map | 1 + .../components/supplement/rocksky/element.js | 3 + .../supplement/rocksky/element.js.map | 1 + .../rocksky/oauth-client-metadata.json | 1 + .../components/supplement/rocksky/oauth.js | 3 + .../supplement/rocksky/oauth.js.map | 1 + .../components/supplement/session.js | 3 + .../components/supplement/session.js.map | 1 + .../components/transformer/output/base.js | 3 + .../components/transformer/output/base.js.map | 1 + .../output/bytes/automerge/constants.js | 1 + .../output/bytes/automerge/constants.js.map | 1 + .../output/bytes/automerge/element.js | 3 + .../output/bytes/automerge/element.js.map | 1 + .../output/bytes/automerge/utils.js | 1 + .../output/bytes/automerge/utils.js.map | 1 + .../output/bytes/dasl-sync/constants.js | 1 + .../output/bytes/dasl-sync/constants.js.map | 1 + .../output/bytes/dasl-sync/element.js | 3 + .../output/bytes/dasl-sync/element.js.map | 1 + .../transformer/output/bytes/json/element.js | 3 + .../output/bytes/json/element.js.map | 1 + .../output/raw/atproto-space-sync/element.js | 8 + .../raw/atproto-space-sync/element.js.map | 1 + .../output/raw/atproto-sync/element.js | 3 + .../output/raw/atproto-sync/element.js.map | 1 + .../output/refiner/default/element.js | 3 + .../output/refiner/default/element.js.map | 1 + .../refiner/initial-contents/element.js | 3 + .../refiner/initial-contents/element.js.map | 1 + .../refiner/passkey-encryption/element.js | 3 + .../refiner/passkey-encryption/element.js.map | 1 + .../refiner/passkey-encryption/passkey.js | 1 + .../refiner/passkey-encryption/passkey.js.map | 1 + .../transformer/output/string/json/element.js | 3 + .../output/string/json/element.js.map | 1 + .../components/upload/dropbox/common.js | 3 + .../components/upload/dropbox/common.js.map | 1 + .../components/upload/dropbox/element.js | 3 + .../components/upload/dropbox/element.js.map | 1 + .../components/upload/dropbox/worker.js | 3 + .../components/upload/dropbox/worker.js.map | 1 + .../core@0.72-7M5IIQHZ.js | 3 + .../core@0.72-7M5IIQHZ.js.br | Bin 0 -> 18338 bytes .../core@0.72-7M5IIQHZ.js.map | 1 + .../create/index.html | 1 + .../create/index.html.br | 1 + .../custom-elements.json | 9141 ++++++++++++ .../custom-elements.json.br | Bin 0 -> 16375 bytes .../dashboard/index.html | 1 + .../dashboard/index.html.br | 1 + .../definitions/atproto/permissions.json | 1 + .../definitions/atproto/space.json | 1 + .../definitions/output/collaboration.json | 1 + .../definitions/output/facet.json | 1 + .../definitions/output/playlistItem.json | 1 + .../output/playlistItemBundle.json | 1 + .../definitions/output/setting.json | 1 + .../definitions/output/track.json | 1 + .../definitions/output/trackBundle.json | 1 + .../demo/index.html | 1 + .../demo/index.html.br | 1 + .../dist-SVFK62JF.js | 1 + .../dist-SVFK62JF.js.br | 1 + .../dist-SVFK62JF.js.map | 1 + .../elements/index.html | 1 + .../elements/index.html.br | 1 + .../facets/connect/atproto-passkey/index.html | 1 + .../facets/connect/atproto-space/index.html | 1 + .../facets/connect/common.css | 1 + .../facets/connect/common.css.map | 1 + .../facets/connect/common.js | 1 + .../facets/connect/common.js.map | 1 + .../facets/connect/dropbox/index.html | 1 + .../facets/connect/https-json/index.html | 1 + .../facets/connect/https/index.html | 1 + .../facets/connect/icecast/index.html | 1 + .../facets/connect/index.html | 1 + .../facets/connect/local/index.html | 1 + .../facets/connect/opensubsonic/index.html | 1 + .../facets/connect/s3/index.html | 1 + .../facets/connect/webdav/index.html | 1 + .../facets/data/artwork-bundle/index.html | 1 + .../facets/data/cache-tracks/index.html | 1 + .../facets/data/export-import/index.html | 1 + .../facets/data/file-manager/index.html | 1 + .../facets/data/file-manager/styles.css | 1 + .../facets/data/file-manager/styles.css.map | 1 + .../facets/data/input-bundle/index.html | 1 + .../facets/data/metadata-bundle/index.html | 1 + .../facets/data/metadata-bundle/index.html.br | Bin 0 -> 371 bytes .../facets/data/output-bundle/index.html | 1 + .../facets/data/output-bundle/index.html.br | Bin 0 -> 1451 bytes .../facets/data/playlists/index.html | 1 + .../facets/data/playlists/index.html.br | Bin 0 -> 3520 bytes .../facets/data/process-tracks/index.html | 1 + .../facets/data/process-tracks/index.html.br | Bin 0 -> 1078 bytes .../data/process-tracks/prelude/index.html | 1 + .../data/process-tracks/prelude/index.html.br | 1 + .../facets/data/sources/index.html | 1 + .../facets/data/sources/index.html.br | 1 + .../facets/data/spectrogram/index.html | 1 + .../facets/data/spectrogram/index.html.br | 1 + .../facets/data/upload-bundle/index.html | 1 + .../facets/data/upload-bundle/index.html.br | 1 + .../facets/data/userdata/index.html | 1 + .../facets/data/userdata/index.html.br | 1 + .../facets/data/v3-import/index.html | 1 + .../facets/data/v3-import/index.html.br | 1 + .../examples/generate-playlist/index.html | 1 + .../examples/generate-playlist/index.html.br | 1 + .../facets/examples/now-playing/index.html | 1 + .../facets/examples/now-playing/index.html.br | 1 + .../facets/index.js | 3 + .../facets/index.js.br | Bin 0 -> 81 bytes .../facets/index.js.map | 1 + .../facets/misc/command/index.html | 1 + .../facets/misc/command/index.html.br | 1 + .../facets/misc/scrobble/index.html | 1 + .../facets/misc/scrobble/index.html.br | 1 + .../facets/misc/scrobble/last.fm/index.html | 1 + .../misc/scrobble/last.fm/index.html.br | 1 + .../misc/scrobble/listenbrainz/index.html | 1 + .../misc/scrobble/listenbrainz/index.html.br | 1 + .../facets/misc/scrobble/rocksky/index.html | 1 + .../misc/scrobble/rocksky/index.html.br | 1 + .../facets/misc/split-view/index.html | 640 + .../facets/misc/split-view/index.html.br | Bin 0 -> 4758 bytes .../facets/misc/webmcp/index.html | 370 + .../facets/misc/webmcp/index.html.br | Bin 0 -> 3256 bytes .../facets/playback/auto-queue/index.html | 1 + .../facets/playback/auto-queue/index.html.br | 1 + .../playback/auto-queue/prelude/index.html | 1 + .../playback/auto-queue/prelude/index.html.br | 1 + .../playback/preload/prelude/index.html | 1 + .../playback/preload/prelude/index.html.br | 1 + .../facets/playback/queue/index.html | 1 + .../facets/playback/queue/index.html.br | 1 + .../facets/setup/index.html | 1 + .../facets/setup/index.html.br | 1 + .../blur-classic/controller/element.css | 1 + .../blur-classic/controller/element.css.br | 1 + .../blur-classic/controller/element.css.map | 1 + .../themes/blur-classic/controller/element.js | 82 + .../blur-classic/controller/element.js.br | Bin 0 -> 1565 bytes .../blur-classic/controller/element.js.map | 1 + .../themes/blur-classic/facet/index.css | 1 + .../themes/blur-classic/facet/index.css.br | 1 + .../themes/blur-classic/facet/index.css.map | 1 + .../themes/blur-classic/facet/index.html | 1 + .../themes/blur-classic/facet/index.html.br | 1 + .../facets/themes/blur-pocket/facet/index.css | 1 + .../themes/blur-pocket/facet/index.css.br | 1 + .../themes/blur-pocket/facet/index.css.map | 1 + .../themes/blur-pocket/facet/index.html | 1 + .../themes/blur-pocket/facet/index.html.br | 1 + .../facets/themes/blur-pocket/variables.css | 1 + .../themes/blur-pocket/variables.css.br | 1 + .../themes/blur-pocket/variables.css.map | 1 + .../blur/artwork-controller/element.css | 1 + .../blur/artwork-controller/element.css.br | 1 + .../blur/artwork-controller/element.css.map | 1 + .../themes/blur/artwork-controller/element.js | 154 + .../blur/artwork-controller/element.js.br | Bin 0 -> 6006 bytes .../blur/artwork-controller/element.js.map | 1 + .../blur/artwork-controller/facet/index.html | 1 + .../artwork-controller/facet/index.html.br | 1 + .../facets/themes/blur/browser/element.css | 1 + .../facets/themes/blur/browser/element.css.br | 1 + .../themes/blur/browser/element.css.map | 1 + .../facets/themes/blur/browser/element.js | 466 + .../facets/themes/blur/browser/element.js.br | Bin 0 -> 7919 bytes .../facets/themes/blur/browser/element.js.map | 1 + .../themes/blur/browser/facet/index.html | 1 + .../themes/blur/browser/facet/index.html.br | 1 + .../facets/themes/blur/facet/index.css | 1 + .../facets/themes/blur/facet/index.css.br | 1 + .../facets/themes/blur/facet/index.css.map | 1 + .../facets/themes/blur/facet/index.html | 1 + .../facets/themes/blur/facet/index.html.br | 1 + .../facets/themes/blur/font-faces.css | 1 + .../facets/themes/blur/font-faces.css.br | 1 + .../facets/themes/blur/font-faces.css.map | 1 + .../facets/themes/blur/variables.css | 1 + .../facets/themes/blur/variables.css.br | 1 + .../facets/themes/blur/variables.css.map | 1 + .../themes/catalogue-one/facet/index.css | 1 + .../themes/catalogue-one/facet/index.css.br | 1 + .../themes/catalogue-one/facet/index.css.map | 1 + .../themes/catalogue-one/facet/index.html | 1384 ++ .../themes/catalogue-one/facet/index.html.br | Bin 0 -> 9959 bytes .../facets/themes/catalogue-one/variables.css | 1 + .../themes/catalogue-one/variables.css.br | 1 + .../themes/catalogue-one/variables.css.map | 1 + .../facets/themes/ipod/facet.css | 1 + .../facets/themes/ipod/facet.css.br | 1 + .../facets/themes/ipod/facet.css.map | 1 + .../facets/themes/ipod/facet/index.html | 1 + .../facets/themes/ipod/facet/index.html.br | 1 + .../facets/themes/ipod/variables.css | 1 + .../facets/themes/ipod/variables.css.br | 1 + .../facets/themes/ipod/variables.css.map | 1 + .../facets/themes/tidal/browser/element.css | 1 + .../themes/tidal/browser/element.css.br | 1 + .../themes/tidal/browser/element.css.map | 1 + .../facets/themes/tidal/browser/element.js | 288 + .../facets/themes/tidal/browser/element.js.br | Bin 0 -> 5111 bytes .../themes/tidal/browser/element.js.map | 1 + .../themes/tidal/browser/facet/index.html | 1 + .../themes/tidal/browser/facet/index.html.br | 1 + .../facets/themes/tidal/facet/index.html | 1 + .../facets/themes/tidal/facet/index.html.br | 1 + .../facets/themes/tidal/player/element.css | 1 + .../facets/themes/tidal/player/element.css.br | 1 + .../themes/tidal/player/element.css.map | 1 + .../facets/themes/tidal/player/element.js | 127 + .../facets/themes/tidal/player/element.js.br | Bin 0 -> 2568 bytes .../facets/themes/tidal/player/element.js.map | 1 + .../themes/tidal/player/facet/index.html | 1 + .../themes/tidal/player/facet/index.html.br | 1 + .../facets/themes/tidal/variables.css | 1 + .../facets/themes/tidal/variables.css.br | 1 + .../facets/themes/tidal/variables.css.map | 1 + .../facets/themes/winamp/98-extra.css | 1 + .../facets/themes/winamp/98-extra.css.br | 1 + .../facets/themes/winamp/98-extra.css.map | 1 + .../facets/themes/winamp/98-scrollbar.css | 1 + .../facets/themes/winamp/98-scrollbar.css.br | 1 + .../facets/themes/winamp/98-scrollbar.css.map | 1 + .../facets/themes/winamp/98-vars.css | 1 + .../facets/themes/winamp/98-vars.css.br | 1 + .../facets/themes/winamp/98-vars.css.map | 1 + .../facets/themes/winamp/artwork/element.js | 39 + .../themes/winamp/artwork/element.js.br | Bin 0 -> 958 bytes .../themes/winamp/artwork/element.js.map | 1 + .../facets/themes/winamp/browser/element.css | 1 + .../themes/winamp/browser/element.css.br | 1 + .../themes/winamp/browser/element.css.map | 1 + .../facets/themes/winamp/browser/element.js | 216 + .../themes/winamp/browser/element.js.br | Bin 0 -> 4549 bytes .../themes/winamp/browser/element.js.map | 1 + .../themes/winamp/browser/facet/index.html | 1 + .../themes/winamp/browser/facet/index.html.br | 1 + .../facets/themes/winamp/common/ui.js | 1 + .../facets/themes/winamp/common/ui.js.br | 1 + .../facets/themes/winamp/common/ui.js.map | 1 + .../facets/themes/winamp/facet.css | 1 + .../facets/themes/winamp/facet.css.br | 1 + .../facets/themes/winamp/facet.css.map | 1 + .../facets/themes/winamp/facet/index.html | 1 + .../facets/themes/winamp/facet/index.html.br | 1 + .../facets/themes/winamp/fonts.css | 1 + .../facets/themes/winamp/fonts.css.br | 1 + .../facets/themes/winamp/fonts.css.map | 1 + .../facets/themes/winamp/index.css | 1 + .../facets/themes/winamp/index.css.br | 1 + .../facets/themes/winamp/index.css.map | 1 + .../themes/winamp/track-details/element.js | 107 + .../themes/winamp/track-details/element.js.br | Bin 0 -> 1320 bytes .../winamp/track-details/element.js.map | 1 + .../themes/winamp/vendor/README/index.html | 1 + .../themes/winamp/vendor/README/index.html.br | 1 + .../facets/themes/winamp/vendor/base-skin.css | 1 + .../themes/winamp/vendor/base-skin.css.br | 1 + .../themes/winamp/vendor/base-skin.css.map | 1 + .../themes/winamp/vendor/context-menu.css | 1 + .../themes/winamp/vendor/context-menu.css.br | 1 + .../themes/winamp/vendor/context-menu.css.map | 1 + .../themes/winamp/vendor/equalizer-window.css | 1 + .../winamp/vendor/equalizer-window.css.br | 1 + .../winamp/vendor/equalizer-window.css.map | 1 + .../themes/winamp/vendor/gen-window.css | 1 + .../themes/winamp/vendor/gen-window.css.br | 1 + .../themes/winamp/vendor/gen-window.css.map | 1 + .../themes/winamp/vendor/main-window.css | 1 + .../themes/winamp/vendor/main-window.css.br | 1 + .../themes/winamp/vendor/main-window.css.map | 1 + .../themes/winamp/vendor/milkdrop-window.css | 1 + .../winamp/vendor/milkdrop-window.css.br | 1 + .../winamp/vendor/milkdrop-window.css.map | 1 + .../facets/themes/winamp/vendor/mini-time.css | 1 + .../themes/winamp/vendor/mini-time.css.br | 1 + .../themes/winamp/vendor/mini-time.css.map | 1 + .../themes/winamp/vendor/playlist-window.css | 1 + .../winamp/vendor/playlist-window.css.br | 1 + .../winamp/vendor/playlist-window.css.map | 1 + .../facets/themes/winamp/vendor/webamp.css | 1 + .../facets/themes/winamp/vendor/webamp.css.br | 1 + .../themes/winamp/vendor/webamp.css.map | 1 + .../facets/themes/winamp/winamp/element.js | 364 + .../facets/themes/winamp/winamp/element.js.br | Bin 0 -> 11987 bytes .../themes/winamp/winamp/element.js.map | 1 + .../themes/winamp/window-manager/element.js | 11 + .../winamp/window-manager/element.js.br | Bin 0 -> 1677 bytes .../winamp/window-manager/element.js.map | 1 + .../facets/themes/winamp/window/element.js | 3 + .../facets/themes/winamp/window/element.js.br | Bin 0 -> 146 bytes .../themes/winamp/window/element.js.map | 1 + .../favicon-16x16.png | 1 + .../favicon-32x32.png | 1 + .../favicon.ico | 1 + .../featured/index.html | 905 ++ .../featured/index.html.br | Bin 0 -> 4217 bytes .../file-tree.json | 1 + .../file-tree.json.br | 1 + .../fonts/98.css/ms_sans_serif.woff2 | 1 + .../fonts/98.css/ms_sans_serif_bold.woff2 | 1 + .../fonts/CommitMonoVariable.woff2 | 1 + .../Figtree-Italic-VariableFont_wght.woff2 | 1 + .../fonts/Figtree-VariableFont_wght.woff2 | 1 + .../fonts/InterVariable-Italic.woff2 | 1 + .../fonts/InterVariable.woff2 | 1 + .../fonts/PublicSans-Italic[wght].woff2 | 1 + .../fonts/PublicSans[wght].woff2 | 1 + .../fonts/SourceSans3VF-Italic.otf.woff2 | 1 + .../fonts/SourceSans3VF-Upright.otf.woff2 | 1 + .../guide/index.html | 1 + .../guide/index.html.br | 1 + .../images/background/1.jpg | 1 + .../images/background/10.jpg | 1 + .../images/background/11.jpg | 1 + .../images/background/12.jpg | 1 + .../images/background/13.jpg | 1 + .../images/background/14.jpg | 1 + .../images/background/15.jpg | 1 + .../images/background/16.jpg | 1 + .../images/background/17.jpg | 1 + .../images/background/18.jpg | 1 + .../images/background/19.jpg | 1 + .../images/background/2.jpg | 1 + .../images/background/20.jpg | 1 + .../images/background/21.jpg | 1 + .../images/background/22.jpg | 1 + .../images/background/23.jpg | 1 + .../images/background/24.jpg | 1 + .../images/background/25.jpg | 1 + .../images/background/26.jpg | 1 + .../images/background/27.jpg | 1 + .../images/background/28.jpg | 1 + .../images/background/29.jpg | 1 + .../images/background/3.jpg | 1 + .../images/background/30.jpg | 1 + .../images/background/4.jpg | 1 + .../images/background/5.jpg | 1 + .../images/background/6.jpg | 1 + .../images/background/7.jpg | 1 + .../images/background/8.jpg | 1 + .../images/background/9.jpg | 1 + .../images/background/thumbnails/1.jpg | 1 + .../images/background/thumbnails/10.jpg | 1 + .../images/background/thumbnails/11.jpg | 1 + .../images/background/thumbnails/12.jpg | 1 + .../images/background/thumbnails/13.jpg | 1 + .../images/background/thumbnails/14.jpg | 1 + .../images/background/thumbnails/15.jpg | 1 + .../images/background/thumbnails/16.jpg | 1 + .../images/background/thumbnails/17.jpg | 1 + .../images/background/thumbnails/18.jpg | 1 + .../images/background/thumbnails/19.jpg | 1 + .../images/background/thumbnails/2.jpg | 1 + .../images/background/thumbnails/20.jpg | 1 + .../images/background/thumbnails/21.jpg | 1 + .../images/background/thumbnails/22.jpg | 1 + .../images/background/thumbnails/23.jpg | 1 + .../images/background/thumbnails/24.jpg | 1 + .../images/background/thumbnails/25.jpg | 1 + .../images/background/thumbnails/26.jpg | 1 + .../images/background/thumbnails/27.jpg | 1 + .../images/background/thumbnails/28.jpg | 1 + .../images/background/thumbnails/29.jpg | 1 + .../images/background/thumbnails/3.jpg | 1 + .../images/background/thumbnails/30.jpg | 1 + .../images/background/thumbnails/4.jpg | 1 + .../images/background/thumbnails/5.jpg | 1 + .../images/background/thumbnails/6.jpg | 1 + .../images/background/thumbnails/7.jpg | 1 + .../images/background/thumbnails/8.jpg | 1 + .../images/background/thumbnails/9.jpg | 1 + .../images/diffuse-current.svg | 1 + .../images/diffuse-current.svg.br | 1 + .../images/diffuse-dark.svg | 1 + .../images/diffuse-dark.svg.br | 1 + .../images/diffuse-grey.svg | 1 + .../images/diffuse-grey.svg.br | 1 + .../images/diffuse-light.svg | 1 + .../images/diffuse-light.svg.br | 1 + .../images/diffuse__icon-dark.svg | 1 + .../images/diffuse__icon-dark.svg.br | 1 + .../images/diffuse__icon-grey.svg | 1 + .../images/diffuse__icon-grey.svg.br | 1 + .../images/diffuse__icon-light.svg | 1 + .../images/diffuse__icon-light.svg.br | 1 + .../images/icon-square-ws.png | 1 + .../images/icon-square.png | 1 + .../images/icon.png | 1 + .../images/icons/windows_98/catalog-1.png | 1 + .../icons/windows_98/cd_audio_cd_a-0.png | 1 + .../icons/windows_98/cd_audio_cd_a-2.png | 1 + .../icons/windows_98/cd_audio_cd_a-3.png | 1 + .../icons/windows_98/cd_audio_cd_a-4.png | 1 + .../images/icons/windows_98/cd_drive-0.png | 1 + .../icons/windows_98/cd_drive_purple-3.png | 1 + .../images/icons/windows_98/channels-2.png | 1 + .../images/icons/windows_98/check-0.png | 1 + .../icons/windows_98/computer_sound-0.png | 1 + .../windows_98/computer_user_pencil-0.png | 1 + .../icons/windows_98/connected_world-0.png | 1 + .../windows_98/directory_admin_tools-3.png | 1 + .../windows_98/directory_admin_tools-5.png | 1 + .../icons/windows_98/directory_channels-2.png | 1 + .../icons/windows_98/directory_channels-3.png | 1 + .../icons/windows_98/directory_closed-3.png | 1 + .../icons/windows_98/directory_closed-4.png | 1 + .../windows_98/directory_control_panel-2.png | 1 + .../windows_98/directory_control_panel-3.png | 1 + .../icons/windows_98/directory_explorer-4.png | 1 + .../icons/windows_98/directory_explorer-5.png | 1 + .../windows_98/directory_favorites-2.png | 1 + .../windows_98/directory_favorites-4.png | 1 + .../icons/windows_98/directory_net_web-3.png | 1 + .../icons/windows_98/directory_net_web-4.png | 1 + .../windows_98/directory_network_conn-3.png | 1 + .../windows_98/directory_network_conn-5.png | 1 + .../directory_open_file_mydocs_2k-3.png | 1 + .../directory_open_file_mydocs_2k-4.png | 1 + .../images/icons/windows_98/gears-0.png | 1 + .../images/icons/windows_98/globe_map-0.png | 1 + .../icons/windows_98/help_book_big-0.png | 1 + .../images/icons/windows_98/imagwmf-1.png | 1 + .../images/icons/windows_98/installer-3.png | 1 + .../windows_98/installer_generic_old-0.png | 1 + .../images/icons/windows_98/keys-5.png | 1 + .../icons/windows_98/loudspeaker_wave-0.png | 1 + .../icons/windows_98/magnifying_glass-0.png | 1 + .../icons/windows_98/magnifying_glass_4-1.png | 1 + .../icons/windows_98/media_player-0.png | 1 + .../windows_98/media_player_stream_no.png | 1 + .../images/icons/windows_98/ms_dos-1.png | 1 + .../images/icons/windows_98/msg_error-0.png | 1 + .../icons/windows_98/msg_information-0.png | 1 + .../icons/windows_98/msg_question-0.png | 1 + .../images/icons/windows_98/msg_warning-0.png | 1 + .../images/icons/windows_98/multimedia-4.png | 1 + .../windows_98/network_drive_world-0.png | 1 + .../images/icons/windows_98/no-1.png | 1 + .../images/icons/windows_98/restrict-1.png | 1 + .../icons/windows_98/search_computer-0.png | 1 + .../icons/windows_98/search_server-1.png | 1 + .../images/icons/windows_98/search_web-0.png | 1 + .../icons/windows_98/settings_gear-0.png | 1 + .../icons/windows_98/settings_gear-2.png | 1 + .../images/icons/windows_98/tip.png | 1 + .../images/icons/windows_98/utopia_smiley.png | 1 + .../windows_98/wia_img_color_sound-0.png | 1 + .../images/icons/windows_98/winamp2-32x32.png | 1 + .../images/icons/windows_98/windows-0.png | 1 + .../images/icons/windows_98/world-2.png | 1 + .../images/icons/windows_98/world-4.png | 1 + .../world_network_directories-3.png | 1 + .../index.html | 230 + .../index.html.br | Bin 0 -> 2752 bytes .../l/index.html | 1 + .../l/index.html.br | 1 + .../l/index.js | 3 + .../l/index.js.br | Bin 0 -> 849 bytes .../l/index.js.map | 1 + .../mstile-150x150.png | 1 + .../node_crypto-S7VP6CAP.js | 1 + .../node_crypto-S7VP6CAP.js.br | 1 + .../node_crypto-S7VP6CAP.js.map | 1 + .../node_url-RLOZFCCT.js | 3 + .../node_url-RLOZFCCT.js.br | 1 + .../node_url-RLOZFCCT.js.map | 1 + .../oauth/callback/index.html | 1 + .../oauth/callback/index.html.br | 1 + .../oauth/callback/index.js | 3 + .../oauth/callback/index.js.br | Bin 0 -> 407 bytes .../oauth/callback/index.js.map | 1 + .../oauth/lock.js | 1 + .../oauth/lock.js.br | 1 + .../oauth/lock.js.map | 1 + .../panproto_wasm_bg.wasm | Bin 0 -> 9889389 bytes .../promises-C3R4A7GR.js | 3 + .../promises-C3R4A7GR.js.br | Bin 0 -> 74 bytes .../promises-C3R4A7GR.js.map | 1 + .../safari-pinned-tab.svg | 1 + .../safari-pinned-tab.svg.br | 1 + .../service-worker-loader.js | 1 + .../service-worker-loader.js.br | 1 + .../service-worker-loader.js.map | 1 + .../service-worker.js | 4 + .../service-worker.js.map | 1 + .../site.webmanifest | 1 + .../skills/diffuse-facet.zip | Bin 0 -> 85123 bytes .../skills/diffuse-facet/SKILL.md | 154 + .../diffuse-facet/docs/architecture.txt | 1 + .../diffuse-facet/docs/architecture.txt.br | 1 + .../docs/definitions/atproto/permissions.json | 1 + .../docs/definitions/atproto/space.json | 1 + .../diffuse-facet/docs/definitions/index.ts | 1 + .../definitions/output/collaboration.json | 1 + .../docs/definitions/output/facet.json | 1 + .../docs/definitions/output/playlistItem.json | 1 + .../output/playlistItemBundle.json | 1 + .../docs/definitions/output/setting.json | 1 + .../docs/definitions/output/track.json | 1 + .../docs/definitions/output/trackBundle.json | 1 + .../skills/diffuse-facet/docs/elements.txt | 11802 ++++++++++++++++ .../skills/diffuse-facet/docs/elements.txt.br | Bin 0 -> 57626 bytes .../skills/diffuse-facet/docs/foundation.js | 1 + .../diffuse-facet/docs/foundation.js.br | 1 + .../diffuse-facet/docs/foundation.js.map | 1 + .../skills/diffuse-facet/example/index.html | 1 + .../diffuse-facet/example/index.html.br | 1 + .../styles/animations.css | 1 + .../styles/animations.css.br | 1 + .../styles/animations.css.map | 1 + .../styles/base.css | 1 + .../styles/base.css.br | 1 + .../styles/base.css.map | 1 + .../styles/diffuse/code-editor.css | 1 + .../styles/diffuse/code-editor.css.br | 1 + .../styles/diffuse/code-editor.css.map | 1 + .../styles/diffuse/colors.css | 1 + .../styles/diffuse/colors.css.br | 1 + .../styles/diffuse/colors.css.map | 1 + .../styles/diffuse/facet.css | 1 + .../styles/diffuse/facet.css.br | 1 + .../styles/diffuse/facet.css.map | 1 + .../styles/diffuse/font-faces.css | 1 + .../styles/diffuse/font-faces.css.br | 1 + .../styles/diffuse/font-faces.css.map | 1 + .../styles/diffuse/fonts.css | 1 + .../styles/diffuse/fonts.css.br | 1 + .../styles/diffuse/fonts.css.map | 1 + .../styles/diffuse/page.css | 2 + .../styles/diffuse/page.css.br | Bin 0 -> 6031 bytes .../styles/diffuse/page.css.map | 1 + .../styles/loader.css | 1 + .../styles/loader.css.br | 1 + .../styles/loader.css.map | 1 + .../styles/reset.css | 1 + .../styles/reset.css.br | 1 + .../styles/reset.css.map | 1 + .../styles/variables.css | 1 + .../styles/variables.css.br | 1 + .../styles/variables.css.map | 1 + .../styles/wireframe/ui.css | 1 + .../styles/wireframe/ui.css.br | 1 + .../styles/wireframe/ui.css.map | 1 + .../testing/index.html | 1 + .../testing/index.html.br | 1 + .../testing/sample/audio.mp3 | 1 + .../testing/sample/tracks.js | 1 + .../testing/sample/tracks.js.br | 1 + .../testing/sample/tracks.js.map | 1 + .../vendor/98.css | 1 + .../vendor/98.css.br | 1 + .../vendor/98.css.map | 1 + .../vendor/@atcute/cbor/index.js | 1 + .../vendor/@atcute/cbor/index.js.br | 1 + .../vendor/@atcute/cbor/index.js.map | 1 + .../@atcute/oauth-browser-client/index.js | 1 + .../@atcute/oauth-browser-client/index.js.br | 1 + .../@atcute/oauth-browser-client/index.js.map | 1 + .../vendor/@atcute/tid/index.js | 3 + .../vendor/@atcute/tid/index.js.br | Bin 0 -> 138 bytes .../vendor/@atcute/tid/index.js.map | 1 + .../webawesome/chunks/chunk.26QE47KB.js | 1 + .../webawesome/chunks/chunk.2BXLTQVW.js | 1 + .../webawesome/chunks/chunk.2E2VZMOR.js | 1 + .../webawesome/chunks/chunk.2LXKNNNE.js | 1 + .../webawesome/chunks/chunk.2NOGQWD2.js | 1 + .../webawesome/chunks/chunk.2NV6QW6C.js | 1 + .../webawesome/chunks/chunk.2QMPIFI4.js | 1 + .../webawesome/chunks/chunk.2SO23SX3.js | 1 + .../webawesome/chunks/chunk.2XF6Q5Q4.js | 1 + .../webawesome/chunks/chunk.2YEETXBR.js | 1 + .../webawesome/chunks/chunk.3FDTCWBL.js | 1 + .../webawesome/chunks/chunk.3H2FQERJ.js | 1 + .../webawesome/chunks/chunk.3I2YK6WG.js | 1 + .../webawesome/chunks/chunk.3MALJW2P.js | 1 + .../webawesome/chunks/chunk.3MSWQ3RG.js | 1 + .../webawesome/chunks/chunk.3NKIHICW.js | 1 + .../webawesome/chunks/chunk.3OMDB7G7.js | 1 + .../webawesome/chunks/chunk.3T6KMBNF.js | 1 + .../webawesome/chunks/chunk.44TPNLVU.js | 1 + .../webawesome/chunks/chunk.467JFVDS.js | 1 + .../webawesome/chunks/chunk.4AI6OCVC.js | 1 + .../webawesome/chunks/chunk.4EC7IRRU.js | 1 + .../webawesome/chunks/chunk.4HCUFNFE.js | 1 + .../webawesome/chunks/chunk.4HIUT4NN.js | 1 + .../webawesome/chunks/chunk.4IALDZ4Y.js | 1 + .../webawesome/chunks/chunk.4LIBWWJL.js | 1 + .../webawesome/chunks/chunk.4LWVSIV7.js | 1 + .../webawesome/chunks/chunk.4MQTK254.js | 1 + .../webawesome/chunks/chunk.4MUQQILH.js | 1 + .../webawesome/chunks/chunk.4QWUDRS5.js | 1 + .../webawesome/chunks/chunk.4UAGHDWN.js | 1 + .../webawesome/chunks/chunk.4VVVEQ6S.js | 1 + .../webawesome/chunks/chunk.4ZAKP7NY.js | 1 + .../webawesome/chunks/chunk.54DVC4XB.js | 1 + .../webawesome/chunks/chunk.55AH5UAX.js | 1 + .../webawesome/chunks/chunk.5EZXNBTY.js | 1 + .../webawesome/chunks/chunk.5FPZSTUW.js | 1 + .../webawesome/chunks/chunk.5HLSOZWR.js | 1 + .../webawesome/chunks/chunk.5JBQCQFB.js | 1 + .../webawesome/chunks/chunk.5KEI242Z.js | 1 + .../webawesome/chunks/chunk.5KKHTQSP.js | 1 + .../webawesome/chunks/chunk.5PFAYAIK.js | 1 + .../webawesome/chunks/chunk.5VKLVAP2.js | 1 + .../webawesome/chunks/chunk.5ZIFEPE5.js | 1 + .../webawesome/chunks/chunk.5ZSSLK3M.js | 1 + .../webawesome/chunks/chunk.63RYV7SI.js | 1 + .../webawesome/chunks/chunk.6A3YESTJ.js | 1 + .../webawesome/chunks/chunk.6CIAVEBC.js | 1 + .../webawesome/chunks/chunk.6SNQOYNK.js | 1 + .../webawesome/chunks/chunk.6T7N5NBH.js | 1 + .../webawesome/chunks/chunk.6TNHHCAM.js | 1 + .../webawesome/chunks/chunk.6VIHFQLB.js | 1 + .../webawesome/chunks/chunk.6VPDWW2I.js | 1 + .../webawesome/chunks/chunk.6ZVWWDQT.js | 1 + .../webawesome/chunks/chunk.7ESIKVRI.js | 1 + .../webawesome/chunks/chunk.7GJ2QXRW.js | 1 + .../webawesome/chunks/chunk.7HGYKBWW.js | 1 + .../webawesome/chunks/chunk.7WYCJAAB.js | 1 + .../webawesome/chunks/chunk.A73F6EP3.js | 1 + .../webawesome/chunks/chunk.AB2K5S2N.js | 1 + .../webawesome/chunks/chunk.AG44H7MD.js | 1 + .../webawesome/chunks/chunk.AJQ3S5VI.js | 1 + .../webawesome/chunks/chunk.AOZFN6E7.js | 1 + .../webawesome/chunks/chunk.AQZVKFHG.js | 1 + .../webawesome/chunks/chunk.B6O732C7.js | 1 + .../webawesome/chunks/chunk.BCCEA2BT.js | 1 + .../webawesome/chunks/chunk.BGEID5TE.js | 1 + .../webawesome/chunks/chunk.BKE5EYM3.js | 1 + .../webawesome/chunks/chunk.BLGT2UQZ.js | 1 + .../webawesome/chunks/chunk.BLWGM6W4.js | 1 + .../webawesome/chunks/chunk.BMO76VKZ.js | 1 + .../webawesome/chunks/chunk.BOYYUMGV.js | 1 + .../webawesome/chunks/chunk.BQNDCXAL.js | 1 + .../webawesome/chunks/chunk.BSKW43C6.js | 1 + .../webawesome/chunks/chunk.BUCKADPY.js | 1 + .../webawesome/chunks/chunk.BZMNT3VX.js | 1 + .../webawesome/chunks/chunk.C2GDS5KB.js | 1 + .../webawesome/chunks/chunk.C435GZCM.js | 1 + .../webawesome/chunks/chunk.C4ZDYZVI.js | 1 + .../webawesome/chunks/chunk.CERDLENO.js | 1 + .../webawesome/chunks/chunk.CEY3XO3U.js | 1 + .../webawesome/chunks/chunk.CMMS3W7V.js | 1 + .../webawesome/chunks/chunk.CV35G2DF.js | 1 + .../webawesome/chunks/chunk.CVI2B3VH.js | 1 + .../webawesome/chunks/chunk.D2XOEELP.js | 1 + .../webawesome/chunks/chunk.D5YFE5NT.js | 1 + .../webawesome/chunks/chunk.D6BCK4PR.js | 1 + .../webawesome/chunks/chunk.D6GXWYLR.js | 1 + .../webawesome/chunks/chunk.D7DTB2BP.js | 1 + .../webawesome/chunks/chunk.D7J2HJDE.js | 1 + .../webawesome/chunks/chunk.DOVAIU4B.js | 1 + .../webawesome/chunks/chunk.DP5YIFD7.js | 1 + .../webawesome/chunks/chunk.DYSMWXBZ.js | 1 + .../webawesome/chunks/chunk.E2G7AAZ3.js | 1 + .../webawesome/chunks/chunk.ECJJ7KVB.js | 1 + .../webawesome/chunks/chunk.EF25YJJE.js | 1 + .../webawesome/chunks/chunk.EFUXUR2V.js | 1 + .../webawesome/chunks/chunk.EIWUDXXU.js | 1 + .../webawesome/chunks/chunk.EOON7UFT.js | 1 + .../webawesome/chunks/chunk.EP5NMLNE.js | 1 + .../webawesome/chunks/chunk.EV55TYKC.js | 1 + .../webawesome/chunks/chunk.EV5QZWZG.js | 1 + .../webawesome/chunks/chunk.F25QOBDY.js | 1 + .../webawesome/chunks/chunk.F4JHOXPG.js | 1 + .../webawesome/chunks/chunk.F4KZU7UC.js | 1 + .../webawesome/chunks/chunk.FFUR45EY.js | 1 + .../webawesome/chunks/chunk.FG2PKHMT.js | 1 + .../webawesome/chunks/chunk.FMGPE4WI.js | 1 + .../webawesome/chunks/chunk.FNFKITIN.js | 1 + .../webawesome/chunks/chunk.FV2UJLMK.js | 1 + .../webawesome/chunks/chunk.FY65S3KS.js | 1 + .../webawesome/chunks/chunk.FYKN76UA.js | 1 + .../webawesome/chunks/chunk.G6XOOSBC.js | 1 + .../webawesome/chunks/chunk.GDKEEBXF.js | 1 + .../webawesome/chunks/chunk.GDWSLLNY.js | 1 + .../webawesome/chunks/chunk.GQMKKXTW.js | 1 + .../webawesome/chunks/chunk.GTUPCKQ3.js | 1 + .../webawesome/chunks/chunk.GWSUX3V5.js | 1 + .../webawesome/chunks/chunk.GWVMEUYH.js | 1 + .../webawesome/chunks/chunk.H23DVATU.js | 1 + .../webawesome/chunks/chunk.H7FQOWYN.js | 1 + .../webawesome/chunks/chunk.H7TA73OO.js | 1 + .../webawesome/chunks/chunk.HGBRCPUS.js | 1 + .../webawesome/chunks/chunk.HJ65SLMP.js | 1 + .../webawesome/chunks/chunk.HKBIIF6R.js | 1 + .../webawesome/chunks/chunk.HKMBVADD.js | 1 + .../webawesome/chunks/chunk.HLGGDMDY.js | 1 + .../webawesome/chunks/chunk.HNCFWHCC.js | 1 + .../webawesome/chunks/chunk.HOKYDFUG.js | 1 + .../webawesome/chunks/chunk.HPULLNVR.js | 1 + .../webawesome/chunks/chunk.HU5FIEKB.js | 1 + .../webawesome/chunks/chunk.I2Y4E7B6.js | 1 + .../webawesome/chunks/chunk.I6OAT7EI.js | 1 + .../webawesome/chunks/chunk.IBYYXOHL.js | 1 + .../webawesome/chunks/chunk.ICDCAGCX.js | 1 + .../webawesome/chunks/chunk.IHXCBN37.js | 1 + .../webawesome/chunks/chunk.IIHGIRPB.js | 1 + .../webawesome/chunks/chunk.IOZQCLLD.js | 1 + .../webawesome/chunks/chunk.IX2GQ2J6.js | 1 + .../webawesome/chunks/chunk.IZL7R7PV.js | 1 + .../webawesome/chunks/chunk.J2WRH4YL.js | 1 + .../webawesome/chunks/chunk.J4UHUULC.js | 1 + .../webawesome/chunks/chunk.J7EXAHCE.js | 1 + .../webawesome/chunks/chunk.JATRSH7G.js | 1 + .../webawesome/chunks/chunk.JB5Y2AN3.js | 1 + .../webawesome/chunks/chunk.JBSQSXSP.js | 1 + .../webawesome/chunks/chunk.JEFGOKSA.js | 1 + .../webawesome/chunks/chunk.JHZRD2LV.js | 1 + .../webawesome/chunks/chunk.JJKKSYRO.js | 1 + .../webawesome/chunks/chunk.JTOY5KP3.js | 1 + .../webawesome/chunks/chunk.K5EDTD7G.js | 1 + .../webawesome/chunks/chunk.K5Q2EBKV.js | 1 + .../webawesome/chunks/chunk.KBRACBFL.js | 1 + .../webawesome/chunks/chunk.KBS6YHTA.js | 1 + .../webawesome/chunks/chunk.KEBUA3M4.js | 1 + .../webawesome/chunks/chunk.KGKMD624.js | 1 + .../webawesome/chunks/chunk.KH7MR2OK.js | 1 + .../webawesome/chunks/chunk.KJ34WZZX.js | 1 + .../webawesome/chunks/chunk.KKI7M5DP.js | 1 + .../webawesome/chunks/chunk.KRECBW2E.js | 1 + .../webawesome/chunks/chunk.KWDPKKFO.js | 1 + .../webawesome/chunks/chunk.L6CIKOFQ.js | 1 + .../webawesome/chunks/chunk.LAIHMICP.js | 1 + .../webawesome/chunks/chunk.LBLI4KS5.js | 1 + .../webawesome/chunks/chunk.LCFSCRUJ.js | 1 + .../webawesome/chunks/chunk.LDTTUEPR.js | 1 + .../webawesome/chunks/chunk.LETCJ5PC.js | 1 + .../webawesome/chunks/chunk.LFN2QAAB.js | 1 + .../webawesome/chunks/chunk.LFY74XUF.js | 1 + .../webawesome/chunks/chunk.LN7M2NWC.js | 1 + .../webawesome/chunks/chunk.LNFTFTSZ.js | 1 + .../webawesome/chunks/chunk.LPHX3BNP.js | 1 + .../webawesome/chunks/chunk.LRYJ2M5H.js | 1 + .../webawesome/chunks/chunk.M6RNJSYP.js | 1 + .../webawesome/chunks/chunk.M7O5VY4E.js | 1 + .../webawesome/chunks/chunk.MD76HZD2.js | 1 + .../webawesome/chunks/chunk.MEATLWHD.js | 1 + .../webawesome/chunks/chunk.MF234WAF.js | 1 + .../webawesome/chunks/chunk.MHOTNIZ4.js | 1 + .../webawesome/chunks/chunk.MO2KS3JW.js | 1 + .../webawesome/chunks/chunk.MQODJ75V.js | 1 + .../webawesome/chunks/chunk.MT4KGKUD.js | 1 + .../webawesome/chunks/chunk.N2TXQSKF.js | 1 + .../webawesome/chunks/chunk.NHAJRKRO.js | 1 + .../webawesome/chunks/chunk.NJV43B2Z.js | 1 + .../webawesome/chunks/chunk.NPU2ZTMF.js | 1 + .../webawesome/chunks/chunk.NR2LFKJE.js | 1 + .../webawesome/chunks/chunk.NS4E73TC.js | 1 + .../webawesome/chunks/chunk.NSSMHWNA.js | 1 + .../webawesome/chunks/chunk.NUVDWQN5.js | 1 + .../webawesome/chunks/chunk.NWZSEH5M.js | 1 + .../webawesome/chunks/chunk.NXWZMA6E.js | 1 + .../webawesome/chunks/chunk.NY2PQ35L.js | 1 + .../webawesome/chunks/chunk.NZMEALWZ.js | 1 + .../webawesome/chunks/chunk.O3FF2LGE.js | 1 + .../webawesome/chunks/chunk.O6IZ4I7T.js | 1 + .../webawesome/chunks/chunk.OPR272H6.js | 1 + .../webawesome/chunks/chunk.PP5RFEZX.js | 1 + .../webawesome/chunks/chunk.PPALL6KG.js | 1 + .../webawesome/chunks/chunk.PSADQYP2.js | 1 + .../webawesome/chunks/chunk.PX3HMKF7.js | 1 + .../webawesome/chunks/chunk.PXDGU6KC.js | 1 + .../webawesome/chunks/chunk.PZ23AOZF.js | 1 + .../webawesome/chunks/chunk.PZAN6FPN.js | 1 + .../webawesome/chunks/chunk.Q6XMGFWJ.js | 1 + .../webawesome/chunks/chunk.QD7TM6E5.js | 1 + .../webawesome/chunks/chunk.QERYKBRG.js | 1 + .../webawesome/chunks/chunk.QG644JIK.js | 1 + .../webawesome/chunks/chunk.QGLBSRQH.js | 1 + .../webawesome/chunks/chunk.QKLDCWUF.js | 1 + .../webawesome/chunks/chunk.QNZSHXSH.js | 1 + .../webawesome/chunks/chunk.QX54BZQA.js | 1 + .../webawesome/chunks/chunk.QXPWLPKE.js | 1 + .../webawesome/chunks/chunk.R62LX7HF.js | 1 + .../webawesome/chunks/chunk.R7QX4M6R.js | 1 + .../webawesome/chunks/chunk.R7U5PXUZ.js | 1 + .../webawesome/chunks/chunk.RCTVXACL.js | 1 + .../webawesome/chunks/chunk.REHZ4JRM.js | 1 + .../webawesome/chunks/chunk.RGZE6BBW.js | 1 + .../webawesome/chunks/chunk.RHKZJTZ7.js | 1 + .../webawesome/chunks/chunk.RKPV5RWB.js | 1 + .../webawesome/chunks/chunk.RM7EPJRB.js | 1 + .../webawesome/chunks/chunk.RMZ7BVDM.js | 1 + .../webawesome/chunks/chunk.RPQJAXXR.js | 1 + .../webawesome/chunks/chunk.RQKP4T6Z.js | 1 + .../webawesome/chunks/chunk.RV5MEM4L.js | 1 + .../webawesome/chunks/chunk.RWNXKUCF.js | 1 + .../webawesome/chunks/chunk.S2QNOR5Z.js | 1 + .../webawesome/chunks/chunk.S3XWKRZZ.js | 1 + .../webawesome/chunks/chunk.S4CBNMSE.js | 1 + .../webawesome/chunks/chunk.SGGNMQGZ.js | 1 + .../webawesome/chunks/chunk.SJBMXU7J.js | 1 + .../webawesome/chunks/chunk.SJUGO6JB.js | 1 + .../webawesome/chunks/chunk.SKLR37OM.js | 1 + .../webawesome/chunks/chunk.SQJ7XZ47.js | 1 + .../webawesome/chunks/chunk.ST3SWFIB.js | 1 + .../webawesome/chunks/chunk.SUZGY3IK.js | 1 + .../webawesome/chunks/chunk.SUZTEJNL.js | 1 + .../webawesome/chunks/chunk.T2SU5Q2S.js | 1 + .../webawesome/chunks/chunk.T4GCCZZH.js | 1 + .../webawesome/chunks/chunk.T6GGTYHD.js | 1 + .../webawesome/chunks/chunk.T7CCLJ4F.js | 1 + .../webawesome/chunks/chunk.TAQBKX4T.js | 1 + .../webawesome/chunks/chunk.TCIZ7KIL.js | 1 + .../webawesome/chunks/chunk.TDR7XG37.js | 1 + .../webawesome/chunks/chunk.TLFIX76K.js | 1 + .../webawesome/chunks/chunk.TTV5IOGO.js | 1 + .../webawesome/chunks/chunk.U36KZLSQ.js | 1 + .../webawesome/chunks/chunk.UIKY7WPI.js | 1 + .../webawesome/chunks/chunk.UMPSPH77.js | 1 + .../webawesome/chunks/chunk.UUEMMZG6.js | 1 + .../webawesome/chunks/chunk.UUYXVN6H.js | 1 + .../webawesome/chunks/chunk.UV4Y72XP.js | 1 + .../webawesome/chunks/chunk.V3XSRGX4.js | 1 + .../webawesome/chunks/chunk.VAK7NBQC.js | 1 + .../webawesome/chunks/chunk.VC3BPUZJ.js | 1 + .../webawesome/chunks/chunk.VMUYD6ZV.js | 1 + .../webawesome/chunks/chunk.VO4OKF3D.js | 1 + .../webawesome/chunks/chunk.VQZ46MYI.js | 1 + .../webawesome/chunks/chunk.VRQU2Y2Z.js | 1 + .../webawesome/chunks/chunk.VVLIN6UY.js | 1 + .../webawesome/chunks/chunk.VVUBGO75.js | 1 + .../webawesome/chunks/chunk.W2C46OQX.js | 1 + .../webawesome/chunks/chunk.W2W7E7EP.js | 1 + .../webawesome/chunks/chunk.W3JJ6XED.js | 1 + .../webawesome/chunks/chunk.WDIIGUNP.js | 1 + .../webawesome/chunks/chunk.WGFDW2LC.js | 1 + .../webawesome/chunks/chunk.WIX7VI5R.js | 1 + .../webawesome/chunks/chunk.WKFY4NAW.js | 1 + .../webawesome/chunks/chunk.WKX3BKNK.js | 1 + .../webawesome/chunks/chunk.WLKYECLX.js | 1 + .../webawesome/chunks/chunk.WSTNGCWW.js | 1 + .../webawesome/chunks/chunk.WYNTFJHW.js | 1 + .../webawesome/chunks/chunk.X542U3B2.js | 1 + .../webawesome/chunks/chunk.X55YNZ3B.js | 1 + .../webawesome/chunks/chunk.XJ4PEGQL.js | 1 + .../webawesome/chunks/chunk.XJOHOSCS.js | 1 + .../webawesome/chunks/chunk.XLATYKDG.js | 1 + .../webawesome/chunks/chunk.XU63UNPU.js | 1 + .../webawesome/chunks/chunk.XUOQ3VYA.js | 1 + .../webawesome/chunks/chunk.XW6BKGGI.js | 1 + .../webawesome/chunks/chunk.XZ235HUK.js | 1 + .../webawesome/chunks/chunk.XZPLJ4VW.js | 1 + .../webawesome/chunks/chunk.Y4NB7O4S.js | 1 + .../webawesome/chunks/chunk.YBFCQDTA.js | 1 + .../webawesome/chunks/chunk.YCKOBVHT.js | 1 + .../webawesome/chunks/chunk.YDQCS2HK.js | 1 + .../webawesome/chunks/chunk.YI4H4EEG.js | 1 + .../webawesome/chunks/chunk.YJNHQL5U.js | 1 + .../webawesome/chunks/chunk.YLIESRP2.js | 1 + .../webawesome/chunks/chunk.YN7QRSZ7.js | 1 + .../webawesome/chunks/chunk.YNIJJMXK.js | 1 + .../webawesome/chunks/chunk.YPC4IEE5.js | 1 + .../webawesome/chunks/chunk.YQNBAO2Z.js | 1 + .../webawesome/chunks/chunk.YXOWVBUA.js | 1 + .../webawesome/chunks/chunk.ZA5G6FAT.js | 1 + .../webawesome/chunks/chunk.ZESUPXT6.js | 1 + .../webawesome/chunks/chunk.ZFMOLE6Z.js | 1 + .../webawesome/chunks/chunk.ZFSRFTCP.js | 1 + .../webawesome/chunks/chunk.ZKX5RQ5L.js | 1 + .../webawesome/chunks/chunk.ZR5KSPNL.js | 1 + .../webawesome/chunks/chunk.ZRLTNBWF.js | 1 + .../webawesome/chunks/chunk.ZSEFTQAO.js | 1 + .../webawesome/chunks/chunk.ZSNU3QL4.js | 1 + .../webawesome/chunks/chunk.ZT4OZS6F.js | 1 + .../webawesome/chunks/chunk.ZWQCGLB5.js | 1 + .../webawesome/chunks/chunk.ZY7BMFLO.js | 1 + .../webawesome/chunks/chunk.ZZPJSMJ4.js | 1 + .../accordion-item/accordion-item.d.ts | 1 + .../accordion-item/accordion-item.js | 1 + .../accordion-item/accordion-item.styles.d.ts | 1 + .../accordion-item/accordion-item.styles.js | 1 + .../components/accordion/accordion.d.ts | 1 + .../components/accordion/accordion.js | 1 + .../accordion/accordion.styles.d.ts | 1 + .../components/accordion/accordion.styles.js | 1 + .../animated-image/animated-image.d.ts | 1 + .../animated-image/animated-image.js | 1 + .../animated-image/animated-image.styles.d.ts | 1 + .../animated-image/animated-image.styles.js | 1 + .../components/animation/animation.d.ts | 1 + .../components/animation/animation.js | 1 + .../animation/animation.styles.d.ts | 1 + .../components/animation/animation.styles.js | 1 + .../components/animation/animations.d.ts | 1 + .../components/animation/animations.js | 1 + .../webawesome/components/avatar/avatar.d.ts | 1 + .../webawesome/components/avatar/avatar.js | 1 + .../components/avatar/avatar.styles.d.ts | 1 + .../components/avatar/avatar.styles.js | 1 + .../webawesome/components/badge/badge.d.ts | 1 + .../webawesome/components/badge/badge.js | 1 + .../components/badge/badge.styles.d.ts | 1 + .../components/badge/badge.styles.js | 1 + .../breadcrumb-item/breadcrumb-item.d.ts | 1 + .../breadcrumb-item/breadcrumb-item.js | 1 + .../breadcrumb-item.styles.d.ts | 1 + .../breadcrumb-item/breadcrumb-item.styles.js | 1 + .../components/breadcrumb/breadcrumb.d.ts | 1 + .../components/breadcrumb/breadcrumb.js | 1 + .../breadcrumb/breadcrumb.styles.d.ts | 1 + .../breadcrumb/breadcrumb.styles.js | 1 + .../components/button-group/button-group.d.ts | 1 + .../components/button-group/button-group.js | 1 + .../button-group/button-group.styles.d.ts | 1 + .../button-group/button-group.styles.js | 1 + .../webawesome/components/button/button.d.ts | 1 + .../webawesome/components/button/button.js | 1 + .../components/button/button.styles.d.ts | 1 + .../components/button/button.styles.js | 1 + .../components/callout/callout.d.ts | 1 + .../webawesome/components/callout/callout.js | 1 + .../components/callout/callout.styles.d.ts | 1 + .../components/callout/callout.styles.js | 1 + .../webawesome/components/card/card.d.ts | 1 + .../webawesome/components/card/card.js | 1 + .../components/card/card.styles.d.ts | 1 + .../webawesome/components/card/card.styles.js | 1 + .../carousel-item/carousel-item.d.ts | 1 + .../components/carousel-item/carousel-item.js | 1 + .../carousel-item/carousel-item.styles.d.ts | 1 + .../carousel-item/carousel-item.styles.js | 1 + .../carousel/autoplay-controller.d.ts | 1 + .../carousel/autoplay-controller.js | 1 + .../components/carousel/carousel.d.ts | 1 + .../components/carousel/carousel.js | 1 + .../components/carousel/carousel.styles.d.ts | 1 + .../components/carousel/carousel.styles.js | 1 + .../carousel/scroll-controller.d.ts | 1 + .../components/carousel/scroll-controller.js | 1 + .../checkbox-group/checkbox-group.d.ts | 1 + .../checkbox-group/checkbox-group.js | 1 + .../checkbox-group/checkbox-group.styles.d.ts | 1 + .../checkbox-group/checkbox-group.styles.js | 1 + .../components/checkbox/checkbox.d.ts | 1 + .../components/checkbox/checkbox.js | 1 + .../components/checkbox/checkbox.styles.d.ts | 1 + .../components/checkbox/checkbox.styles.js | 1 + .../components/color-picker/color-picker.d.ts | 1 + .../components/color-picker/color-picker.js | 1 + .../color-picker/color-picker.styles.d.ts | 1 + .../color-picker/color-picker.styles.js | 1 + .../components/comparison/comparison.d.ts | 1 + .../components/comparison/comparison.js | 1 + .../comparison/comparison.styles.d.ts | 1 + .../comparison/comparison.styles.js | 1 + .../components/copy-button/copy-button.d.ts | 1 + .../components/copy-button/copy-button.js | 1 + .../copy-button/copy-button.styles.d.ts | 1 + .../copy-button/copy-button.styles.js | 1 + .../components/details/details.d.ts | 1 + .../webawesome/components/details/details.js | 1 + .../components/details/details.styles.d.ts | 1 + .../components/details/details.styles.js | 1 + .../webawesome/components/dialog/dialog.d.ts | 1 + .../webawesome/components/dialog/dialog.js | 1 + .../components/dialog/dialog.styles.d.ts | 1 + .../components/dialog/dialog.styles.js | 1 + .../components/divider/divider.d.ts | 1 + .../webawesome/components/divider/divider.js | 1 + .../components/divider/divider.styles.d.ts | 1 + .../components/divider/divider.styles.js | 1 + .../webawesome/components/drawer/drawer.d.ts | 1 + .../webawesome/components/drawer/drawer.js | 1 + .../components/drawer/drawer.styles.d.ts | 1 + .../components/drawer/drawer.styles.js | 1 + .../dropdown-item/dropdown-item.d.ts | 1 + .../components/dropdown-item/dropdown-item.js | 1 + .../dropdown-item/dropdown-item.styles.d.ts | 1 + .../dropdown-item/dropdown-item.styles.js | 1 + .../components/dropdown/dropdown.d.ts | 1 + .../components/dropdown/dropdown.js | 1 + .../components/dropdown/dropdown.styles.d.ts | 1 + .../components/dropdown/dropdown.styles.js | 1 + .../components/format-bytes/format-bytes.d.ts | 1 + .../components/format-bytes/format-bytes.js | 1 + .../components/format-date/format-date.d.ts | 1 + .../components/format-date/format-date.js | 1 + .../format-number/format-number.d.ts | 1 + .../components/format-number/format-number.js | 1 + .../webawesome/components/icon/icon.d.ts | 1 + .../webawesome/components/icon/icon.js | 1 + .../components/icon/icon.styles.d.ts | 1 + .../webawesome/components/icon/icon.styles.js | 1 + .../webawesome/components/icon/library.d.ts | 1 + .../components/icon/library.default.d.ts | 1 + .../components/icon/library.default.js | 1 + .../webawesome/components/icon/library.js | 1 + .../components/icon/library.system.d.ts | 1 + .../components/icon/library.system.js | 1 + .../components/include/include.d.ts | 1 + .../webawesome/components/include/include.js | 1 + .../components/include/include.styles.d.ts | 1 + .../components/include/include.styles.js | 1 + .../components/include/request.d.ts | 1 + .../webawesome/components/include/request.js | 1 + .../webawesome/components/input/input.d.ts | 1 + .../webawesome/components/input/input.js | 1 + .../components/input/input.styles.d.ts | 1 + .../components/input/input.styles.js | 1 + .../intersection-observer.d.ts | 1 + .../intersection-observer.js | 1 + .../intersection-observer.styles.d.ts | 1 + .../intersection-observer.styles.js | 1 + .../known-date/internal/field-order.d.ts | 1 + .../known-date/internal/field-order.js | 1 + .../internal/partial-date-validator.d.ts | 1 + .../internal/partial-date-validator.js | 1 + .../components/known-date/internal/parts.d.ts | 1 + .../components/known-date/internal/parts.js | 1 + .../components/known-date/known-date.d.ts | 1 + .../components/known-date/known-date.js | 1 + .../known-date/known-date.styles.d.ts | 1 + .../known-date/known-date.styles.js | 1 + .../components/markdown/markdown.d.ts | 1 + .../components/markdown/markdown.js | 1 + .../components/markdown/markdown.styles.d.ts | 1 + .../components/markdown/markdown.styles.js | 1 + .../mutation-observer/mutation-observer.d.ts | 1 + .../mutation-observer/mutation-observer.js | 1 + .../mutation-observer.styles.d.ts | 1 + .../mutation-observer.styles.js | 1 + .../components/number-input/number-input.d.ts | 1 + .../components/number-input/number-input.js | 1 + .../number-input/number-input.styles.d.ts | 1 + .../number-input/number-input.styles.js | 1 + .../webawesome/components/option/option.d.ts | 1 + .../webawesome/components/option/option.js | 1 + .../components/option/option.styles.d.ts | 1 + .../components/option/option.styles.js | 1 + .../components/otp-input/otp-input.d.ts | 1 + .../components/otp-input/otp-input.js | 1 + .../otp-input/otp-input.styles.d.ts | 1 + .../components/otp-input/otp-input.styles.js | 1 + .../webawesome/components/page/page.d.ts | 1 + .../webawesome/components/page/page.js | 1 + .../components/page/page.mobile.styles.d.ts | 1 + .../components/page/page.mobile.styles.js | 1 + .../components/page/page.styles.d.ts | 1 + .../webawesome/components/page/page.styles.js | 1 + .../components/pagination/pagination.d.ts | 1 + .../components/pagination/pagination.js | 1 + .../pagination/pagination.styles.d.ts | 1 + .../pagination/pagination.styles.js | 1 + .../components/popover/popover.d.ts | 1 + .../webawesome/components/popover/popover.js | 1 + .../components/popover/popover.styles.d.ts | 1 + .../components/popover/popover.styles.js | 1 + .../webawesome/components/popup/popup.d.ts | 1 + .../webawesome/components/popup/popup.js | 1 + .../components/popup/popup.styles.d.ts | 1 + .../components/popup/popup.styles.js | 1 + .../components/progress-bar/progress-bar.d.ts | 1 + .../components/progress-bar/progress-bar.js | 1 + .../progress-bar/progress-bar.styles.d.ts | 1 + .../progress-bar/progress-bar.styles.js | 1 + .../progress-ring/progress-ring.d.ts | 1 + .../components/progress-ring/progress-ring.js | 1 + .../progress-ring/progress-ring.styles.d.ts | 1 + .../progress-ring/progress-ring.styles.js | 1 + .../components/qr-code/qr-code.d.ts | 1 + .../webawesome/components/qr-code/qr-code.js | 1 + .../components/qr-code/qr-code.styles.d.ts | 1 + .../components/qr-code/qr-code.styles.js | 1 + .../components/radio-group/radio-group.d.ts | 1 + .../components/radio-group/radio-group.js | 1 + .../radio-group/radio-group.styles.d.ts | 1 + .../radio-group/radio-group.styles.js | 1 + .../webawesome/components/radio/radio.d.ts | 1 + .../webawesome/components/radio/radio.js | 1 + .../components/radio/radio.styles.d.ts | 1 + .../components/radio/radio.styles.js | 1 + .../random-content/random-content.d.ts | 1 + .../random-content/random-content.js | 1 + .../random-content/random-content.styles.d.ts | 1 + .../random-content/random-content.styles.js | 1 + .../webawesome/components/rating/rating.d.ts | 1 + .../webawesome/components/rating/rating.js | 1 + .../components/rating/rating.styles.d.ts | 1 + .../components/rating/rating.styles.js | 1 + .../relative-time/relative-time.d.ts | 1 + .../components/relative-time/relative-time.js | 1 + .../resize-observer/resize-observer.d.ts | 1 + .../resize-observer/resize-observer.js | 1 + .../resize-observer.styles.d.ts | 1 + .../resize-observer/resize-observer.styles.js | 1 + .../components/scroller/scroller.d.ts | 1 + .../components/scroller/scroller.js | 1 + .../components/scroller/scroller.styles.d.ts | 1 + .../components/scroller/scroller.styles.js | 1 + .../webawesome/components/select/select.d.ts | 1 + .../webawesome/components/select/select.js | 1 + .../components/select/select.styles.d.ts | 1 + .../components/select/select.styles.js | 1 + .../components/skeleton/skeleton.d.ts | 1 + .../components/skeleton/skeleton.js | 1 + .../components/skeleton/skeleton.styles.d.ts | 1 + .../components/skeleton/skeleton.styles.js | 1 + .../webawesome/components/slider/slider.d.ts | 1 + .../webawesome/components/slider/slider.js | 1 + .../components/slider/slider.styles.d.ts | 1 + .../components/slider/slider.styles.js | 1 + .../components/spinner/spinner.d.ts | 1 + .../webawesome/components/spinner/spinner.js | 1 + .../components/spinner/spinner.styles.d.ts | 1 + .../components/spinner/spinner.styles.js | 1 + .../components/split-panel/split-panel.d.ts | 1 + .../components/split-panel/split-panel.js | 1 + .../split-panel/split-panel.styles.d.ts | 1 + .../split-panel/split-panel.styles.js | 1 + .../webawesome/components/switch/switch.d.ts | 1 + .../webawesome/components/switch/switch.js | 1 + .../components/switch/switch.styles.d.ts | 1 + .../components/switch/switch.styles.js | 1 + .../components/tab-group/tab-group.d.ts | 1 + .../components/tab-group/tab-group.js | 1 + .../tab-group/tab-group.styles.d.ts | 1 + .../components/tab-group/tab-group.styles.js | 1 + .../components/tab-panel/tab-panel.d.ts | 1 + .../components/tab-panel/tab-panel.js | 1 + .../tab-panel/tab-panel.styles.d.ts | 1 + .../components/tab-panel/tab-panel.styles.js | 1 + .../webawesome/components/tab/tab.d.ts | 1 + .../webawesome/components/tab/tab.js | 1 + .../webawesome/components/tab/tab.styles.d.ts | 1 + .../webawesome/components/tab/tab.styles.js | 1 + .../webawesome/components/tag/tag.d.ts | 1 + .../webawesome/components/tag/tag.js | 1 + .../webawesome/components/tag/tag.styles.d.ts | 1 + .../webawesome/components/tag/tag.styles.js | 1 + .../components/textarea/textarea.d.ts | 1 + .../components/textarea/textarea.js | 1 + .../components/textarea/textarea.styles.d.ts | 1 + .../components/textarea/textarea.styles.js | 1 + .../time-input/internal/time-segments.d.ts | 1 + .../time-input/internal/time-segments.js | 1 + .../components/time-input/time-input.d.ts | 1 + .../components/time-input/time-input.js | 1 + .../time-input/time-input.styles.d.ts | 1 + .../time-input/time-input.styles.js | 1 + .../components/toast-item/toast-item.d.ts | 1 + .../components/toast-item/toast-item.js | 1 + .../toast-item/toast-item.styles.d.ts | 1 + .../toast-item/toast-item.styles.js | 1 + .../webawesome/components/toast/toast.d.ts | 1 + .../webawesome/components/toast/toast.js | 1 + .../components/toast/toast.styles.d.ts | 1 + .../components/toast/toast.styles.js | 1 + .../components/tooltip/tooltip.d.ts | 1 + .../webawesome/components/tooltip/tooltip.js | 1 + .../components/tooltip/tooltip.styles.d.ts | 1 + .../components/tooltip/tooltip.styles.js | 1 + .../components/tree-item/tree-item.d.ts | 1 + .../components/tree-item/tree-item.js | 1 + .../tree-item/tree-item.styles.d.ts | 1 + .../components/tree-item/tree-item.styles.js | 1 + .../webawesome/components/tree/tree.d.ts | 1 + .../webawesome/components/tree/tree.js | 1 + .../components/tree/tree.styles.d.ts | 1 + .../webawesome/components/tree/tree.styles.js | 1 + .../zoomable-frame/zoomable-frame.d.ts | 1 + .../zoomable-frame/zoomable-frame.js | 1 + .../zoomable-frame/zoomable-frame.styles.d.ts | 1 + .../zoomable-frame/zoomable-frame.styles.js | 1 + .../webawesome/custom-elements-jsx.d.ts | 1 + .../webawesome/custom-elements.json | 1 + .../events/accordion-after-collapse.d.ts | 1 + .../events/accordion-after-collapse.js | 1 + .../events/accordion-after-expand.d.ts | 1 + .../events/accordion-after-expand.js | 1 + .../webawesome/events/accordion-collapse.d.ts | 1 + .../webawesome/events/accordion-collapse.js | 1 + .../webawesome/events/accordion-expand.d.ts | 1 + .../webawesome/events/accordion-expand.js | 1 + .../events/accordion-item-collapsed.d.ts | 1 + .../events/accordion-item-collapsed.js | 1 + .../events/accordion-item-expanded.d.ts | 1 + .../events/accordion-item-expanded.js | 1 + .../events/accordion-item-trigger.d.ts | 1 + .../events/accordion-item-trigger.js | 1 + .../webawesome/events/after-collapse.d.ts | 1 + .../webawesome/events/after-collapse.js | 1 + .../webawesome/events/after-expand.d.ts | 1 + .../webawesome/events/after-expand.js | 1 + .../webawesome/events/after-hide.d.ts | 1 + .../webawesome/events/after-hide.js | 1 + .../webawesome/events/after-show.d.ts | 1 + .../webawesome/events/after-show.js | 1 + .../webawesome/events/before-page-change.d.ts | 1 + .../webawesome/events/before-page-change.js | 1 + .../@awesome.me/webawesome/events/cancel.d.ts | 1 + .../@awesome.me/webawesome/events/cancel.js | 1 + .../webawesome/events/cell-click.d.ts | 1 + .../webawesome/events/cell-click.js | 1 + .../webawesome/events/cell-context-menu.d.ts | 1 + .../webawesome/events/cell-context-menu.js | 1 + .../@awesome.me/webawesome/events/clear.d.ts | 1 + .../@awesome.me/webawesome/events/clear.js | 1 + .../webawesome/events/collapse.d.ts | 1 + .../@awesome.me/webawesome/events/collapse.js | 1 + .../webawesome/events/column-move.d.ts | 1 + .../webawesome/events/column-move.js | 1 + .../webawesome/events/column-pin.d.ts | 1 + .../webawesome/events/column-pin.js | 1 + .../webawesome/events/column-resize.d.ts | 1 + .../webawesome/events/column-resize.js | 1 + .../events/column-visibility-change.d.ts | 1 + .../events/column-visibility-change.js | 1 + .../webawesome/events/complete.d.ts | 1 + .../@awesome.me/webawesome/events/complete.js | 1 + .../@awesome.me/webawesome/events/copy.d.ts | 1 + .../@awesome.me/webawesome/events/copy.js | 1 + .../@awesome.me/webawesome/events/create.d.ts | 1 + .../@awesome.me/webawesome/events/create.js | 1 + .../webawesome/events/data-error.d.ts | 1 + .../webawesome/events/data-error.js | 1 + .../webawesome/events/data-request.d.ts | 1 + .../webawesome/events/data-request.js | 1 + .../@awesome.me/webawesome/events/error.d.ts | 1 + .../@awesome.me/webawesome/events/error.js | 1 + .../@awesome.me/webawesome/events/events.d.ts | 1 + .../@awesome.me/webawesome/events/events.js | 1 + .../@awesome.me/webawesome/events/expand.d.ts | 1 + .../@awesome.me/webawesome/events/expand.js | 1 + .../webawesome/events/filter-change.d.ts | 1 + .../webawesome/events/filter-change.js | 1 + .../@awesome.me/webawesome/events/finish.d.ts | 1 + .../@awesome.me/webawesome/events/finish.js | 1 + .../webawesome/events/focus-day.d.ts | 1 + .../webawesome/events/focus-day.js | 1 + .../@awesome.me/webawesome/events/hide.d.ts | 1 + .../@awesome.me/webawesome/events/hide.js | 1 + .../@awesome.me/webawesome/events/hover.d.ts | 1 + .../@awesome.me/webawesome/events/hover.js | 1 + .../webawesome/events/include-error.d.ts | 1 + .../webawesome/events/include-error.js | 1 + .../webawesome/events/intersect.d.ts | 1 + .../webawesome/events/intersect.js | 1 + .../webawesome/events/invalid.d.ts | 1 + .../@awesome.me/webawesome/events/invalid.js | 1 + .../webawesome/events/lazy-change.d.ts | 1 + .../webawesome/events/lazy-change.js | 1 + .../webawesome/events/lazy-load.d.ts | 1 + .../webawesome/events/lazy-load.js | 1 + .../@awesome.me/webawesome/events/load.d.ts | 1 + .../@awesome.me/webawesome/events/load.js | 1 + .../webawesome/events/mutation.d.ts | 1 + .../@awesome.me/webawesome/events/mutation.js | 1 + .../webawesome/events/page-change.d.ts | 1 + .../webawesome/events/page-change.js | 1 + .../events/random-content-change.d.ts | 1 + .../events/random-content-change.js | 1 + .../@awesome.me/webawesome/events/remove.d.ts | 1 + .../@awesome.me/webawesome/events/remove.js | 1 + .../webawesome/events/reposition.d.ts | 1 + .../webawesome/events/reposition.js | 1 + .../@awesome.me/webawesome/events/resize.d.ts | 1 + .../@awesome.me/webawesome/events/resize.js | 1 + .../webawesome/events/row-collapse.d.ts | 1 + .../webawesome/events/row-collapse.js | 1 + .../webawesome/events/row-expand.d.ts | 1 + .../webawesome/events/row-expand.js | 1 + .../webawesome/events/row-select.d.ts | 1 + .../webawesome/events/row-select.js | 1 + .../@awesome.me/webawesome/events/select.d.ts | 1 + .../@awesome.me/webawesome/events/select.js | 1 + .../webawesome/events/selection-change.d.ts | 1 + .../webawesome/events/selection-change.js | 1 + .../@awesome.me/webawesome/events/show.d.ts | 1 + .../@awesome.me/webawesome/events/show.js | 1 + .../webawesome/events/slide-change.d.ts | 1 + .../webawesome/events/slide-change.js | 1 + .../webawesome/events/sort-change.d.ts | 1 + .../webawesome/events/sort-change.js | 1 + .../@awesome.me/webawesome/events/start.d.ts | 1 + .../@awesome.me/webawesome/events/start.js | 1 + .../webawesome/events/tab-hide.d.ts | 1 + .../@awesome.me/webawesome/events/tab-hide.js | 1 + .../webawesome/events/tab-show.d.ts | 1 + .../@awesome.me/webawesome/events/tab-show.js | 1 + .../webawesome/events/video-change.d.ts | 1 + .../webawesome/events/video-change.js | 1 + .../webawesome/events/view-change.d.ts | 1 + .../webawesome/events/view-change.js | 1 + .../webawesome/internal/active-elements.d.ts | 1 + .../webawesome/internal/animate.d.ts | 1 + .../internal/color-scheme-controller.d.ts | 1 + .../webawesome/internal/computed-style.d.ts | 1 + .../webawesome/internal/debounce.d.ts | 1 + .../webawesome/internal/default-value.d.ts | 1 + .../internal/dismissible-stack.d.ts | 1 + .../@awesome.me/webawesome/internal/drag.d.ts | 1 + .../webawesome/internal/event.d.ts | 1 + .../webawesome/internal/get-text.d.ts | 1 + .../webawesome/internal/live-announcer.d.ts | 1 + .../@awesome.me/webawesome/internal/math.d.ts | 1 + .../webawesome/internal/offset.d.ts | 1 + .../webawesome/internal/parse.d.ts | 1 + .../webawesome/internal/rendered-watcher.d.ts | 1 + .../webawesome/internal/scroll.d.ts | 1 + .../internal/scrollend-polyfill.d.ts | 1 + .../segmented-field-controller.d.ts | 1 + .../@awesome.me/webawesome/internal/size.d.ts | 1 + .../@awesome.me/webawesome/internal/slot.d.ts | 1 + .../webawesome/internal/submit-on-enter.d.ts | 1 + .../internal/test/data-testid-helpers.d.ts | 1 + .../test/element-visible-overflow.d.ts | 1 + .../internal/test/expect-event.d.ts | 1 + .../webawesome/internal/test/fixture.d.ts | 1 + .../test/form-control-base-tests.d.ts | 1 + .../internal/test/pointer-utilities.d.ts | 1 + .../internal/test/wait-for-scrolling.d.ts | 1 + .../validators/custom-error-validator.d.ts | 1 + .../internal/validators/mirror-validator.d.ts | 1 + .../validators/required-validator.d.ts | 1 + .../internal/validators/slider-validator.d.ts | 1 + .../webawesome/internal/watch.d.ts | 1 + .../internal/webawesome-element.d.ts | 1 + .../webawesome-form-associated-element.d.ts | 1 + .../vendor/@awesome.me/webawesome/llms.txt | 1 + .../react/accordion-item/index.d.ts | 1 + .../webawesome/react/accordion-item/index.js | 1 + .../webawesome/react/accordion/index.d.ts | 1 + .../webawesome/react/accordion/index.js | 1 + .../react/animated-image/index.d.ts | 1 + .../webawesome/react/animated-image/index.js | 1 + .../webawesome/react/animation/index.d.ts | 1 + .../webawesome/react/animation/index.js | 1 + .../webawesome/react/avatar/index.d.ts | 1 + .../webawesome/react/avatar/index.js | 1 + .../webawesome/react/badge/index.d.ts | 1 + .../webawesome/react/badge/index.js | 1 + .../react/breadcrumb-item/index.d.ts | 1 + .../webawesome/react/breadcrumb-item/index.js | 1 + .../webawesome/react/breadcrumb/index.d.ts | 1 + .../webawesome/react/breadcrumb/index.js | 1 + .../webawesome/react/button-group/index.d.ts | 1 + .../webawesome/react/button-group/index.js | 1 + .../webawesome/react/button/index.d.ts | 1 + .../webawesome/react/button/index.js | 1 + .../webawesome/react/callout/index.d.ts | 1 + .../webawesome/react/callout/index.js | 1 + .../webawesome/react/card/index.d.ts | 1 + .../webawesome/react/card/index.js | 1 + .../webawesome/react/carousel-item/index.d.ts | 1 + .../webawesome/react/carousel-item/index.js | 1 + .../webawesome/react/carousel/index.d.ts | 1 + .../webawesome/react/carousel/index.js | 1 + .../react/checkbox-group/index.d.ts | 1 + .../webawesome/react/checkbox-group/index.js | 1 + .../webawesome/react/checkbox/index.d.ts | 1 + .../webawesome/react/checkbox/index.js | 1 + .../webawesome/react/color-picker/index.d.ts | 1 + .../webawesome/react/color-picker/index.js | 1 + .../webawesome/react/comparison/index.d.ts | 1 + .../webawesome/react/comparison/index.js | 1 + .../webawesome/react/copy-button/index.d.ts | 1 + .../webawesome/react/copy-button/index.js | 1 + .../webawesome/react/details/index.d.ts | 1 + .../webawesome/react/details/index.js | 1 + .../webawesome/react/dialog/index.d.ts | 1 + .../webawesome/react/dialog/index.js | 1 + .../webawesome/react/divider/index.d.ts | 1 + .../webawesome/react/divider/index.js | 1 + .../webawesome/react/drawer/index.d.ts | 1 + .../webawesome/react/drawer/index.js | 1 + .../webawesome/react/dropdown-item/index.d.ts | 1 + .../webawesome/react/dropdown-item/index.js | 1 + .../webawesome/react/dropdown/index.d.ts | 1 + .../webawesome/react/dropdown/index.js | 1 + .../webawesome/react/format-bytes/index.d.ts | 1 + .../webawesome/react/format-bytes/index.js | 1 + .../webawesome/react/format-date/index.d.ts | 1 + .../webawesome/react/format-date/index.js | 1 + .../webawesome/react/format-number/index.d.ts | 1 + .../webawesome/react/format-number/index.js | 1 + .../webawesome/react/icon/index.d.ts | 1 + .../webawesome/react/icon/index.js | 1 + .../webawesome/react/include/index.d.ts | 1 + .../webawesome/react/include/index.js | 1 + .../@awesome.me/webawesome/react/index.d.ts | 1 + .../@awesome.me/webawesome/react/index.js | 1 + .../webawesome/react/input/index.d.ts | 1 + .../webawesome/react/input/index.js | 1 + .../react/intersection-observer/index.d.ts | 1 + .../react/intersection-observer/index.js | 1 + .../webawesome/react/known-date/index.d.ts | 1 + .../webawesome/react/known-date/index.js | 1 + .../webawesome/react/markdown/index.d.ts | 1 + .../webawesome/react/markdown/index.js | 1 + .../react/mutation-observer/index.d.ts | 1 + .../react/mutation-observer/index.js | 1 + .../webawesome/react/number-input/index.d.ts | 1 + .../webawesome/react/number-input/index.js | 1 + .../webawesome/react/option/index.d.ts | 1 + .../webawesome/react/option/index.js | 1 + .../webawesome/react/otp-input/index.d.ts | 1 + .../webawesome/react/otp-input/index.js | 1 + .../webawesome/react/page/index.d.ts | 1 + .../webawesome/react/page/index.js | 1 + .../webawesome/react/pagination/index.d.ts | 1 + .../webawesome/react/pagination/index.js | 1 + .../webawesome/react/popover/index.d.ts | 1 + .../webawesome/react/popover/index.js | 1 + .../webawesome/react/popup/index.d.ts | 1 + .../webawesome/react/popup/index.js | 1 + .../webawesome/react/progress-bar/index.d.ts | 1 + .../webawesome/react/progress-bar/index.js | 1 + .../webawesome/react/progress-ring/index.d.ts | 1 + .../webawesome/react/progress-ring/index.js | 1 + .../webawesome/react/qr-code/index.d.ts | 1 + .../webawesome/react/qr-code/index.js | 1 + .../webawesome/react/radio-group/index.d.ts | 1 + .../webawesome/react/radio-group/index.js | 1 + .../webawesome/react/radio/index.d.ts | 1 + .../webawesome/react/radio/index.js | 1 + .../react/random-content/index.d.ts | 1 + .../webawesome/react/random-content/index.js | 1 + .../webawesome/react/rating/index.d.ts | 1 + .../webawesome/react/rating/index.js | 1 + .../webawesome/react/relative-time/index.d.ts | 1 + .../webawesome/react/relative-time/index.js | 1 + .../react/resize-observer/index.d.ts | 1 + .../webawesome/react/resize-observer/index.js | 1 + .../webawesome/react/scroller/index.d.ts | 1 + .../webawesome/react/scroller/index.js | 1 + .../webawesome/react/select/index.d.ts | 1 + .../webawesome/react/select/index.js | 1 + .../webawesome/react/skeleton/index.d.ts | 1 + .../webawesome/react/skeleton/index.js | 1 + .../webawesome/react/slider/index.d.ts | 1 + .../webawesome/react/slider/index.js | 1 + .../webawesome/react/spinner/index.d.ts | 1 + .../webawesome/react/spinner/index.js | 1 + .../webawesome/react/split-panel/index.d.ts | 1 + .../webawesome/react/split-panel/index.js | 1 + .../webawesome/react/switch/index.d.ts | 1 + .../webawesome/react/switch/index.js | 1 + .../webawesome/react/tab-group/index.d.ts | 1 + .../webawesome/react/tab-group/index.js | 1 + .../webawesome/react/tab-panel/index.d.ts | 1 + .../webawesome/react/tab-panel/index.js | 1 + .../webawesome/react/tab/index.d.ts | 1 + .../@awesome.me/webawesome/react/tab/index.js | 1 + .../webawesome/react/tag/index.d.ts | 1 + .../@awesome.me/webawesome/react/tag/index.js | 1 + .../webawesome/react/textarea/index.d.ts | 1 + .../webawesome/react/textarea/index.js | 1 + .../webawesome/react/time-input/index.d.ts | 1 + .../webawesome/react/time-input/index.js | 1 + .../webawesome/react/toast-item/index.d.ts | 1 + .../webawesome/react/toast-item/index.js | 1 + .../webawesome/react/toast/index.d.ts | 1 + .../webawesome/react/toast/index.js | 1 + .../webawesome/react/tooltip/index.d.ts | 1 + .../webawesome/react/tooltip/index.js | 1 + .../webawesome/react/tree-item/index.d.ts | 1 + .../webawesome/react/tree-item/index.js | 1 + .../webawesome/react/tree/index.d.ts | 1 + .../webawesome/react/tree/index.js | 1 + .../react/zoomable-frame/index.d.ts | 1 + .../webawesome/react/zoomable-frame/index.js | 1 + .../skills/webawesome-design/SKILL.md | 1 + .../references/composition.md | 1 + .../references/getting-started.md | 1 + .../references/layouts-inpage.md | 1 + .../references/layouts-page.md | 1 + .../webawesome-design/references/patterns.md | 1 + .../references/principles.md | 1 + .../webawesome-design/references/theming.md | 1 + .../webawesome/skills/webawesome/SKILL.md | 1 + .../references/choosing-components.md | 1 + .../references/components/accordion-item.md | 1 + .../references/components/accordion.md | 1 + .../references/components/animated-image.md | 1 + .../references/components/animation.md | 1 + .../references/components/avatar.md | 1 + .../webawesome/references/components/badge.md | 1 + .../references/components/breadcrumb-item.md | 1 + .../references/components/breadcrumb.md | 1 + .../references/components/button-group.md | 1 + .../references/components/button.md | 1 + .../references/components/callout.md | 1 + .../webawesome/references/components/card.md | 1 + .../references/components/carousel-item.md | 1 + .../references/components/carousel.md | 1 + .../references/components/checkbox-group.md | 1 + .../references/components/checkbox.md | 1 + .../references/components/color-picker.md | 1 + .../references/components/comparison.md | 1 + .../references/components/copy-button.md | 1 + .../references/components/details.md | 1 + .../references/components/dialog.md | 1 + .../references/components/divider.md | 1 + .../references/components/drawer.md | 1 + .../references/components/dropdown-item.md | 1 + .../references/components/dropdown.md | 1 + .../references/components/format-bytes.md | 1 + .../references/components/format-date.md | 1 + .../references/components/format-number.md | 1 + .../webawesome/references/components/icon.md | 1 + .../references/components/include.md | 1 + .../webawesome/references/components/input.md | 1 + .../components/intersection-observer.md | 1 + .../references/components/known-date.md | 1 + .../references/components/markdown.md | 1 + .../components/mutation-observer.md | 1 + .../references/components/number-input.md | 1 + .../references/components/option.md | 1 + .../references/components/otp-input.md | 1 + .../webawesome/references/components/page.md | 1 + .../references/components/pagination.md | 1 + .../references/components/popover.md | 1 + .../webawesome/references/components/popup.md | 1 + .../references/components/progress-bar.md | 1 + .../references/components/progress-ring.md | 1 + .../references/components/qr-code.md | 1 + .../references/components/radio-group.md | 1 + .../webawesome/references/components/radio.md | 1 + .../references/components/random-content.md | 1 + .../references/components/rating.md | 1 + .../references/components/relative-time.md | 1 + .../references/components/resize-observer.md | 1 + .../references/components/scroller.md | 1 + .../references/components/select.md | 1 + .../references/components/skeleton.md | 1 + .../references/components/slider.md | 1 + .../references/components/spinner.md | 1 + .../references/components/split-panel.md | 1 + .../references/components/switch.md | 1 + .../references/components/tab-group.md | 1 + .../references/components/tab-panel.md | 1 + .../webawesome/references/components/tab.md | 1 + .../webawesome/references/components/tag.md | 1 + .../references/components/textarea.md | 1 + .../references/components/time-input.md | 1 + .../references/components/toast-item.md | 1 + .../webawesome/references/components/toast.md | 1 + .../references/components/tooltip.md | 1 + .../references/components/tree-item.md | 1 + .../webawesome/references/components/tree.md | 1 + .../references/components/zoomable-frame.md | 1 + .../webawesome/references/customizing.md | 1 + .../webawesome/references/form-controls.md | 1 + .../references/frameworks/angular.md | 1 + .../webawesome/references/frameworks/react.md | 1 + .../references/frameworks/svelte.md | 1 + .../webawesome/references/frameworks/vue.md | 1 + .../webawesome/references/installation.md | 1 + .../webawesome/references/localization.md | 1 + .../skills/webawesome/references/support.md | 1 + .../skills/webawesome/references/themes.md | 1 + .../webawesome/references/tokens/borders.md | 1 + .../webawesome/references/tokens/color.md | 1 + .../references/tokens/component-groups.md | 1 + .../webawesome/references/tokens/focus.md | 1 + .../webawesome/references/tokens/shadows.md | 1 + .../webawesome/references/tokens/space.md | 1 + .../references/tokens/transitions.md | 1 + .../references/tokens/typography.md | 1 + .../skills/webawesome/references/usage.md | 1 + .../webawesome/references/utilities/color.md | 1 + .../webawesome/references/utilities/fouce.md | 1 + .../webawesome/references/utilities/layout.md | 1 + .../webawesome/references/utilities/native.md | 1 + .../webawesome/references/utilities/prose.md | 1 + .../references/utilities/rounding.md | 1 + .../webawesome/references/utilities/text.md | 1 + .../references/utilities/visually-hidden.md | 1 + .../@awesome.me/webawesome/ssr/all.d.ts | 1 + .../vendor/@awesome.me/webawesome/ssr/all.js | 1 + .../webawesome/ssr/render-string.d.ts | 1 + .../webawesome/ssr/render-string.js | 1 + .../webawesome/ssr/trim-outer-markers.d.ts | 1 + .../webawesome/ssr/trim-outer-markers.js | 1 + .../webawesome/styles/color/palettes/base.css | 1 + .../styles/color/palettes/bright.css | 1 + .../styles/color/palettes/default.css | 1 + .../styles/color/palettes/shoelace.css | 1 + .../webawesome/styles/color/variants.css | 1 + .../styles/color/variants/brand.css | 1 + .../styles/color/variants/danger.css | 1 + .../styles/color/variants/neutral.css | 1 + .../styles/color/variants/success.css | 1 + .../styles/color/variants/warning.css | 1 + .../styles/component/form-control.styles.d.ts | 1 + .../styles/component/form-control.styles.ts | 1 + .../styles/component/host.styles.d.ts | 1 + .../styles/component/host.styles.ts | 1 + .../component/segmented-field.styles.d.ts | 1 + .../component/segmented-field.styles.ts | 1 + .../styles/component/size.styles.d.ts | 1 + .../styles/component/size.styles.ts | 1 + .../styles/component/variants.styles.d.ts | 1 + .../styles/component/variants.styles.ts | 1 + .../component/visually-hidden.styles.d.ts | 1 + .../component/visually-hidden.styles.ts | 1 + .../@awesome.me/webawesome/styles/layers.css | 1 + .../@awesome.me/webawesome/styles/native.css | 1 + .../webawesome/styles/themes/awesome.css | 1 + .../webawesome/styles/themes/default.css | 1 + .../webawesome/styles/themes/shoelace.css | 1 + .../webawesome/styles/utilities.css | 1 + .../styles/utilities/align-items.css | 1 + .../styles/utilities/border-radius.css | 1 + .../webawesome/styles/utilities/flex-wrap.css | 1 + .../webawesome/styles/utilities/fouce.css | 1 + .../webawesome/styles/utilities/gap.css | 1 + .../styles/utilities/justify-content.css | 1 + .../webawesome/styles/utilities/layout.css | 1 + .../styles/utilities/placeholder.css | 1 + .../webawesome/styles/utilities/prose.css | 1 + .../styles/utilities/scroll-lock.css | 1 + .../webawesome/styles/utilities/size.css | 1 + .../webawesome/styles/utilities/text.css | 1 + .../webawesome/styles/utilities/variants.css | 1 + .../styles/utilities/visually-hidden.css | 1 + .../webawesome/styles/webawesome.css | 1 + .../webawesome/translations/ar.d.ts | 1 + .../@awesome.me/webawesome/translations/ar.js | 1 + .../webawesome/translations/cs.d.ts | 1 + .../@awesome.me/webawesome/translations/cs.js | 1 + .../webawesome/translations/da.d.ts | 1 + .../@awesome.me/webawesome/translations/da.js | 1 + .../webawesome/translations/de-ch.d.ts | 1 + .../webawesome/translations/de-ch.js | 1 + .../webawesome/translations/de.d.ts | 1 + .../@awesome.me/webawesome/translations/de.js | 1 + .../webawesome/translations/en-gb.d.ts | 1 + .../webawesome/translations/en-gb.js | 1 + .../webawesome/translations/en.d.ts | 1 + .../@awesome.me/webawesome/translations/en.js | 1 + .../webawesome/translations/es.d.ts | 1 + .../@awesome.me/webawesome/translations/es.js | 1 + .../webawesome/translations/fa.d.ts | 1 + .../@awesome.me/webawesome/translations/fa.js | 1 + .../webawesome/translations/fi.d.ts | 1 + .../@awesome.me/webawesome/translations/fi.js | 1 + .../webawesome/translations/fr.d.ts | 1 + .../@awesome.me/webawesome/translations/fr.js | 1 + .../webawesome/translations/he.d.ts | 1 + .../@awesome.me/webawesome/translations/he.js | 1 + .../webawesome/translations/hi.d.ts | 1 + .../@awesome.me/webawesome/translations/hi.js | 1 + .../webawesome/translations/hr.d.ts | 1 + .../@awesome.me/webawesome/translations/hr.js | 1 + .../webawesome/translations/hu.d.ts | 1 + .../@awesome.me/webawesome/translations/hu.js | 1 + .../webawesome/translations/id.d.ts | 1 + .../@awesome.me/webawesome/translations/id.js | 1 + .../webawesome/translations/it.d.ts | 1 + .../@awesome.me/webawesome/translations/it.js | 1 + .../webawesome/translations/ja.d.ts | 1 + .../@awesome.me/webawesome/translations/ja.js | 1 + .../webawesome/translations/kk.d.ts | 1 + .../@awesome.me/webawesome/translations/kk.js | 1 + .../webawesome/translations/nb.d.ts | 1 + .../@awesome.me/webawesome/translations/nb.js | 1 + .../webawesome/translations/nl.d.ts | 1 + .../@awesome.me/webawesome/translations/nl.js | 1 + .../webawesome/translations/nn.d.ts | 1 + .../@awesome.me/webawesome/translations/nn.js | 1 + .../webawesome/translations/pl.d.ts | 1 + .../@awesome.me/webawesome/translations/pl.js | 1 + .../webawesome/translations/pt.d.ts | 1 + .../@awesome.me/webawesome/translations/pt.js | 1 + .../webawesome/translations/ru.d.ts | 1 + .../@awesome.me/webawesome/translations/ru.js | 1 + .../webawesome/translations/sl.d.ts | 1 + .../@awesome.me/webawesome/translations/sl.js | 1 + .../webawesome/translations/sv.d.ts | 1 + .../@awesome.me/webawesome/translations/sv.js | 1 + .../webawesome/translations/tr.d.ts | 1 + .../@awesome.me/webawesome/translations/tr.js | 1 + .../webawesome/translations/uk.d.ts | 1 + .../@awesome.me/webawesome/translations/uk.js | 1 + .../webawesome/translations/zh-cn.d.ts | 1 + .../webawesome/translations/zh-cn.js | 1 + .../webawesome/translations/zh-tw.d.ts | 1 + .../webawesome/translations/zh-tw.js | 1 + .../webawesome/types/svelte/index.d.ts | 1 + .../webawesome/types/vue/index.d.ts | 1 + .../webawesome/utilities/animation.d.ts | 1 + .../webawesome/utilities/animation.js | 1 + .../webawesome/utilities/autoloader.d.ts | 1 + .../webawesome/utilities/autoloader.js | 1 + .../webawesome/utilities/base-path.d.ts | 1 + .../webawesome/utilities/base-path.js | 1 + .../webawesome/utilities/clone.d.ts | 1 + .../@awesome.me/webawesome/utilities/clone.js | 1 + .../webawesome/utilities/defined.d.ts | 1 + .../webawesome/utilities/defined.js | 1 + .../webawesome/utilities/form.d.ts | 1 + .../@awesome.me/webawesome/utilities/form.js | 1 + .../webawesome/utilities/localize.d.ts | 1 + .../webawesome/utilities/localize.js | 1 + .../webawesome/utilities/ssr-hydration.d.ts | 1 + .../webawesome/utilities/ssr-hydration.js | 1 + .../webawesome/vscode.html-custom-data.json | 1 + .../@awesome.me/webawesome/web-types.json | 1 + .../@awesome.me/webawesome/webawesome.d.ts | 1 + .../@awesome.me/webawesome/webawesome.js | 1 + .../webawesome/webawesome.loader.d.ts | 1 + .../webawesome/webawesome.loader.js | 1 + .../webawesome/webawesome.ssr-loader.d.ts | 1 + .../webawesome/webawesome.ssr-loader.js | 1 + .../vendor/@paulmillr/qr/decode.js | 1 + .../vendor/@paulmillr/qr/decode.js.br | 1 + .../vendor/@paulmillr/qr/decode.js.map | 1 + .../vendor/@paulmillr/qr/index.js | 1 + .../vendor/@paulmillr/qr/index.js.br | 1 + .../vendor/@paulmillr/qr/index.js.map | 1 + .../web/bold/Phosphor-Bold.svg | 1 + .../web/bold/Phosphor-Bold.svg.br | 1 + .../web/bold/Phosphor-Bold.ttf | 1 + .../web/bold/Phosphor-Bold.woff | 1 + .../web/bold/Phosphor-Bold.woff2 | 1 + .../@phosphor-icons/web/bold/selection.json | 1 + .../web/bold/selection.json.br | 1 + .../vendor/@phosphor-icons/web/bold/style.css | 1 + .../@phosphor-icons/web/bold/style.css.br | 1 + .../@phosphor-icons/web/bold/style.css.map | 1 + .../web/duotone/Phosphor-Duotone.svg | 1 + .../web/duotone/Phosphor-Duotone.svg.br | 1 + .../web/duotone/Phosphor-Duotone.ttf | 1 + .../web/duotone/Phosphor-Duotone.woff | 1 + .../web/duotone/Phosphor-Duotone.woff2 | 1 + .../web/duotone/selection.json | 1 + .../web/duotone/selection.json.br | 1 + .../@phosphor-icons/web/duotone/style.css | 1 + .../@phosphor-icons/web/duotone/style.css.br | 1 + .../@phosphor-icons/web/duotone/style.css.map | 1 + .../web/fill/Phosphor-Fill.svg | 1 + .../web/fill/Phosphor-Fill.svg.br | 1 + .../web/fill/Phosphor-Fill.ttf | 1 + .../web/fill/Phosphor-Fill.woff | 1 + .../web/fill/Phosphor-Fill.woff2 | 1 + .../@phosphor-icons/web/fill/selection.json | 1 + .../web/fill/selection.json.br | 1 + .../vendor/@phosphor-icons/web/fill/style.css | 1 + .../@phosphor-icons/web/fill/style.css.br | 1 + .../@phosphor-icons/web/fill/style.css.map | 1 + .../web/light/Phosphor-Light.svg | 1 + .../web/light/Phosphor-Light.svg.br | 1 + .../web/light/Phosphor-Light.ttf | 1 + .../web/light/Phosphor-Light.woff | 1 + .../web/light/Phosphor-Light.woff2 | 1 + .../@phosphor-icons/web/light/selection.json | 1 + .../web/light/selection.json.br | 1 + .../@phosphor-icons/web/light/style.css | 1 + .../@phosphor-icons/web/light/style.css.br | 1 + .../@phosphor-icons/web/light/style.css.map | 1 + .../@phosphor-icons/web/regular/Phosphor.svg | 1 + .../web/regular/Phosphor.svg.br | 1 + .../@phosphor-icons/web/regular/Phosphor.ttf | 1 + .../@phosphor-icons/web/regular/Phosphor.woff | 1 + .../web/regular/Phosphor.woff2 | 1 + .../web/regular/selection.json | 1 + .../web/regular/selection.json.br | 1 + .../@phosphor-icons/web/regular/style.css | 1 + .../@phosphor-icons/web/regular/style.css.br | 1 + .../@phosphor-icons/web/regular/style.css.map | 1 + .../vendor/idb-keyval/index.js | 1 + .../vendor/idb-keyval/index.js.br | 1 + .../vendor/idb-keyval/index.js.map | 1 + .../vendor/kmenu-core/index.js | 1 + .../vendor/kmenu-core/index.js.br | 1 + .../vendor/kmenu-core/index.js.map | 1 + .../lit-html/directives/async-append.js | 1 + .../lit-html/directives/async-append.js.br | 1 + .../lit-html/directives/async-append.js.map | 1 + .../lit-html/directives/async-replace.js | 1 + .../lit-html/directives/async-replace.js.br | 1 + .../lit-html/directives/async-replace.js.map | 1 + .../vendor/lit-html/directives/cache.js | 1 + .../vendor/lit-html/directives/cache.js.br | 1 + .../vendor/lit-html/directives/cache.js.map | 1 + .../vendor/lit-html/directives/choose.js | 1 + .../vendor/lit-html/directives/choose.js.br | 1 + .../vendor/lit-html/directives/choose.js.map | 1 + .../vendor/lit-html/directives/class-map.js | 1 + .../lit-html/directives/class-map.js.br | 1 + .../lit-html/directives/class-map.js.map | 1 + .../vendor/lit-html/directives/guard.js | 1 + .../vendor/lit-html/directives/guard.js.br | 1 + .../vendor/lit-html/directives/guard.js.map | 1 + .../vendor/lit-html/directives/if-defined.js | 1 + .../lit-html/directives/if-defined.js.br | 1 + .../lit-html/directives/if-defined.js.map | 1 + .../vendor/lit-html/directives/join.js | 1 + .../vendor/lit-html/directives/join.js.br | 1 + .../vendor/lit-html/directives/join.js.map | 1 + .../vendor/lit-html/directives/keyed.js | 1 + .../vendor/lit-html/directives/keyed.js.br | 1 + .../vendor/lit-html/directives/keyed.js.map | 1 + .../vendor/lit-html/directives/live.js | 1 + .../vendor/lit-html/directives/live.js.br | 1 + .../vendor/lit-html/directives/live.js.map | 1 + .../vendor/lit-html/directives/map.js | 1 + .../vendor/lit-html/directives/map.js.br | 1 + .../vendor/lit-html/directives/map.js.map | 1 + .../vendor/lit-html/directives/range.js | 1 + .../vendor/lit-html/directives/range.js.br | 1 + .../vendor/lit-html/directives/range.js.map | 1 + .../vendor/lit-html/directives/ref.js | 1 + .../vendor/lit-html/directives/ref.js.br | 1 + .../vendor/lit-html/directives/ref.js.map | 1 + .../vendor/lit-html/directives/repeat.js | 1 + .../vendor/lit-html/directives/repeat.js.br | 1 + .../vendor/lit-html/directives/repeat.js.map | 1 + .../vendor/lit-html/directives/style-map.js | 1 + .../lit-html/directives/style-map.js.br | 1 + .../lit-html/directives/style-map.js.map | 1 + .../lit-html/directives/template-content.js | 1 + .../directives/template-content.js.br | 1 + .../directives/template-content.js.map | 1 + .../vendor/lit-html/directives/unsafe-html.js | 1 + .../lit-html/directives/unsafe-html.js.br | 1 + .../lit-html/directives/unsafe-html.js.map | 1 + .../lit-html/directives/unsafe-mathml.js | 1 + .../lit-html/directives/unsafe-mathml.js.br | 1 + .../lit-html/directives/unsafe-mathml.js.map | 1 + .../vendor/lit-html/directives/unsafe-svg.js | 1 + .../lit-html/directives/unsafe-svg.js.br | 1 + .../lit-html/directives/unsafe-svg.js.map | 1 + .../vendor/lit-html/directives/until.js | 1 + .../vendor/lit-html/directives/until.js.br | 1 + .../vendor/lit-html/directives/until.js.map | 1 + .../vendor/lit-html/directives/when.js | 1 + .../vendor/lit-html/directives/when.js.br | 1 + .../vendor/lit-html/directives/when.js.map | 1 + .../vendor/lit-html/index.js | 1 + .../vendor/lit-html/index.js.br | 1 + .../vendor/lit-html/index.js.map | 1 + .../vendor/ms_sans_serif.woff2 | 1 + .../vendor/ms_sans_serif_bold.woff2 | 1 + .../vendor/throttle-debounce/index.js | 1 + .../vendor/throttle-debounce/index.js.br | 1 + .../vendor/throttle-debounce/index.js.map | 1 + artifacts/versions.json | 12 +- diffuse | 2 +- 2815 files changed, 32808 insertions(+), 7 deletions(-) create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsfParser-43FUWDHS.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsfParser-43FUWDHS.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsfParser-43FUWDHS.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MP4Parser-MX56ESYJ.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MP4Parser-MX56ESYJ.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MP4Parser-MX56ESYJ.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MatroskaParser-S7QBLT5N.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MatroskaParser-S7QBLT5N.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MatroskaParser-S7QBLT5N.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MusepackParser-K4V5PCYW.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MusepackParser-K4V5PCYW.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MusepackParser-K4V5PCYW.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WavPackParser-KLZ65ZHU.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WavPackParser-KLZ65ZHU.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WavPackParser-KLZ65ZHU.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WaveParser-OIX4G4ED.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WaveParser-OIX4G4ED.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WaveParser-OIX4G4ED.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/android-chrome-192x192.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/android-chrome-512x512.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/apple-touch-icon.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/browserconfig.xml create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/browserconfig.xml.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/catalogue/index.html create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/catalogue/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-33B7PAHN.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-33B7PAHN.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-33B7PAHN.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3ILOIHWO.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3ILOIHWO.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3ILOIHWO.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4SQUUFKD.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4SQUUFKD.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4SQUUFKD.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6AGURFCR.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6AGURFCR.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6AGURFCR.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6O7EX4DS.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6O7EX4DS.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6O7EX4DS.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NKQO6T3.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NKQO6T3.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NKQO6T3.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ARPMZXXD.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ARPMZXXD.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ARPMZXXD.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BGNSH7PO.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BGNSH7PO.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BGNSH7PO.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BL5737XC.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BL5737XC.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BL5737XC.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BMDRJICQ.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BMDRJICQ.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BMDRJICQ.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CF75KXQM.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CF75KXQM.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CF75KXQM.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-E2G3ZJP4.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-E2G3ZJP4.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-E2G3ZJP4.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ELB3AQIW.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ELB3AQIW.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ELB3AQIW.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EQQMOAG3.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EQQMOAG3.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EQQMOAG3.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EWGIE3HP.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EWGIE3HP.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EWGIE3HP.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-F5IZ46CN.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-F5IZ46CN.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-F5IZ46CN.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FHQAE777.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FHQAE777.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FHQAE777.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FMIQ6TTM.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FMIQ6TTM.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FMIQ6TTM.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4L773TT.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4L773TT.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4L773TT.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IA3NIKPO.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IA3NIKPO.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IA3NIKPO.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IGEBMN5P.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IGEBMN5P.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IGEBMN5P.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JINXEQM7.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JINXEQM7.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JINXEQM7.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZVPDEYM.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZVPDEYM.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZVPDEYM.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KOYRYCQG.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KOYRYCQG.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KOYRYCQG.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-L2DWBBFR.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-L2DWBBFR.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-L2DWBBFR.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LRSJBPOP.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LRSJBPOP.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LRSJBPOP.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-N4UC4CSU.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-N4UC4CSU.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-N4UC4CSU.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PHFIOWBZ.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PHFIOWBZ.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PHFIOWBZ.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PI4WZOI6.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PI4WZOI6.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PI4WZOI6.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PXOGRNGV.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PXOGRNGV.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PXOGRNGV.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RQUYKOSL.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RQUYKOSL.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RQUYKOSL.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SIM5AC6S.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SIM5AC6S.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SIM5AC6S.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI4M42VH.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI4M42VH.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI4M42VH.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TYJ2UPEO.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TYJ2UPEO.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TYJ2UPEO.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-U55EMLDH.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-U55EMLDH.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-U55EMLDH.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UIB44MUP.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UIB44MUP.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UIB44MUP.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VBVWJNZ5.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VBVWJNZ5.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VBVWJNZ5.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WBAUNTUN.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WBAUNTUN.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WBAUNTUN.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WMITNTCW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WMITNTCW.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WMITNTCW.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WOOIJ6FU.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WOOIJ6FU.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WOOIJ6FU.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XILA3E7E.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XILA3E7E.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XILA3E7E.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XLSGQQFX.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XLSGQQFX.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XLSGQQFX.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XQAIXFJF.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XQAIXFJF.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XQAIXFJF.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XW67JR5T.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XW67JR5T.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-XW67JR5T.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-Y4Z6Z63V.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-Y4Z6Z63V.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-Y4Z6Z63V.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YA42HS5K.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YA42HS5K.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YA42HS5K.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YIHRBOZK.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YIHRBOZK.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YIHRBOZK.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YJPLPXHF.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YJPLPXHF.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YJPLPXHF.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YQHXPY2Q.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YQHXPY2Q.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YQHXPY2Q.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YT5N63AW.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YT5N63AW.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-YT5N63AW.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-Z3KOJOLM.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-Z3KOJOLM.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-Z3KOJOLM.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-Z642TAXO.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-Z642TAXO.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-Z642TAXO.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZC6IXECO.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZC6IXECO.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZC6IXECO.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZCBN4C3I.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZCBN4C3I.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZCBN4C3I.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZGMMU2IC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZGMMU2IC.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZGMMU2IC.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZMO7IVRY.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZMO7IVRY.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZMO7IVRY.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZVWOBRJZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZVWOBRJZ.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ZVWOBRJZ.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/cid.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/cid.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/cid.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/compare.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/compare.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/compare.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/category.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/category.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/category.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/constants.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/prelude.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/prelude.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/prelude.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/utils.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/utils.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/facets/utils.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/fast-uri.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/fast-uri.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/fast-uri.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/foundation.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/foundation.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/foundation.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/lens-registry.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/lens-registry.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/lens-registry.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/lens.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/lens.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/lens.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/loader.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/loader.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/loader.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/output.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/output.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/output.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/code.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/code.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/code.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/crud.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/crud.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/crud.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/dashboard.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/dashboard.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/dashboard.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/from-uri.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/from-uri.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/from-uri.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/grid.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/grid.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/grid.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/guide.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/guide.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/guide.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/nav.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/nav.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/nav.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/output.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/output.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/output.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/ppr.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/ppr.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/ppr.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/version-upgrade.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/version-upgrade.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/pages/version-upgrade.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/panproto.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/panproto.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/panproto.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/playlist.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/playlist.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/playlist.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/self-describing.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/self-describing.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/self-describing.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/signal.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/signal.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/signal.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/temporal.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/temporal.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/temporal.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/track.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/track.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/track.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/utils.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/utils.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/utils.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/detect-dark.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/detect-dark.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/detect-dark.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/bold.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/bold.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/bold.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/duotone.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/duotone.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/duotone.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/fill.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/fill.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/fill.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/light.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/light.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/light.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/regular.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/regular.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/regular.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/thin.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/thin.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/webawesome/phosphor/thin.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/worker.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/worker.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/worker/rpc-channel.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/worker/rpc-channel.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/common/worker/rpc-channel.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/audio-metadata/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/audio-metadata/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/audio-metadata/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/audio-metadata/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/audio-metadata/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/audio-metadata/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/input/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/input/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/input/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/input/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/input/worker.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/input/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/last.fm/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/last.fm/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/last.fm/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/last.fm/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/last.fm/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/last.fm/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/musicbrainz/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/musicbrainz/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/musicbrainz/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/musicbrainz/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/musicbrainz/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/artwork/musicbrainz/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/artwork/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/artwork/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/artwork/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/artwork/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/artwork/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/artwork/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/input/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/input/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/input/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/input/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/input/worker.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/input/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/metadata/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/metadata/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/metadata/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/metadata/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/metadata/worker.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/metadata/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/output/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/output/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/output/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/scrobbles/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/scrobbles/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/scrobbles/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/upload/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/upload/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/upload/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/upload/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/upload/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/configurator/upload/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/audio/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/audio/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/audio/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/queue/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/queue/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/queue/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/queue/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/queue/worker.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/queue/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/repeat-shuffle/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/repeat-shuffle/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/repeat-shuffle/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/scope/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/scope/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/engine/scope/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/index.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/index.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/index.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/common.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/constants.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/dropbox/worker.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/ephemeral-cache/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/ephemeral-cache/constants.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/ephemeral-cache/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/ephemeral-cache/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/ephemeral-cache/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/ephemeral-cache/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/ephemeral-cache/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/ephemeral-cache/worker.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/ephemeral-cache/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/constants.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https-json/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/constants.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/worker.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/https/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/constants.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/worker.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/icecast/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/constants.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/local/worker.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/class.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/class.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/class.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/constants.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/opensubsonic/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/constants.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/s3/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/constants.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/input/webdav/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/audio-file/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/audio-file/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/audio-file/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/audio-file/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/audio-file/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/audio-file/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/common.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/spectrogram/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/spectrogram/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/spectrogram/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/spectrogram/fft.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/spectrogram/fft.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/spectrogram/fft.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/spectrogram/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/spectrogram/worker.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/metadata/spectrogram/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/artwork/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/artwork/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/artwork/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/artwork/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/artwork/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/artwork/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/auto-queue/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/auto-queue/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/auto-queue/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/controller/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/controller/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/controller/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/cover-groups/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/cover-groups/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/cover-groups/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/favourites/common.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/favourites/common.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/favourites/common.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/favourites/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/favourites/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/favourites/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/favourites/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/favourites/worker.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/favourites/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/media-session/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/media-session/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/output/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/output/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/path-collections/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/path-collections/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/process-tracks/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/process-tracks/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/process-tracks/worker.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/process-tracks/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/queue-audio/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/queue-audio/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/scoped-tracks/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/scoped-tracks/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/scoped-tracks/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/scoped-tracks/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/scoped-tracks/worker.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/scoped-tracks/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/scrobble-audio/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/scrobble-audio/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/sources/common.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/sources/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/sources/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/sources/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/sources/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/sources/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/spectrogram-audio/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/orchestrator/spectrogram-audio/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/dropbox/common.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/dropbox/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/dropbox/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/dropbox/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/dropbox/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/dropbox/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/dropbox/worker.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/dropbox/worker.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/s3/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/s3/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/s3/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/s3/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/s3/worker.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/bytes/s3/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/common.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/polymorphic/indexed-db/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/polymorphic/indexed-db/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/polymorphic/indexed-db/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/polymorphic/indexed-db/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/raw/atproto-passkey/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/raw/atproto-passkey/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/raw/atproto-passkey/oauth-client-metadata.json create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/raw/atproto-passkey/oauth.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/raw/atproto-passkey/oauth.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/raw/atproto-space/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/raw/atproto-space/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/raw/atproto-space/oauth-client-metadata.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/raw/atproto-space/oauth.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/output/raw/atproto-space/oauth.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/last.fm/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/last.fm/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/listenbrainz/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/listenbrainz/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/rocksky/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/rocksky/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/rocksky/oauth-client-metadata.json create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/rocksky/oauth.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/rocksky/oauth.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/session.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/supplement/session.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/base.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/base.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/automerge/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/automerge/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/automerge/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/automerge/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/automerge/utils.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/automerge/utils.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/dasl-sync/constants.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/dasl-sync/constants.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/dasl-sync/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/dasl-sync/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/json/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/bytes/json/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/raw/atproto-space-sync/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/raw/atproto-space-sync/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/raw/atproto-sync/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/raw/atproto-sync/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/refiner/default/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/refiner/default/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/refiner/initial-contents/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/refiner/initial-contents/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/refiner/passkey-encryption/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/refiner/passkey-encryption/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/refiner/passkey-encryption/passkey.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/refiner/passkey-encryption/passkey.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/string/json/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/transformer/output/string/json/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/upload/dropbox/common.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/upload/dropbox/common.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/upload/dropbox/element.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/upload/dropbox/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/upload/dropbox/worker.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/components/upload/dropbox/worker.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/core@0.72-7M5IIQHZ.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/core@0.72-7M5IIQHZ.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/core@0.72-7M5IIQHZ.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/create/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/create/index.html.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/custom-elements.json create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/custom-elements.json.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/dashboard/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/dashboard/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/definitions/atproto/permissions.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/definitions/atproto/space.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/definitions/output/collaboration.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/definitions/output/facet.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/definitions/output/playlistItem.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/definitions/output/playlistItemBundle.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/definitions/output/setting.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/definitions/output/track.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/definitions/output/trackBundle.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/demo/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/demo/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/dist-SVFK62JF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/dist-SVFK62JF.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/dist-SVFK62JF.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/elements/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/elements/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/atproto-passkey/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/atproto-space/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/common.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/common.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/common.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/common.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/dropbox/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/https-json/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/https/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/icecast/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/local/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/opensubsonic/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/s3/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/connect/webdav/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/artwork-bundle/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/cache-tracks/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/export-import/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/file-manager/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/file-manager/styles.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/file-manager/styles.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/input-bundle/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/metadata-bundle/index.html create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/metadata-bundle/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/output-bundle/index.html create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/output-bundle/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/playlists/index.html create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/playlists/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/process-tracks/index.html create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/process-tracks/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/process-tracks/prelude/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/process-tracks/prelude/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/sources/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/sources/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/spectrogram/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/spectrogram/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/upload-bundle/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/upload-bundle/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/userdata/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/userdata/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/v3-import/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/data/v3-import/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/examples/generate-playlist/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/examples/generate-playlist/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/examples/now-playing/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/examples/now-playing/index.html.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/index.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/index.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/index.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/command/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/command/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/scrobble/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/scrobble/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/scrobble/last.fm/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/scrobble/last.fm/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/scrobble/listenbrainz/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/scrobble/listenbrainz/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/scrobble/rocksky/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/scrobble/rocksky/index.html.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/split-view/index.html create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/split-view/index.html.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/webmcp/index.html create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/webmcp/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/playback/auto-queue/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/playback/auto-queue/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/playback/auto-queue/prelude/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/playback/auto-queue/prelude/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/playback/preload/prelude/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/playback/preload/prelude/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/playback/queue/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/playback/queue/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/setup/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/setup/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.html create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/artwork/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/artwork/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/artwork/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/README/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/README/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/window-manager/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/window-manager/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/window-manager/element.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/window/element.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/window/element.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/window/element.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/favicon-16x16.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/favicon-32x32.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/favicon.ico create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/featured/index.html create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/featured/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/file-tree.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/file-tree.json.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/98.css/ms_sans_serif.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/98.css/ms_sans_serif_bold.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/CommitMonoVariable.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/Figtree-Italic-VariableFont_wght.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/Figtree-VariableFont_wght.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/InterVariable-Italic.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/InterVariable.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/PublicSans-Italic[wght].woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/PublicSans[wght].woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/SourceSans3VF-Italic.otf.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/fonts/SourceSans3VF-Upright.otf.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/guide/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/guide/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/1.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/10.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/11.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/12.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/13.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/14.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/15.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/16.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/17.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/18.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/19.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/2.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/20.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/21.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/22.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/23.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/24.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/25.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/26.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/27.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/28.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/29.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/3.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/30.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/4.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/5.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/6.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/7.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/8.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/9.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/1.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/10.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/11.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/12.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/13.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/14.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/15.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/16.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/17.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/18.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/19.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/2.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/20.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/21.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/22.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/23.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/24.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/25.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/26.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/27.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/28.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/29.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/3.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/30.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/4.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/5.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/6.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/7.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/8.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/background/thumbnails/9.jpg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse-current.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse-current.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse-dark.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse-dark.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse-grey.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse-grey.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse-light.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse-light.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse__icon-dark.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse__icon-dark.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse__icon-grey.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse__icon-grey.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse__icon-light.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/diffuse__icon-light.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icon-square-ws.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icon-square.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icon.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/catalog-1.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/cd_audio_cd_a-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/cd_audio_cd_a-2.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/cd_audio_cd_a-3.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/cd_audio_cd_a-4.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/cd_drive-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/cd_drive_purple-3.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/channels-2.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/check-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/computer_sound-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/computer_user_pencil-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/connected_world-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_admin_tools-3.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_admin_tools-5.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_channels-2.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_channels-3.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_closed-3.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_closed-4.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_control_panel-2.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_control_panel-3.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_explorer-4.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_explorer-5.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_favorites-2.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_favorites-4.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_net_web-3.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_net_web-4.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_network_conn-3.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_network_conn-5.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_open_file_mydocs_2k-3.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/directory_open_file_mydocs_2k-4.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/gears-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/globe_map-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/help_book_big-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/imagwmf-1.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/installer-3.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/installer_generic_old-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/keys-5.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/loudspeaker_wave-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/magnifying_glass-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/magnifying_glass_4-1.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/media_player-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/media_player_stream_no.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/ms_dos-1.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/msg_error-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/msg_information-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/msg_question-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/msg_warning-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/multimedia-4.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/network_drive_world-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/no-1.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/restrict-1.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/search_computer-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/search_server-1.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/search_web-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/settings_gear-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/settings_gear-2.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/tip.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/utopia_smiley.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/wia_img_color_sound-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/winamp2-32x32.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/windows-0.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/world-2.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/world-4.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/images/icons/windows_98/world_network_directories-3.png create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/index.html create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/l/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/l/index.html.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/l/index.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/l/index.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/l/index.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/mstile-150x150.png create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/node_crypto-S7VP6CAP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/node_crypto-S7VP6CAP.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/node_crypto-S7VP6CAP.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/node_url-RLOZFCCT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/node_url-RLOZFCCT.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/node_url-RLOZFCCT.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/oauth/callback/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/oauth/callback/index.html.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/oauth/callback/index.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/oauth/callback/index.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/oauth/callback/index.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/oauth/lock.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/oauth/lock.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/oauth/lock.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/panproto_wasm_bg.wasm create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/promises-C3R4A7GR.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/promises-C3R4A7GR.js.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/promises-C3R4A7GR.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/safari-pinned-tab.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/safari-pinned-tab.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/service-worker-loader.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/service-worker-loader.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/service-worker-loader.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/service-worker.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/service-worker.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/site.webmanifest create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet.zip create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/SKILL.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/architecture.txt create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/architecture.txt.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/definitions/atproto/permissions.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/definitions/atproto/space.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/definitions/index.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/definitions/output/collaboration.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/definitions/output/facet.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/definitions/output/playlistItem.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/definitions/output/playlistItemBundle.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/definitions/output/setting.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/definitions/output/track.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/definitions/output/trackBundle.json create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/elements.txt create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/elements.txt.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/foundation.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/foundation.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/docs/foundation.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/example/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/skills/diffuse-facet/example/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/animations.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/animations.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/animations.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/base.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/base.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/base.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/code-editor.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/code-editor.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/code-editor.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/colors.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/colors.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/colors.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/facet.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/facet.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/facet.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/font-faces.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/font-faces.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/font-faces.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/fonts.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/fonts.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/fonts.css.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/page.css create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/page.css.br create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/diffuse/page.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/loader.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/loader.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/loader.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/reset.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/reset.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/reset.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/variables.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/variables.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/variables.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/wireframe/ui.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/wireframe/ui.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/styles/wireframe/ui.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/testing/index.html create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/testing/index.html.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/testing/sample/audio.mp3 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/testing/sample/tracks.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/testing/sample/tracks.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/testing/sample/tracks.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/98.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/98.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/98.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@atcute/cbor/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@atcute/cbor/index.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@atcute/cbor/index.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@atcute/oauth-browser-client/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@atcute/oauth-browser-client/index.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@atcute/oauth-browser-client/index.js.map create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@atcute/tid/index.js create mode 100644 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@atcute/tid/index.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@atcute/tid/index.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.26QE47KB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.2BXLTQVW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.2E2VZMOR.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.2LXKNNNE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.2NOGQWD2.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.2NV6QW6C.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.2QMPIFI4.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.2SO23SX3.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.2XF6Q5Q4.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.2YEETXBR.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.3FDTCWBL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.3H2FQERJ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.3I2YK6WG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.3MALJW2P.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.3MSWQ3RG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.3NKIHICW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.3OMDB7G7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.3T6KMBNF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.44TPNLVU.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.467JFVDS.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4AI6OCVC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4EC7IRRU.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4HCUFNFE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4HIUT4NN.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4IALDZ4Y.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4LIBWWJL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4LWVSIV7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4MQTK254.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4MUQQILH.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4QWUDRS5.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4UAGHDWN.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4VVVEQ6S.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.4ZAKP7NY.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.54DVC4XB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.55AH5UAX.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.5EZXNBTY.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.5FPZSTUW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.5HLSOZWR.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.5JBQCQFB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.5KEI242Z.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.5KKHTQSP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.5PFAYAIK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.5VKLVAP2.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.5ZIFEPE5.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.5ZSSLK3M.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.63RYV7SI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.6A3YESTJ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.6CIAVEBC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.6SNQOYNK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.6T7N5NBH.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.6TNHHCAM.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.6VIHFQLB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.6VPDWW2I.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.6ZVWWDQT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.7ESIKVRI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.7GJ2QXRW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.7HGYKBWW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.7WYCJAAB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.A73F6EP3.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.AB2K5S2N.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.AG44H7MD.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.AJQ3S5VI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.AOZFN6E7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.AQZVKFHG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.B6O732C7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BCCEA2BT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BGEID5TE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BKE5EYM3.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BLGT2UQZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BLWGM6W4.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BMO76VKZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BOYYUMGV.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BQNDCXAL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BSKW43C6.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BUCKADPY.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.BZMNT3VX.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.C2GDS5KB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.C435GZCM.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.C4ZDYZVI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.CERDLENO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.CEY3XO3U.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.CMMS3W7V.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.CV35G2DF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.CVI2B3VH.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.D2XOEELP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.D5YFE5NT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.D6BCK4PR.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.D6GXWYLR.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.D7DTB2BP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.D7J2HJDE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.DOVAIU4B.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.DP5YIFD7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.DYSMWXBZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.E2G7AAZ3.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ECJJ7KVB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.EF25YJJE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.EFUXUR2V.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.EIWUDXXU.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.EOON7UFT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.EP5NMLNE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.EV55TYKC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.EV5QZWZG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.F25QOBDY.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.F4JHOXPG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.F4KZU7UC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.FFUR45EY.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.FG2PKHMT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.FMGPE4WI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.FNFKITIN.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.FV2UJLMK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.FY65S3KS.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.FYKN76UA.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.G6XOOSBC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.GDKEEBXF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.GDWSLLNY.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.GQMKKXTW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.GTUPCKQ3.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.GWSUX3V5.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.GWVMEUYH.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.H23DVATU.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.H7FQOWYN.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.H7TA73OO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.HGBRCPUS.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.HJ65SLMP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.HKBIIF6R.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.HKMBVADD.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.HLGGDMDY.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.HNCFWHCC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.HOKYDFUG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.HPULLNVR.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.HU5FIEKB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.I2Y4E7B6.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.I6OAT7EI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.IBYYXOHL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ICDCAGCX.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.IHXCBN37.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.IIHGIRPB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.IOZQCLLD.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.IX2GQ2J6.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.IZL7R7PV.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.J2WRH4YL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.J4UHUULC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.J7EXAHCE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.JATRSH7G.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.JB5Y2AN3.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.JBSQSXSP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.JEFGOKSA.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.JHZRD2LV.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.JJKKSYRO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.JTOY5KP3.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.K5EDTD7G.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.K5Q2EBKV.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.KBRACBFL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.KBS6YHTA.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.KEBUA3M4.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.KGKMD624.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.KH7MR2OK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.KJ34WZZX.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.KKI7M5DP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.KRECBW2E.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.KWDPKKFO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.L6CIKOFQ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LAIHMICP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LBLI4KS5.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LCFSCRUJ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LDTTUEPR.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LETCJ5PC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LFN2QAAB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LFY74XUF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LN7M2NWC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LNFTFTSZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LPHX3BNP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.LRYJ2M5H.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.M6RNJSYP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.M7O5VY4E.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.MD76HZD2.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.MEATLWHD.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.MF234WAF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.MHOTNIZ4.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.MO2KS3JW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.MQODJ75V.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.MT4KGKUD.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.N2TXQSKF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NHAJRKRO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NJV43B2Z.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NPU2ZTMF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NR2LFKJE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NS4E73TC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NSSMHWNA.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NUVDWQN5.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NWZSEH5M.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NXWZMA6E.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NY2PQ35L.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.NZMEALWZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.O3FF2LGE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.O6IZ4I7T.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.OPR272H6.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.PP5RFEZX.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.PPALL6KG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.PSADQYP2.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.PX3HMKF7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.PXDGU6KC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.PZ23AOZF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.PZAN6FPN.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.Q6XMGFWJ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.QD7TM6E5.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.QERYKBRG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.QG644JIK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.QGLBSRQH.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.QKLDCWUF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.QNZSHXSH.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.QX54BZQA.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.QXPWLPKE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.R62LX7HF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.R7QX4M6R.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.R7U5PXUZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.RCTVXACL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.REHZ4JRM.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.RGZE6BBW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.RHKZJTZ7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.RKPV5RWB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.RM7EPJRB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.RMZ7BVDM.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.RPQJAXXR.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.RQKP4T6Z.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.RV5MEM4L.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.RWNXKUCF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.S2QNOR5Z.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.S3XWKRZZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.S4CBNMSE.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.SGGNMQGZ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.SJBMXU7J.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.SJUGO6JB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.SKLR37OM.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.SQJ7XZ47.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ST3SWFIB.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.SUZGY3IK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.SUZTEJNL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.T2SU5Q2S.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.T4GCCZZH.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.T6GGTYHD.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.T7CCLJ4F.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.TAQBKX4T.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.TCIZ7KIL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.TDR7XG37.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.TLFIX76K.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.TTV5IOGO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.U36KZLSQ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.UIKY7WPI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.UMPSPH77.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.UUEMMZG6.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.UUYXVN6H.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.UV4Y72XP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.V3XSRGX4.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.VAK7NBQC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.VC3BPUZJ.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.VMUYD6ZV.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.VO4OKF3D.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.VQZ46MYI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.VRQU2Y2Z.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.VVLIN6UY.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.VVUBGO75.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.W2C46OQX.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.W2W7E7EP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.W3JJ6XED.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.WDIIGUNP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.WGFDW2LC.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.WIX7VI5R.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.WKFY4NAW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.WKX3BKNK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.WLKYECLX.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.WSTNGCWW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.WYNTFJHW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.X542U3B2.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.X55YNZ3B.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.XJ4PEGQL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.XJOHOSCS.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.XLATYKDG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.XU63UNPU.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.XUOQ3VYA.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.XW6BKGGI.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.XZ235HUK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.XZPLJ4VW.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.Y4NB7O4S.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YBFCQDTA.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YCKOBVHT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YDQCS2HK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YI4H4EEG.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YJNHQL5U.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YLIESRP2.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YN7QRSZ7.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YNIJJMXK.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YPC4IEE5.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YQNBAO2Z.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.YXOWVBUA.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZA5G6FAT.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZESUPXT6.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZFMOLE6Z.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZFSRFTCP.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZKX5RQ5L.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZR5KSPNL.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZRLTNBWF.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZSEFTQAO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZSNU3QL4.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZT4OZS6F.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZWQCGLB5.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZY7BMFLO.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/chunks/chunk.ZZPJSMJ4.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/accordion-item/accordion-item.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/accordion-item/accordion-item.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/accordion-item/accordion-item.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/accordion-item/accordion-item.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/accordion/accordion.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/accordion/accordion.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/accordion/accordion.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/accordion/accordion.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/animated-image/animated-image.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/animated-image/animated-image.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/animated-image/animated-image.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/animated-image/animated-image.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/animation/animation.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/animation/animation.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/animation/animation.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/animation/animation.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/animation/animations.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/animation/animations.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/avatar/avatar.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/avatar/avatar.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/avatar/avatar.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/avatar/avatar.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/badge/badge.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/badge/badge.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/badge/badge.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/badge/badge.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/breadcrumb-item/breadcrumb-item.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/breadcrumb-item/breadcrumb-item.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/breadcrumb-item/breadcrumb-item.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/breadcrumb-item/breadcrumb-item.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/breadcrumb/breadcrumb.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/breadcrumb/breadcrumb.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/breadcrumb/breadcrumb.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/breadcrumb/breadcrumb.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/button-group/button-group.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/button-group/button-group.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/button-group/button-group.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/button-group/button-group.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/button/button.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/button/button.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/button/button.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/button/button.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/callout/callout.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/callout/callout.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/callout/callout.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/callout/callout.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/card/card.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/card/card.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/card/card.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/card/card.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel-item/carousel-item.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel-item/carousel-item.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel-item/carousel-item.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel-item/carousel-item.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel/autoplay-controller.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel/autoplay-controller.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel/carousel.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel/carousel.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel/carousel.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel/carousel.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel/scroll-controller.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/carousel/scroll-controller.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/checkbox-group/checkbox-group.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/checkbox-group/checkbox-group.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/checkbox-group/checkbox-group.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/checkbox-group/checkbox-group.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/checkbox/checkbox.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/checkbox/checkbox.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/checkbox/checkbox.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/checkbox/checkbox.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/color-picker/color-picker.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/color-picker/color-picker.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/color-picker/color-picker.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/color-picker/color-picker.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/comparison/comparison.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/comparison/comparison.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/comparison/comparison.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/comparison/comparison.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/copy-button/copy-button.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/copy-button/copy-button.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/copy-button/copy-button.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/copy-button/copy-button.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/details/details.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/details/details.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/details/details.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/details/details.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dialog/dialog.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dialog/dialog.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dialog/dialog.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dialog/dialog.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/divider/divider.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/divider/divider.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/divider/divider.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/divider/divider.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/drawer/drawer.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/drawer/drawer.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/drawer/drawer.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/drawer/drawer.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dropdown-item/dropdown-item.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dropdown-item/dropdown-item.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dropdown-item/dropdown-item.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dropdown-item/dropdown-item.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dropdown/dropdown.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dropdown/dropdown.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dropdown/dropdown.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/dropdown/dropdown.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/format-bytes/format-bytes.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/format-bytes/format-bytes.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/format-date/format-date.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/format-date/format-date.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/format-number/format-number.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/format-number/format-number.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/icon/icon.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/icon/icon.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/icon/icon.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/icon/icon.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/icon/library.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/icon/library.default.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/icon/library.default.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/icon/library.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/icon/library.system.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/icon/library.system.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/include/include.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/include/include.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/include/include.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/include/include.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/include/request.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/include/request.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/input/input.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/input/input.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/input/input.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/input/input.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/intersection-observer/intersection-observer.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/intersection-observer/intersection-observer.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/intersection-observer/intersection-observer.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/intersection-observer/intersection-observer.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/known-date/internal/field-order.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/known-date/internal/field-order.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/known-date/internal/partial-date-validator.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/known-date/internal/partial-date-validator.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/known-date/internal/parts.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/known-date/internal/parts.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/known-date/known-date.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/known-date/known-date.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/known-date/known-date.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/known-date/known-date.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/markdown/markdown.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/markdown/markdown.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/markdown/markdown.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/markdown/markdown.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/mutation-observer/mutation-observer.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/mutation-observer/mutation-observer.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/mutation-observer/mutation-observer.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/mutation-observer/mutation-observer.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/number-input/number-input.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/number-input/number-input.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/number-input/number-input.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/number-input/number-input.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/option/option.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/option/option.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/option/option.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/option/option.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/otp-input/otp-input.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/otp-input/otp-input.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/otp-input/otp-input.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/otp-input/otp-input.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/page/page.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/page/page.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/page/page.mobile.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/page/page.mobile.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/page/page.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/page/page.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/pagination/pagination.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/pagination/pagination.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/pagination/pagination.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/pagination/pagination.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/popover/popover.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/popover/popover.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/popover/popover.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/popover/popover.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/popup/popup.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/popup/popup.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/popup/popup.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/popup/popup.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/progress-bar/progress-bar.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/progress-bar/progress-bar.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/progress-bar/progress-bar.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/progress-bar/progress-bar.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/progress-ring/progress-ring.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/progress-ring/progress-ring.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/progress-ring/progress-ring.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/progress-ring/progress-ring.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/qr-code/qr-code.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/qr-code/qr-code.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/qr-code/qr-code.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/qr-code/qr-code.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/radio-group/radio-group.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/radio-group/radio-group.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/radio-group/radio-group.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/radio-group/radio-group.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/radio/radio.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/radio/radio.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/radio/radio.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/radio/radio.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/random-content/random-content.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/random-content/random-content.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/random-content/random-content.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/random-content/random-content.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/rating/rating.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/rating/rating.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/rating/rating.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/rating/rating.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/relative-time/relative-time.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/relative-time/relative-time.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/resize-observer/resize-observer.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/resize-observer/resize-observer.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/resize-observer/resize-observer.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/resize-observer/resize-observer.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/scroller/scroller.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/scroller/scroller.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/scroller/scroller.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/scroller/scroller.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/select/select.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/select/select.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/select/select.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/select/select.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/skeleton/skeleton.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/skeleton/skeleton.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/skeleton/skeleton.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/skeleton/skeleton.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/slider/slider.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/slider/slider.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/slider/slider.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/slider/slider.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/spinner/spinner.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/spinner/spinner.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/spinner/spinner.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/spinner/spinner.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/split-panel/split-panel.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/split-panel/split-panel.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/split-panel/split-panel.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/split-panel/split-panel.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/switch/switch.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/switch/switch.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/switch/switch.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/switch/switch.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab-group/tab-group.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab-group/tab-group.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab-group/tab-group.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab-group/tab-group.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab-panel/tab-panel.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab-panel/tab-panel.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab-panel/tab-panel.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab-panel/tab-panel.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab/tab.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab/tab.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab/tab.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tab/tab.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tag/tag.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tag/tag.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tag/tag.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tag/tag.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/textarea/textarea.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/textarea/textarea.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/textarea/textarea.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/textarea/textarea.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/time-input/internal/time-segments.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/time-input/internal/time-segments.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/time-input/time-input.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/time-input/time-input.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/time-input/time-input.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/time-input/time-input.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/toast-item/toast-item.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/toast-item/toast-item.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/toast-item/toast-item.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/toast-item/toast-item.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/toast/toast.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/toast/toast.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/toast/toast.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/toast/toast.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tooltip/tooltip.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tooltip/tooltip.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tooltip/tooltip.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tooltip/tooltip.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tree-item/tree-item.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tree-item/tree-item.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tree-item/tree-item.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tree-item/tree-item.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tree/tree.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tree/tree.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tree/tree.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/tree/tree.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/zoomable-frame/zoomable-frame.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/zoomable-frame/zoomable-frame.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/zoomable-frame/zoomable-frame.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/components/zoomable-frame/zoomable-frame.styles.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/custom-elements-jsx.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/custom-elements.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-after-collapse.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-after-collapse.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-after-expand.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-after-expand.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-collapse.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-collapse.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-expand.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-expand.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-item-collapsed.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-item-collapsed.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-item-expanded.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-item-expanded.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-item-trigger.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/accordion-item-trigger.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/after-collapse.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/after-collapse.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/after-expand.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/after-expand.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/after-hide.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/after-hide.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/after-show.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/after-show.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/before-page-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/before-page-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/cancel.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/cancel.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/cell-click.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/cell-click.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/cell-context-menu.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/cell-context-menu.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/clear.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/clear.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/collapse.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/collapse.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/column-move.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/column-move.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/column-pin.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/column-pin.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/column-resize.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/column-resize.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/column-visibility-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/column-visibility-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/complete.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/complete.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/copy.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/copy.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/create.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/create.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/data-error.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/data-error.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/data-request.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/data-request.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/error.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/error.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/events.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/events.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/expand.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/expand.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/filter-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/filter-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/finish.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/finish.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/focus-day.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/focus-day.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/hide.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/hide.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/hover.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/hover.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/include-error.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/include-error.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/intersect.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/intersect.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/invalid.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/invalid.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/lazy-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/lazy-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/lazy-load.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/lazy-load.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/load.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/load.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/mutation.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/mutation.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/page-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/page-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/random-content-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/random-content-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/remove.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/remove.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/reposition.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/reposition.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/resize.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/resize.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/row-collapse.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/row-collapse.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/row-expand.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/row-expand.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/row-select.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/row-select.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/select.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/select.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/selection-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/selection-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/show.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/show.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/slide-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/slide-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/sort-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/sort-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/start.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/start.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/tab-hide.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/tab-hide.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/tab-show.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/tab-show.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/video-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/video-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/view-change.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/events/view-change.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/active-elements.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/animate.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/color-scheme-controller.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/computed-style.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/debounce.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/default-value.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/dismissible-stack.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/drag.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/event.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/get-text.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/live-announcer.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/math.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/offset.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/parse.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/rendered-watcher.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/scroll.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/scrollend-polyfill.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/segmented-field/segmented-field-controller.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/size.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/slot.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/submit-on-enter.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/test/data-testid-helpers.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/test/element-visible-overflow.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/test/expect-event.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/test/fixture.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/test/form-control-base-tests.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/test/pointer-utilities.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/test/wait-for-scrolling.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/validators/custom-error-validator.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/validators/mirror-validator.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/validators/required-validator.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/validators/slider-validator.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/watch.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/webawesome-element.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/internal/webawesome-form-associated-element.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/llms.txt create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/accordion-item/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/accordion-item/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/accordion/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/accordion/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/animated-image/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/animated-image/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/animation/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/animation/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/avatar/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/avatar/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/badge/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/badge/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/breadcrumb-item/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/breadcrumb-item/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/breadcrumb/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/breadcrumb/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/button-group/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/button-group/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/button/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/button/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/callout/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/callout/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/card/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/card/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/carousel-item/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/carousel-item/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/carousel/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/carousel/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/checkbox-group/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/checkbox-group/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/checkbox/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/checkbox/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/color-picker/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/color-picker/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/comparison/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/comparison/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/copy-button/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/copy-button/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/details/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/details/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/dialog/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/dialog/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/divider/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/divider/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/drawer/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/drawer/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/dropdown-item/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/dropdown-item/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/dropdown/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/dropdown/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/format-bytes/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/format-bytes/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/format-date/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/format-date/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/format-number/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/format-number/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/icon/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/icon/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/include/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/include/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/input/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/input/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/intersection-observer/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/intersection-observer/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/known-date/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/known-date/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/markdown/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/markdown/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/mutation-observer/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/mutation-observer/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/number-input/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/number-input/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/option/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/option/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/otp-input/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/otp-input/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/page/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/page/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/pagination/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/pagination/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/popover/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/popover/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/popup/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/popup/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/progress-bar/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/progress-bar/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/progress-ring/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/progress-ring/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/qr-code/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/qr-code/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/radio-group/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/radio-group/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/radio/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/radio/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/random-content/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/random-content/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/rating/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/rating/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/relative-time/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/relative-time/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/resize-observer/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/resize-observer/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/scroller/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/scroller/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/select/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/select/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/skeleton/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/skeleton/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/slider/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/slider/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/spinner/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/spinner/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/split-panel/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/split-panel/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/switch/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/switch/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tab-group/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tab-group/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tab-panel/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tab-panel/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tab/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tab/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tag/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tag/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/textarea/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/textarea/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/time-input/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/time-input/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/toast-item/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/toast-item/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/toast/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/toast/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tooltip/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tooltip/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tree-item/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tree-item/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tree/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/tree/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/zoomable-frame/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/react/zoomable-frame/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome-design/SKILL.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome-design/references/composition.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome-design/references/getting-started.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome-design/references/layouts-inpage.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome-design/references/layouts-page.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome-design/references/patterns.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome-design/references/principles.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome-design/references/theming.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/SKILL.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/choosing-components.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/accordion-item.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/accordion.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/animated-image.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/animation.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/avatar.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/badge.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/breadcrumb-item.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/breadcrumb.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/button-group.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/button.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/callout.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/card.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/carousel-item.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/carousel.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/checkbox-group.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/checkbox.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/color-picker.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/comparison.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/copy-button.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/details.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/dialog.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/divider.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/drawer.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/dropdown-item.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/dropdown.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/format-bytes.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/format-date.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/format-number.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/icon.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/include.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/input.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/intersection-observer.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/known-date.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/markdown.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/mutation-observer.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/number-input.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/option.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/otp-input.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/page.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/pagination.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/popover.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/popup.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/progress-bar.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/progress-ring.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/qr-code.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/radio-group.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/radio.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/random-content.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/rating.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/relative-time.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/resize-observer.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/scroller.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/select.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/skeleton.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/slider.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/spinner.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/split-panel.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/switch.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/tab-group.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/tab-panel.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/tab.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/tag.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/textarea.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/time-input.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/toast-item.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/toast.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/tooltip.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/tree-item.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/tree.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/components/zoomable-frame.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/customizing.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/form-controls.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/frameworks/angular.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/frameworks/react.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/frameworks/svelte.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/frameworks/vue.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/installation.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/localization.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/support.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/themes.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/tokens/borders.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/tokens/color.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/tokens/component-groups.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/tokens/focus.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/tokens/shadows.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/tokens/space.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/tokens/transitions.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/tokens/typography.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/usage.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/utilities/color.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/utilities/fouce.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/utilities/layout.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/utilities/native.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/utilities/prose.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/utilities/rounding.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/utilities/text.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/skills/webawesome/references/utilities/visually-hidden.md create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/ssr/all.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/ssr/all.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/ssr/render-string.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/ssr/render-string.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/ssr/trim-outer-markers.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/ssr/trim-outer-markers.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/color/palettes/base.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/color/palettes/bright.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/color/palettes/default.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/color/palettes/shoelace.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/color/variants.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/color/variants/brand.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/color/variants/danger.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/color/variants/neutral.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/color/variants/success.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/color/variants/warning.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/form-control.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/form-control.styles.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/host.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/host.styles.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/segmented-field.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/segmented-field.styles.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/size.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/size.styles.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/variants.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/variants.styles.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/visually-hidden.styles.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/component/visually-hidden.styles.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/layers.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/native.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/themes/awesome.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/themes/default.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/themes/shoelace.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/align-items.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/border-radius.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/flex-wrap.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/fouce.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/gap.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/justify-content.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/layout.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/placeholder.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/prose.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/scroll-lock.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/size.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/text.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/variants.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/utilities/visually-hidden.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/styles/webawesome.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/ar.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/ar.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/cs.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/cs.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/da.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/da.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/de-ch.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/de-ch.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/de.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/de.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/en-gb.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/en-gb.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/en.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/en.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/es.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/es.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/fa.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/fa.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/fi.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/fi.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/fr.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/fr.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/he.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/he.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/hi.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/hi.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/hr.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/hr.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/hu.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/hu.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/id.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/id.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/it.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/it.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/ja.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/ja.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/kk.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/kk.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/nb.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/nb.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/nl.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/nl.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/nn.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/nn.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/pl.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/pl.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/pt.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/pt.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/ru.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/ru.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/sl.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/sl.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/sv.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/sv.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/tr.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/tr.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/uk.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/uk.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/zh-cn.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/zh-cn.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/zh-tw.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/translations/zh-tw.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/types/svelte/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/types/vue/index.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/animation.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/animation.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/autoloader.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/autoloader.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/base-path.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/base-path.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/clone.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/clone.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/defined.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/defined.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/form.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/form.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/localize.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/localize.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/ssr-hydration.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/utilities/ssr-hydration.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/vscode.html-custom-data.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/web-types.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/webawesome.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/webawesome.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/webawesome.loader.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/webawesome.loader.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/webawesome.ssr-loader.d.ts create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@awesome.me/webawesome/webawesome.ssr-loader.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@paulmillr/qr/decode.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@paulmillr/qr/decode.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@paulmillr/qr/decode.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@paulmillr/qr/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@paulmillr/qr/index.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@paulmillr/qr/index.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/bold/Phosphor-Bold.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/bold/Phosphor-Bold.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/bold/Phosphor-Bold.ttf create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/bold/Phosphor-Bold.woff create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/bold/Phosphor-Bold.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/bold/selection.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/bold/selection.json.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/bold/style.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/bold/style.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/bold/style.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/duotone/Phosphor-Duotone.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/duotone/Phosphor-Duotone.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/duotone/Phosphor-Duotone.ttf create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/duotone/Phosphor-Duotone.woff create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/duotone/Phosphor-Duotone.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/duotone/selection.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/duotone/selection.json.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/duotone/style.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/duotone/style.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/duotone/style.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/fill/Phosphor-Fill.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/fill/Phosphor-Fill.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/fill/Phosphor-Fill.ttf create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/fill/Phosphor-Fill.woff create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/fill/Phosphor-Fill.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/fill/selection.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/fill/selection.json.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/fill/style.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/fill/style.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/fill/style.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/light/Phosphor-Light.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/light/Phosphor-Light.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/light/Phosphor-Light.ttf create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/light/Phosphor-Light.woff create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/light/Phosphor-Light.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/light/selection.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/light/selection.json.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/light/style.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/light/style.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/light/style.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/regular/Phosphor.svg create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/regular/Phosphor.svg.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/regular/Phosphor.ttf create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/regular/Phosphor.woff create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/regular/Phosphor.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/regular/selection.json create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/regular/selection.json.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/regular/style.css create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/regular/style.css.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/@phosphor-icons/web/regular/style.css.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/idb-keyval/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/idb-keyval/index.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/idb-keyval/index.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/kmenu-core/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/kmenu-core/index.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/kmenu-core/index.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/async-append.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/async-append.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/async-append.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/async-replace.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/async-replace.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/async-replace.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/cache.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/cache.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/cache.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/choose.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/choose.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/choose.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/class-map.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/class-map.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/class-map.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/guard.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/guard.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/guard.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/if-defined.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/if-defined.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/if-defined.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/join.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/join.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/join.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/keyed.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/keyed.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/keyed.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/live.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/live.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/live.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/map.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/map.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/map.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/range.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/range.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/range.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/ref.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/ref.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/ref.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/repeat.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/repeat.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/repeat.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/style-map.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/style-map.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/style-map.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/template-content.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/template-content.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/template-content.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/unsafe-html.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/unsafe-html.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/unsafe-html.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/unsafe-mathml.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/unsafe-mathml.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/unsafe-mathml.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/unsafe-svg.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/unsafe-svg.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/unsafe-svg.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/until.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/until.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/until.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/when.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/when.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/directives/when.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/index.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/lit-html/index.js.map create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/ms_sans_serif.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/ms_sans_serif_bold.woff2 create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/throttle-debounce/index.js create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/throttle-debounce/index.js.br create mode 120000 artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/vendor/throttle-debounce/index.js.map diff --git a/artifacts/artifacts.json b/artifacts/artifacts.json index f442d2a2..39527a2c 100644 --- a/artifacts/artifacts.json +++ b/artifacts/artifacts.json @@ -8,5 +8,10 @@ "cid": "bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai", "createdAt": "2026-08-31T14:22:09.905Z", "version": "4.0.0-alpha.1" + }, + "bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu": { + "cid": "bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu", + "createdAt": "2026-09-03T17:37:25.740Z", + "version": "4.x-nightly" } } \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js new file mode 100644 index 00000000..625a2f53 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js @@ -0,0 +1,3 @@ +import{b as a,c as b,d as c}from"./chunk-LINMKWZS.js";import"./chunk-FHQAE777.js";import"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import"./chunk-75KFZLU6.js";export{c as APEv2Parser,a as ApeContentError,b as tryParseApeHeader}; + +//# sourceMappingURL=./APEv2Parser-45TZRDQ6.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js.br new file mode 100644 index 0000000000000000000000000000000000000000..59c61f5d46c13ff6956f30b3a7a50020e94f9912 GIT binary patch literal 140 zcmb1s&A^b76j!VIcG^mo9gX=n-W)jWk!+L8y=mJLq0>dR7rv|AtIJT;{a9zcVQ-V} zoo4Hbj(_&Agq=3l?Udivk(M#P=e?BiuG)slEkUfu zcep)%s?)3gf8CF1%6}c*-afU8dob@^zHdiF8_G`%bNiJ0fk8F literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js.map new file mode 100644 index 00000000..0369a155 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/APEv2Parser-45TZRDQ6.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/APEv2Parser-45TZRDQ6.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js new file mode 100644 index 00000000..cdbc424d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js @@ -0,0 +1,3 @@ +import{a as g}from"./chunk-6XPFWKSW.js";import"./chunk-GSVEIULU.js";import{a as r}from"./chunk-LINMKWZS.js";import"./chunk-C5GF5WSP.js";import"./chunk-FHQAE777.js";import{A as I,B as h,H as F,I as C,a as T,d as f,f as U,i as w,k as c,o as l}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as o,d as y}from"./chunk-75KFZLU6.js";var E=y(U());var A={NONE:"not compressed PCM Apple Computer",sowt:"PCM (byte swapped)",fl32:"32-bit floating point IEEE 32-bit float",fl64:"64-bit floating point IEEE 64-bit float Apple Computer",alaw:"ALaw 2:1 8-bit ITU-T G.711 A-law",ulaw:"\xB5Law 2:1 8-bit ITU-T G.711 \xB5-law Apple Computer",ULAW:"CCITT G.711 u-law 8-bit ITU-T G.711 \xB5-law",ALAW:"CCITT G.711 A-law 8-bit ITU-T G.711 A-law",FL32:"Float 32 IEEE 32-bit float "},i=class extends F("AIFF"){static{o(this,"AiffContentError")}},k=class{static{o(this,"Common")}constructor(e,t){this.isAifc=t;let a=t?22:18;if(e.chunkSize>Math.abs(a):s<22){let p=w.get(e,t+22);if(p>0){let N=(p+1)%2;if(23+p+N===this.len)n.compressionName=new h(p,"latin1").get(e,t+23);else throw new i("Illegal pstring length")}else n.compressionName=void 0}}else n.compressionName="PCM";return n}};var u={len:8,get:o((m,e)=>({chunkID:r.get(m,e),chunkSize:Number(BigInt(l.get(m,e+4)))}),"get")};var d=(0,E.default)("music-metadata:parser:aiff"),S=class extends C{static{o(this,"AIFFParser")}constructor(){super(...arguments),this.isCompressed=null}async parse(){if((await this.tokenizer.readToken(u)).chunkID!=="FORM")throw new i("Invalid Chunk-ID, expected 'FORM'");let t=await this.tokenizer.readToken(r);switch(t){case"AIFF":this.metadata.setFormat("container",t),this.isCompressed=!1;break;case"AIFC":this.metadata.setFormat("container","AIFF-C"),this.isCompressed=!0;break;default:throw new i(`Unsupported AIFF type: ${t}`)}this.metadata.setFormat("lossless",!this.isCompressed),this.metadata.setAudioOnly();try{for(;!this.tokenizer.fileInfo.size||this.tokenizer.fileInfo.size-this.tokenizer.position>=u.len;){d(`Reading AIFF chunk at offset=${this.tokenizer.position}`);let a=await this.tokenizer.readToken(u),s=2*Math.round(a.chunkSize/2),n=await this.readData(a);await this.tokenizer.ignore(s-n)}}catch(a){if(a instanceof T)d("End-of-stream");else throw a}}async readData(e){switch(e.chunkID){case"COMM":{if(this.isCompressed===null)throw new i("Failed to parse AIFF.COMM chunk when compression type is unknown");let t=await this.tokenizer.readToken(new k(e,this.isCompressed));return this.metadata.setFormat("bitsPerSample",t.sampleSize),this.metadata.setFormat("sampleRate",t.sampleRate),this.metadata.setFormat("numberOfChannels",t.numChannels),this.metadata.setFormat("numberOfSamples",t.numSampleFrames),this.metadata.setFormat("duration",t.numSampleFrames/t.sampleRate),(t.compressionName||t.compressionType)&&this.metadata.setFormat("codec",t.compressionName??A[t.compressionType]),e.chunkSize}case"ID3 ":{let t=await this.tokenizer.readToken(new I(e.chunkSize)),a=f(t);return await new g().parse(this.metadata,a,this.options),e.chunkSize}case"SSND":return this.metadata.format.duration&&this.metadata.setFormat("bitrate",8*e.chunkSize/this.metadata.format.duration),0;case"NAME":case"AUTH":case"(c) ":case"ANNO":return this.readTextChunk(e);default:return d(`Ignore chunk id=${e.chunkID}, size=${e.chunkSize}`),0}}async readTextChunk(e){let a=(await this.tokenizer.readToken(new h(e.chunkSize,"ascii"))).split("\0").map(s=>s.trim()).filter(s=>s?.length);return await Promise.all(a.map(s=>this.metadata.addTag("AIFF",e.chunkID,s))),e.chunkSize}};export{S as AIFFParser}; + +//# sourceMappingURL=./AiffParser-2JNE3SNK.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js.br new file mode 100644 index 0000000000000000000000000000000000000000..dccf3bdb4fe7f85176a6e6055e9f0f944e7398ff GIT binary patch literal 1563 zcmb0Z;%9iWY3bK1v?zzFuejOZnI~_xS0X zUl$x+y;FS7oHSy8F0>2DXmwQJw z&aFF?@$2iO<5TnNj$BMK{BqQ1O$6^pr*rpDUiAI(xU80^c}3lU_!F}l9`AYi(QMwa z#^%$f7A(=~`MJX9d)mLd^TMz1-1Fq${JWAj6IQKOfBax(efx>O-4i|RJ9kafOqli5 z`SwBQ+q=Tqd{+goIK{i`%|GV=5f;WQHj(znhd0Q|pIY}b_M^zoid~0yi~64^W2;{N zK)x$1JG)iy=E;Nx8*Op_8Smzm{doQJ(F-Ys2b0gAD6V~7tNZ0|##hBR^V~X4==82^ z7nkY(Vr07~bgqEcE>o#n)wi-53fx8G!xNOaBEDyd2)%Jl>{$5K&o{btE}KZT*6BN+ z_ASU<#pZndB0E>ikJEovX{-`*F5mfg?W#79tOczHQ zJpJLZm}zrL>b6f@X1#-XSIggz=6i!TupK|VIe3+H-rJiF-uI^MK6L-t_BAoq0_BXl zhEkbg7n+_w$k z-;>T+&OCU4|I?%cx`EqNO^^P}I>^9W*{v99yyQ$ul+0OnwWllm96L3vx+SbWp4*$GfF-bBDpPPvRRhr(LRhu;kC4_U7H5)dJOC$J}C-=Cv4cu!?dl zeHCh^6VJ7J|C7nG4cvdsX1yuyJN)ty-|p!hi#M@(xZ6F+4l`NkVRzlg(8zUuz!86m zJEdlAnuZeFGMZeQNTow^IXgd>j3{&-vZNWitZ%htX6f2Zh3x!v7ct!AqK z#e%NPi7+wIQpkF=DogcGtv6efCg1eE(%GpY#lMSfl)2Z1<=zFch(K<_uqf+J4+5;SdtlIzeQ_W^9d>GO&#jQ1S zeudZu5xGOU^#z*TALsS@-k35WZIfq+w1KIPVX3)^=nS7}Np=tPZTB8C-Bvd%)ypAG zI6XhU&|Xx3)0JDnOi8=4w=LXtSmx1!@4-ToBc|0<8)ud-{qQll!*IFL!=uVuzgE2Y zTNCp|I^$vEu^Hhel8g3j{Jmg>$}1)Z*7F^e2VEG<>YW>&vQ+-x8nU7&l&RP}4-$rJn@UJkzl?;3x5$Mj|O{OxhEKPR$W5Q~%X z-`)8|ok0=|+s?=Tyn6fqSD^4&_gQZ{PO3BHJQn#IYn`@K==_EL^Rre3L>Wzd q?jrC|V`rns<*7HWyywc6SDY2VoA77PxvA%8mxg&S(=jZ6R}TO~bppl! literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js.map new file mode 100644 index 00000000..5ad1f51f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AiffParser-2JNE3SNK.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/aiff/AiffParser.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/aiff/AiffToken.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/iff/index.js"],"sourcesContent":["import * as Token from 'token-types';\nimport initDebug from 'debug';\nimport * as strtok3 from 'strtok3';\nimport { ID3v2Parser } from '../id3v2/ID3v2Parser.js';\nimport { FourCcToken } from '../common/FourCC.js';\nimport { BasicParser } from '../common/BasicParser.js';\nimport * as AiffToken from './AiffToken.js';\nimport { AiffContentError, compressionTypes } from './AiffToken.js';\nimport * as iff from '../iff/index.js';\nconst debug = initDebug('music-metadata:parser:aiff');\n/**\n * AIFF - Audio Interchange File Format\n *\n * Ref:\n * - http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/AIFF/AIFF.html\n * - http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/AIFF/Docs/AIFF-1.3.pdf\n */\nexport class AIFFParser extends BasicParser {\n constructor() {\n super(...arguments);\n this.isCompressed = null;\n }\n async parse() {\n const header = await this.tokenizer.readToken(iff.Header);\n if (header.chunkID !== 'FORM')\n throw new AiffContentError('Invalid Chunk-ID, expected \\'FORM\\''); // Not AIFF format\n const type = await this.tokenizer.readToken(FourCcToken);\n switch (type) {\n case 'AIFF':\n this.metadata.setFormat('container', type);\n this.isCompressed = false;\n break;\n case 'AIFC':\n this.metadata.setFormat('container', 'AIFF-C');\n this.isCompressed = true;\n break;\n default:\n throw new AiffContentError(`Unsupported AIFF type: ${type}`);\n }\n this.metadata.setFormat('lossless', !this.isCompressed);\n this.metadata.setAudioOnly();\n try {\n while (!this.tokenizer.fileInfo.size || this.tokenizer.fileInfo.size - this.tokenizer.position >= iff.Header.len) {\n debug(`Reading AIFF chunk at offset=${this.tokenizer.position}`);\n const chunkHeader = await this.tokenizer.readToken(iff.Header);\n const nextChunk = 2 * Math.round(chunkHeader.chunkSize / 2);\n const bytesRead = await this.readData(chunkHeader);\n await this.tokenizer.ignore(nextChunk - bytesRead);\n }\n }\n catch (err) {\n if (err instanceof strtok3.EndOfStreamError) {\n debug(\"End-of-stream\");\n }\n else {\n throw err;\n }\n }\n }\n async readData(header) {\n switch (header.chunkID) {\n case 'COMM': { // The Common Chunk\n if (this.isCompressed === null) {\n throw new AiffContentError('Failed to parse AIFF.COMM chunk when compression type is unknown');\n }\n const common = await this.tokenizer.readToken(new AiffToken.Common(header, this.isCompressed));\n this.metadata.setFormat('bitsPerSample', common.sampleSize);\n this.metadata.setFormat('sampleRate', common.sampleRate);\n this.metadata.setFormat('numberOfChannels', common.numChannels);\n this.metadata.setFormat('numberOfSamples', common.numSampleFrames);\n this.metadata.setFormat('duration', common.numSampleFrames / common.sampleRate);\n if (common.compressionName || common.compressionType) {\n this.metadata.setFormat('codec', common.compressionName ?? compressionTypes[common.compressionType]);\n }\n return header.chunkSize;\n }\n case 'ID3 ': { // ID3-meta-data\n const id3_data = await this.tokenizer.readToken(new Token.Uint8ArrayType(header.chunkSize));\n const rst = strtok3.fromBuffer(id3_data);\n await new ID3v2Parser().parse(this.metadata, rst, this.options);\n return header.chunkSize;\n }\n case 'SSND': // Sound Data Chunk\n if (this.metadata.format.duration) {\n this.metadata.setFormat('bitrate', 8 * header.chunkSize / this.metadata.format.duration);\n }\n return 0;\n case 'NAME': // Sample name chunk\n case 'AUTH': // Author chunk\n case '(c) ': // Copyright chunk\n case 'ANNO': // Annotation chunk\n return this.readTextChunk(header);\n default:\n debug(`Ignore chunk id=${header.chunkID}, size=${header.chunkSize}`);\n return 0;\n }\n }\n async readTextChunk(header) {\n const value = await this.tokenizer.readToken(new Token.StringType(header.chunkSize, 'ascii'));\n const values = value.split('\\0').map(v => v.trim()).filter(v => v?.length);\n await Promise.all(values.map(v => this.metadata.addTag('AIFF', header.chunkID, v)));\n return header.chunkSize;\n }\n}\n","import * as Token from 'token-types';\nimport { FourCcToken } from '../common/FourCC.js';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nexport const compressionTypes = {\n NONE: 'not compressed\tPCM\tApple Computer',\n sowt: 'PCM (byte swapped)',\n fl32: '32-bit floating point IEEE 32-bit float',\n fl64: '64-bit floating point IEEE 64-bit float\tApple Computer',\n alaw: 'ALaw 2:1\t8-bit ITU-T G.711 A-law',\n ulaw: 'µLaw 2:1\t8-bit ITU-T G.711 µ-law\tApple Computer',\n ULAW: 'CCITT G.711 u-law 8-bit ITU-T G.711 µ-law',\n ALAW: 'CCITT G.711 A-law 8-bit ITU-T G.711 A-law',\n FL32: 'Float 32\tIEEE 32-bit float '\n};\nexport class AiffContentError extends makeUnexpectedFileContentError('AIFF') {\n}\nexport class Common {\n constructor(header, isAifc) {\n this.isAifc = isAifc;\n const minimumChunkSize = isAifc ? 22 : 18;\n if (header.chunkSize < minimumChunkSize)\n throw new AiffContentError(`COMMON CHUNK size should always be at least ${minimumChunkSize}`);\n this.len = header.chunkSize;\n }\n get(buf, off) {\n // see: https://cycling74.com/forums/aiffs-80-bit-sample-rate-value\n const shift = Token.UINT16_BE.get(buf, off + 8) - 16398;\n const baseSampleRate = Token.UINT16_BE.get(buf, off + 8 + 2);\n const res = {\n numChannels: Token.UINT16_BE.get(buf, off),\n numSampleFrames: Token.UINT32_BE.get(buf, off + 2),\n sampleSize: Token.UINT16_BE.get(buf, off + 6),\n sampleRate: shift < 0 ? baseSampleRate >> Math.abs(shift) : baseSampleRate << shift\n };\n if (this.isAifc) {\n res.compressionType = FourCcToken.get(buf, off + 18);\n if (this.len > 22) {\n const strLen = Token.UINT8.get(buf, off + 22);\n if (strLen > 0) {\n const padding = (strLen + 1) % 2;\n if (23 + strLen + padding === this.len) {\n res.compressionName = new Token.StringType(strLen, 'latin1').get(buf, off + 23);\n }\n else {\n throw new AiffContentError('Illegal pstring length');\n }\n }\n else {\n res.compressionName = undefined;\n }\n }\n }\n else {\n res.compressionName = 'PCM';\n }\n return res;\n }\n}\n","import * as Token from 'token-types';\nimport { FourCcToken } from '../common/FourCC.js';\n/**\n * Common AIFF chunk header\n */\nexport const Header = {\n len: 8,\n get: (buf, off) => {\n return {\n // Chunk type ID\n chunkID: FourCcToken.get(buf, off),\n // Chunk size\n chunkSize: Number(BigInt(Token.UINT32_BE.get(buf, off + 4)))\n };\n }\n};\n"],"mappings":"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","names":["import_debug","compressionTypes","AiffContentError","makeUnexpectedFileContentError","__name","Common","header","isAifc","minimumChunkSize","buf","off","shift","UINT16_BE","baseSampleRate","res","UINT32_BE","FourCcToken","strLen","UINT8","padding","StringType","Header","__name","buf","off","FourCcToken","UINT32_BE","debug","initDebug","AIFFParser","BasicParser","__name","Header","AiffContentError","type","FourCcToken","chunkHeader","nextChunk","bytesRead","err","EndOfStreamError","header","common","Common","compressionTypes","id3_data","Uint8ArrayType","rst","fromBuffer","ID3v2Parser","values","StringType","v"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/AiffParser-2JNE3SNK.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js new file mode 100644 index 00000000..a69d2d79 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js @@ -0,0 +1,3 @@ +import"./chunk-RXUZEKYV.js";import{b as U}from"./chunk-RN5G2ZPZ.js";import{a as W}from"./chunk-C5GF5WSP.js";import{c as E,f as _,g as G}from"./chunk-FHQAE777.js";import{B as k,H,I as V,a as M,f as te,j as O,n as m,u as w}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as o,d as ee}from"./chunk-75KFZLU6.js";var Z=ee(te());function P(n){let e=n.trim();if(e.length!==36||e[8]!=="-"||e[13]!=="-"||e[18]!=="-"||e[23]!=="-")throw new Error(`Invalid GUID format: ${n}`);let t,r=new Uint8Array(16);t=parseInt(e.slice(0,8),16),r[0]=t&255,r[1]=t>>>8&255,r[2]=t>>>16&255,r[3]=t>>>24&255,t=parseInt(e.slice(9,13),16),r[4]=t&255,r[5]=t>>>8&255,t=parseInt(e.slice(14,18),16),r[6]=t&255,r[7]=t>>>8&255,t=parseInt(e.slice(19,23),16),r[8]=t>>>8&255,r[9]=t&255,t=parseInt(e.slice(24,32),16),r[10]=t>>>24&255,r[11]=t>>>16&255,r[12]=t>>>8&255,r[13]=t&255,t=parseInt(e.slice(32,36),16),r[14]=t>>>8&255,r[15]=t&255;for(let s=0;s<16;s++)if(!Number.isFinite(r[s]))throw new Error(`Invalid GUID format: ${n}`);if(!/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(e))throw new Error(`Invalid GUID format: ${n}`);return r}o(P,"parseWindowsGuid");var S=class n{static{o(this,"Guid")}constructor(e){if(e.length!==16)throw new Error("GUID must be exactly 16 bytes");this.bytes=e}static fromString(e){return new n(P(e))}toString(){let e=this.bytes,t=o(g=>g.toString(16).padStart(2,"0"),"hx"),r=t(e[3])+t(e[2])+t(e[1])+t(e[0]),s=t(e[5])+t(e[4]),c=t(e[7])+t(e[6]),i=t(e[8])+t(e[9]),d=t(e[10])+t(e[11])+t(e[12])+t(e[13])+t(e[14])+t(e[15]);return`${r}-${s}-${c}-${i}-${d}`.toUpperCase()}equals(e,t=0){if(t<0||e.length-t<16)return!1;let r=this.bytes;for(let s=0;s<16;s++)if(e[t+s]!==r[s])return!1;return!0}};var a=class n{static{o(this,"AsfGuid")}static fromBin(e,t=0){return new n(n.decode(e,t))}static decode(e,t=0){return new S(e.subarray(t,t+16)).toString()}static decodeMediaType(e){switch(e.str){case n.AudioMedia.str:return"audio";case n.VideoMedia.str:return"video";case n.CommandMedia.str:return"command";case n.Degradable_JPEG_Media.str:return"degradable-jpeg";case n.FileTransferMedia.str:return"file-transfer";case n.BinaryMedia.str:return"binary"}}static encode(e){return P(e)}constructor(e){this.str=e}equals(e){return this.str===e.str}toBin(){return n.encode(this.str)}};a.HeaderObject=new a("75B22630-668E-11CF-A6D9-00AA0062CE6C");a.DataObject=new a("75B22636-668E-11CF-A6D9-00AA0062CE6C");a.SimpleIndexObject=new a("33000890-E5B1-11CF-89F4-00A0C90349CB");a.IndexObject=new a("D6E229D3-35DA-11D1-9034-00A0C90349BE");a.MediaObjectIndexObject=new a("FEB103F8-12AD-4C64-840F-2A1D2F7AD48C");a.TimecodeIndexObject=new a("3CB73FD0-0C4A-4803-953D-EDF7B6228F0C");a.FilePropertiesObject=new a("8CABDCA1-A947-11CF-8EE4-00C00C205365");a.StreamPropertiesObject=new a("B7DC0791-A9B7-11CF-8EE6-00C00C205365");a.HeaderExtensionObject=new a("5FBF03B5-A92E-11CF-8EE3-00C00C205365");a.CodecListObject=new a("86D15240-311D-11D0-A3A4-00A0C90348F6");a.ScriptCommandObject=new a("1EFB1A30-0B62-11D0-A39B-00A0C90348F6");a.MarkerObject=new a("F487CD01-A951-11CF-8EE6-00C00C205365");a.BitrateMutualExclusionObject=new a("D6E229DC-35DA-11D1-9034-00A0C90349BE");a.ErrorCorrectionObject=new a("75B22635-668E-11CF-A6D9-00AA0062CE6C");a.ContentDescriptionObject=new a("75B22633-668E-11CF-A6D9-00AA0062CE6C");a.ExtendedContentDescriptionObject=new a("D2D0A440-E307-11D2-97F0-00A0C95EA850");a.ContentBrandingObject=new a("2211B3FA-BD23-11D2-B4B7-00A0C955FC6E");a.StreamBitratePropertiesObject=new a("7BF875CE-468D-11D1-8D82-006097C9A2B2");a.ContentEncryptionObject=new a("2211B3FB-BD23-11D2-B4B7-00A0C955FC6E");a.ExtendedContentEncryptionObject=new a("298AE614-2622-4C17-B935-DAE07EE9289C");a.DigitalSignatureObject=new a("2211B3FC-BD23-11D2-B4B7-00A0C955FC6E");a.PaddingObject=new a("1806D474-CADF-4509-A4BA-9AABCB96AAE8");a.ExtendedStreamPropertiesObject=new a("14E6A5CB-C672-4332-8399-A96952065B5A");a.AdvancedMutualExclusionObject=new a("A08649CF-4775-4670-8A16-6E35357566CD");a.GroupMutualExclusionObject=new a("D1465A40-5A79-4338-B71B-E36B8FD6C249");a.StreamPrioritizationObject=new a("D4FED15B-88D3-454F-81F0-ED5C45999E24");a.BandwidthSharingObject=new a("A69609E6-517B-11D2-B6AF-00C04FD908E9");a.LanguageListObject=new a("7C4346A9-EFE0-4BFC-B229-393EDE415C85");a.MetadataObject=new a("C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA");a.MetadataLibraryObject=new a("44231C94-9498-49D1-A141-1D134E457054");a.IndexParametersObject=new a("D6E229DF-35DA-11D1-9034-00A0C90349BE");a.MediaObjectIndexParametersObject=new a("6B203BAD-3F11-48E4-ACA8-D7613DE2CFA7");a.TimecodeIndexParametersObject=new a("F55E496D-9797-4B5D-8C8B-604DFE9BFB24");a.CompatibilityObject=new a("26F18B5D-4584-47EC-9F5F-0E651F0452C9");a.AdvancedContentEncryptionObject=new a("43058533-6981-49E6-9B74-AD12CB86D58C");a.AudioMedia=new a("F8699E40-5B4D-11CF-A8FD-00805F5C442B");a.VideoMedia=new a("BC19EFC0-5B4D-11CF-A8FD-00805F5C442B");a.CommandMedia=new a("59DACFC0-59E6-11D0-A3AC-00A0C90348F6");a.JFIF_Media=new a("B61BE100-5B4E-11CF-A8FD-00805F5C442B");a.Degradable_JPEG_Media=new a("35907DE0-E415-11CF-A917-00805F5C442B");a.FileTransferMedia=new a("91BD222C-F21C-497A-8B6D-5AA86BFC0185");a.BinaryMedia=new a("3AFB65E2-47EF-40F2-AC2C-70A90D71D343");a.ASF_Index_Placeholder_Object=new a("D9AADE20-7C17-4F9C-BC28-8555DD98E2A2");var l=a;function q(n){return ne[n]}o(q,"getParserForAttr");function y(n){return G(_(n,"utf-16le"))}o(y,"parseUnicodeAttr");var ne=[y,R,ie,se,oe,J,R];function R(n){return new Uint8Array(n)}o(R,"parseByteArrayAttr");function ie(n,e=0){return J(n,e)===1}o(ie,"parseBoolAttr");function se(n,e=0){return m.get(n,e)}o(se,"parseDWordAttr");function oe(n,e=0){return w.get(n,e)}o(oe,"parseQWordAttr");function J(n,e=0){return O.get(n,e)}o(J,"parseWordAttr");var u=class extends H("ASF"){static{o(this,"AsfContentParseError")}};var z={len:30,get:o((n,e)=>{let t=C.get(n,e);if(t.objectSize{let t=w.get(n,e+16);if(tBigInt(Number.MAX_SAFE_INTEGER))throw new u(`Invalid ASF header object size: ${t}`);return{objectId:l.fromBin(n,e),objectSize:Number(t)}},"get")},A=class{static{o(this,"State")}constructor(e){this.len=e.objectSize-C.len}postProcessTag(e,t,r,s){if(t==="WM/Picture")e.push({id:t,value:L.fromBuffer(s)});else{let c=q(r);if(!c)throw new u(`unexpected value headerType: ${r}`);e.push({id:t,value:c(s)})}}},D=class extends A{static{o(this,"FilePropertiesObject")}get(e,t){return{fileId:l.fromBin(e,t),fileSize:w.get(e,t+16),creationDate:w.get(e,t+24),dataPacketsCount:w.get(e,t+32),playDuration:w.get(e,t+40),sendDuration:w.get(e,t+48),preroll:w.get(e,t+56),flags:{broadcast:E(e,t+64,24),seekable:E(e,t+64,25)},minimumDataPacketSize:m.get(e,t+68),maximumDataPacketSize:m.get(e,t+72),maximumBitrate:m.get(e,t+76)}}};D.guid=l.FilePropertiesObject;var F=class extends A{static{o(this,"StreamPropertiesObject")}get(e,t){return{streamType:l.decodeMediaType(l.fromBin(e,t)),errorCorrectionType:l.fromBin(e,t+8)}}};F.guid=l.StreamPropertiesObject;var f=class{static{o(this,"HeaderExtensionObject")}constructor(){this.len=22}get(e,t){let r=new DataView(e.buffer,t);return{reserved1:l.fromBin(e,t),reserved2:r.getUint16(16,!0),extensionDataSize:r.getUint32(18,!0)}}};f.guid=l.HeaderExtensionObject;var ce={len:20,get:o((n,e)=>({entryCount:new DataView(n.buffer,e).getUint16(16,!0)}),"get")},$=class{static{o(this,"BoundedReader")}constructor(e,t){this.tokenizer=e,this.remaining=t}async readToken(e){this.ensureAvailable(e.len);let t=await this.tokenizer.readToken(e);return this.remaining-=e.len,t}async readNumber(e){return this.readToken(e)}async readBuffer(e){this.ensureAvailable(e);let t=new Uint8Array(e);return await this.tokenizer.readBuffer(t),this.remaining-=e,t}async ignoreRemaining(){let e=await this.tokenizer.ignore(this.remaining);if(e!==this.remaining)throw new u(`Unexpected end of ASF Codec List Object; missing ${this.remaining-e} bytes`);this.remaining=0}ensureAvailable(e){if(e>this.remaining)throw new u(`ASF Codec List field size ${e} exceeds remaining object payload size ${this.remaining}`)}};async function Q(n){let e=await n.readNumber(O);return(await n.readToken(new k(e*2,"utf-16le"))).replace("\0","")}o(Q,"readString");async function X(n,e){let t=new $(n,e),r=await t.readToken(ce),s=[];for(let c=0;c0){let g=n.contentDescTags[i],b=c+d;r.push({id:g,value:y(e.subarray(t+c,t+b))}),c=b}}return r}};p.guid=l.ContentDescriptionObject;p.contentDescTags=["Title","Author","Copyright","Description","Rating"];var B=class extends A{static{o(this,"ExtendedContentDescriptionObjectState")}get(e,t){let r=[],s=new DataView(e.buffer,t),c=s.getUint16(0,!0),i=2;for(let d=0;d1e4)throw new u(`Unrealistic number of ASF header objects: ${e.numberOfHeaderObjects}`);await this.parseObjectHeaders(e.numberOfHeaderObjects,e.objectSize-z.len)}async parseObjectHeaders(e,t){let r;for(let s=0;s{this.metadata.addStreamInfo({type:b.type.videoCodec?U.video:U.audio,codecName:b.codecName})});let g=d.filter(b=>b.type.audioCodec).map(b=>b.codecName).join("/");this.metadata.setFormat("codec",g);break}case l.StreamBitratePropertiesObject.str:await this.ignorePayload(i,"Stream Bitrate Properties Object");break;case l.PaddingObject.str:N("Padding: %s bytes",i),await this.ignorePayload(i,"Padding Object");break;default:this.metadata.addWarning(`Ignore ASF-Object-GUID: ${c.objectId.str}`),N("Ignore ASF-Object-GUID: %s",c.objectId.str),await this.ignorePayload(i,`object ${c.objectId.str}`)}t-=c.objectSize}if(t!==0)throw new u(`ASF header child objects leave ${t} payload byte(s) unaccounted`)}async addTags(e){await Promise.all(e.map(({id:t,value:r})=>this.metadata.addTag(ue,t,r)))}async readObjectHeader(e,t){if(ee)throw new u(`ASF ${t} object size ${r.objectSize} exceeds remaining ${t} payload size ${e}`);return{header:r,payloadSize:this.validatePayloadAvailability(r,`${t} object`)}}validatePayloadAvailability(e,t){let r=e.objectSize-C.len,s=this.tokenizer.fileInfo.size;if(s!==void 0){let c=s-this.tokenizer.position;if(r>c)throw new u(`ASF ${t} payload size ${r} exceeds available input size ${c}`)}return r}validateAllocationSize(e,t){if(e>K)throw new u(`ASF ${t} payload size ${e} exceeds allocation limit ${K}`)}async ignorePayload(e,t){let r;try{r=await this.tokenizer.ignore(e)}catch(s){throw s instanceof M?new u(`Unexpected end of ASF ${t}`):s}if(r!==e)throw new u(`Unexpected end of ASF ${t}; missing ${e-r} bytes`)}async parseExtensionObject(e){for(;e>0;){let{header:t,payloadSize:r}=await this.readObjectHeader(e,"extension");switch(t.objectId.str){case x.guid.str:this.validateAllocationSize(r,"Extended Stream Properties Object"),await this.tokenizer.readToken(new x(t));break;case j.guid.str:{this.validateAllocationSize(r,"Metadata Object");let s=await this.tokenizer.readToken(new j(t));await this.addTags(s);break}case T.guid.str:{this.validateAllocationSize(r,"Metadata Library Object");let s=await this.tokenizer.readToken(new T(t));await this.addTags(s);break}case l.PaddingObject.str:await this.ignorePayload(r,"extension Padding Object");break;case l.CompatibilityObject.str:await this.ignorePayload(r,"Compatibility Object");break;case l.ASF_Index_Placeholder_Object.str:await this.ignorePayload(r,"Index Placeholder Object");break;default:this.metadata.addWarning(`Ignore ASF-Object-GUID: ${t.objectId.str}`),await this.ignorePayload(r,`extension object ${t.objectId.str}`);break}e-=t.objectSize}}};export{Y as AsfParser}; + +//# sourceMappingURL=./AsfParser-BPPBZCR7.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js.br new file mode 100644 index 0000000000000000000000000000000000000000..950a910f70f61c2830dbefb459d4c43df67e8151 GIT binary patch literal 5187 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 Yq|?sA(?K_W+g@$d=MnDGJNlmi0I=URr~m)} literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js.map new file mode 100644 index 00000000..0c18789a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/AsfParser-BPPBZCR7.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/asf/AsfParser.js","/node_modules/.deno/win-guid@0.2.1/node_modules/win-guid/lib/guid.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/asf/AsfGuid.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/asf/AsfUtil.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/asf/AsfObject.js"],"sourcesContent":["import initDebug from 'debug';\nimport { EndOfStreamError } from 'strtok3';\nimport { TrackType } from '../type.js';\nimport AsfGuid from './AsfGuid.js';\nimport * as AsfObject from './AsfObject.js';\nimport { BasicParser } from '../common/BasicParser.js';\nimport { AsfContentParseError } from './AsfObject.js';\nconst debug = initDebug('music-metadata:parser:ASF');\nconst headerType = 'asf';\nconst maxAsfMetadataObjectSize = 16 * 1024 * 1024;\n/**\n * Windows Media Metadata Usage Guidelines\n * - Ref: https://msdn.microsoft.com/en-us/library/ms867702.aspx\n *\n * Ref:\n * - https://tools.ietf.org/html/draft-fleischman-asf-01\n * - https://hwiegman.home.xs4all.nl/fileformats/asf/ASF_Specification.pdf\n * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/index.html\n * - https://msdn.microsoft.com/en-us/library/windows/desktop/ee663575(v=vs.85).aspx\n */\nexport class AsfParser extends BasicParser {\n async parse() {\n const header = await this.tokenizer.readToken(AsfObject.TopLevelHeaderObjectToken);\n if (!header.objectId.equals(AsfGuid.HeaderObject)) {\n throw new AsfContentParseError(`expected asf header; but was not found; got: ${header.objectId.str}`);\n }\n if (header.numberOfHeaderObjects < 1 || header.numberOfHeaderObjects > 10000) {\n throw new AsfContentParseError(`Unrealistic number of ASF header objects: ${header.numberOfHeaderObjects}`);\n }\n await this.parseObjectHeaders(header.numberOfHeaderObjects, header.objectSize - AsfObject.TopLevelHeaderObjectToken.len);\n }\n async parseObjectHeaders(numberOfObjectHeaders, remainingHeaderSize) {\n let tags;\n for (let index = 0; index < numberOfObjectHeaders; ++index) {\n const { header, payloadSize } = await this.readObjectHeader(remainingHeaderSize, 'header');\n // Parse data part of the ASF Object\n debug('header GUID=%s', header.objectId.str);\n switch (header.objectId.str) {\n case AsfObject.FilePropertiesObject.guid.str: { // 3.2\n this.validateAllocationSize(payloadSize, 'File Properties Object');\n const fpo = await this.tokenizer.readToken(new AsfObject.FilePropertiesObject(header));\n this.metadata.setFormat('duration', Number(fpo.playDuration / BigInt(1000)) / 10000 - Number(fpo.preroll) / 1000);\n this.metadata.setFormat('bitrate', fpo.maximumBitrate);\n break;\n }\n case AsfObject.StreamPropertiesObject.guid.str: { // 3.3\n this.validateAllocationSize(payloadSize, 'Stream Properties Object');\n const spo = await this.tokenizer.readToken(new AsfObject.StreamPropertiesObject(header));\n this.metadata.setFormat('container', `ASF/${spo.streamType}`);\n break;\n }\n case AsfObject.HeaderExtensionObject.guid.str: { // 3.4\n const extensionHeaderToken = new AsfObject.HeaderExtensionObject();\n if (payloadSize < extensionHeaderToken.len) {\n throw new AsfContentParseError(`ASF Header Extension Object payload is too small: ${payloadSize} bytes`);\n }\n const extHeader = await this.tokenizer.readToken(extensionHeaderToken);\n const expectedExtensionSize = payloadSize - extensionHeaderToken.len;\n if (extHeader.extensionDataSize !== expectedExtensionSize) {\n throw new AsfContentParseError(`ASF extension data size ${extHeader.extensionDataSize} does not match enclosing payload size ${expectedExtensionSize}`);\n }\n await this.parseExtensionObject(extHeader.extensionDataSize);\n break;\n }\n case AsfObject.ContentDescriptionObjectState.guid.str: // 3.10\n this.validateAllocationSize(payloadSize, 'Content Description Object');\n tags = await this.tokenizer.readToken(new AsfObject.ContentDescriptionObjectState(header));\n await this.addTags(tags);\n break;\n case AsfObject.ExtendedContentDescriptionObjectState.guid.str: // 3.11\n this.validateAllocationSize(payloadSize, 'Extended Content Description Object');\n tags = await this.tokenizer.readToken(new AsfObject.ExtendedContentDescriptionObjectState(header));\n await this.addTags(tags);\n break;\n case AsfGuid.CodecListObject.str: {\n this.validateAllocationSize(payloadSize, 'Codec List Object');\n let codecs;\n try {\n codecs = await AsfObject.readCodecEntries(this.tokenizer, payloadSize);\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new AsfContentParseError(`Invalid ASF Codec List Object: ${message}`);\n }\n codecs.forEach(codec => {\n this.metadata.addStreamInfo({\n type: codec.type.videoCodec ? TrackType.video : TrackType.audio,\n codecName: codec.codecName\n });\n });\n const audioCodecs = codecs.filter(codec => codec.type.audioCodec).map(codec => codec.codecName).join('/');\n this.metadata.setFormat('codec', audioCodecs);\n break;\n }\n case AsfGuid.StreamBitratePropertiesObject.str:\n // ToDo?\n await this.ignorePayload(payloadSize, 'Stream Bitrate Properties Object');\n break;\n case AsfGuid.PaddingObject.str:\n // ToDo: register bytes pad\n debug('Padding: %s bytes', payloadSize);\n await this.ignorePayload(payloadSize, 'Padding Object');\n break;\n default:\n this.metadata.addWarning(`Ignore ASF-Object-GUID: ${header.objectId.str}`);\n debug('Ignore ASF-Object-GUID: %s', header.objectId.str);\n await this.ignorePayload(payloadSize, `object ${header.objectId.str}`);\n }\n remainingHeaderSize -= header.objectSize;\n }\n if (remainingHeaderSize !== 0) {\n throw new AsfContentParseError(`ASF header child objects leave ${remainingHeaderSize} payload byte(s) unaccounted`);\n }\n }\n async addTags(tags) {\n await Promise.all(tags.map(({ id, value }) => this.metadata.addTag(headerType, id, value)));\n }\n async readObjectHeader(remainingSize, containerType) {\n if (remainingSize < AsfObject.HeaderObjectToken.len) {\n throw new AsfContentParseError(`Insufficient ASF ${containerType} data for an object header: ${remainingSize} bytes`);\n }\n const header = await this.tokenizer.readToken(AsfObject.HeaderObjectToken);\n if (header.objectSize > remainingSize) {\n throw new AsfContentParseError(`ASF ${containerType} object size ${header.objectSize} exceeds remaining ${containerType} payload size ${remainingSize}`);\n }\n return {\n header,\n payloadSize: this.validatePayloadAvailability(header, `${containerType} object`)\n };\n }\n validatePayloadAvailability(header, objectType) {\n const payloadSize = header.objectSize - AsfObject.HeaderObjectToken.len;\n const fileSize = this.tokenizer.fileInfo.size;\n if (fileSize !== undefined) {\n const available = fileSize - this.tokenizer.position;\n if (payloadSize > available) {\n throw new AsfContentParseError(`ASF ${objectType} payload size ${payloadSize} exceeds available input size ${available}`);\n }\n }\n return payloadSize;\n }\n validateAllocationSize(payloadSize, objectType) {\n if (payloadSize > maxAsfMetadataObjectSize) {\n throw new AsfContentParseError(`ASF ${objectType} payload size ${payloadSize} exceeds allocation limit ${maxAsfMetadataObjectSize}`);\n }\n }\n async ignorePayload(payloadSize, objectType) {\n let ignored;\n try {\n ignored = await this.tokenizer.ignore(payloadSize);\n }\n catch (error) {\n if (error instanceof EndOfStreamError) {\n throw new AsfContentParseError(`Unexpected end of ASF ${objectType}`);\n }\n throw error;\n }\n if (ignored !== payloadSize) {\n throw new AsfContentParseError(`Unexpected end of ASF ${objectType}; missing ${payloadSize - ignored} bytes`);\n }\n }\n async parseExtensionObject(extensionSize) {\n while (extensionSize > 0) {\n const { header, payloadSize } = await this.readObjectHeader(extensionSize, 'extension');\n // Parse data part of the ASF Object\n switch (header.objectId.str) {\n case AsfObject.ExtendedStreamPropertiesObjectState.guid.str: // 4.1\n // ToDo: extended stream header properties are ignored\n this.validateAllocationSize(payloadSize, 'Extended Stream Properties Object');\n await this.tokenizer.readToken(new AsfObject.ExtendedStreamPropertiesObjectState(header));\n break;\n case AsfObject.MetadataObjectState.guid.str: { // 4.7\n this.validateAllocationSize(payloadSize, 'Metadata Object');\n const moTags = await this.tokenizer.readToken(new AsfObject.MetadataObjectState(header));\n await this.addTags(moTags);\n break;\n }\n case AsfObject.MetadataLibraryObjectState.guid.str: { // 4.8\n this.validateAllocationSize(payloadSize, 'Metadata Library Object');\n const mlTags = await this.tokenizer.readToken(new AsfObject.MetadataLibraryObjectState(header));\n await this.addTags(mlTags);\n break;\n }\n case AsfGuid.PaddingObject.str:\n // ToDo: register bytes pad\n await this.ignorePayload(payloadSize, 'extension Padding Object');\n break;\n case AsfGuid.CompatibilityObject.str:\n await this.ignorePayload(payloadSize, 'Compatibility Object');\n break;\n case AsfGuid.ASF_Index_Placeholder_Object.str:\n await this.ignorePayload(payloadSize, 'Index Placeholder Object');\n break;\n default:\n this.metadata.addWarning(`Ignore ASF-Object-GUID: ${header.objectId.str}`);\n // console.log(\"Ignore ASF-Object-GUID: %s\", header.objectId.str);\n await this.ignorePayload(payloadSize, `extension object ${header.objectId.str}`);\n break;\n }\n extensionSize -= header.objectSize;\n }\n }\n}\n","/**\n * Parse canonical GUID string (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)\n * into Windows / CFBF byte order.\n */\nexport function parseWindowsGuid(guid) {\n let s = guid.trim();\n // Keep validation readable and strict, avoid lowercasing allocations\n if (s.length !== 36 ||\n s[8] !== \"-\" ||\n s[13] !== \"-\" ||\n s[18] !== \"-\" ||\n s[23] !== \"-\") {\n throw new Error(`Invalid GUID format: ${guid}`);\n }\n let v;\n const out = new Uint8Array(16);\n // Data1: 8 hex, uint32 little-endian\n v = parseInt(s.slice(0, 8), 16);\n out[0] = v & 0xff;\n out[1] = (v >>> 8) & 0xff;\n out[2] = (v >>> 16) & 0xff;\n out[3] = (v >>> 24) & 0xff;\n // Data2: 4 hex, uint16 little-endian\n v = parseInt(s.slice(9, 13), 16);\n out[4] = v & 0xff;\n out[5] = (v >>> 8) & 0xff;\n // Data3: 4 hex, uint16 little-endian\n v = parseInt(s.slice(14, 18), 16);\n out[6] = v & 0xff;\n out[7] = (v >>> 8) & 0xff;\n // Data4: 4 hex, as-is (string order)\n v = parseInt(s.slice(19, 23), 16);\n out[8] = (v >>> 8) & 0xff;\n out[9] = v & 0xff;\n // Data5: 12 hex, 6 bytes, as-is (string order)\n // Parse as two chunks to avoid any precision worries, keep it simple.\n v = parseInt(s.slice(24, 32), 16); // 8 hex -> 4 bytes\n out[10] = (v >>> 24) & 0xff;\n out[11] = (v >>> 16) & 0xff;\n out[12] = (v >>> 8) & 0xff;\n out[13] = v & 0xff;\n v = parseInt(s.slice(32, 36), 16); // 4 hex -> 2 bytes\n out[14] = (v >>> 8) & 0xff;\n out[15] = v & 0xff;\n // Ensure all parsed parts were valid hex (parseInt can yield NaN)\n for (let i = 0; i < 16; i++) {\n if (!Number.isFinite(out[i])) {\n throw new Error(`Invalid GUID format: ${guid}`);\n }\n }\n // Also catch NaN early (more useful error locality)\n // If any parseInt produced NaN, assignments above would have become 0,\n // so instead validate hex characters directly with a lightweight check.\n // (Keeps code small while staying strict.)\n if (!/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(s)) {\n throw new Error(`Invalid GUID format: ${guid}`);\n }\n return out;\n}\nexport class Guid {\n constructor(bytes) {\n if (bytes.length !== 16)\n throw new Error(\"GUID must be exactly 16 bytes\");\n this.bytes = bytes;\n }\n static fromString(guid) {\n return new Guid(parseWindowsGuid(guid));\n }\n /**\n * Convert Windows / CFBF byte order into canonical GUID string:\n * xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n */\n toString() {\n const b = this.bytes;\n const hx = (n) => n.toString(16).padStart(2, \"0\");\n // Data1 (uint32 LE) -> big-endian text\n const g1 = hx(b[3]) + hx(b[2]) + hx(b[1]) + hx(b[0]);\n // Data2 (uint16 LE)\n const g2 = hx(b[5]) + hx(b[4]);\n // Data3 (uint16 LE)\n const g3 = hx(b[7]) + hx(b[6]);\n // Data4 (as-is)\n const g4 = hx(b[8]) + hx(b[9]);\n // Data5 (as-is)\n const g5 = hx(b[10]) +\n hx(b[11]) +\n hx(b[12]) +\n hx(b[13]) +\n hx(b[14]) +\n hx(b[15]);\n return `${g1}-${g2}-${g3}-${g4}-${g5}`.toUpperCase();\n }\n /**\n * Compare against a Uint8Array containing GUID bytes\n * in Windows / CFBF layout.\n */\n equals(buf, offset = 0) {\n if (offset < 0 || buf.length - offset < 16)\n return false;\n const a = this.bytes;\n for (let i = 0; i < 16; i++) {\n if (buf[offset + i] !== a[i])\n return false;\n }\n return true;\n }\n}\n","import { parseWindowsGuid, Guid } from 'win-guid';\n/**\n * Ref:\n * - https://tools.ietf.org/html/draft-fleischman-asf-01, Appendix A: ASF GUIDs\n * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html\n * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/index.html\n * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html\n *\n * ASF File Structure:\n * - https://msdn.microsoft.com/en-us/library/windows/desktop/ee663575(v=vs.85).aspx\n *\n * ASF GUIDs:\n * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html\n * - https://github.com/dji-sdk/FFmpeg/blob/master/libavformat/asf.c\n */\nclass AsfGuid {\n static fromBin(bin, offset = 0) {\n return new AsfGuid(AsfGuid.decode(bin, offset));\n }\n /**\n * Decode GUID in format like \"B503BF5F-2EA9-CF11-8EE3-00C00C205365\"\n * @param objectId Binary GUID\n * @param offset Read offset in bytes, default 0\n * @returns GUID as dashed hexadecimal representation\n */\n static decode(objectId, offset = 0) {\n return new Guid(objectId.subarray(offset, offset + 16)).toString();\n }\n /**\n * Decode stream type\n * @param mediaType Media type GUID\n * @returns Media type\n */\n static decodeMediaType(mediaType) {\n switch (mediaType.str) {\n case AsfGuid.AudioMedia.str: return 'audio';\n case AsfGuid.VideoMedia.str: return 'video';\n case AsfGuid.CommandMedia.str: return 'command';\n case AsfGuid.Degradable_JPEG_Media.str: return 'degradable-jpeg';\n case AsfGuid.FileTransferMedia.str: return 'file-transfer';\n case AsfGuid.BinaryMedia.str: return 'binary';\n }\n }\n /**\n * Encode GUID\n * @param guid GUID like: \"B503BF5F-2EA9-CF11-8EE3-00C00C205365\"\n * @returns Encoded Binary GUID\n */\n static encode(guid) {\n return parseWindowsGuid(guid);\n }\n constructor(str) {\n this.str = str;\n }\n equals(guid) {\n return this.str === guid.str;\n }\n toBin() {\n return AsfGuid.encode(this.str);\n }\n}\n// 10.1 Top-level ASF object GUIDs\nAsfGuid.HeaderObject = new AsfGuid(\"75B22630-668E-11CF-A6D9-00AA0062CE6C\");\nAsfGuid.DataObject = new AsfGuid(\"75B22636-668E-11CF-A6D9-00AA0062CE6C\");\nAsfGuid.SimpleIndexObject = new AsfGuid(\"33000890-E5B1-11CF-89F4-00A0C90349CB\");\nAsfGuid.IndexObject = new AsfGuid(\"D6E229D3-35DA-11D1-9034-00A0C90349BE\");\nAsfGuid.MediaObjectIndexObject = new AsfGuid(\"FEB103F8-12AD-4C64-840F-2A1D2F7AD48C\");\nAsfGuid.TimecodeIndexObject = new AsfGuid(\"3CB73FD0-0C4A-4803-953D-EDF7B6228F0C\");\n// 10.2 Header Object GUIDs\nAsfGuid.FilePropertiesObject = new AsfGuid(\"8CABDCA1-A947-11CF-8EE4-00C00C205365\");\nAsfGuid.StreamPropertiesObject = new AsfGuid(\"B7DC0791-A9B7-11CF-8EE6-00C00C205365\");\nAsfGuid.HeaderExtensionObject = new AsfGuid(\"5FBF03B5-A92E-11CF-8EE3-00C00C205365\");\nAsfGuid.CodecListObject = new AsfGuid(\"86D15240-311D-11D0-A3A4-00A0C90348F6\");\nAsfGuid.ScriptCommandObject = new AsfGuid(\"1EFB1A30-0B62-11D0-A39B-00A0C90348F6\");\nAsfGuid.MarkerObject = new AsfGuid(\"F487CD01-A951-11CF-8EE6-00C00C205365\");\nAsfGuid.BitrateMutualExclusionObject = new AsfGuid(\"D6E229DC-35DA-11D1-9034-00A0C90349BE\");\nAsfGuid.ErrorCorrectionObject = new AsfGuid(\"75B22635-668E-11CF-A6D9-00AA0062CE6C\");\nAsfGuid.ContentDescriptionObject = new AsfGuid(\"75B22633-668E-11CF-A6D9-00AA0062CE6C\");\nAsfGuid.ExtendedContentDescriptionObject = new AsfGuid(\"D2D0A440-E307-11D2-97F0-00A0C95EA850\");\nAsfGuid.ContentBrandingObject = new AsfGuid(\"2211B3FA-BD23-11D2-B4B7-00A0C955FC6E\");\nAsfGuid.StreamBitratePropertiesObject = new AsfGuid(\"7BF875CE-468D-11D1-8D82-006097C9A2B2\");\nAsfGuid.ContentEncryptionObject = new AsfGuid(\"2211B3FB-BD23-11D2-B4B7-00A0C955FC6E\");\nAsfGuid.ExtendedContentEncryptionObject = new AsfGuid(\"298AE614-2622-4C17-B935-DAE07EE9289C\");\nAsfGuid.DigitalSignatureObject = new AsfGuid(\"2211B3FC-BD23-11D2-B4B7-00A0C955FC6E\");\nAsfGuid.PaddingObject = new AsfGuid(\"1806D474-CADF-4509-A4BA-9AABCB96AAE8\");\n// 10.3 Header Extension Object GUIDs\nAsfGuid.ExtendedStreamPropertiesObject = new AsfGuid(\"14E6A5CB-C672-4332-8399-A96952065B5A\");\nAsfGuid.AdvancedMutualExclusionObject = new AsfGuid(\"A08649CF-4775-4670-8A16-6E35357566CD\");\nAsfGuid.GroupMutualExclusionObject = new AsfGuid(\"D1465A40-5A79-4338-B71B-E36B8FD6C249\");\nAsfGuid.StreamPrioritizationObject = new AsfGuid(\"D4FED15B-88D3-454F-81F0-ED5C45999E24\");\nAsfGuid.BandwidthSharingObject = new AsfGuid(\"A69609E6-517B-11D2-B6AF-00C04FD908E9\");\nAsfGuid.LanguageListObject = new AsfGuid(\"7C4346A9-EFE0-4BFC-B229-393EDE415C85\");\nAsfGuid.MetadataObject = new AsfGuid(\"C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA\");\nAsfGuid.MetadataLibraryObject = new AsfGuid(\"44231C94-9498-49D1-A141-1D134E457054\");\nAsfGuid.IndexParametersObject = new AsfGuid(\"D6E229DF-35DA-11D1-9034-00A0C90349BE\");\nAsfGuid.MediaObjectIndexParametersObject = new AsfGuid(\"6B203BAD-3F11-48E4-ACA8-D7613DE2CFA7\");\nAsfGuid.TimecodeIndexParametersObject = new AsfGuid(\"F55E496D-9797-4B5D-8C8B-604DFE9BFB24\");\nAsfGuid.CompatibilityObject = new AsfGuid(\"26F18B5D-4584-47EC-9F5F-0E651F0452C9\");\nAsfGuid.AdvancedContentEncryptionObject = new AsfGuid(\"43058533-6981-49E6-9B74-AD12CB86D58C\");\n// 10.4 Stream Properties Object Stream Type GUIDs\nAsfGuid.AudioMedia = new AsfGuid(\"F8699E40-5B4D-11CF-A8FD-00805F5C442B\");\nAsfGuid.VideoMedia = new AsfGuid(\"BC19EFC0-5B4D-11CF-A8FD-00805F5C442B\");\nAsfGuid.CommandMedia = new AsfGuid(\"59DACFC0-59E6-11D0-A3AC-00A0C90348F6\");\nAsfGuid.JFIF_Media = new AsfGuid(\"B61BE100-5B4E-11CF-A8FD-00805F5C442B\");\nAsfGuid.Degradable_JPEG_Media = new AsfGuid(\"35907DE0-E415-11CF-A917-00805F5C442B\");\nAsfGuid.FileTransferMedia = new AsfGuid(\"91BD222C-F21C-497A-8B6D-5AA86BFC0185\");\nAsfGuid.BinaryMedia = new AsfGuid(\"3AFB65E2-47EF-40F2-AC2C-70A90D71D343\");\nAsfGuid.ASF_Index_Placeholder_Object = new AsfGuid(\"D9AADE20-7C17-4F9C-BC28-8555DD98E2A2\");\nexport default AsfGuid;\n","import * as Token from 'token-types';\nimport * as util from '../common/Util.js';\nexport function getParserForAttr(i) {\n return attributeParsers[i];\n}\nexport function parseUnicodeAttr(uint8Array) {\n return util.stripNulls(util.decodeString(uint8Array, 'utf-16le'));\n}\nconst attributeParsers = [\n parseUnicodeAttr,\n parseByteArrayAttr,\n parseBoolAttr,\n parseDWordAttr,\n parseQWordAttr,\n parseWordAttr,\n parseByteArrayAttr\n];\nfunction parseByteArrayAttr(buf) {\n return new Uint8Array(buf);\n}\nfunction parseBoolAttr(buf, offset = 0) {\n return parseWordAttr(buf, offset) === 1;\n}\nfunction parseDWordAttr(buf, offset = 0) {\n return Token.UINT32_LE.get(buf, offset);\n}\nfunction parseQWordAttr(buf, offset = 0) {\n return Token.UINT64_LE.get(buf, offset);\n}\nfunction parseWordAttr(buf, offset = 0) {\n return Token.UINT16_LE.get(buf, offset);\n}\n","// ASF Objects\nimport * as Token from 'token-types';\nimport * as util from '../common/Util.js';\nimport AsfGuid from './AsfGuid.js';\nimport { getParserForAttr, parseUnicodeAttr } from './AsfUtil.js';\nimport { AttachedPictureType } from '../id3v2/ID3v2Token.js';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nexport class AsfContentParseError extends makeUnexpectedFileContentError('ASF') {\n}\n/**\n * Data Type: Specifies the type of information being stored. The following values are recognized.\n */\nexport const DataType = {\n /**\n * Unicode string. The data consists of a sequence of Unicode characters.\n */\n UnicodeString: 0,\n /**\n * BYTE array. The type of data is implementation-specific.\n */\n ByteArray: 1,\n /**\n * BOOL. The data is 2 bytes long and should be interpreted as a 16-bit unsigned integer. Only 0x0000 or 0x0001 are permitted values.\n */\n Bool: 2,\n /**\n * DWORD. The data is 4 bytes long and should be interpreted as a 32-bit unsigned integer.\n */\n DWord: 3,\n /**\n * QWORD. The data is 8 bytes long and should be interpreted as a 64-bit unsigned integer.\n */\n QWord: 4,\n /**\n * WORD. The data is 2 bytes long and should be interpreted as a 16-bit unsigned integer.\n */\n Word: 5\n};\n/**\n * Token for: 3. ASF top-level Header Object\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/03_asf_top_level_header_object.html#3\n */\nexport const TopLevelHeaderObjectToken = {\n len: 30,\n get: (buf, off) => {\n const base = HeaderObjectToken.get(buf, off);\n if (base.objectSize < TopLevelHeaderObjectToken.len) {\n throw new AsfContentParseError(`Invalid ASF top-level header object size: ${base.objectSize}`);\n }\n return {\n ...base,\n numberOfHeaderObjects: Token.UINT32_LE.get(buf, off + 24)\n // reserved: 2 bytes\n };\n }\n};\n/**\n * Token for: 3.1 Header Object (mandatory, one only)\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/03_asf_top_level_header_object.html#3_1\n */\nexport const HeaderObjectToken = {\n len: 24,\n get: (buf, off) => {\n const objectSize = Token.UINT64_LE.get(buf, off + 16);\n if (objectSize < BigInt(HeaderObjectToken.len) || objectSize > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new AsfContentParseError(`Invalid ASF header object size: ${objectSize}`);\n }\n const header = {\n objectId: AsfGuid.fromBin(buf, off),\n objectSize: Number(objectSize)\n };\n return header;\n }\n};\nexport class State {\n constructor(header) {\n this.len = header.objectSize - HeaderObjectToken.len;\n }\n postProcessTag(tags, name, valueType, data) {\n if (name === 'WM/Picture') {\n tags.push({ id: name, value: WmPictureToken.fromBuffer(data) });\n }\n else {\n const parseAttr = getParserForAttr(valueType);\n if (!parseAttr) {\n throw new AsfContentParseError(`unexpected value headerType: ${valueType}`);\n }\n tags.push({ id: name, value: parseAttr(data) });\n }\n }\n}\n/**\n * Token for: 3.2: File Properties Object (mandatory, one only)\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/03_asf_top_level_header_object.html#3_2\n */\nexport class FilePropertiesObject extends State {\n get(buf, off) {\n return {\n fileId: AsfGuid.fromBin(buf, off),\n fileSize: Token.UINT64_LE.get(buf, off + 16),\n creationDate: Token.UINT64_LE.get(buf, off + 24),\n dataPacketsCount: Token.UINT64_LE.get(buf, off + 32),\n playDuration: Token.UINT64_LE.get(buf, off + 40),\n sendDuration: Token.UINT64_LE.get(buf, off + 48),\n preroll: Token.UINT64_LE.get(buf, off + 56),\n flags: {\n broadcast: util.getBit(buf, off + 64, 24),\n seekable: util.getBit(buf, off + 64, 25)\n },\n // flagsNumeric: Token.UINT32_LE.get(buf, off + 64),\n minimumDataPacketSize: Token.UINT32_LE.get(buf, off + 68),\n maximumDataPacketSize: Token.UINT32_LE.get(buf, off + 72),\n maximumBitrate: Token.UINT32_LE.get(buf, off + 76)\n };\n }\n}\nFilePropertiesObject.guid = AsfGuid.FilePropertiesObject;\n/**\n * Token for: 3.3 Stream Properties Object (mandatory, one per stream)\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/03_asf_top_level_header_object.html#3_3\n */\nexport class StreamPropertiesObject extends State {\n get(buf, off) {\n return {\n streamType: AsfGuid.decodeMediaType(AsfGuid.fromBin(buf, off)),\n errorCorrectionType: AsfGuid.fromBin(buf, off + 8)\n // ToDo\n };\n }\n}\nStreamPropertiesObject.guid = AsfGuid.StreamPropertiesObject;\n/**\n * 3.4: Header Extension Object (mandatory, one only)\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/03_asf_top_level_header_object.html#3_4\n */\nexport class HeaderExtensionObject {\n constructor() {\n this.len = 22;\n }\n get(buf, off) {\n const view = new DataView(buf.buffer, off);\n return {\n reserved1: AsfGuid.fromBin(buf, off),\n reserved2: view.getUint16(16, true),\n extensionDataSize: view.getUint32(18, true)\n };\n }\n}\nHeaderExtensionObject.guid = AsfGuid.HeaderExtensionObject;\n/**\n * 3.5: The Codec List Object provides user-friendly information about the codecs and formats used to encode the content found in the ASF file.\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/03_asf_top_level_header_object.html#3_5\n */\nconst CodecListObjectHeader = {\n len: 20,\n get: (buf, off) => {\n const view = new DataView(buf.buffer, off);\n return {\n entryCount: view.getUint16(16, true)\n };\n }\n};\nclass BoundedReader {\n constructor(tokenizer, size) {\n this.tokenizer = tokenizer;\n this.remaining = size;\n }\n async readToken(token) {\n this.ensureAvailable(token.len);\n const value = await this.tokenizer.readToken(token);\n this.remaining -= token.len;\n return value;\n }\n async readNumber(token) {\n return this.readToken(token);\n }\n async readBuffer(length) {\n this.ensureAvailable(length);\n const buffer = new Uint8Array(length);\n await this.tokenizer.readBuffer(buffer);\n this.remaining -= length;\n return buffer;\n }\n async ignoreRemaining() {\n const ignored = await this.tokenizer.ignore(this.remaining);\n if (ignored !== this.remaining) {\n throw new AsfContentParseError(`Unexpected end of ASF Codec List Object; missing ${this.remaining - ignored} bytes`);\n }\n this.remaining = 0;\n }\n ensureAvailable(length) {\n if (length > this.remaining) {\n throw new AsfContentParseError(`ASF Codec List field size ${length} exceeds remaining object payload size ${this.remaining}`);\n }\n }\n}\nasync function readString(reader) {\n const length = await reader.readNumber(Token.UINT16_LE);\n return (await reader.readToken(new Token.StringType(length * 2, 'utf-16le'))).replace('\\0', '');\n}\n/**\n * 3.5: Read the Codec-List-Object, which provides user-friendly information about the codecs and formats used to encode the content found in the ASF file.\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/03_asf_top_level_header_object.html#3_5\n */\nexport async function readCodecEntries(tokenizer, payloadSize) {\n const reader = new BoundedReader(tokenizer, payloadSize);\n const codecHeader = await reader.readToken(CodecListObjectHeader);\n const entries = [];\n for (let i = 0; i < codecHeader.entryCount; ++i) {\n entries.push(await readCodecEntry(reader));\n }\n await reader.ignoreRemaining();\n return entries;\n}\nasync function readInformation(reader) {\n const length = await reader.readNumber(Token.UINT16_LE);\n return reader.readBuffer(length);\n}\n/**\n * Read Codec-Entries\n * @param reader\n */\nasync function readCodecEntry(reader) {\n const type = await reader.readNumber(Token.UINT16_LE);\n return {\n type: {\n videoCodec: (type & 0x0001) === 0x0001,\n audioCodec: (type & 0x0002) === 0x0002\n },\n codecName: await readString(reader),\n description: await readString(reader),\n information: await readInformation(reader)\n };\n}\n/**\n * 3.10 Content Description Object (optional, one only)\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/03_asf_top_level_header_object.html#3_10\n */\nexport class ContentDescriptionObjectState extends State {\n get(buf, off) {\n const tags = [];\n const view = new DataView(buf.buffer, off);\n let pos = 10;\n for (let i = 0; i < ContentDescriptionObjectState.contentDescTags.length; ++i) {\n const length = view.getUint16(i * 2, true);\n if (length > 0) {\n const tagName = ContentDescriptionObjectState.contentDescTags[i];\n const end = pos + length;\n tags.push({ id: tagName, value: parseUnicodeAttr(buf.subarray(off + pos, off + end)) });\n pos = end;\n }\n }\n return tags;\n }\n}\nContentDescriptionObjectState.guid = AsfGuid.ContentDescriptionObject;\nContentDescriptionObjectState.contentDescTags = ['Title', 'Author', 'Copyright', 'Description', 'Rating'];\n/**\n * 3.11 Extended Content Description Object (optional, one only)\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/03_asf_top_level_header_object.html#3_11\n */\nexport class ExtendedContentDescriptionObjectState extends State {\n get(buf, off) {\n const tags = [];\n const view = new DataView(buf.buffer, off);\n const attrCount = view.getUint16(0, true);\n let pos = 2;\n for (let i = 0; i < attrCount; i += 1) {\n const nameLen = view.getUint16(pos, true);\n pos += 2;\n const name = parseUnicodeAttr(buf.subarray(off + pos, off + pos + nameLen));\n pos += nameLen;\n const valueType = view.getUint16(pos, true);\n pos += 2;\n const valueLen = view.getUint16(pos, true);\n pos += 2;\n const value = buf.subarray(off + pos, off + pos + valueLen);\n pos += valueLen;\n this.postProcessTag(tags, name, valueType, value);\n }\n return tags;\n }\n}\nExtendedContentDescriptionObjectState.guid = AsfGuid.ExtendedContentDescriptionObject;\n/**\n * 4.1 Extended Stream Properties Object (optional, 1 per media stream)\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/04_objects_in_the_asf_header_extension_object.html#4_1\n */\nexport class ExtendedStreamPropertiesObjectState extends State {\n get(buf, off) {\n const view = new DataView(buf.buffer, off);\n return {\n startTime: Token.UINT64_LE.get(buf, off),\n endTime: Token.UINT64_LE.get(buf, off + 8),\n dataBitrate: view.getInt32(12, true),\n bufferSize: view.getInt32(16, true),\n initialBufferFullness: view.getInt32(20, true),\n alternateDataBitrate: view.getInt32(24, true),\n alternateBufferSize: view.getInt32(28, true),\n alternateInitialBufferFullness: view.getInt32(32, true),\n maximumObjectSize: view.getInt32(36, true),\n flags: {\n reliableFlag: util.getBit(buf, off + 40, 0),\n seekableFlag: util.getBit(buf, off + 40, 1),\n resendLiveCleanpointsFlag: util.getBit(buf, off + 40, 2)\n },\n // flagsNumeric: Token.UINT32_LE.get(buf, off + 64),\n streamNumber: view.getInt16(42, true),\n streamLanguageId: view.getInt16(44, true),\n averageTimePerFrame: view.getInt32(52, true),\n streamNameCount: view.getInt32(54, true),\n payloadExtensionSystems: view.getInt32(56, true),\n streamNames: [], // ToDo\n streamPropertiesObject: null\n };\n }\n}\nExtendedStreamPropertiesObjectState.guid = AsfGuid.ExtendedStreamPropertiesObject;\n/**\n * 4.7 Metadata Object (optional, 0 or 1)\n * Ref: http://drang.s4.xrea.com/program/tips/id3tag/wmp/04_objects_in_the_asf_header_extension_object.html#4_7\n */\nexport class MetadataObjectState extends State {\n get(uint8Array, off) {\n const tags = [];\n const view = new DataView(uint8Array.buffer, off);\n const descriptionRecordsCount = view.getUint16(0, true);\n let pos = 2;\n for (let i = 0; i < descriptionRecordsCount; i += 1) {\n pos += 4;\n const nameLen = view.getUint16(pos, true);\n pos += 2;\n const dataType = view.getUint16(pos, true);\n pos += 2;\n const dataLen = view.getUint32(pos, true);\n pos += 4;\n const name = parseUnicodeAttr(uint8Array.subarray(off + pos, off + pos + nameLen));\n pos += nameLen;\n const data = uint8Array.subarray(off + pos, off + pos + dataLen);\n pos += dataLen;\n this.postProcessTag(tags, name, dataType, data);\n }\n return tags;\n }\n}\nMetadataObjectState.guid = AsfGuid.MetadataObject;\n// 4.8\tMetadata Library Object (optional, 0 or 1)\nexport class MetadataLibraryObjectState extends MetadataObjectState {\n}\nMetadataLibraryObjectState.guid = AsfGuid.MetadataLibraryObject;\n/**\n * Ref: https://msdn.microsoft.com/en-us/library/windows/desktop/dd757977(v=vs.85).aspx\n */\nexport class WmPictureToken {\n static fromBuffer(buffer) {\n const pic = new WmPictureToken(buffer.length);\n return pic.get(buffer, 0);\n }\n constructor(len) {\n this.len = len;\n }\n get(buffer, offset) {\n const view = new DataView(buffer.buffer, offset);\n const typeId = view.getUint8(0);\n const size = view.getInt32(1, true);\n let index = 5;\n while (view.getUint16(index) !== 0) {\n index += 2;\n }\n const format = new Token.StringType(index - 5, 'utf-16le').get(buffer, 5);\n while (view.getUint16(index) !== 0) {\n index += 2;\n }\n const description = new Token.StringType(index - 5, 'utf-16le').get(buffer, 5);\n return {\n type: AttachedPictureType[typeId],\n format,\n description,\n size,\n data: buffer.slice(index + 4)\n };\n }\n}\n"],"mappings":"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","names":["import_debug","parseWindowsGuid","guid","s","v","out","i","__name","Guid","_Guid","bytes","b","hx","n","g1","g2","g3","g4","g5","buf","offset","a","AsfGuid","_AsfGuid","__name","bin","offset","objectId","Guid","mediaType","guid","parseWindowsGuid","str","AsfGuid_default","getParserForAttr","i","attributeParsers","__name","parseUnicodeAttr","uint8Array","stripNulls","decodeString","parseByteArrayAttr","parseBoolAttr","parseDWordAttr","parseQWordAttr","parseWordAttr","buf","offset","UINT32_LE","UINT64_LE","UINT16_LE","AsfContentParseError","makeUnexpectedFileContentError","__name","TopLevelHeaderObjectToken","__name","buf","off","base","HeaderObjectToken","AsfContentParseError","UINT32_LE","objectSize","UINT64_LE","AsfGuid_default","State","header","tags","name","valueType","data","WmPictureToken","parseAttr","getParserForAttr","FilePropertiesObject","getBit","StreamPropertiesObject","HeaderExtensionObject","view","CodecListObjectHeader","BoundedReader","tokenizer","size","token","value","length","buffer","ignored","readString","reader","UINT16_LE","StringType","readCodecEntries","payloadSize","codecHeader","entries","i","readCodecEntry","readInformation","type","ContentDescriptionObjectState","_ContentDescriptionObjectState","pos","tagName","end","parseUnicodeAttr","ExtendedContentDescriptionObjectState","attrCount","nameLen","valueLen","ExtendedStreamPropertiesObjectState","MetadataObjectState","uint8Array","descriptionRecordsCount","dataType","dataLen","MetadataLibraryObjectState","_WmPictureToken","len","offset","typeId","index","format","description","AttachedPictureType","debug","initDebug","headerType","maxAsfMetadataObjectSize","AsfParser","BasicParser","__name","header","TopLevelHeaderObjectToken","AsfGuid_default","AsfContentParseError","numberOfObjectHeaders","remainingHeaderSize","tags","index","payloadSize","FilePropertiesObject","fpo","StreamPropertiesObject","spo","HeaderExtensionObject","extensionHeaderToken","extHeader","expectedExtensionSize","ContentDescriptionObjectState","ExtendedContentDescriptionObjectState","codecs","readCodecEntries","error","message","codec","TrackType","audioCodecs","id","value","remainingSize","containerType","HeaderObjectToken","objectType","fileSize","available","ignored","EndOfStreamError","extensionSize","ExtendedStreamPropertiesObjectState","MetadataObjectState","moTags","MetadataLibraryObjectState","mlTags"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/AsfParser-BPPBZCR7.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js new file mode 100644 index 00000000..9c03a940 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js @@ -0,0 +1,3 @@ +import{a as b}from"./chunk-6XPFWKSW.js";import"./chunk-GSVEIULU.js";import{a as i}from"./chunk-LINMKWZS.js";import"./chunk-C5GF5WSP.js";import"./chunk-FHQAE777.js";import{A as z,B as w,H as S,I as D,d as T,f as y,i as u,k,n as I,o as l,x as f}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as h,d as F}from"./chunk-75KFZLU6.js";var C=F(y());var r={len:12,get:h((c,e)=>({chunkID:i.get(c,e),chunkSize:f.get(c,e+4)}),"get")};var a=(0,C.default)("music-metadata:parser:aiff"),m=class extends S("DSDIFF"){static{h(this,"DsdiffContentParseError")}},g=class extends D{static{h(this,"DsdiffParser")}async parse(){let e=await this.tokenizer.readToken(r);if(e.chunkID!=="FRM8")throw new m("Unexpected chunk-ID");this.metadata.setAudioOnly();let t=(await this.tokenizer.readToken(i)).trim();if(t==="DSD")return this.metadata.setFormat("container",`DSDIFF/${t}`),this.metadata.setFormat("lossless",!0),this.readFmt8Chunks(e.chunkSize-BigInt(i.len));throw new m(`Unsupported DSDIFF type: ${t}`)}async readFmt8Chunks(e){for(;e>=r.len;){let t=await this.tokenizer.readToken(r);a(`Chunk id=${t.chunkID}`),await this.readData(t),e-=BigInt(r.len)+t.chunkSize}}async readData(e){a(`Reading data of chunk[ID=${e.chunkID}, size=${e.chunkSize}]`);let t=this.tokenizer.position;switch(e.chunkID.trim()){case"FVER":{let o=await this.tokenizer.readToken(I);a(`DSDIFF version=${o}`);break}case"PROP":{if(await this.tokenizer.readToken(i)!=="SND ")throw new m("Unexpected PROP-chunk ID");await this.handleSoundPropertyChunks(e.chunkSize-BigInt(i.len));break}case"ID3":{let o=await this.tokenizer.readToken(new z(Number(e.chunkSize))),n=T(o);await new b().parse(this.metadata,n,this.options);break}case"DSD":this.metadata.format.numberOfChannels&&this.metadata.setFormat("numberOfSamples",Number(e.chunkSize*BigInt(8)/BigInt(this.metadata.format.numberOfChannels))),this.metadata.format.numberOfSamples&&this.metadata.format.sampleRate&&this.metadata.setFormat("duration",this.metadata.format.numberOfSamples/this.metadata.format.sampleRate);break;default:a(`Ignore chunk[ID=${e.chunkID}, size=${e.chunkSize}]`);break}let s=e.chunkSize-BigInt(this.tokenizer.position-t);s>0&&(a(`After Parsing chunk, remaining ${s} bytes`),await this.tokenizer.ignore(Number(s)))}async handleSoundPropertyChunks(e){for(a(`Parsing sound-property-chunks, remainingSize=${e}`);e>0;){let t=await this.tokenizer.readToken(r);a(`Sound-property-chunk[ID=${t.chunkID}, size=${t.chunkSize}]`);let s=this.tokenizer.position;switch(t.chunkID.trim()){case"FS":{let n=await this.tokenizer.readToken(l);this.metadata.setFormat("sampleRate",n);break}case"CHNL":{let n=await this.tokenizer.readToken(k);this.metadata.setFormat("numberOfChannels",n),await this.handleChannelChunks(t.chunkSize-BigInt(k.len));break}case"CMPR":{let n=(await this.tokenizer.readToken(i)).trim(),d=await this.tokenizer.readToken(u),p=await this.tokenizer.readToken(new w(d,"ascii"));n==="DSD"&&(this.metadata.setFormat("lossless",!0),this.metadata.setFormat("bitsPerSample",1)),this.metadata.setFormat("codec",`${n} (${p})`);break}case"ABSS":{let n=await this.tokenizer.readToken(k),d=await this.tokenizer.readToken(u),p=await this.tokenizer.readToken(u),$=await this.tokenizer.readToken(l);a(`ABSS ${n}:${d}:${p}.${$}`);break}case"LSCO":{let n=await this.tokenizer.readToken(k);a(`LSCO lsConfig=${n}`);break}default:a(`Unknown sound-property-chunk[ID=${t.chunkID}, size=${t.chunkSize}]`),await this.tokenizer.ignore(Number(t.chunkSize))}let o=t.chunkSize-BigInt(this.tokenizer.position-s);o>0&&(a(`After Parsing sound-property-chunk ${t.chunkSize}, remaining ${o} bytes`),await this.tokenizer.ignore(Number(o))),e-=BigInt(r.len)+t.chunkSize,a(`Parsing sound-property-chunks, remainingSize=${e}`)}if(this.metadata.format.lossless&&this.metadata.format.sampleRate&&this.metadata.format.numberOfChannels&&this.metadata.format.bitsPerSample){let t=this.metadata.format.sampleRate*this.metadata.format.numberOfChannels*this.metadata.format.bitsPerSample;this.metadata.setFormat("bitrate",t)}}async handleChannelChunks(e){a(`Parsing channel-chunks, remainingSize=${e}`);let t=[];for(;e>=i.len;){let s=await this.tokenizer.readToken(i);a(`Channel[ID=${s}]`),t.push(s),e-=BigInt(i.len)}return a(`Channels: ${t.join(", ")}`),t}};export{m as DsdiffContentParseError,g as DsdiffParser}; + +//# sourceMappingURL=./DsdiffParser-G2OOLUSE.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js.br new file mode 100644 index 0000000000000000000000000000000000000000..29febf7de674de5873c83fdc861a503d3328c9a9 GIT binary patch literal 1290 zcmb2XD!}k0YSrKOpOuzuJQ<~VeW{{vm!8+vnc1#KoXqqdFwR-_u>ScaxnFyCN!lj% zwa%F(_@r)9+4`3Zo`TOB0`8vW2;gz@({xyyW_07y`-DLA3&;HKT<})1-PwOcf62*v z8JmnYAKWcp`tz?>jsLQFY00hs!+(3$Sg+p~SAVpo51Do1OTebpAO5`!{rURWYip0iOD*+p8aH36-1qoz z%*-zj1deMh5kBU&qCtM+yo1YDd6XK3J+v2@AI9-_(WQ4Ef7~?}V0;3 z&pc&*H(b1N>EOiN3mYeAL_J)-Gvw8}#SPqbdw;3~O)#%elF)StoT}Pt_y5)}&%|8k zs2^eFv9CH!mv6T!KWD{d_~^&I_9n(fELtHIQ&tpC|vI8F=GX@FF(OR#!%M$NQ1TjY^NmCTns}+PKhvQ`<$aMbY~%wpTPB)nQh!UOT~Y z6T=F&I~+^7Z}L9d=_V_9){S*<%GrRE_Y{P#e-*xcH0oP*NB$SdOM)NQ9BHvvo;SCC zc1N_)lHAPa%x~40-PA67+~{wwQ`x)d>GscxzP3qILc@-HJXH8XEdPs{*@T1Ey*Z~} zKa7=K{;o)1)4r}p+Y}B=;M=lXrB zMs}9x4NiuPAL428i64I0HnVV@@m?hB`)=~I)OCDQ=CyBW$oQ_J+MDxb-D&mUwU3_F zWv@Q>;~~3X(Z)I2{(;ZiWczt)8umv2W^G=%jbANESIfigQKs)kXUQq7wQo=P_WoIZ z>CesG%5r%pZXFY!>2)n6IeD&@zKr^b$rM zlPZoIBEW-hqRIQ7F2bA^F~dl-?W@^|}p?wbDzPvu@p){O8fPsIG;^ z-L9;gY?S9r6jbSpb2?QylksLqT`>RFl7P$o+|iT0;u!T7eq85%O=)V~5>wU_XIvH~ zL`Ua1C6sEc>HL-bbk)9yE_MUCw4e2ci*Dq6Q4`vBQD50)*`Yb}I%|IN8;eif#dPO{ z?}5&X#)=*P7Qb}6|1V%$Pv`R9XS>3$EA2mhBJQNrD&-S*o?k1eI@8J#6Iqh;H%lz# z9Xmu-8^E`L)0J`SWvg&quxuZa@B#F=_kehKUv5&U^{`Qg1y=dRx(l@Aq>Y z7p(04l-1kv@YVvmze_j#?wai{vNW&bv}W71Uq`!Uyt%ZoBTz+TnqRSD+N;cmYa?!K QGT}Y=k>ShyK=IAt01jP@H~;_u literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js.map new file mode 100644 index 00000000..ecd530f2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsdiffParser-G2OOLUSE.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/dsdiff/DsdiffParser.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/dsdiff/DsdiffToken.js"],"sourcesContent":["import * as Token from 'token-types';\nimport initDebug from 'debug';\nimport * as strtok3 from 'strtok3';\nimport { FourCcToken } from '../common/FourCC.js';\nimport { BasicParser } from '../common/BasicParser.js';\nimport { ID3v2Parser } from '../id3v2/ID3v2Parser.js';\nimport { ChunkHeader64 } from './DsdiffToken.js';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nconst debug = initDebug('music-metadata:parser:aiff');\nexport class DsdiffContentParseError extends makeUnexpectedFileContentError('DSDIFF') {\n}\n/**\n * DSDIFF - Direct Stream Digital Interchange File Format (Phillips)\n *\n * Ref:\n * - http://www.sonicstudio.com/pdf/dsd/DSDIFF_1.5_Spec.pdf\n */\nexport class DsdiffParser extends BasicParser {\n async parse() {\n const header = await this.tokenizer.readToken(ChunkHeader64);\n if (header.chunkID !== 'FRM8')\n throw new DsdiffContentParseError('Unexpected chunk-ID');\n this.metadata.setAudioOnly();\n const type = (await this.tokenizer.readToken(FourCcToken)).trim();\n switch (type) {\n case 'DSD':\n this.metadata.setFormat('container', `DSDIFF/${type}`);\n this.metadata.setFormat('lossless', true);\n return this.readFmt8Chunks(header.chunkSize - BigInt(FourCcToken.len));\n default:\n throw new DsdiffContentParseError(`Unsupported DSDIFF type: ${type}`);\n }\n }\n async readFmt8Chunks(remainingSize) {\n while (remainingSize >= ChunkHeader64.len) {\n const chunkHeader = await this.tokenizer.readToken(ChunkHeader64);\n // If the data is an odd number of bytes in length, a pad byte must be added at the end\n debug(`Chunk id=${chunkHeader.chunkID}`);\n await this.readData(chunkHeader);\n remainingSize -= (BigInt(ChunkHeader64.len) + chunkHeader.chunkSize);\n }\n }\n async readData(header) {\n debug(`Reading data of chunk[ID=${header.chunkID}, size=${header.chunkSize}]`);\n const p0 = this.tokenizer.position;\n switch (header.chunkID.trim()) {\n case 'FVER': { // 3.1 FORMAT VERSION CHUNK\n const version = await this.tokenizer.readToken(Token.UINT32_LE);\n debug(`DSDIFF version=${version}`);\n break;\n }\n case 'PROP': { // 3.2 PROPERTY CHUNK\n const propType = await this.tokenizer.readToken(FourCcToken);\n if (propType !== 'SND ')\n throw new DsdiffContentParseError('Unexpected PROP-chunk ID');\n await this.handleSoundPropertyChunks(header.chunkSize - BigInt(FourCcToken.len));\n break;\n }\n case 'ID3': { // Unofficial ID3 tag support\n const id3_data = await this.tokenizer.readToken(new Token.Uint8ArrayType(Number(header.chunkSize)));\n const rst = strtok3.fromBuffer(id3_data);\n await new ID3v2Parser().parse(this.metadata, rst, this.options);\n break;\n }\n case 'DSD':\n if (this.metadata.format.numberOfChannels) {\n this.metadata.setFormat('numberOfSamples', Number(header.chunkSize * BigInt(8) / BigInt(this.metadata.format.numberOfChannels)));\n }\n if (this.metadata.format.numberOfSamples && this.metadata.format.sampleRate) {\n this.metadata.setFormat('duration', this.metadata.format.numberOfSamples / this.metadata.format.sampleRate);\n }\n break;\n default:\n debug(`Ignore chunk[ID=${header.chunkID}, size=${header.chunkSize}]`);\n break;\n }\n const remaining = header.chunkSize - BigInt(this.tokenizer.position - p0);\n if (remaining > 0) {\n debug(`After Parsing chunk, remaining ${remaining} bytes`);\n await this.tokenizer.ignore(Number(remaining));\n }\n }\n async handleSoundPropertyChunks(remainingSize) {\n debug(`Parsing sound-property-chunks, remainingSize=${remainingSize}`);\n while (remainingSize > 0) {\n const sndPropHeader = await this.tokenizer.readToken(ChunkHeader64);\n debug(`Sound-property-chunk[ID=${sndPropHeader.chunkID}, size=${sndPropHeader.chunkSize}]`);\n const p0 = this.tokenizer.position;\n switch (sndPropHeader.chunkID.trim()) {\n case 'FS': { // 3.2.1 Sample Rate Chunk\n const sampleRate = await this.tokenizer.readToken(Token.UINT32_BE);\n this.metadata.setFormat('sampleRate', sampleRate);\n break;\n }\n case 'CHNL': { // 3.2.2 Channels Chunk\n const numChannels = await this.tokenizer.readToken(Token.UINT16_BE);\n this.metadata.setFormat('numberOfChannels', numChannels);\n await this.handleChannelChunks(sndPropHeader.chunkSize - BigInt(Token.UINT16_BE.len));\n break;\n }\n case 'CMPR': { // 3.2.3 Compression Type Chunk\n const compressionIdCode = (await this.tokenizer.readToken(FourCcToken)).trim();\n const count = await this.tokenizer.readToken(Token.UINT8);\n const compressionName = await this.tokenizer.readToken(new Token.StringType(count, 'ascii'));\n if (compressionIdCode === 'DSD') {\n this.metadata.setFormat('lossless', true);\n this.metadata.setFormat('bitsPerSample', 1);\n }\n this.metadata.setFormat('codec', `${compressionIdCode} (${compressionName})`);\n break;\n }\n case 'ABSS': { // 3.2.4 Absolute Start Time Chunk\n const hours = await this.tokenizer.readToken(Token.UINT16_BE);\n const minutes = await this.tokenizer.readToken(Token.UINT8);\n const seconds = await this.tokenizer.readToken(Token.UINT8);\n const samples = await this.tokenizer.readToken(Token.UINT32_BE);\n debug(`ABSS ${hours}:${minutes}:${seconds}.${samples}`);\n break;\n }\n case 'LSCO': { // 3.2.5 Loudspeaker Configuration Chunk\n const lsConfig = await this.tokenizer.readToken(Token.UINT16_BE);\n debug(`LSCO lsConfig=${lsConfig}`);\n break;\n }\n default:\n debug(`Unknown sound-property-chunk[ID=${sndPropHeader.chunkID}, size=${sndPropHeader.chunkSize}]`);\n await this.tokenizer.ignore(Number(sndPropHeader.chunkSize));\n }\n const remaining = sndPropHeader.chunkSize - BigInt(this.tokenizer.position - p0);\n if (remaining > 0) {\n debug(`After Parsing sound-property-chunk ${sndPropHeader.chunkSize}, remaining ${remaining} bytes`);\n await this.tokenizer.ignore(Number(remaining));\n }\n remainingSize -= BigInt(ChunkHeader64.len) + sndPropHeader.chunkSize;\n debug(`Parsing sound-property-chunks, remainingSize=${remainingSize}`);\n }\n if (this.metadata.format.lossless && this.metadata.format.sampleRate && this.metadata.format.numberOfChannels && this.metadata.format.bitsPerSample) {\n const bitrate = this.metadata.format.sampleRate * this.metadata.format.numberOfChannels * this.metadata.format.bitsPerSample;\n this.metadata.setFormat('bitrate', bitrate);\n }\n }\n async handleChannelChunks(remainingSize) {\n debug(`Parsing channel-chunks, remainingSize=${remainingSize}`);\n const channels = [];\n while (remainingSize >= FourCcToken.len) {\n const channelId = await this.tokenizer.readToken(FourCcToken);\n debug(`Channel[ID=${channelId}]`);\n channels.push(channelId);\n remainingSize -= BigInt(FourCcToken.len);\n }\n debug(`Channels: ${channels.join(', ')}`);\n return channels;\n }\n}\n","import * as Token from 'token-types';\nimport { FourCcToken } from '../common/FourCC.js';\n/**\n * DSDIFF chunk header\n * The data-size encoding is deviating from EA-IFF 85\n * Ref: http://www.sonicstudio.com/pdf/dsd/DSDIFF_1.5_Spec.pdf\n */\nexport const ChunkHeader64 = {\n len: 12,\n get: (buf, off) => {\n return {\n // Group-ID\n chunkID: FourCcToken.get(buf, off),\n // Size\n chunkSize: Token.INT64_BE.get(buf, off + 4)\n };\n }\n};\n"],"mappings":"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","names":["import_debug","ChunkHeader64","__name","buf","off","FourCcToken","INT64_BE","debug","initDebug","DsdiffContentParseError","makeUnexpectedFileContentError","__name","DsdiffParser","BasicParser","header","ChunkHeader64","type","FourCcToken","remainingSize","chunkHeader","p0","version","UINT32_LE","id3_data","Uint8ArrayType","rst","fromBuffer","ID3v2Parser","remaining","sndPropHeader","sampleRate","UINT32_BE","numChannels","UINT16_BE","compressionIdCode","count","UINT8","compressionName","StringType","hours","minutes","seconds","samples","lsConfig","bitrate","channels","channelId"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/DsdiffParser-G2OOLUSE.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsfParser-43FUWDHS.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsfParser-43FUWDHS.js new file mode 100644 index 00000000..711e5daf --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/DsfParser-43FUWDHS.js @@ -0,0 +1,3 @@ +import{a as T}from"./chunk-BF2A4D4Q.js";import{a as I}from"./chunk-6XPFWKSW.js";import"./chunk-GSVEIULU.js";import{a as g}from"./chunk-LINMKWZS.js";import{e as z}from"./chunk-C5GF5WSP.js";import"./chunk-FHQAE777.js";import{H as u,f as C,t as s,u as d,v as p}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as o,d as S}from"./chunk-75KFZLU6.js";var F=S(C());var h={len:12,get:o((n,t)=>({id:g.get(n,t),size:d.get(n,t+4)}),"get")},l={len:16,get:o((n,t)=>({fileSize:d.get(n,t),metadataPointer:d.get(n,t+8)}),"get")};var c={len:40,get:o((n,t)=>({formatVersion:s.get(n,t),formatID:s.get(n,t+4),channelType:s.get(n,t+8),channelNum:s.get(n,t+12),samplingFrequency:s.get(n,t+16),bitsPerSample:s.get(n,t+20),sampleCount:p.get(n,t+24),blockSizePerChannel:s.get(n,t+32)}),"get")};var k=(0,F.default)("music-metadata:parser:DSF"),r=class extends u("DSD"){static{o(this,"DsdContentParseError")}},w=class extends T{static{o(this,"DsfParser")}async postId3v2Parse(){let t=this.tokenizer.position,a=await this.tokenizer.readToken(h);if(a.id!=="DSD ")throw new r("Invalid chunk signature");if(a.size!==BigInt(h.len+l.len))throw new r(`Invalid DSD chunk size: ${a.size}`);this.metadata.setFormat("container","DSF"),this.metadata.setFormat("lossless",!0),this.metadata.setAudioOnly();let e=await this.tokenizer.readToken(l);if(e.fileSizeBigInt(Number.MAX_SAFE_INTEGER)||e.metadataPointer+BigInt(z.len)>e.fileSize)throw new r(`Invalid metadata pointer: ${e.metadataPointer}`);return await this.tokenizer.ignore(Number(m)),new I().parse(this.metadata,this.tokenizer,this.options)}async parseChunks(t){let a=BigInt(h.len);for(;t>=a;){let e=await this.tokenizer.readToken(h);if(k(`Parsing chunk name=${e.id} size=${e.size}`),e.sizet)throw new r(`${e.id} chunk exceeds remaining file size`);let m=e.size-a;switch(e.id){case"fmt ":{if(mlU3TX|l2@?&Lb81PZmwqsR zxouv)=Z$?P}-WZlA)QpPX%{ zU-Im-fI#`qUR}NLr6w2dxAmu1Tn(9fYejQ`%HKNI$GYFI#>}gTS;gpNH*v61KScD~Bn=Pg>;#Q9}Mi-lse;j+}SZ&TKq6|1T}KbV*vwQ45YbS3@MXQNXO zpDy^Mn|AZ&;#D)hJaEoh(qP3OdH37A5W&gD-xNfiq?UdC^kc*ADNjFn?^@NL_ptic z-0!L z?3fcL!S>MC)5-6=wa$*ClX!I=W@|a_;g8CDIOBbEN5P(_LLR$Byt3x#tg{LE=J@uv z@_d6+em))!%|4HGqqHurQu9gaDtNCk_YgnBks?tx^#`AYIRv--d7{x!T;AwWaZ|lv zPr;S&_Zqp}=Rc`NX|C?N@@@Uvh>&aiTOuAUi`mKb??{o=Wcf9`SDJP^ckVdz`mT>s zMfruOD<^zM!ltac# zYA5Af;J1IjQ<-!243^Nti<5&mk6mau`qBE9?2@;u9>-11v|O3GyM0al?zgXaLKOaQ zHOkssb6a=s_uO7_+r{R`x6kf7Gi68BnPpZyQa_@Em^K{m**Dp@bHNSC8`I+d3d+A^ zxRvN*Vj9U2oud6|W^M;V)}yai`8;n<*!SngDW*rxYjm3hGB^3nblc2tqa$thLjBC_ z*7rwwVpj`3yQ^{M$jJ!ie);(|b00M_W^B}2bbgvcUSC`CtDugiN>O|3IlBdK)T&hO zdE=dtz!}Vg{6^I@#-w`eb;%%>s?Yp>%$G+ z&zQ;F{C$U^>_flrPom!i-rj0fDyS4@ BigInt(Number.MAX_SAFE_INTEGER) ||\n dsdChunk.metadataPointer + BigInt(ID3v2Header.len) > dsdChunk.fileSize) {\n throw new DsdContentParseError(`Invalid metadata pointer: ${dsdChunk.metadataPointer}`);\n }\n await this.tokenizer.ignore(Number(metadataOffset));\n return new ID3v2Parser().parse(this.metadata, this.tokenizer, this.options);\n }\n async parseChunks(bytesRemaining) {\n const chunkHeaderSize = BigInt(ChunkHeader.len);\n while (bytesRemaining >= chunkHeaderSize) {\n const chunkHeader = await this.tokenizer.readToken(ChunkHeader);\n debug(`Parsing chunk name=${chunkHeader.id} size=${chunkHeader.size}`);\n if (chunkHeader.size < chunkHeaderSize) {\n throw new DsdContentParseError(`Invalid ${chunkHeader.id} chunk size: ${chunkHeader.size}`);\n }\n if (chunkHeader.size > bytesRemaining) {\n throw new DsdContentParseError(`${chunkHeader.id} chunk exceeds remaining file size`);\n }\n const payloadSize = chunkHeader.size - chunkHeaderSize;\n switch (chunkHeader.id) {\n case 'fmt ': {\n if (payloadSize < BigInt(FormatChunk.len)) {\n throw new DsdContentParseError(`Invalid fmt chunk size: ${chunkHeader.size}`);\n }\n const formatChunk = await this.tokenizer.readToken(FormatChunk);\n this.metadata.setFormat('numberOfChannels', formatChunk.channelNum);\n this.metadata.setFormat('sampleRate', formatChunk.samplingFrequency);\n this.metadata.setFormat('bitsPerSample', formatChunk.bitsPerSample);\n this.metadata.setFormat('numberOfSamples', formatChunk.sampleCount);\n this.metadata.setFormat('duration', Number(formatChunk.sampleCount) / formatChunk.samplingFrequency);\n const bitrate = formatChunk.bitsPerSample *\n formatChunk.samplingFrequency *\n formatChunk.channelNum;\n this.metadata.setFormat('bitrate', bitrate);\n return; // We got what we want, stop further processing of chunks\n }\n default:\n await this.tokenizer.ignore(Number(payloadSize));\n break;\n }\n bytesRemaining -= chunkHeader.size;\n }\n }\n}\n","import * as Token from 'token-types';\nimport { FourCcToken } from '../common/FourCC.js';\n/**\n * Common chunk DSD header: the 'chunk name (Four-CC)' & chunk size\n */\nexport const ChunkHeader = {\n len: 12,\n get: (buf, off) => {\n return { id: FourCcToken.get(buf, off), size: Token.UINT64_LE.get(buf, off + 4) };\n }\n};\n/**\n * Common chunk DSD header: the 'chunk name (Four-CC)' & chunk size\n */\nexport const DsdChunk = {\n len: 16,\n get: (buf, off) => {\n return {\n fileSize: Token.UINT64_LE.get(buf, off),\n metadataPointer: Token.UINT64_LE.get(buf, off + 8)\n };\n }\n};\nexport const ChannelType = {\n mono: 1,\n stereo: 2,\n channels: 3,\n quad: 4,\n '4 channels': 5,\n '5 channels': 6,\n '5.1 channels': 7\n};\n/**\n * Common chunk DSD header: the 'chunk name (Four-CC)' & chunk size\n */\nexport const FormatChunk = {\n len: 40,\n get: (buf, off) => {\n return {\n formatVersion: Token.INT32_LE.get(buf, off),\n formatID: Token.INT32_LE.get(buf, off + 4),\n channelType: Token.INT32_LE.get(buf, off + 8),\n channelNum: Token.INT32_LE.get(buf, off + 12),\n samplingFrequency: Token.INT32_LE.get(buf, off + 16),\n bitsPerSample: Token.INT32_LE.get(buf, off + 20),\n sampleCount: Token.INT64_LE.get(buf, off + 24),\n blockSizePerChannel: Token.INT32_LE.get(buf, off + 32)\n };\n }\n};\n"],"mappings":"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","names":["import_debug","ChunkHeader","__name","buf","off","FourCcToken","UINT64_LE","DsdChunk","FormatChunk","__name","buf","off","INT32_LE","INT64_LE","debug","initDebug","DsdContentParseError","makeUnexpectedFileContentError","__name","DsfParser","AbstractID3Parser","p0","chunkHeader","ChunkHeader","DsdChunk","dsdChunk","metadataOffset","ID3v2Header","ID3v2Parser","bytesRemaining","chunkHeaderSize","payloadSize","FormatChunk","formatChunk","bitrate"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/DsfParser-43FUWDHS.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js new file mode 100644 index 00000000..983b4eab --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js @@ -0,0 +1,3 @@ +import{f as a}from"./chunk-N4UC4CSU.js";import"./chunk-BF2A4D4Q.js";import"./chunk-6XPFWKSW.js";import"./chunk-GSVEIULU.js";import"./chunk-LINMKWZS.js";import"./chunk-C5GF5WSP.js";import"./chunk-FHQAE777.js";import"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import"./chunk-75KFZLU6.js";export{a as FlacParser}; + +//# sourceMappingURL=./FlacParser-O2YMFBMO.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js.br new file mode 100644 index 0000000000000000000000000000000000000000..609726b2dec0914d441fef9ae63aabcda74399b8 GIT binary patch literal 144 zcmb2PVPr`8_xx)3rF*|lzVx1a%TZ~DY{fFedE1^!E|a>!Y=5U=t}Cx-VXgSLA6fnX zANwzln!WB_d+yO(^%cE~mh9STrM%tJ=@v`w9li~-f13mcmZb-Jxh$#=p!2`Z(;xd DZmvjg literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js.map new file mode 100644 index 00000000..d63feb0a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/FlacParser-O2YMFBMO.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/FlacParser-O2YMFBMO.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MP4Parser-MX56ESYJ.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MP4Parser-MX56ESYJ.js new file mode 100644 index 00000000..2ff880d7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MP4Parser-MX56ESYJ.js @@ -0,0 +1,3 @@ +import"./chunk-RXUZEKYV.js";import{b as ie}from"./chunk-RN5G2ZPZ.js";import{a as ce}from"./chunk-GSVEIULU.js";import{a as ee}from"./chunk-LINMKWZS.js";import"./chunk-C5GF5WSP.js";import{a as re,c as g}from"./chunk-FHQAE777.js";import{A,B as w,C as K,F as b,H as oe,I as le,f as Y,g as P,i as p,k as m,m as I,o,p as _,q as N,r as Z,s as k,w as E}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as l,d as X}from"./chunk-75KFZLU6.js";var Ne=X(Y());var ke=X(Y());var me=X(Y());var ae=(0,me.default)("music-metadata:parser:MP4:atom"),B=class extends oe("MP4"){static{l(this,"Mp4ContentError")}},S={len:8,get:l((r,e)=>{let t=o.get(r,e);if(t<0)throw new B("Invalid atom header length");return{length:BigInt(t),name:new w(4,"latin1").get(r,e+4)}},"get"),put:l((r,e,t)=>(o.put(r,e,Number(t.length)),ee.put(r,e+4,t.name)),"put")},Te=E,ne={len:4,get:l((r,e)=>({type:new w(4,"ascii").get(r,e)}),"get")};var C=class{static{l(this,"FixedLengthAtom")}constructor(e,t,a){if(et&&ae(`Warning: atom ${a} expected to be ${t}, but was actually ${e} bytes long.`),this.len=e}},y={len:4,get:l((r,e)=>{let t=o.get(r,e)-2082844800;return new Date(t*1e3)},"get")},z={len:8,get:l((r,e)=>{let t=Number(E.get(r,e))-2082844800;return new Date(t*1e3)},"get")},$=class extends C{static{l(this,"MdhdAtom")}constructor(e){super(e,24,"mdhd")}get(e,t){let a=p.get(e,t+0),n=I.get(e,t+1);switch(a){case 0:return{version:a,flags:n,creationTime:y.get(e,t+4),modificationTime:y.get(e,t+8),timeScale:o.get(e,t+12),duration:o.get(e,t+16),language:m.get(e,t+20),quality:m.get(e,t+22)};case 1:return{version:a,flags:n,creationTime:z.get(e,t+4),modificationTime:z.get(e,t+12),timeScale:o.get(e,t+20),duration:Number(E.get(e,t+24)),language:m.get(e,t+32),quality:m.get(e,t+34)};default:throw new b("Invalid mdhd version header")}}},O=class extends C{static{l(this,"MvhdAtom")}constructor(e){super(e,100,"mvhd")}get(e,t){let a=p.get(e,t),n=I.get(e,t+1);return a===1?{version:a,flags:n,creationTime:z.get(e,t+4),modificationTime:z.get(e,t+12),timeScale:o.get(e,t+20),duration:Number(E.get(e,t+24)),preferredRate:o.get(e,t+32),preferredVolume:m.get(e,t+36),previewTime:o.get(e,t+84),previewDuration:o.get(e,t+88),posterTime:o.get(e,t+92),selectionTime:o.get(e,t+96),selectionDuration:o.get(e,t+100),currentTime:o.get(e,t+104),nextTrackID:o.get(e,t+108)}:{version:a,flags:n,creationTime:y.get(e,t+4),modificationTime:y.get(e,t+8),timeScale:o.get(e,t+12),duration:o.get(e,t+16),preferredRate:o.get(e,t+20),preferredVolume:m.get(e,t+24),previewTime:o.get(e,t+72),previewDuration:o.get(e,t+76),posterTime:o.get(e,t+80),selectionTime:o.get(e,t+84),selectionDuration:o.get(e,t+88),currentTime:o.get(e,t+92),nextTrackID:o.get(e,t+96)}}},F=class{static{l(this,"DataAtom")}constructor(e){this.len=e}get(e,t){return{type:{set:p.get(e,t+0),type:I.get(e,t+1)},locale:I.get(e,t+4),value:new A(this.len-8).get(e,t+8)}}},L=class{static{l(this,"NameAtom")}constructor(e){this.len=e}get(e,t){return{version:p.get(e,t),flags:I.get(e,t+1),name:new w(this.len-4,"utf-8").get(e,t+4)}}},M=class{static{l(this,"TrackHeaderAtom")}constructor(e){this.len=e}get(e,t){let a=p.get(e,t),n=I.get(e,t+1);switch(a){case 0:return{version:a,flags:n,creationTime:y.get(e,t+4),modificationTime:y.get(e,t+8),trackId:o.get(e,t+12),duration:o.get(e,t+20),layer:m.get(e,t+32),alternateGroup:m.get(e,t+34),volume:m.get(e,t+36)};case 1:return{version:a,flags:n,creationTime:z.get(e,t+4),modificationTime:z.get(e,t+12),trackId:o.get(e,t+20),duration:Number(E.get(e,t+28)),layer:m.get(e,t+44),alternateGroup:m.get(e,t+46),volume:m.get(e,t+48)};default:throw new b("Invalid tkhd version header")}}},de={len:8,get:l((r,e)=>({version:p.get(r,e),flags:I.get(r,e+1),numberOfEntries:o.get(r,e+4)}),"get")},te=class{static{l(this,"SampleDescriptionTable")}constructor(e){this.len=e}get(e,t){let a=this.len-12;return{dataFormat:ee.get(e,t),dataReferenceIndex:m.get(e,t+10),description:a>0?new A(a).get(e,t+12):void 0}}},x=class{static{l(this,"StsdAtom")}constructor(e){this.len=e}get(e,t){let a=de.get(e,t);t+=de.len;let n=[];for(let s=0;s=this.len){ae("TrackRunBox size mismatch");break}let c={};n.flags.sampleDurationPresent&&(c.sampleDuration=o.get(e,s),s+=4),n.flags.sampleSizePresent&&(c.sampleSize=o.get(e,s),s+=4),n.flags.sampleFlagsPresent&&(c.sampleFlags=o.get(e,s),s+=4),n.flags.sampleCompositionTimeOffsetsPresent&&(c.sampleCompositionTimeOffset=o.get(e,s),s+=4),n.samples.push(c)}return n}},G=class{static{l(this,"HandlerBox")}constructor(e){this.len=e}get(e,t){let a=t+1,n=new w(4,"utf-8");return{version:_.get(e,t),flags:I.get(e,t+1),componentType:n.get(e,t+4),handlerType:n.get(e,t+8),componentName:new w(this.len-28,"utf-8").get(e,t+28)}}},q=class{static{l(this,"ChapterTrackReferenceBox")}constructor(e){this.len=e}get(e,t){let a=0,n=[];for(;a0;){let n=await r.readAtom(e,t,this,a);this.children.push(n),a-=n.header.length===0n?a:Number(n.header.length)}}async readData(e,t,a){switch(this.header.name){case"moov":case"udta":case"mdia":case"minf":case"stbl":case"":case"ilst":case"tref":case"moof":return this.readAtoms(e,t,this.getPayloadLength(a));case"meta":{let s=(await e.peekToken(S)).name==="hdlr"?0:4;return await e.ignore(s),this.readAtoms(e,t,this.getPayloadLength(a)-s)}default:return t(this,a)}}};var h=(0,Ne.default)("music-metadata:parser:MP4"),ye="iTunes",ue={raw:{lossy:!1,format:"raw"},MAC3:{lossy:!0,format:"MACE 3:1"},MAC6:{lossy:!0,format:"MACE 6:1"},ima4:{lossy:!0,format:"IMA 4:1"},ulaw:{lossy:!0,format:"uLaw 2:1"},alaw:{lossy:!0,format:"uLaw 2:1"},Qclp:{lossy:!0,format:"QUALCOMM PureVoice"},".mp3":{lossy:!0,format:"MPEG-1 layer 3"},alac:{lossy:!1,format:"ALAC"},"ac-3":{lossy:!0,format:"AC-3"},mp4a:{lossy:!0,format:"MPEG-4/AAC"},mp4s:{lossy:!0,format:"MP4S"},c608:{lossy:!0,format:"CEA-608"},c708:{lossy:!0,format:"CEA-708"}};function Ie(r,e,t){return t.indexOf(r)===e}l(Ie,"distinct");function we(r){let[e]=r.soundSampleDescription??[];return e?r.isAudio?r.isAudio():!!e.description&&e.description.numAudioChannels>0:!1}l(we,"isAudioTrack");var Be=class r extends le{static{l(this,"MP4Parser")}constructor(){super(...arguments),this.tracks=new Map,this.hasVideoTrack=!1,this.hasAudioTrack=!0,this.atomParsers={mvhd:l(async e=>{let t=await this.tokenizer.readToken(new O(e));this.metadata.setFormat("creationTime",t.creationTime),this.metadata.setFormat("modificationTime",t.modificationTime)},"mvhd"),chap:l(async e=>{let t=this.getTrackDescription(),a=[];for(;e>=o.len;)a.push(await this.tokenizer.readNumber(o)),e-=o.len;t.chapterList=a},"chap"),mdat:l(async e=>{if(this.options.includeChapters){let t=[...this.tracks.values()].filter(a=>a.chapterList);if(t.length===1){let a=t[0].chapterList,n=[...this.tracks.values()].filter(s=>a.indexOf(s.header.trackId)!==-1);if(n.length===1)return this.parseChapterTrack(n[0],t[0],e)}}await this.tokenizer.ignore(e)},"mdat"),ftyp:l(async e=>{let t=[];for(;e>0;){let n=await this.tokenizer.readToken(ne);e-=ne.len;let s=n.type.replace(/\W/g,"");s.length>0&&t.push(s)}h(`ftyp: ${t.join("/")}`);let a=t.filter(Ie).join("/");this.metadata.setFormat("container",a)},"ftyp"),stsd:l(async e=>{let t=await this.tokenizer.readToken(new x(e)),a=this.getTrackDescription();a.soundSampleDescription=t.table.map(n=>this.parseSoundSampleDescription(n))},"stsd"),stsz:l(async e=>{let t=await this.tokenizer.readToken(new v(e)),a=this.getTrackDescription();a.sampleSize=t.sampleSize,a.sampleSizeTable=t.entries},"stsz"),date:l(async e=>{let t=await this.tokenizer.readToken(new w(e,"utf-8"));await this.addTag("date",t)},"date")}}static read_BE_Integer(e,t){let a=(t?"INT":"UINT")+e.length*8+(e.length>1?"_BE":""),n=K[a];if(!n)throw new B(`Token for integer type not found: "${a}"`);return Number(n.get(e,0))}async parse(){this.hasVideoTrack=!1,this.hasAudioTrack=!0,this.tracks.clear();let e=this.tokenizer.fileInfo.size||0;for(;!this.tokenizer.fileInfo.size||e>0;){try{if((await this.tokenizer.peekToken(S)).name==="\0\0\0\0"){let i=`Error at offset=${this.tokenizer.position}: box.id=0`;h(i),this.addWarning(i);break}}catch(s){if(s instanceof Error){let i=`Error at offset=${this.tokenizer.position}: ${s.message}`;h(i),this.addWarning(i)}else throw s;break}let n=await J.readAtom(this.tokenizer,(s,i)=>this.handleAtom(s,i),null,e);e-=n.header.length===BigInt(0)?e:Number(n.header.length)}let t=[];this.tracks.forEach(n=>{let s=[],i=we(n);n.soundSampleDescription.forEach(c=>{let d={},T=ue[c.dataFormat];if(T?(s.push(T.format),d.codecName=T.format):d.codecName=`<${c.dataFormat}>`,i&&c.description){let{description:u}=c;u.sampleRate>0&&(d.type=ie.audio,d.audio={samplingFrequency:u.sampleRate,bitDepth:u.sampleSize,channels:u.numAudioChannels})}this.metadata.addStreamInfo(d)}),s.length>=1&&t.push(s.join("/"))}),t.length>0&&this.metadata.setFormat("codec",t.filter(Ie).join("+"));let a=[...this.tracks.values()].filter(we);for(let n of a){if(n.media.header&&n.media.header.timeScale>0)if(n.sampleRate=n.media.header.timeScale,n.media.header.duration>0&&(h("Using duration defined on audio track"),n.samples=n.media.header.duration,n.duration=n.samples/n.sampleRate),n.fragments.length>0){h("Calculate duration defined in track fragments");let c=0;n.sizeInBytes=0;for(let d of n.fragments)for(let T of d.trackRun.samples){let u=T.sampleDuration??d.header.defaultSampleDuration??0,U=T.sampleSize??d.header.defaultSampleSize??0;if(u===0)throw new Error("Missing sampleDuration and no defaultSampleDuration in track fragment header");if(U===0)throw new Error("Missing sampleSize and no defaultSampleSize in track fragment header");c+=u,n.sizeInBytes+=U}n.samples||(n.samples=c),n.duration||(n.duration=c/n.sampleRate)}else n.sampleSizeTable.length>0&&(n.sizeInBytes=n.sampleSizeTable.reduce((c,d)=>c+d,0));let s=n.soundSampleDescription[0];if(s.description&&n.media.header&&(this.metadata.setFormat("sampleRate",s.description.sampleRate),this.metadata.setFormat("bitsPerSample",s.description.sampleSize),this.metadata.setFormat("numberOfChannels",s.description.numAudioChannels),n.media.header.timeScale===0&&n.timeToSampleTable.length>0)){let c=n.timeToSampleTable.map(d=>d.count*d.duration).reduce((d,T)=>d+T);n.duration=c/s.description.sampleRate}let i=ue[s.dataFormat];i&&this.metadata.setFormat("lossless",!i.lossy)}if(a.length>=1){let n=a[0];n.duration&&(this.metadata.setFormat("duration",n.duration),n.sizeInBytes&&this.metadata.setFormat("bitrate",8*n.sizeInBytes/n.duration))}this.metadata.setFormat("hasAudio",this.hasAudioTrack),this.metadata.setFormat("hasVideo",this.hasVideoTrack)}async handleAtom(e,t){if(e.parent)switch(e.parent.header.name){case"ilst":case"":return this.parseMetadataItemData(e);case"moov":switch(e.header.name){case"trak":return this.parseTrackBox(e);case"udta":return this.parseTrackBox(e)}break;case"moof":if(e.header.name==="traf")return this.parseTrackFragmentBox(e)}if(this.atomParsers[e.header.name])return this.atomParsers[e.header.name](t);h(`No parser for atom path=${e.atomPath}, payload-len=${t}, ignoring atom`),await this.tokenizer.ignore(t)}getTrackDescription(){let e=[...this.tracks.values()];return e[e.length-1]}async addTag(e,t){await this.metadata.addTag(ye,e,t)}addWarning(e){h(`Warning: ${e}`),this.metadata.addWarning(e)}parseMetadataItemData(e){let t=e.header.name;return e.readAtoms(this.tokenizer,async(a,n)=>{let s=a.getPayloadLength(n);switch(a.header.name){case"data":return this.parseValueAtom(t,a);case"name":case"mean":case"rate":{let i=await this.tokenizer.readToken(new L(s));t+=`:${i.name}`;break}default:{let i=await this.tokenizer.readToken(new A(s));this.addWarning(`Unsupported meta-item: ${t}[${a.header.name}] => value=${re(i)} ascii=${P(i,"ascii")}`)}}},e.getPayloadLength(0))}async parseValueAtom(e,t){let a=await this.tokenizer.readToken(new F(Number(t.header.length)-S.len));if(a.type.set!==0)throw new B(`Unsupported type-set != 0: ${a.type.set}`);switch(a.type.type){case 0:switch(e){case"trkn":case"disk":{let n=p.get(a.value,3),s=p.get(a.value,5);await this.addTag(e,`${n}/${s}`);break}case"gnre":{let n=p.get(a.value,1),s=ce[n-1];await this.addTag(e,s);break}case"rate":{let n=P(a.value,"ascii");await this.addTag(e,n);break}default:h(`unknown proprietary value type for: ${t.atomPath}`)}break;case 1:case 18:await this.addTag(e,P(a.value));break;case 13:if(this.options.skipCovers)break;await this.addTag(e,{format:"image/jpeg",data:Uint8Array.from(a.value)});break;case 14:if(this.options.skipCovers)break;await this.addTag(e,{format:"image/png",data:Uint8Array.from(a.value)});break;case 21:await this.addTag(e,r.read_BE_Integer(a.value,!0));break;case 22:await this.addTag(e,r.read_BE_Integer(a.value,!1));break;case 65:await this.addTag(e,p.get(a.value,0));break;case 66:await this.addTag(e,m.get(a.value,0));break;case 67:await this.addTag(e,o.get(a.value,0));break;default:this.addWarning(`atom key=${e}, has unknown well-known-type (data-type): ${a.type.type}`)}}async parseTrackBox(e){let t={media:{},fragments:[]};await e.readAtoms(this.tokenizer,async(a,n)=>{let s=a.getPayloadLength(n);switch(a.header.name){case"chap":{let i=await this.tokenizer.readToken(new q(n));t.chapterList=i;break}case"tkhd":t.header=await this.tokenizer.readToken(new M(s));break;case"hdlr":t.handler=await this.tokenizer.readToken(new G(s)),t.isAudio=()=>t.handler.handlerType==="audi"||t.handler.handlerType==="soun",t.isVideo=()=>t.handler.handlerType==="vide",t.isAudio()?this.hasAudioTrack=!0:t.isVideo()&&(this.hasVideoTrack=!0);break;case"mdhd":{let i=await this.tokenizer.readToken(new $(s));t.media.header=i;break}case"stco":{let i=await this.tokenizer.readToken(new W(s));t.chunkOffsetTable=i.entries;break}case"stsc":{let i=await this.tokenizer.readToken(new V(s));t.sampleToChunkTable=i.entries;break}case"stsd":{let i=await this.tokenizer.readToken(new x(s));t.soundSampleDescription=i.table.map(c=>this.parseSoundSampleDescription(c));break}case"stts":{let i=await this.tokenizer.readToken(new R(s));t.timeToSampleTable=i.entries;break}case"stsz":{let i=await this.tokenizer.readToken(new v(s));t.sampleSize=i.sampleSize,t.sampleSizeTable=i.entries;break}case"dinf":case"vmhd":case"smhd":h(`Ignoring: ${a.header.name}`),await this.tokenizer.ignore(s);break;default:h(`Unexpected track box: ${a.header.name}`),await this.tokenizer.ignore(s)}},e.getPayloadLength(0)),this.tracks.set(t.header.trackId,t)}parseTrackFragmentBox(e){let t;return e.readAtoms(this.tokenizer,async(a,n)=>{let s=a.getPayloadLength(n);switch(a.header.name){case"tfhd":{let i=new f(a.getPayloadLength(n));t=await this.tokenizer.readToken(i);break}case"tfdt":await this.tokenizer.ignore(s);break;case"trun":{let i=new j(s),c=await this.tokenizer.readToken(i);t&&this.tracks.get(t.trackId)?.fragments.push({header:t,trackRun:c});break}default:h(`Unexpected box: ${a.header.name}`),await this.tokenizer.ignore(s)}},e.getPayloadLength(0))}parseSoundSampleDescription(e){let t={dataFormat:e.dataFormat,dataReferenceIndex:e.dataReferenceIndex},a=0,{description:n}=e;if(n&&n.length>=Q.len){let s=Q.get(n,a);a+=Q.len,s.version===0||s.version===1?n.length>=a+se.len?t.description=se.get(n,a):h(`Warning: sound-sample-description too short: ${n.length} bytes`):h(`Warning: sound-sample-description ${s} not implemented`)}return t}async parseChapterTrack(e,t,a){if(!e.sampleSize&&e.chunkOffsetTable.length!==e.sampleSizeTable.length)throw new Error("Expected equal chunk-offset-table & sample-size-table length.");let n=[];for(let s=0;s0;++s){let i=e.timeToSampleTable.slice(0,s).reduce((Ee,Se)=>Ee+Se.duration,0),d=e.chunkOffsetTable[s]-this.tokenizer.position,T=e.sampleSize>0?e.sampleSize:e.sampleSizeTable[s];if(a-=d+T,a<0)throw new B("Chapter chunk exceeding token length");await this.tokenizer.ignore(d);let u=await this.tokenizer.readToken(new H(T));h(`Chapter ${s+1}: ${u}`);let U={title:u,timeScale:e.media.header?e.media.header.timeScale:0,start:i,sampleOffset:this.findSampleOffset(t,this.tokenizer.position)};h(`Chapter title=${U.title}, offset=${U.sampleOffset}/${t.header.duration}`),n.push(U)}this.metadata.setFormat("chapters",n),await this.tokenizer.ignore(a)}findSampleOffset(e,t){let a=0;for(;a=t[a].firstChunk&&eNTOtoxf@?U-Dv@UcFJsuc*WI`MJNWTFZjWs>+*IU9Ps5sBbe)Xls9>H-Yh!Ut>tj z+NJjI>xGODFO-~Gq_fuf{VJbOkG;E}-6_e7ol?hh_2yl19>;x4%B9!+TmJn`ciuz+ zg%%0hL?0VBsk!32C*N%6w-?)gY<_)R_rHi)hqs&cyF@Lzn0(FZ|DxaD<*oNG+rP;u zyl|)exqZFr-M3x!_MEwW^6%Z}@As!|+WYq6?|$?5`_C`y2+L}D^u9%R-|0O+zm!_+ z+p{Mov#sE+bw%67`RcW8vnR_vyzJF#PW;2P(%x}K` zA>R6>+^flTjkcNm=Q)#S-Fx`u^4TY+zrT)uy!+1l`n&#ea(ZqD8LuclWZyM^SIz&Q z&#u2+#C>YlTe+kB-zFDw_r9Ml6P5O)G=fLfZPWTt3%~cBgtq=d%X2*9XO7 z%M#YGJy~>L=GNH`;m|Fv+keb{R(1GJ=$X6g*3IiYm|k@D#Sw`mN?R(PTw;t}bj!~6 zZtv}ySliv#Zg&>0o!mT8HO=GJc^%eQLDPgznTPQN9m@0E{z9Yu@ynGA>$XOU%KF>J z8hqd?-g$899Ok6&|EO zo0p>j+4=5;QRd9&ZGUzUhfZ0+~4D> zD=ypUCDixqt?&2L?e>t1JY>6Su268Nx#7cX2`6>ds8w?p-I>fN)$wGlcVUm%J%bKQ z3B$@P6`S%W^N*_Jb7f9EGE=l5T|Px<(Ydy>JTVz58;w3Lo3{5+q?ct(){_H^+?TOm zd~h_a)g~bj&omabz0yP&N4xGbCJLLvxnMWHr#q>r~c=Qhu`1mKfO+mtuH7= zM?AZcTz1O6pig}6UUALxnG?_KQR=tjdNNae@uPiQf9}_Q{@@z#clq+_`9};de0n*t z?orjB`dBW-NsRmVKGu|!UnI9AT6TusL;t^FvVKcF=Dbr^G4$x$mbZ4g6MM~t^G@r_ zD|Vf-S|k7M&*hIfOm2tx-^~(`_kA?Od7kUqdtQ&GIDcz>`Sr;Y<{$N2j@PCw3p>NU zGjdz;RnPNZQ=i|7DLbF4&sG^_{$oo;b9wjnOZKtCK83=5@<-WUE_wKJq312>&FW&u z=iiDbnK|Dr;KV;KxuW+M+-;vuC{LCOkln<4*YZu_OQy5SABm|s{|;X<_npR!f2|yR zsy>spn0q(QyQB6dP)Pi8aACVrg78Yaz+02Wt?x0*Wu2RFYTALgf@^NB+;z;p;k_jm z&y|~w=~NVD9M6?m!hWSYecr{#%+}j8tNb#*n=Re@p(5{2-L^v}x}BQ(4u^Or6=Ybf zx~e~WqosAj9$6dzPpLt*`Ue)?+xNm}+HvM{+ppH#x?}!T^ukhump<+ZT&$`c>YmdT zv&ilbMGX<$Jak8Y`F1mmFw39tJ;lbeB$C+`F6rf0VVe` z*>eY37d^F=o;mG`G3U~*q_kr)e^=?O5MDC7`%X4@i+a*ed65zen}va)bKibVxm&#< z%fj~Mg8vf5TJ7pfS6^H=!MtvRh2orrY_?~7_CMVA$~81BW8NBVz~%C&a_yLFefE1D);)?YKvSJY2^QT6u8Q;Ki> z=l!0v`b)j8+16z&f8Og^r_5#(*HLd=oyfn$;aSvz6+hP|U1gOh%3BgKS#Hw1Ir4RV zGmE$FIH2Wt>i(}rQ)5%DV;L$OiFR}5Ch@ZIdTh~4uUTZZktN|o{*(Fa(K`S9zCTg+ zyKe5Q?w5N0&yv}m9viDJiEKSC@G`?g^`#Bp&$-Ue7p|D}ZE3s6{EDOBJ#6xdYYNxz zeqVl6g8%))nJ4FDEqwgE^yVkN(*dg$4qho-@JK29y!Q5tBZo~C{_LKaVR~$G`H>A? z4;N}%eH7jQ%;2x~@j25HcAgU4e!j)vy_Mk9ZB;9C=g!Jcwq0YkFh*ph@$VKXoqs

=cBo}abT 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 QDth^sPJTGE@%(>w0N`qD?EnA( literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MP4Parser-MX56ESYJ.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MP4Parser-MX56ESYJ.js.map new file mode 100644 index 00000000..43f2d6dc --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MP4Parser-MX56ESYJ.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/mp4/MP4Parser.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/mp4/Atom.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/mp4/AtomToken.js"],"sourcesContent":["import initDebug from 'debug';\nimport * as Token from 'token-types';\nimport { BasicParser } from '../common/BasicParser.js';\nimport { Genres } from '../id3v1/ID3v1Parser.js';\nimport { Atom } from './Atom.js';\nimport * as AtomToken from './AtomToken.js';\nimport { ChapterTrackReferenceBox, Mp4ContentError } from './AtomToken.js';\nimport { TrackType } from '../type.js';\nimport { uint8ArrayToHex } from 'uint8array-extras';\nimport { textDecode } from '@borewit/text-codec';\nconst debug = initDebug('music-metadata:parser:MP4');\nconst tagFormat = 'iTunes';\nconst encoderDict = {\n raw: {\n lossy: false,\n format: 'raw'\n },\n MAC3: {\n lossy: true,\n format: 'MACE 3:1'\n },\n MAC6: {\n lossy: true,\n format: 'MACE 6:1'\n },\n ima4: {\n lossy: true,\n format: 'IMA 4:1'\n },\n ulaw: {\n lossy: true,\n format: 'uLaw 2:1'\n },\n alaw: {\n lossy: true,\n format: 'uLaw 2:1'\n },\n Qclp: {\n lossy: true,\n format: 'QUALCOMM PureVoice'\n },\n '.mp3': {\n lossy: true,\n format: 'MPEG-1 layer 3'\n },\n alac: {\n lossy: false,\n format: 'ALAC'\n },\n 'ac-3': {\n lossy: true,\n format: 'AC-3'\n },\n mp4a: {\n lossy: true,\n format: 'MPEG-4/AAC'\n },\n mp4s: {\n lossy: true,\n format: 'MP4S'\n },\n // Closed Captioning Media, https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-SW87\n c608: {\n lossy: true,\n format: 'CEA-608'\n },\n c708: {\n lossy: true,\n format: 'CEA-708'\n }\n};\nfunction distinct(value, index, self) {\n return self.indexOf(value) === index;\n}\n/**\n * Determine if a track carries audio.\n *\n * Ref: ISO/IEC 14496-12, 8.5.2: the sample entries in a sample description box are track-type specific,\n * selected by the handler type of the enclosing track. Only an audio track holds an AudioSampleEntry, so\n * only such a track may be described by a sound sample description; `isAudio()` treats both the 'soun'\n * and 'audi' handler types as audio.\n *\n * Falls back to the sample description when no handler box was found, preserving the previous behavior.\n */\nfunction isAudioTrack(track) {\n const [ssd] = track.soundSampleDescription ?? [];\n if (!ssd) {\n return false;\n }\n if (track.isAudio) {\n return track.isAudio();\n }\n return !!ssd.description && ssd.description.numAudioChannels > 0;\n}\n/*\n * Parser for the MP4 (MPEG-4 Part 14) container format\n * Standard: ISO/IEC 14496-14\n * supporting:\n * - QuickTime container\n * - MP4 File Format\n * - 3GPP file format\n * - 3GPP2 file format\n *\n * MPEG-4 Audio / Part 3 (.m4a)& MPEG 4 Video (m4v, mp4) extension.\n * Support for Apple iTunes tags as found in a M4A/M4V files.\n * Ref:\n * https://en.wikipedia.org/wiki/ISO_base_media_file_format\n * https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/Metadata/Metadata.html\n * http://atomicparsley.sourceforge.net/mpeg-4files.html\n * https://github.com/sergiomb2/libmp4v2/wiki/iTunesMetadata\n * https://wiki.multimedia.cx/index.php/QuickTime_container\n */\nexport class MP4Parser extends BasicParser {\n constructor() {\n super(...arguments);\n this.tracks = new Map();\n this.hasVideoTrack = false;\n this.hasAudioTrack = true;\n this.atomParsers = {\n /**\n * Parse movie header (mvhd) atom\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-56313\n */\n mvhd: async (len) => {\n const mvhd = await this.tokenizer.readToken(new AtomToken.MvhdAtom(len));\n this.metadata.setFormat('creationTime', mvhd.creationTime);\n this.metadata.setFormat('modificationTime', mvhd.modificationTime);\n },\n chap: async (len) => {\n const td = this.getTrackDescription();\n const trackIds = [];\n while (len >= Token.UINT32_BE.len) {\n trackIds.push(await this.tokenizer.readNumber(Token.UINT32_BE));\n len -= Token.UINT32_BE.len;\n }\n td.chapterList = trackIds;\n },\n /**\n * Parse mdat atom.\n * Will scan for chapters\n */\n mdat: async (len) => {\n if (this.options.includeChapters) {\n const trackWithChapters = [...this.tracks.values()].filter(track => track.chapterList);\n if (trackWithChapters.length === 1) {\n const chapterTrackIds = trackWithChapters[0].chapterList;\n const chapterTracks = [...this.tracks.values()].filter(track => chapterTrackIds.indexOf(track.header.trackId) !== -1);\n if (chapterTracks.length === 1) {\n return this.parseChapterTrack(chapterTracks[0], trackWithChapters[0], len);\n }\n }\n }\n await this.tokenizer.ignore(len);\n },\n ftyp: async (len) => {\n const types = [];\n while (len > 0) {\n const ftype = await this.tokenizer.readToken(AtomToken.ftyp);\n len -= AtomToken.ftyp.len;\n const value = ftype.type.replace(/\\W/g, '');\n if (value.length > 0) {\n types.push(value); // unshift for backward compatibility\n }\n }\n debug(`ftyp: ${types.join('/')}`);\n const x = types.filter(distinct).join('/');\n this.metadata.setFormat('container', x);\n },\n /**\n * Parse sample description atom\n */\n stsd: async (len) => {\n const stsd = await this.tokenizer.readToken(new AtomToken.StsdAtom(len));\n const trackDescription = this.getTrackDescription();\n trackDescription.soundSampleDescription = stsd.table.map(dfEntry => this.parseSoundSampleDescription(dfEntry));\n },\n /**\n * Parse sample-sizes atom ('stsz')\n */\n stsz: async (len) => {\n const stsz = await this.tokenizer.readToken(new AtomToken.StszAtom(len));\n const td = this.getTrackDescription();\n td.sampleSize = stsz.sampleSize;\n td.sampleSizeTable = stsz.entries;\n },\n date: async (len) => {\n const date = await this.tokenizer.readToken(new Token.StringType(len, 'utf-8'));\n await this.addTag('date', date);\n }\n };\n }\n static read_BE_Integer(array, signed) {\n const integerType = (signed ? 'INT' : 'UINT') + array.length * 8 + (array.length > 1 ? '_BE' : '');\n const token = Token[integerType];\n if (!token) {\n throw new Mp4ContentError(`Token for integer type not found: \"${integerType}\"`);\n }\n return Number(token.get(array, 0));\n }\n async parse() {\n this.hasVideoTrack = false;\n this.hasAudioTrack = true;\n this.tracks.clear();\n let remainingFileSize = this.tokenizer.fileInfo.size || 0;\n while (!this.tokenizer.fileInfo.size || remainingFileSize > 0) {\n try {\n const token = await this.tokenizer.peekToken(AtomToken.Header);\n if (token.name === '\\0\\0\\0\\0') {\n const errMsg = `Error at offset=${this.tokenizer.position}: box.id=0`;\n debug(errMsg);\n this.addWarning(errMsg);\n break;\n }\n }\n catch (error) {\n if (error instanceof Error) {\n const errMsg = `Error at offset=${this.tokenizer.position}: ${error.message}`;\n debug(errMsg);\n this.addWarning(errMsg);\n }\n else\n throw error;\n break;\n }\n const rootAtom = await Atom.readAtom(this.tokenizer, (atom, remaining) => this.handleAtom(atom, remaining), null, remainingFileSize);\n remainingFileSize -= rootAtom.header.length === BigInt(0) ? remainingFileSize : Number(rootAtom.header.length);\n }\n // Post process metadata\n const formatList = [];\n this.tracks.forEach(track => {\n const trackFormats = [];\n const trackIsAudio = isAudioTrack(track);\n track.soundSampleDescription.forEach(ssd => {\n const streamInfo = {};\n const encoderInfo = encoderDict[ssd.dataFormat];\n if (encoderInfo) {\n trackFormats.push(encoderInfo.format);\n streamInfo.codecName = encoderInfo.format;\n }\n else {\n streamInfo.codecName = `<${ssd.dataFormat}>`;\n }\n if (trackIsAudio && ssd.description) {\n const { description } = ssd;\n if (description.sampleRate > 0) {\n streamInfo.type = TrackType.audio;\n streamInfo.audio = {\n samplingFrequency: description.sampleRate,\n bitDepth: description.sampleSize,\n channels: description.numAudioChannels\n };\n }\n }\n this.metadata.addStreamInfo(streamInfo);\n });\n if (trackFormats.length >= 1) {\n formatList.push(trackFormats.join('/'));\n }\n });\n if (formatList.length > 0) {\n this.metadata.setFormat('codec', formatList.filter(distinct).join('+'));\n }\n const audioTracks = [...this.tracks.values()].filter(isAudioTrack);\n // Calculate duration and bitrate of audio tracks\n for (const audioTrack of audioTracks) {\n if (audioTrack.media.header && audioTrack.media.header.timeScale > 0) {\n audioTrack.sampleRate = audioTrack.media.header.timeScale;\n if (audioTrack.media.header.duration > 0) {\n debug('Using duration defined on audio track');\n audioTrack.samples = audioTrack.media.header.duration;\n audioTrack.duration = audioTrack.samples / audioTrack.sampleRate;\n }\n if (audioTrack.fragments.length > 0) {\n debug('Calculate duration defined in track fragments');\n let totalTimeUnits = 0;\n audioTrack.sizeInBytes = 0;\n for (const fragment of audioTrack.fragments) {\n for (const sample of fragment.trackRun.samples) {\n const dur = sample.sampleDuration ?? fragment.header.defaultSampleDuration ?? 0;\n const size = sample.sampleSize ?? fragment.header.defaultSampleSize ?? 0;\n if (dur === 0) {\n throw new Error(\"Missing sampleDuration and no defaultSampleDuration in track fragment header\");\n }\n if (size === 0) {\n throw new Error(\"Missing sampleSize and no defaultSampleSize in track fragment header\");\n }\n totalTimeUnits += dur;\n audioTrack.sizeInBytes += size;\n }\n }\n if (!audioTrack.samples) {\n audioTrack.samples = totalTimeUnits;\n }\n if (!audioTrack.duration) {\n audioTrack.duration = totalTimeUnits / audioTrack.sampleRate;\n }\n }\n else if (audioTrack.sampleSizeTable.length > 0) {\n audioTrack.sizeInBytes = audioTrack.sampleSizeTable.reduce((sum, n) => sum + n, 0);\n }\n }\n const ssd = audioTrack.soundSampleDescription[0];\n if (ssd.description && audioTrack.media.header) {\n this.metadata.setFormat('sampleRate', ssd.description.sampleRate);\n this.metadata.setFormat('bitsPerSample', ssd.description.sampleSize);\n this.metadata.setFormat('numberOfChannels', ssd.description.numAudioChannels);\n if (audioTrack.media.header.timeScale === 0 && audioTrack.timeToSampleTable.length > 0) {\n const totalSampleSize = audioTrack.timeToSampleTable\n .map(ttstEntry => ttstEntry.count * ttstEntry.duration)\n .reduce((total, sampleSize) => total + sampleSize);\n audioTrack.duration = totalSampleSize / ssd.description.sampleRate;\n }\n }\n const encoderInfo = encoderDict[ssd.dataFormat];\n if (encoderInfo) {\n this.metadata.setFormat('lossless', !encoderInfo.lossy);\n }\n }\n if (audioTracks.length >= 1) {\n const firstAudioTrack = audioTracks[0];\n if (firstAudioTrack.duration) {\n this.metadata.setFormat('duration', firstAudioTrack.duration);\n if (firstAudioTrack.sizeInBytes) {\n this.metadata.setFormat('bitrate', 8 * firstAudioTrack.sizeInBytes / firstAudioTrack.duration);\n }\n }\n }\n this.metadata.setFormat('hasAudio', this.hasAudioTrack);\n this.metadata.setFormat('hasVideo', this.hasVideoTrack);\n }\n async handleAtom(atom, remaining) {\n if (atom.parent) {\n switch (atom.parent.header.name) {\n case 'ilst':\n case '':\n return this.parseMetadataItemData(atom);\n case 'moov':\n switch (atom.header.name) {\n case 'trak':\n return this.parseTrackBox(atom);\n case 'udta':\n return this.parseTrackBox(atom);\n }\n break;\n case 'moof':\n switch (atom.header.name) {\n case 'traf':\n return this.parseTrackFragmentBox(atom);\n }\n }\n }\n // const payloadLength = atom.getPayloadLength(remaining);\n if (this.atomParsers[atom.header.name]) {\n return this.atomParsers[atom.header.name](remaining);\n }\n debug(`No parser for atom path=${atom.atomPath}, payload-len=${remaining}, ignoring atom`);\n await this.tokenizer.ignore(remaining);\n }\n getTrackDescription() {\n // ToDo: pick the right track, not the last track!!!!\n const tracks = [...this.tracks.values()];\n return tracks[tracks.length - 1];\n }\n async addTag(id, value) {\n await this.metadata.addTag(tagFormat, id, value);\n }\n addWarning(message) {\n debug(`Warning: ${message}`);\n this.metadata.addWarning(message);\n }\n /**\n * Parse data of Meta-item-list-atom (item of 'ilst' atom)\n * @param metaAtom\n * Ref: https://developer.apple.com/library/content/documentation/QuickTime/QTFF/Metadata/Metadata.html#//apple_ref/doc/uid/TP40000939-CH1-SW8\n */\n parseMetadataItemData(metaAtom) {\n let tagKey = metaAtom.header.name;\n return metaAtom.readAtoms(this.tokenizer, async (child, remaining) => {\n const payLoadLength = child.getPayloadLength(remaining);\n switch (child.header.name) {\n case 'data': // value atom\n return this.parseValueAtom(tagKey, child);\n case 'name': // name atom (optional)\n case 'mean':\n case 'rate': {\n const name = await this.tokenizer.readToken(new AtomToken.NameAtom(payLoadLength));\n tagKey += `:${name.name}`;\n break;\n }\n default: {\n const uint8Array = await this.tokenizer.readToken(new Token.Uint8ArrayType(payLoadLength));\n this.addWarning(`Unsupported meta-item: ${tagKey}[${child.header.name}] => value=${uint8ArrayToHex(uint8Array)} ascii=${textDecode(uint8Array, 'ascii')}`);\n }\n }\n }, metaAtom.getPayloadLength(0));\n }\n async parseValueAtom(tagKey, metaAtom) {\n const dataAtom = await this.tokenizer.readToken(new AtomToken.DataAtom(Number(metaAtom.header.length) - AtomToken.Header.len));\n if (dataAtom.type.set !== 0) {\n throw new Mp4ContentError(`Unsupported type-set != 0: ${dataAtom.type.set}`);\n }\n // Use well-known-type table\n // Ref: https://developer.apple.com/library/content/documentation/QuickTime/QTFF/Metadata/Metadata.html#//apple_ref/doc/uid/TP40000939-CH1-SW35\n switch (dataAtom.type.type) {\n case 0: // reserved: Reserved for use where no type needs to be indicated\n switch (tagKey) {\n case 'trkn':\n case 'disk': {\n const num = Token.UINT8.get(dataAtom.value, 3);\n const of = Token.UINT8.get(dataAtom.value, 5);\n // console.log(\" %s[data] = %s/%s\", tagKey, num, of);\n await this.addTag(tagKey, `${num}/${of}`);\n break;\n }\n case 'gnre': {\n const genreInt = Token.UINT8.get(dataAtom.value, 1);\n const genreStr = Genres[genreInt - 1];\n // console.log(\" %s[data] = %s\", tagKey, genreStr);\n await this.addTag(tagKey, genreStr);\n break;\n }\n case 'rate': {\n const rate = textDecode(dataAtom.value, 'ascii');\n await this.addTag(tagKey, rate);\n break;\n }\n default:\n debug(`unknown proprietary value type for: ${metaAtom.atomPath}`);\n }\n break;\n case 1: // UTF-8: Without any count or NULL terminator\n case 18: // Unknown: Found in m4b in combination with a '©gen' tag\n await this.addTag(tagKey, textDecode(dataAtom.value));\n break;\n case 13: // JPEG\n if (this.options.skipCovers)\n break;\n await this.addTag(tagKey, {\n format: 'image/jpeg',\n data: Uint8Array.from(dataAtom.value)\n });\n break;\n case 14: // PNG\n if (this.options.skipCovers)\n break;\n await this.addTag(tagKey, {\n format: 'image/png',\n data: Uint8Array.from(dataAtom.value)\n });\n break;\n case 21: // BE Signed Integer\n await this.addTag(tagKey, MP4Parser.read_BE_Integer(dataAtom.value, true));\n break;\n case 22: // BE Unsigned Integer\n await this.addTag(tagKey, MP4Parser.read_BE_Integer(dataAtom.value, false));\n break;\n case 65: // An 8-bit signed integer\n await this.addTag(tagKey, Token.UINT8.get(dataAtom.value, 0));\n break;\n case 66: // A big-endian 16-bit signed integer\n await this.addTag(tagKey, Token.UINT16_BE.get(dataAtom.value, 0));\n break;\n case 67: // A big-endian 32-bit signed integer\n await this.addTag(tagKey, Token.UINT32_BE.get(dataAtom.value, 0));\n break;\n default:\n this.addWarning(`atom key=${tagKey}, has unknown well-known-type (data-type): ${dataAtom.type.type}`);\n }\n }\n async parseTrackBox(trakBox) {\n // @ts-expect-error\n const track = {\n media: {},\n fragments: []\n };\n await trakBox.readAtoms(this.tokenizer, async (child, remaining) => {\n const payLoadLength = child.getPayloadLength(remaining);\n switch (child.header.name) {\n case 'chap': {\n const chap = await this.tokenizer.readToken(new ChapterTrackReferenceBox(remaining));\n track.chapterList = chap;\n break;\n }\n case 'tkhd': // TrackHeaderBox\n track.header = await this.tokenizer.readToken(new AtomToken.TrackHeaderAtom(payLoadLength));\n break;\n case 'hdlr': // TrackHeaderBox\n track.handler = await this.tokenizer.readToken(new AtomToken.HandlerBox(payLoadLength));\n track.isAudio = () => track.handler.handlerType === 'audi' || track.handler.handlerType === 'soun';\n track.isVideo = () => track.handler.handlerType === 'vide';\n if (track.isAudio()) {\n this.hasAudioTrack = true;\n }\n else if (track.isVideo()) {\n this.hasVideoTrack = true;\n }\n break;\n case 'mdhd': { // Parse media header (mdhd) box\n const mdhd_data = await this.tokenizer.readToken(new AtomToken.MdhdAtom(payLoadLength));\n track.media.header = mdhd_data;\n break;\n }\n case 'stco': {\n const stco = await this.tokenizer.readToken(new AtomToken.StcoAtom(payLoadLength));\n track.chunkOffsetTable = stco.entries; // remember chunk offsets\n break;\n }\n case 'stsc': { // sample-to-Chunk box\n const stsc = await this.tokenizer.readToken(new AtomToken.StscAtom(payLoadLength));\n track.sampleToChunkTable = stsc.entries;\n break;\n }\n case 'stsd': { // sample description box\n const stsd = await this.tokenizer.readToken(new AtomToken.StsdAtom(payLoadLength));\n track.soundSampleDescription = stsd.table.map(dfEntry => this.parseSoundSampleDescription(dfEntry));\n break;\n }\n case 'stts': { // time-to-sample table\n const stts = await this.tokenizer.readToken(new AtomToken.SttsAtom(payLoadLength));\n track.timeToSampleTable = stts.entries;\n break;\n }\n case 'stsz': {\n const stsz = await this.tokenizer.readToken(new AtomToken.StszAtom(payLoadLength));\n track.sampleSize = stsz.sampleSize;\n track.sampleSizeTable = stsz.entries;\n break;\n }\n case 'dinf':\n case 'vmhd':\n case 'smhd':\n debug(`Ignoring: ${child.header.name}`);\n await this.tokenizer.ignore(payLoadLength);\n break;\n default: {\n debug(`Unexpected track box: ${child.header.name}`);\n await this.tokenizer.ignore(payLoadLength);\n }\n }\n }, trakBox.getPayloadLength(0));\n // Register track\n this.tracks.set(track.header.trackId, track);\n }\n parseTrackFragmentBox(trafBox) {\n let tfhd;\n return trafBox.readAtoms(this.tokenizer, async (child, remaining) => {\n const payLoadLength = child.getPayloadLength(remaining);\n switch (child.header.name) {\n case 'tfhd': { // TrackFragmentHeaderBox\n const fragmentHeaderBox = new AtomToken.TrackFragmentHeaderBox(child.getPayloadLength(remaining));\n tfhd = await this.tokenizer.readToken(fragmentHeaderBox);\n break;\n }\n case 'tfdt': // TrackFragmentBaseMediaDecodeTimeBo\n await this.tokenizer.ignore(payLoadLength);\n break;\n case 'trun': { // TrackRunBox\n const trackRunBox = new AtomToken.TrackRunBox(payLoadLength);\n const trun = await this.tokenizer.readToken(trackRunBox);\n if (tfhd) {\n const track = this.tracks.get(tfhd.trackId);\n track?.fragments.push({ header: tfhd, trackRun: trun });\n }\n break;\n }\n default: {\n debug(`Unexpected box: ${child.header.name}`);\n await this.tokenizer.ignore(payLoadLength);\n }\n }\n }, trafBox.getPayloadLength(0));\n }\n /**\n * @param sampleDescription\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-128916\n */\n parseSoundSampleDescription(sampleDescription) {\n const ssd = {\n dataFormat: sampleDescription.dataFormat,\n dataReferenceIndex: sampleDescription.dataReferenceIndex\n };\n let offset = 0;\n const { description } = sampleDescription;\n // Only an AudioSampleEntry carries a sound sample description; it is at least 20 bytes beyond the\n // 16-byte SampleEntry base. A shorter description belongs to another sample entry class, or is truncated.\n if (description && description.length >= AtomToken.SoundSampleDescriptionVersion.len) {\n const version = AtomToken.SoundSampleDescriptionVersion.get(description, offset);\n offset += AtomToken.SoundSampleDescriptionVersion.len;\n if (version.version === 0 || version.version === 1) {\n // Sound Sample Description (Version 0)\n if (description.length >= offset + AtomToken.SoundSampleDescriptionV0.len) {\n ssd.description = AtomToken.SoundSampleDescriptionV0.get(description, offset);\n }\n else {\n debug(`Warning: sound-sample-description too short: ${description.length} bytes`);\n }\n }\n else {\n debug(`Warning: sound-sample-description ${version} not implemented`);\n }\n }\n return ssd;\n }\n async parseChapterTrack(chapterTrack, track, len) {\n if (!chapterTrack.sampleSize) {\n if (chapterTrack.chunkOffsetTable.length !== chapterTrack.sampleSizeTable.length)\n throw new Error('Expected equal chunk-offset-table & sample-size-table length.');\n }\n const chapters = [];\n for (let i = 0; i < chapterTrack.chunkOffsetTable.length && len > 0; ++i) {\n const start = chapterTrack.timeToSampleTable\n .slice(0, i)\n .reduce((acc, cur) => acc + cur.duration, 0);\n const chunkOffset = chapterTrack.chunkOffsetTable[i];\n const nextChunkLen = chunkOffset - this.tokenizer.position;\n const sampleSize = chapterTrack.sampleSize > 0 ? chapterTrack.sampleSize : chapterTrack.sampleSizeTable[i];\n len -= nextChunkLen + sampleSize;\n if (len < 0)\n throw new Mp4ContentError('Chapter chunk exceeding token length');\n await this.tokenizer.ignore(nextChunkLen);\n const title = await this.tokenizer.readToken(new AtomToken.ChapterText(sampleSize));\n debug(`Chapter ${i + 1}: ${title}`);\n const chapter = {\n title,\n timeScale: chapterTrack.media.header ? chapterTrack.media.header.timeScale : 0,\n start,\n sampleOffset: this.findSampleOffset(track, this.tokenizer.position)\n };\n debug(`Chapter title=${chapter.title}, offset=${chapter.sampleOffset}/${track.header.duration}`); // ToDo, use media duration if required!!!\n chapters.push(chapter);\n }\n this.metadata.setFormat('chapters', chapters);\n await this.tokenizer.ignore(len);\n }\n findSampleOffset(track, chapterOffset) {\n let chunkIndex = 0;\n while (chunkIndex < track.chunkOffsetTable.length && track.chunkOffsetTable[chunkIndex] < chapterOffset) {\n ++chunkIndex;\n }\n return this.getChunkDuration(chunkIndex + 1, track);\n }\n getChunkDuration(chunkId, track) {\n let ttsi = 0;\n let ttsc = track.timeToSampleTable[ttsi].count;\n let ttsd = track.timeToSampleTable[ttsi].duration;\n let curChunkId = 1;\n let samplesPerChunk = this.getSamplesPerChunk(curChunkId, track.sampleToChunkTable);\n let totalDuration = 0;\n while (curChunkId < chunkId) {\n const nrOfSamples = Math.min(ttsc, samplesPerChunk);\n totalDuration += nrOfSamples * ttsd;\n ttsc -= nrOfSamples;\n samplesPerChunk -= nrOfSamples;\n if (samplesPerChunk === 0) {\n ++curChunkId;\n samplesPerChunk = this.getSamplesPerChunk(curChunkId, track.sampleToChunkTable);\n }\n else {\n ++ttsi;\n ttsc = track.timeToSampleTable[ttsi].count;\n ttsd = track.timeToSampleTable[ttsi].duration;\n }\n }\n return totalDuration;\n }\n getSamplesPerChunk(chunkId, stcTable) {\n for (let i = 0; i < stcTable.length - 1; ++i) {\n if (chunkId >= stcTable[i].firstChunk && chunkId < stcTable[i + 1].firstChunk) {\n return stcTable[i].samplesPerChunk;\n }\n }\n return stcTable[stcTable.length - 1].samplesPerChunk;\n }\n}\n","import initDebug from 'debug';\nimport * as AtomToken from './AtomToken.js';\nimport { Header } from './AtomToken.js';\nconst debug = initDebug('music-metadata:parser:MP4:Atom');\nexport class Atom {\n static async readAtom(tokenizer, dataHandler, parent, remaining) {\n // Parse atom header\n const offset = tokenizer.position;\n debug(`Reading next token on offset=${offset}...`); // buf.toString('ascii')\n const header = await tokenizer.readToken(AtomToken.Header);\n const extended = header.length === 1n;\n if (extended) {\n header.length = await tokenizer.readToken(AtomToken.ExtendedSize);\n }\n const atomBean = new Atom(header, extended, parent);\n const payloadLength = atomBean.getPayloadLength(remaining);\n debug(`parse atom name=${atomBean.atomPath}, extended=${atomBean.extended}, offset=${offset}, len=${atomBean.header.length}`); // buf.toString('ascii')\n await atomBean.readData(tokenizer, dataHandler, payloadLength);\n return atomBean;\n }\n constructor(header, extended, parent) {\n this.header = header;\n this.extended = extended;\n this.parent = parent;\n this.children = [];\n this.atomPath = (this.parent ? `${this.parent.atomPath}.` : '') + this.header.name;\n }\n getHeaderLength() {\n return this.extended ? 16 : 8;\n }\n getPayloadLength(remaining) {\n return (this.header.length === 0n ? remaining : Number(this.header.length)) - this.getHeaderLength();\n }\n async readAtoms(tokenizer, dataHandler, size) {\n while (size > 0) {\n const atomBean = await Atom.readAtom(tokenizer, dataHandler, this, size);\n this.children.push(atomBean);\n size -= atomBean.header.length === 0n ? size : Number(atomBean.header.length);\n }\n }\n async readData(tokenizer, dataHandler, remaining) {\n switch (this.header.name) {\n // \"Container\" atoms, contains nested atoms\n case 'moov': // The Movie Atom: contains other atoms\n case 'udta': // User defined atom\n case 'mdia': // Media atom\n case 'minf': // Media Information Atom\n case 'stbl': // The Sample Table Atom\n case '':\n case 'ilst':\n case 'tref':\n case 'moof':\n return this.readAtoms(tokenizer, dataHandler, this.getPayloadLength(remaining));\n case 'meta': { // Metadata Atom, ref: https://developer.apple.com/library/content/documentation/QuickTime/QTFF/Metadata/Metadata.html#//apple_ref/doc/uid/TP40000939-CH1-SW8\n // meta has 4 bytes of padding, ignore\n const peekHeader = await tokenizer.peekToken(Header);\n const paddingLength = peekHeader.name === 'hdlr' ? 0 : 4;\n await tokenizer.ignore(paddingLength);\n return this.readAtoms(tokenizer, dataHandler, this.getPayloadLength(remaining) - paddingLength);\n }\n default:\n return dataHandler(this, remaining);\n }\n }\n}\n","import * as Token from 'token-types';\nimport initDebug from 'debug';\nimport { FourCcToken } from '../common/FourCC.js';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nimport * as util from '../common/Util.js';\nimport { FieldDecodingError } from '../ParseError.js';\nconst debug = initDebug('music-metadata:parser:MP4:atom');\nexport class Mp4ContentError extends makeUnexpectedFileContentError('MP4') {\n}\nexport const Header = {\n len: 8,\n get: (buf, off) => {\n const length = Token.UINT32_BE.get(buf, off);\n if (length < 0)\n throw new Mp4ContentError('Invalid atom header length');\n return {\n length: BigInt(length),\n name: new Token.StringType(4, 'latin1').get(buf, off + 4)\n };\n },\n put: (buf, off, hdr) => {\n Token.UINT32_BE.put(buf, off, Number(hdr.length));\n return FourCcToken.put(buf, off + 4, hdr.name);\n }\n};\n/**\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap1/qtff1.html#//apple_ref/doc/uid/TP40000939-CH203-38190\n */\nexport const ExtendedSize = Token.UINT64_BE;\nexport const ftyp = {\n len: 4,\n get: (buf, off) => {\n return {\n type: new Token.StringType(4, 'ascii').get(buf, off)\n };\n }\n};\n/**\n * Token: Movie Header Atom\n */\nexport const mhdr = {\n len: 8,\n get: (buf, off) => {\n return {\n version: Token.UINT8.get(buf, off),\n flags: Token.UINT24_BE.get(buf, off + 1),\n nextItemID: Token.UINT32_BE.get(buf, off + 4)\n };\n }\n};\n/**\n * Base class for 'fixed' length atoms.\n * In some cases these atoms are longer then the sum of the described fields.\n * Issue: https://github.com/Borewit/music-metadata/issues/120\n */\nexport class FixedLengthAtom {\n /**\n *\n * @param {number} len Length as specified in the size field\n * @param {number} expLen Total length of sum of specified fields in the standard\n * @param atomId Atom ID\n */\n constructor(len, expLen, atomId) {\n if (len < expLen) {\n throw new Mp4ContentError(`Atom ${atomId} expected to be ${expLen}, but specifies ${len} bytes long.`);\n }\n if (len > expLen) {\n debug(`Warning: atom ${atomId} expected to be ${expLen}, but was actually ${len} bytes long.`);\n }\n this.len = len;\n }\n}\n/**\n * Timestamp stored in seconds since Mac Epoch (1 January 1904)\n */\nconst SecondsSinceMacEpoch = {\n len: 4,\n get: (buf, off) => {\n const secondsSinceUnixEpoch = Token.UINT32_BE.get(buf, off) - 2082844800;\n return new Date(secondsSinceUnixEpoch * 1000);\n }\n};\nconst SecondsSinceMacEpoch64 = {\n len: 8,\n get: (buf, off) => {\n const secondsSinceUnixEpoch = Number(Token.UINT64_BE.get(buf, off)) - 2082844800;\n return new Date(secondsSinceUnixEpoch * 1000);\n }\n};\n/**\n * Token: Media Header Atom\n * Ref:\n * - https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-SW34\n * - https://wiki.multimedia.cx/index.php/QuickTime_container#mdhd\n */\nexport class MdhdAtom extends FixedLengthAtom {\n constructor(len) {\n super(len, 24, 'mdhd');\n }\n get(buf, off) {\n const version = Token.UINT8.get(buf, off + 0);\n const flags = Token.UINT24_BE.get(buf, off + 1);\n switch (version) {\n case 0:\n // Version 0: 32-bit fields\n return {\n version,\n flags,\n creationTime: SecondsSinceMacEpoch.get(buf, off + 4),\n modificationTime: SecondsSinceMacEpoch.get(buf, off + 8),\n timeScale: Token.UINT32_BE.get(buf, off + 12),\n duration: Token.UINT32_BE.get(buf, off + 16),\n language: Token.UINT16_BE.get(buf, off + 20),\n quality: Token.UINT16_BE.get(buf, off + 22)\n };\n case 1:\n return {\n version,\n flags,\n creationTime: SecondsSinceMacEpoch64.get(buf, off + 4),\n modificationTime: SecondsSinceMacEpoch64.get(buf, off + 12),\n timeScale: Token.UINT32_BE.get(buf, off + 20),\n duration: Number(Token.UINT64_BE.get(buf, off + 24)),\n language: Token.UINT16_BE.get(buf, off + 32),\n quality: Token.UINT16_BE.get(buf, off + 34)\n };\n default:\n throw new FieldDecodingError('Invalid mdhd version header');\n }\n }\n}\n/**\n * Token: Movie Header Atom\n */\nexport class MvhdAtom extends FixedLengthAtom {\n constructor(len) {\n super(len, 100, 'mvhd');\n }\n get(buf, off) {\n const version = Token.UINT8.get(buf, off);\n const flags = Token.UINT24_BE.get(buf, off + 1);\n if (version === 1) {\n // Version 1: 64-bit creation/modification times and duration\n return {\n version,\n flags,\n creationTime: SecondsSinceMacEpoch64.get(buf, off + 4),\n modificationTime: SecondsSinceMacEpoch64.get(buf, off + 12),\n timeScale: Token.UINT32_BE.get(buf, off + 20),\n duration: Number(Token.UINT64_BE.get(buf, off + 24)),\n preferredRate: Token.UINT32_BE.get(buf, off + 32),\n preferredVolume: Token.UINT16_BE.get(buf, off + 36),\n // ignore reserved: 10 bytes\n // ignore matrix structure: 36 bytes\n previewTime: Token.UINT32_BE.get(buf, off + 84),\n previewDuration: Token.UINT32_BE.get(buf, off + 88),\n posterTime: Token.UINT32_BE.get(buf, off + 92),\n selectionTime: Token.UINT32_BE.get(buf, off + 96),\n selectionDuration: Token.UINT32_BE.get(buf, off + 100),\n currentTime: Token.UINT32_BE.get(buf, off + 104),\n nextTrackID: Token.UINT32_BE.get(buf, off + 108)\n };\n }\n // Version 0: 32-bit fields\n return {\n version,\n flags,\n creationTime: SecondsSinceMacEpoch.get(buf, off + 4),\n modificationTime: SecondsSinceMacEpoch.get(buf, off + 8),\n timeScale: Token.UINT32_BE.get(buf, off + 12),\n duration: Token.UINT32_BE.get(buf, off + 16),\n preferredRate: Token.UINT32_BE.get(buf, off + 20),\n preferredVolume: Token.UINT16_BE.get(buf, off + 24),\n // ignore reserved: 10 bytes\n // ignore matrix structure: 36 bytes\n previewTime: Token.UINT32_BE.get(buf, off + 72),\n previewDuration: Token.UINT32_BE.get(buf, off + 76),\n posterTime: Token.UINT32_BE.get(buf, off + 80),\n selectionTime: Token.UINT32_BE.get(buf, off + 84),\n selectionDuration: Token.UINT32_BE.get(buf, off + 88),\n currentTime: Token.UINT32_BE.get(buf, off + 92),\n nextTrackID: Token.UINT32_BE.get(buf, off + 96)\n };\n }\n}\n/**\n * Data Atom Structure\n */\nexport class DataAtom {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n return {\n type: {\n set: Token.UINT8.get(buf, off + 0),\n type: Token.UINT24_BE.get(buf, off + 1)\n },\n locale: Token.UINT24_BE.get(buf, off + 4),\n value: new Token.Uint8ArrayType(this.len - 8).get(buf, off + 8)\n };\n }\n}\n/**\n * Data Atom Structure\n * Ref: https://developer.apple.com/library/content/documentation/QuickTime/QTFF/Metadata/Metadata.html#//apple_ref/doc/uid/TP40000939-CH1-SW31\n */\nexport class NameAtom {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n return {\n version: Token.UINT8.get(buf, off),\n flags: Token.UINT24_BE.get(buf, off + 1),\n name: new Token.StringType(this.len - 4, 'utf-8').get(buf, off + 4)\n };\n }\n}\n/**\n * Track Header Atoms structure (`tkhd`)\n * Ref: https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-25550\n */\nexport class TrackHeaderAtom {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n const version = Token.UINT8.get(buf, off);\n const flags = Token.UINT24_BE.get(buf, off + 1);\n switch (version) {\n case 0:\n // Version 0: 32-bit fields\n return {\n version,\n flags,\n creationTime: SecondsSinceMacEpoch.get(buf, off + 4),\n modificationTime: SecondsSinceMacEpoch.get(buf, off + 8),\n trackId: Token.UINT32_BE.get(buf, off + 12),\n // reserved 4 bytes\n duration: Token.UINT32_BE.get(buf, off + 20),\n // reserved 8 bytes\n layer: Token.UINT16_BE.get(buf, off + 32),\n alternateGroup: Token.UINT16_BE.get(buf, off + 34),\n volume: Token.UINT16_BE.get(buf, off + 36) // ToDo: fixed point\n // ToDo: add remaining fields\n };\n case 1:\n // Version 1: 64-bit creation/modification times and duration\n return {\n version,\n flags,\n creationTime: SecondsSinceMacEpoch64.get(buf, off + 4),\n modificationTime: SecondsSinceMacEpoch64.get(buf, off + 12),\n trackId: Token.UINT32_BE.get(buf, off + 20),\n // reserved 4 bytes\n duration: Number(Token.UINT64_BE.get(buf, off + 28)),\n // reserved 8 bytes\n layer: Token.UINT16_BE.get(buf, off + 44),\n alternateGroup: Token.UINT16_BE.get(buf, off + 46),\n volume: Token.UINT16_BE.get(buf, off + 48) // ToDo: fixed point\n // ToDo: add remaining fields\n };\n default:\n throw new FieldDecodingError('Invalid tkhd version header');\n }\n }\n}\n/**\n * Atom: Sample Description Atom ('stsd')\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-25691\n */\nconst stsdHeader = {\n len: 8,\n get: (buf, off) => {\n return {\n version: Token.UINT8.get(buf, off),\n flags: Token.UINT24_BE.get(buf, off + 1),\n numberOfEntries: Token.UINT32_BE.get(buf, off + 4)\n };\n }\n};\n/**\n * Atom: Sample Description Atom ('stsd')\n * Ref: https://developer.apple.com/documentation/quicktime-file-format/sample_description_atom\n */\nclass SampleDescriptionTable {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n const descrLen = this.len - 12;\n return {\n dataFormat: FourCcToken.get(buf, off),\n dataReferenceIndex: Token.UINT16_BE.get(buf, off + 10),\n description: descrLen > 0 ? new Token.Uint8ArrayType(descrLen).get(buf, off + 12) : undefined\n };\n }\n}\n/**\n * Atom: Sample-description Atom ('stsd')\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-25691\n */\nexport class StsdAtom {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n const header = stsdHeader.get(buf, off);\n off += stsdHeader.len;\n const table = [];\n for (let n = 0; n < header.numberOfEntries; ++n) {\n const size = Token.UINT32_BE.get(buf, off); // Sample description size\n off += Token.UINT32_BE.len;\n table.push(new SampleDescriptionTable(size - Token.UINT32_BE.len).get(buf, off));\n // A SampleEntry extends Box, so its size covers the size field already stepped over\n off += size - Token.UINT32_BE.len;\n }\n return {\n header,\n table\n };\n }\n}\n/**\n * Common Sound Sample Description (version & revision)\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-57317\n */\nexport const SoundSampleDescriptionVersion = {\n len: 8,\n get(buf, off) {\n return {\n version: Token.INT16_BE.get(buf, off),\n revision: Token.INT16_BE.get(buf, off + 2),\n vendor: Token.INT32_BE.get(buf, off + 4)\n };\n }\n};\n/**\n * Sound Sample Description (Version 0)\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-130736\n */\nexport const SoundSampleDescriptionV0 = {\n len: 12,\n get(buf, off) {\n return {\n numAudioChannels: Token.INT16_BE.get(buf, off + 0),\n sampleSize: Token.INT16_BE.get(buf, off + 2),\n compressionId: Token.INT16_BE.get(buf, off + 4),\n packetSize: Token.INT16_BE.get(buf, off + 6),\n sampleRate: Token.UINT16_BE.get(buf, off + 8) + Token.UINT16_BE.get(buf, off + 10) / 10000\n };\n }\n};\nclass SimpleTableAtom {\n constructor(len, token) {\n this.len = len;\n this.token = token;\n }\n get(buf, off) {\n const nrOfEntries = Token.INT32_BE.get(buf, off + 4);\n return {\n version: Token.INT8.get(buf, off + 0),\n flags: Token.INT24_BE.get(buf, off + 1),\n numberOfEntries: nrOfEntries,\n entries: readTokenTable(buf, this.token, off + 8, this.len - 8, nrOfEntries)\n };\n }\n}\nexport const TimeToSampleToken = {\n len: 8,\n get(buf, off) {\n return {\n count: Token.INT32_BE.get(buf, off + 0),\n duration: Token.INT32_BE.get(buf, off + 4)\n };\n }\n};\n/**\n * Time-to-sample('stts') atom.\n * Store duration information for a media’s samples.\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-25696\n */\nexport class SttsAtom extends SimpleTableAtom {\n constructor(len) {\n super(len, TimeToSampleToken);\n }\n}\nexport const SampleToChunkToken = {\n len: 12,\n get(buf, off) {\n return {\n firstChunk: Token.INT32_BE.get(buf, off),\n samplesPerChunk: Token.INT32_BE.get(buf, off + 4),\n sampleDescriptionId: Token.INT32_BE.get(buf, off + 8)\n };\n }\n};\n/**\n * Sample-to-Chunk ('stsc') atom interface\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-25706\n */\nexport class StscAtom extends SimpleTableAtom {\n constructor(len) {\n super(len, SampleToChunkToken);\n }\n}\n/**\n * Sample-size ('stsz') atom\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-25710\n */\nexport class StszAtom {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n const nrOfEntries = Token.INT32_BE.get(buf, off + 8);\n return {\n version: Token.INT8.get(buf, off),\n flags: Token.INT24_BE.get(buf, off + 1),\n sampleSize: Token.INT32_BE.get(buf, off + 4),\n numberOfEntries: nrOfEntries,\n entries: readTokenTable(buf, Token.INT32_BE, off + 12, this.len - 12, nrOfEntries)\n };\n }\n}\n/**\n * Chunk offset atom, 'stco'\n * Ref: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-25715\n */\nexport class StcoAtom extends SimpleTableAtom {\n constructor(len) {\n super(len, Token.INT32_BE);\n this.len = len;\n }\n}\n/**\n * Token used to decode text-track from 'mdat' atom (raw data stream)\n */\nexport class ChapterText {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n const titleLen = Token.INT16_BE.get(buf, off + 0);\n const str = new Token.StringType(titleLen, 'utf-8');\n return str.get(buf, off + 2);\n }\n}\nfunction readTokenTable(buf, token, off, remainingLen, numberOfEntries) {\n debug(`remainingLen=${remainingLen}, numberOfEntries=${numberOfEntries} * token-len=${token.len}`);\n if (remainingLen === 0)\n return [];\n if (remainingLen !== numberOfEntries * token.len)\n throw new Mp4ContentError('mismatch number-of-entries with remaining atom-length');\n const entries = [];\n // parse offset-table\n for (let n = 0; n < numberOfEntries; ++n) {\n entries.push(token.get(buf, off));\n off += token.len;\n }\n return entries;\n}\n/**\n * Sample-size ('tfhd') TrackFragmentHeaderBox\n */\nexport class TrackFragmentHeaderBox {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n const flagOffset = off + 1;\n const header = {\n version: Token.INT8.get(buf, off),\n flags: {\n baseDataOffsetPresent: util.getBit(buf, flagOffset + 2, 0),\n sampleDescriptionIndexPresent: util.getBit(buf, flagOffset + 2, 1),\n defaultSampleDurationPresent: util.getBit(buf, flagOffset + 2, 3),\n defaultSampleSizePresent: util.getBit(buf, flagOffset + 2, 4),\n defaultSampleFlagsPresent: util.getBit(buf, flagOffset + 2, 5),\n defaultDurationIsEmpty: util.getBit(buf, flagOffset, 0),\n defaultBaseIsMoof: util.getBit(buf, flagOffset, 1)\n },\n trackId: Token.UINT32_BE.get(buf, 4)\n };\n let dynOffset = 8;\n if (header.flags.baseDataOffsetPresent) {\n header.baseDataOffset = Token.UINT64_BE.get(buf, dynOffset);\n dynOffset += 8;\n }\n if (header.flags.sampleDescriptionIndexPresent) {\n header.sampleDescriptionIndex = Token.UINT32_BE.get(buf, dynOffset);\n dynOffset += 4;\n }\n if (header.flags.defaultSampleDurationPresent) {\n header.defaultSampleDuration = Token.UINT32_BE.get(buf, dynOffset);\n dynOffset += 4;\n }\n if (header.flags.defaultSampleSizePresent) {\n header.defaultSampleSize = Token.UINT32_BE.get(buf, dynOffset);\n dynOffset += 4;\n }\n if (header.flags.defaultSampleFlagsPresent) {\n header.defaultSampleFlags = Token.UINT32_BE.get(buf, dynOffset);\n }\n return header;\n }\n}\n/**\n * Sample-size ('trun') TrackRunBox\n */\nexport class TrackRunBox {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n const flagOffset = off + 1;\n const trun = {\n version: Token.INT8.get(buf, off),\n flags: {\n dataOffsetPresent: util.getBit(buf, flagOffset + 2, 0),\n firstSampleFlagsPresent: util.getBit(buf, flagOffset + 2, 2),\n sampleDurationPresent: util.getBit(buf, flagOffset + 1, 0),\n sampleSizePresent: util.getBit(buf, flagOffset + 1, 1),\n sampleFlagsPresent: util.getBit(buf, flagOffset + 1, 2),\n sampleCompositionTimeOffsetsPresent: util.getBit(buf, flagOffset + 1, 3)\n },\n sampleCount: Token.UINT32_BE.get(buf, off + 4),\n samples: []\n };\n let dynOffset = off + 8;\n if (trun.flags.dataOffsetPresent) {\n trun.dataOffset = Token.UINT32_BE.get(buf, dynOffset);\n dynOffset += 4;\n }\n if (trun.flags.firstSampleFlagsPresent) {\n trun.firstSampleFlags = Token.UINT32_BE.get(buf, dynOffset);\n dynOffset += 4;\n }\n for (let n = 0; n < trun.sampleCount; ++n) {\n if (dynOffset >= this.len) {\n debug(\"TrackRunBox size mismatch\");\n break;\n }\n const sample = {};\n if (trun.flags.sampleDurationPresent) {\n sample.sampleDuration = Token.UINT32_BE.get(buf, dynOffset);\n dynOffset += 4;\n }\n if (trun.flags.sampleSizePresent) {\n sample.sampleSize = Token.UINT32_BE.get(buf, dynOffset);\n dynOffset += 4;\n }\n if (trun.flags.sampleFlagsPresent) {\n sample.sampleFlags = Token.UINT32_BE.get(buf, dynOffset);\n dynOffset += 4;\n }\n if (trun.flags.sampleCompositionTimeOffsetsPresent) {\n sample.sampleCompositionTimeOffset = Token.UINT32_BE.get(buf, dynOffset);\n dynOffset += 4;\n }\n trun.samples.push(sample);\n }\n return trun;\n }\n}\n/**\n * HandlerBox (`hdlr`)\n */\nexport class HandlerBox {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n const _flagOffset = off + 1;\n const charTypeToken = new Token.StringType(4, 'utf-8');\n return {\n version: Token.INT8.get(buf, off),\n flags: Token.UINT24_BE.get(buf, off + 1),\n componentType: charTypeToken.get(buf, off + 4),\n handlerType: charTypeToken.get(buf, off + 8),\n componentName: new Token.StringType(this.len - 28, 'utf-8').get(buf, off + 28),\n };\n }\n}\n/**\n * Chapter Track Reference Box (`chap`)\n */\nexport class ChapterTrackReferenceBox {\n constructor(len) {\n this.len = len;\n }\n get(buf, off) {\n let dynOffset = 0;\n const trackIds = [];\n while (dynOffset < this.len) {\n trackIds.push(Token.UINT32_BE.get(buf, off + dynOffset));\n dynOffset += 4;\n }\n return trackIds;\n }\n}\n"],"mappings":"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","names":["import_debug","import_debug","import_debug","debug","initDebug","Mp4ContentError","makeUnexpectedFileContentError","__name","Header","buf","off","length","UINT32_BE","StringType","hdr","FourCcToken","ExtendedSize","UINT64_BE","ftyp","FixedLengthAtom","__name","len","expLen","atomId","Mp4ContentError","debug","SecondsSinceMacEpoch","buf","off","secondsSinceUnixEpoch","UINT32_BE","SecondsSinceMacEpoch64","UINT64_BE","MdhdAtom","version","UINT8","flags","UINT24_BE","UINT16_BE","FieldDecodingError","MvhdAtom","DataAtom","Uint8ArrayType","NameAtom","StringType","TrackHeaderAtom","stsdHeader","SampleDescriptionTable","descrLen","FourCcToken","StsdAtom","header","table","n","size","SoundSampleDescriptionVersion","INT16_BE","INT32_BE","SoundSampleDescriptionV0","SimpleTableAtom","token","nrOfEntries","INT8","INT24_BE","readTokenTable","TimeToSampleToken","SttsAtom","SampleToChunkToken","StscAtom","StszAtom","StcoAtom","ChapterText","titleLen","remainingLen","numberOfEntries","entries","TrackFragmentHeaderBox","flagOffset","getBit","dynOffset","TrackRunBox","trun","sample","HandlerBox","_flagOffset","charTypeToken","ChapterTrackReferenceBox","trackIds","debug","initDebug","Atom","_Atom","__name","tokenizer","dataHandler","parent","remaining","offset","header","Header","extended","ExtendedSize","atomBean","payloadLength","size","paddingLength","debug","initDebug","tagFormat","encoderDict","distinct","value","index","self","__name","isAudioTrack","track","ssd","MP4Parser","_MP4Parser","BasicParser","len","mvhd","MvhdAtom","td","trackIds","UINT32_BE","trackWithChapters","chapterTrackIds","chapterTracks","types","ftype","ftyp","x","stsd","StsdAtom","trackDescription","dfEntry","stsz","StszAtom","date","StringType","array","signed","integerType","token","lib_exports","Mp4ContentError","remainingFileSize","Header","errMsg","error","rootAtom","Atom","atom","remaining","formatList","trackFormats","trackIsAudio","streamInfo","encoderInfo","description","TrackType","audioTracks","audioTrack","totalTimeUnits","fragment","sample","dur","size","sum","n","totalSampleSize","ttstEntry","total","sampleSize","firstAudioTrack","tracks","id","message","metaAtom","tagKey","child","payLoadLength","name","NameAtom","uint8Array","Uint8ArrayType","uint8ArrayToHex","textDecode","dataAtom","DataAtom","num","UINT8","of","genreInt","genreStr","Genres","rate","UINT16_BE","trakBox","chap","ChapterTrackReferenceBox","TrackHeaderAtom","HandlerBox","mdhd_data","MdhdAtom","stco","StcoAtom","stsc","StscAtom","stts","SttsAtom","trafBox","tfhd","fragmentHeaderBox","TrackFragmentHeaderBox","trackRunBox","TrackRunBox","trun","sampleDescription","offset","SoundSampleDescriptionVersion","version","SoundSampleDescriptionV0","chapterTrack","chapters","i","start","acc","cur","nextChunkLen","title","ChapterText","chapter","chapterOffset","chunkIndex","chunkId","ttsi","ttsc","ttsd","curChunkId","samplesPerChunk","totalDuration","nrOfSamples","stcTable"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/MP4Parser-MX56ESYJ.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MatroskaParser-S7QBLT5N.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MatroskaParser-S7QBLT5N.js new file mode 100644 index 00000000..e8b0cdbd --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MatroskaParser-S7QBLT5N.js @@ -0,0 +1,3 @@ +import{a as $,b as z}from"./chunk-RN5G2ZPZ.js";import{B as D,H as N,I as F,a as T,f as w,i as S,w as I,y as E,z as v}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as c,d as y}from"./chunk-75KFZLU6.js";var V=y(w());var e={string:0,uint:1,uid:2,bool:3,binary:4,float:5};var U={name:"dtd",container:{440786851:{name:"ebml",container:{17030:{name:"ebmlVersion",value:e.uint},17143:{name:"ebmlReadVersion",value:e.uint},17138:{name:"ebmlMaxIDWidth",value:e.uint},17139:{name:"ebmlMaxSizeWidth",value:e.uint},17026:{name:"docType",value:e.string},17031:{name:"docTypeVersion",value:e.uint},17029:{name:"docTypeReadVersion",value:e.uint}}},408125543:{name:"segment",container:{290298740:{name:"seekHead",container:{19899:{name:"seek",multiple:!0,container:{21419:{name:"id",value:e.binary},21420:{name:"position",value:e.uint}}}}},357149030:{name:"info",container:{29604:{name:"uid",value:e.uid},29572:{name:"filename",value:e.string},3979555:{name:"prevUID",value:e.uid},3965867:{name:"prevFilename",value:e.string},4110627:{name:"nextUID",value:e.uid},4096955:{name:"nextFilename",value:e.string},2807729:{name:"timecodeScale",value:e.uint},17545:{name:"duration",value:e.float},17505:{name:"dateUTC",value:e.uint},31657:{name:"title",value:e.string},19840:{name:"muxingApp",value:e.string},22337:{name:"writingApp",value:e.string}}},524531317:{name:"cluster",multiple:!0,container:{231:{name:"timecode",value:e.uid},22743:{name:"silentTracks ",multiple:!0},167:{name:"position",value:e.uid},171:{name:"prevSize",value:e.uid},160:{name:"blockGroup"},163:{name:"simpleBlock"}}},374648427:{name:"tracks",container:{174:{name:"entries",multiple:!0,container:{215:{name:"trackNumber",value:e.uint},29637:{name:"uid",value:e.uid},131:{name:"trackType",value:e.uint},185:{name:"flagEnabled",value:e.bool},136:{name:"flagDefault",value:e.bool},21930:{name:"flagForced",value:e.bool},156:{name:"flagLacing",value:e.bool},28135:{name:"minCache",value:e.uint},28136:{name:"maxCache",value:e.uint},2352003:{name:"defaultDuration",value:e.uint},2306383:{name:"timecodeScale",value:e.float},21358:{name:"name",value:e.string},2274716:{name:"language",value:e.string},134:{name:"codecID",value:e.string},25506:{name:"codecPrivate",value:e.binary},2459272:{name:"codecName",value:e.string},3839639:{name:"codecSettings",value:e.string},3883072:{name:"codecInfoUrl",value:e.string},2536e3:{name:"codecDownloadUrl",value:e.string},170:{name:"codecDecodeAll",value:e.bool},28587:{name:"trackOverlay",value:e.uint},224:{name:"video",container:{154:{name:"flagInterlaced",value:e.bool},21432:{name:"stereoMode",value:e.uint},176:{name:"pixelWidth",value:e.uint},186:{name:"pixelHeight",value:e.uint},21680:{name:"displayWidth",value:e.uint},21690:{name:"displayHeight",value:e.uint},21683:{name:"aspectRatioType",value:e.uint},3061028:{name:"colourSpace",value:e.uint},3126563:{name:"gammaValue",value:e.float}}},225:{name:"audio",container:{181:{name:"samplingFrequency",value:e.float},30901:{name:"outputSamplingFrequency",value:e.float},159:{name:"channels",value:e.uint},148:{name:"channels",value:e.uint},32123:{name:"channelPositions",value:e.binary},25188:{name:"bitDepth",value:e.uint}}},28032:{name:"contentEncodings",container:{25152:{name:"contentEncoding",container:{20529:{name:"order",value:e.uint},20530:{name:"scope",value:e.bool},20531:{name:"type",value:e.uint},20532:{name:"contentEncoding",container:{16980:{name:"contentCompAlgo",value:e.uint},16981:{name:"contentCompSettings",value:e.binary}}},20533:{name:"contentEncoding",container:{18401:{name:"contentEncAlgo",value:e.uint},18402:{name:"contentEncKeyID",value:e.binary},18403:{name:"contentSignature ",value:e.binary},18404:{name:"ContentSigKeyID ",value:e.binary},18405:{name:"contentSigAlgo ",value:e.uint},18406:{name:"contentSigHashAlgo ",value:e.uint}}},25188:{name:"bitDepth",value:e.uint}}}}}}}}},475249515:{name:"cues",container:{187:{name:"cuePoint",container:{179:{name:"cueTime",value:e.uid},183:{name:"positions",container:{247:{name:"track",value:e.uint},241:{name:"clusterPosition",value:e.uint},21368:{name:"blockNumber",value:e.uint},234:{name:"codecState",value:e.uint},219:{name:"reference",container:{150:{name:"time",value:e.uint},151:{name:"cluster",value:e.uint},21343:{name:"number",value:e.uint},235:{name:"codecState",value:e.uint}}},240:{name:"relativePosition",value:e.uint}}}}}}},423732329:{name:"attachments",container:{24999:{name:"attachedFiles",multiple:!0,container:{18046:{name:"description",value:e.string},18030:{name:"name",value:e.string},18016:{name:"mimeType",value:e.string},18012:{name:"data",value:e.binary},18094:{name:"uid",value:e.uid}}}}},272869232:{name:"chapters",container:{17849:{name:"editionEntry",container:{182:{name:"chapterAtom",container:{29636:{name:"uid",value:e.uid},145:{name:"timeStart",value:e.uint},146:{name:"timeEnd",value:e.uid},152:{name:"hidden",value:e.bool},17816:{name:"enabled",value:e.uid},143:{name:"track",container:{137:{name:"trackNumber",value:e.uid},128:{name:"display",container:{133:{name:"string",value:e.string},17276:{name:"language ",value:e.string},17278:{name:"country ",value:e.string}}}}}}}}}}},307544935:{name:"tags",container:{29555:{name:"tag",multiple:!0,container:{25536:{name:"target",container:{25541:{name:"tagTrackUID",value:e.uid},25540:{name:"tagChapterUID",value:e.uint},25542:{name:"tagAttachmentUID",value:e.uid},25546:{name:"targetType",value:e.string},26826:{name:"targetTypeValue",value:e.uint},25545:{name:"tagEditionUID",value:e.uid}}},26568:{name:"simpleTags",multiple:!0,container:{17827:{name:"name",value:e.string},17543:{name:"string",value:e.string},17541:{name:"binary",value:e.binary},17530:{name:"language",value:e.string},17531:{name:"languageIETF",value:e.string},17540:{name:"default",value:e.bool}}}}}}}}}}};var A=y(w());var p=(0,A.default)("music-metadata:parser:ebml"),b=class extends N("EBML"){static{c(this,"EbmlContentError")}},d={ReadNext:0,IgnoreElement:2,SkipSiblings:3,TerminateParsing:4,SkipElement:5},f=class{static{c(this,"EbmlIterator")}constructor(a){this.parserMap=new Map,this.ebmlMaxIDLength=4,this.ebmlMaxSizeLength=8,this.tokenizer=a,this.parserMap.set(e.uint,n=>this.readUint(n)),this.parserMap.set(e.string,n=>this.readString(n)),this.parserMap.set(e.binary,n=>this.readBuffer(n)),this.parserMap.set(e.uid,async n=>this.readBuffer(n)),this.parserMap.set(e.bool,n=>this.readFlag(n)),this.parserMap.set(e.float,n=>this.readFloat(n))}async iterate(a,n,m){return this.parseContainer(M(a),n,m)}async parseContainer(a,n,m){let o={};for(;this.tokenizer.position=0?this.tokenizer.position+r.len:-1,m);t.multiple?(o[t.name]||(o[t.name]=[]),o[t.name].push(l)):o[t.name]=l,await m.elementValue(t,l,s)}else{let l=this.parserMap.get(t.value);if(typeof l=="function"){let x=await l(r);o[t.name]=x,await m.elementValue(t,x,s)}}break;case d.SkipElement:p(`Go to next element: name=${g(t)}, element.id=0x${r.id}, container=${!!t.container} at position=${s}`);break;case d.IgnoreElement:p(`Ignore element: name=${g(t)}, element.id=0x${r.id}, container=${!!t.container} at position=${s}`),await this.tokenizer.ignore(r.len);break;case d.SkipSiblings:p(`Ignore remaining container, at: name=${g(t)}, element.id=0x${r.id}, container=${!!t.container} at position=${s}`),await this.tokenizer.ignore(n-this.tokenizer.position);break;case d.TerminateParsing:return p(`Terminate parsing at element: name=${g(t)}, element.id=0x${r.id}, container=${!!t.container} at position=${s}`),o}else r.id===236?await this.tokenizer.ignore(r.len):(p(`parseEbml: parent=${g(a)}, unknown child: id=${r.id.toString(16)} at position=${s}`),await this.tokenizer.ignore(r.len))}return o}async readVintData(a){let n=await this.tokenizer.peekNumber(S),m=128,o=1;for(;(n&m)===0;){if(o>a)throw new b("VINT value exceeding maximum size");++o,m>>=1}let r=new Uint8Array(o);return await this.tokenizer.readBuffer(r),r}async readElement(){let a=await this.readVintData(this.ebmlMaxIDLength),n=await this.readVintData(this.ebmlMaxSizeLength);return n[0]^=128>>n.length-1,{id:k(a,a.length),len:k(n,n.length)}}async readFloat(a){switch(a.len){case 0:return 0;case 4:return this.tokenizer.readNumber(E);case 8:return this.tokenizer.readNumber(v);case 10:return this.tokenizer.readNumber(v);default:throw new b(`Invalid IEEE-754 float length: ${a.len}`)}}async readFlag(a){return await this.readUint(a)===1}async readUint(a){let n=await this.readBuffer(a);return k(n,a.len)}async readString(a){return(await this.tokenizer.readToken(new D(a.len,"utf-8"))).replace(/\x00.*$/g,"")}async readBuffer(a){let n=new Uint8Array(a.len);return await this.tokenizer.readBuffer(n),n}};function k(u,a){return Number(C(u,a))}c(k,"readUIntBE");function C(u,a){let n=new Uint8Array(8),m=u.subarray(0,a);try{return n.set(m,8-a),I.get(n,0)}catch{return BigInt(-1)}}c(C,"readUIntBeAsBigInt");function M(u){return u.container&&Object.keys(u.container).map(a=>{let n=u.container[a];return n.id=Number.parseInt(a,10),n}).forEach(a=>{a.parent=u,M(a)}),u}c(M,"linkParents");function g(u){let a="";return u.parent&&u.parent.name!=="dtd"&&(a+=`${g(u.parent)}/`),a+u.name}c(g,"getElementPath");var h=(0,V.default)("music-metadata:parser:matroska"),B=class extends F{static{c(this,"MatroskaParser")}constructor(){super(...arguments),this.seekHeadOffset=0,this.flagUseIndexToSkipClusters=this.options.mkvUseIndex??!1}async parse(){let a=this.tokenizer.fileInfo.size??Number.MAX_SAFE_INTEGER,n=new f(this.tokenizer);h("Initializing DTD end MatroskaIterator"),await n.iterate(U,a,{startNext:c(m=>{switch(m.id){case 475249515:return h(`Skip element: name=${m.name}, id=0x${m.id.toString(16)}`),d.IgnoreElement;case 524531317:if(this.flagUseIndexToSkipClusters&&this.seekHead){let o=this.seekHead.seek.find(r=>r.position+this.seekHeadOffset>this.tokenizer.position);if(o){let r=o.position+this.seekHeadOffset-this.tokenizer.position;return h(`Use index to go to next position, ignoring ${r} bytes`),this.tokenizer.ignore(r),d.SkipElement}}return d.IgnoreElement;default:return d.ReadNext}},"startNext"),elementValue:c(async(m,o,r)=>{switch(h(`Received: name=${m.name}, value=${o}`),m.id){case 17026:this.metadata.setFormat("container",`EBML/${o}`);break;case 290298740:this.seekHead=o,this.seekHeadOffset=r;break;case 357149030:{let s=o,t=s.timecodeScale?s.timecodeScale:1e6;if(typeof s.duration=="number"){let i=s.duration*t/1e9;await this.addTag("segment:title",s.title),this.metadata.setFormat("duration",Number(i))}}break;case 374648427:{let s=o;if(s?.entries){s.entries.forEach(i=>{let l={codecName:i.codecID.replace("A_","").replace("V_",""),codecSettings:i.codecSettings,flagDefault:i.flagDefault,flagLacing:i.flagLacing,flagEnabled:i.flagEnabled,language:i.language,name:i.name,type:i.trackType,audio:i.audio,video:i.video};this.metadata.addStreamInfo(l)});let t=s.entries.filter(i=>i.trackType===z.audio).reduce((i,l)=>!i||l.flagDefault&&!i.flagDefault||l.trackNumber{let i=t.target,l=i?.targetTypeValue?$[i.targetTypeValue]:i?.targetType?i.targetType:"track";await Promise.all(t.simpleTags.map(async x=>{let P=x.string?x.string:x.binary;await this.addTag(`${l}:${x.name}`,P)}))}))}break;case 423732329:{let s=o;await Promise.all(s.attachedFiles.filter(t=>t.mimeType.startsWith("image/")).map(t=>this.addTag("picture",{data:t.data,format:t.mimeType,description:t.description,name:t.name})))}break}},"elementValue")})}async addTag(a,n){await this.metadata.addTag("matroska",a,n)}};export{B as MatroskaParser}; + +//# sourceMappingURL=./MatroskaParser-S7QBLT5N.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MatroskaParser-S7QBLT5N.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MatroskaParser-S7QBLT5N.js.br new file mode 100644 index 0000000000000000000000000000000000000000..0bacc87259df3a14af4ea24821897f4838969d82 GIT binary patch literal 3843 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 {\n switch (element.id) {\n // case 0x1f43b675: // cluster\n case 0x1c53bb6b: // Cueing Data\n debug(`Skip element: name=${element.name}, id=0x${element.id.toString(16)}`);\n return ParseAction.IgnoreElement;\n case 0x1f43b675: // cluster\n if (this.flagUseIndexToSkipClusters && this.seekHead) {\n const index = this.seekHead.seek.find(index => index.position + this.seekHeadOffset > this.tokenizer.position);\n if (index) {\n // Go to next index position\n const ignoreSize = index.position + this.seekHeadOffset - this.tokenizer.position;\n debug(`Use index to go to next position, ignoring ${ignoreSize} bytes`);\n this.tokenizer.ignore(ignoreSize);\n return ParseAction.SkipElement;\n }\n }\n return ParseAction.IgnoreElement;\n default:\n return ParseAction.ReadNext;\n }\n },\n elementValue: async (element, value, offset) => {\n debug(`Received: name=${element.name}, value=${value}`);\n switch (element.id) {\n case 0x4282: // docType\n this.metadata.setFormat('container', `EBML/${value}`);\n break;\n case 0x114d9b74:\n this.seekHead = value;\n this.seekHeadOffset = offset;\n break;\n case 0x1549a966:\n { // Info (Segment Information)\n const info = value;\n const timecodeScale = info.timecodeScale ? info.timecodeScale : 1000000;\n if (typeof info.duration === 'number') {\n const duration = info.duration * timecodeScale / 1000000000;\n await this.addTag('segment:title', info.title);\n this.metadata.setFormat('duration', Number(duration));\n }\n }\n break;\n case 0x1654ae6b:\n { // tracks\n const audioTracks = value;\n if (audioTracks?.entries) {\n audioTracks.entries.forEach(entry => {\n const stream = {\n codecName: entry.codecID.replace('A_', '').replace('V_', ''),\n codecSettings: entry.codecSettings,\n flagDefault: entry.flagDefault,\n flagLacing: entry.flagLacing,\n flagEnabled: entry.flagEnabled,\n language: entry.language,\n name: entry.name,\n type: entry.trackType,\n audio: entry.audio,\n video: entry.video\n };\n this.metadata.addStreamInfo(stream);\n });\n const audioTrack = audioTracks.entries\n .filter(entry => entry.trackType === TrackType.audio)\n .reduce((acc, cur) => {\n if (!acc)\n return cur;\n if (cur.flagDefault && !acc.flagDefault)\n return cur;\n if (cur.trackNumber < acc.trackNumber)\n return cur;\n return acc;\n }, null);\n if (audioTrack) {\n this.metadata.setFormat('codec', audioTrack.codecID.replace('A_', ''));\n this.metadata.setFormat('sampleRate', audioTrack.audio.samplingFrequency);\n this.metadata.setFormat('numberOfChannels', audioTrack.audio.channels);\n }\n }\n }\n break;\n case 0x1254c367:\n { // tags\n const tags = value;\n await Promise.all(tags.tag.map(async (tag) => {\n const target = tag.target;\n const targetType = target?.targetTypeValue ? TargetType[target.targetTypeValue] : (target?.targetType ? target.targetType : 'track');\n await Promise.all(tag.simpleTags.map(async (simpleTag) => {\n const value = simpleTag.string ? simpleTag.string : simpleTag.binary;\n await this.addTag(`${targetType}:${simpleTag.name}`, value);\n }));\n }));\n }\n break;\n case 0x1941a469:\n { // attachments\n const attachments = value;\n await Promise.all(attachments.attachedFiles\n .filter(file => file.mimeType.startsWith('image/'))\n .map(file => this.addTag('picture', {\n data: file.data,\n format: file.mimeType,\n description: file.description,\n name: file.name\n })));\n }\n break;\n }\n }\n });\n }\n async addTag(tagId, value) {\n await this.metadata.addTag('matroska', tagId, value);\n }\n}\n","export const DataType = {\n string: 0,\n uint: 1,\n uid: 2,\n bool: 3,\n binary: 4,\n float: 5,\n};\n","import { DataType } from '../ebml/types.js';\n/**\n * Elements of document type description\n * Derived from https://github.com/tungol/EBML/blob/master/doctypes/matroska.dtd\n * Extended with:\n * - https://www.matroska.org/technical/specs/index.html\n */\nexport const matroskaDtd = {\n name: 'dtd',\n container: {\n 0x1a45dfa3: {\n name: 'ebml',\n container: {\n 0x4286: { name: 'ebmlVersion', value: DataType.uint }, // 5.1.1\n 0x42f7: { name: 'ebmlReadVersion', value: DataType.uint }, // 5.1.2\n 0x42f2: { name: 'ebmlMaxIDWidth', value: DataType.uint }, // 5.1.3\n 0x42f3: { name: 'ebmlMaxSizeWidth', value: DataType.uint }, // 5.1.4\n 0x4282: { name: 'docType', value: DataType.string }, // 5.1.5\n 0x4287: { name: 'docTypeVersion', value: DataType.uint }, // 5.1.6\n 0x4285: { name: 'docTypeReadVersion', value: DataType.uint } // 5.1.7\n }\n },\n // Matroska segments\n 0x18538067: {\n name: 'segment',\n container: {\n // Meta Seek Information (also known as MetaSeek)\n 0x114d9b74: {\n name: 'seekHead',\n container: {\n 0x4dbb: {\n name: 'seek',\n multiple: true,\n container: {\n 0x53ab: { name: 'id', value: DataType.binary },\n 0x53ac: { name: 'position', value: DataType.uint }\n }\n }\n }\n },\n // Segment Information\n 0x1549a966: {\n name: 'info',\n container: {\n 0x73a4: { name: 'uid', value: DataType.uid },\n 0x7384: { name: 'filename', value: DataType.string },\n 0x3cb923: { name: 'prevUID', value: DataType.uid },\n 0x3c83ab: { name: 'prevFilename', value: DataType.string },\n 0x3eb923: { name: 'nextUID', value: DataType.uid },\n 0x3e83bb: { name: 'nextFilename', value: DataType.string },\n 0x2ad7b1: { name: 'timecodeScale', value: DataType.uint },\n 0x4489: { name: 'duration', value: DataType.float },\n 0x4461: { name: 'dateUTC', value: DataType.uint },\n 0x7ba9: { name: 'title', value: DataType.string },\n 0x4d80: { name: 'muxingApp', value: DataType.string },\n 0x5741: { name: 'writingApp', value: DataType.string }\n }\n },\n // Cluster\n 0x1f43b675: {\n name: 'cluster',\n multiple: true,\n container: {\n 0xe7: { name: 'timecode', value: DataType.uid },\n 0x58d7: { name: 'silentTracks ', multiple: true },\n 0xa7: { name: 'position', value: DataType.uid },\n 0xab: { name: 'prevSize', value: DataType.uid },\n 0xa0: { name: 'blockGroup' },\n 0xa3: { name: 'simpleBlock' }\n }\n },\n // Track\n 0x1654ae6b: {\n name: 'tracks',\n container: {\n 0xae: {\n name: 'entries',\n multiple: true,\n container: {\n 0xd7: { name: 'trackNumber', value: DataType.uint },\n 0x73c5: { name: 'uid', value: DataType.uid },\n 0x83: { name: 'trackType', value: DataType.uint },\n 0xb9: { name: 'flagEnabled', value: DataType.bool },\n 0x88: { name: 'flagDefault', value: DataType.bool },\n 0x55aa: { name: 'flagForced', value: DataType.bool }, // extended\n 0x9c: { name: 'flagLacing', value: DataType.bool },\n 0x6de7: { name: 'minCache', value: DataType.uint },\n 0x6de8: { name: 'maxCache', value: DataType.uint },\n 0x23e383: { name: 'defaultDuration', value: DataType.uint },\n 0x23314f: { name: 'timecodeScale', value: DataType.float },\n 0x536e: { name: 'name', value: DataType.string },\n 0x22b59c: { name: 'language', value: DataType.string },\n 0x86: { name: 'codecID', value: DataType.string },\n 0x63a2: { name: 'codecPrivate', value: DataType.binary },\n 0x258688: { name: 'codecName', value: DataType.string },\n 0x3a9697: { name: 'codecSettings', value: DataType.string },\n 0x3b4040: { name: 'codecInfoUrl', value: DataType.string },\n 0x26b240: { name: 'codecDownloadUrl', value: DataType.string },\n 0xaa: { name: 'codecDecodeAll', value: DataType.bool },\n 0x6fab: { name: 'trackOverlay', value: DataType.uint },\n // Video\n 0xe0: {\n name: 'video',\n container: {\n 0x9a: { name: 'flagInterlaced', value: DataType.bool },\n 0x53b8: { name: 'stereoMode', value: DataType.uint },\n 0xb0: { name: 'pixelWidth', value: DataType.uint },\n 0xba: { name: 'pixelHeight', value: DataType.uint },\n 0x54b0: { name: 'displayWidth', value: DataType.uint },\n 0x54ba: { name: 'displayHeight', value: DataType.uint },\n 0x54b3: { name: 'aspectRatioType', value: DataType.uint },\n 0x2eb524: { name: 'colourSpace', value: DataType.uint },\n 0x2fb523: { name: 'gammaValue', value: DataType.float }\n }\n },\n // Audio\n 0xe1: {\n name: 'audio',\n container: {\n 0xb5: { name: 'samplingFrequency', value: DataType.float },\n 0x78b5: { name: 'outputSamplingFrequency', value: DataType.float },\n 0x9f: { name: 'channels', value: DataType.uint }, // https://www.matroska.org/technical/specs/index.html\n 0x94: { name: 'channels', value: DataType.uint },\n 0x7d7b: { name: 'channelPositions', value: DataType.binary },\n 0x6264: { name: 'bitDepth', value: DataType.uint }\n }\n },\n // Content Encoding\n 0x6d80: {\n name: 'contentEncodings',\n container: {\n 0x6240: {\n name: 'contentEncoding',\n container: {\n 0x5031: { name: 'order', value: DataType.uint },\n 0x5032: { name: 'scope', value: DataType.bool },\n 0x5033: { name: 'type', value: DataType.uint },\n 0x5034: {\n name: 'contentEncoding',\n container: {\n 0x4254: { name: 'contentCompAlgo', value: DataType.uint },\n 0x4255: { name: 'contentCompSettings', value: DataType.binary }\n }\n },\n 0x5035: {\n name: 'contentEncoding',\n container: {\n 0x47e1: { name: 'contentEncAlgo', value: DataType.uint },\n 0x47e2: { name: 'contentEncKeyID', value: DataType.binary },\n 0x47e3: { name: 'contentSignature ', value: DataType.binary },\n 0x47e4: { name: 'ContentSigKeyID ', value: DataType.binary },\n 0x47e5: { name: 'contentSigAlgo ', value: DataType.uint },\n 0x47e6: { name: 'contentSigHashAlgo ', value: DataType.uint }\n }\n },\n 0x6264: { name: 'bitDepth', value: DataType.uint }\n }\n }\n }\n }\n }\n }\n }\n },\n // Cueing Data\n 0x1c53bb6b: {\n name: 'cues',\n container: {\n 0xbb: {\n name: 'cuePoint',\n container: {\n 0xb3: { name: 'cueTime', value: DataType.uid },\n 0xb7: {\n name: 'positions',\n container: {\n 0xf7: { name: 'track', value: DataType.uint },\n 0xf1: { name: 'clusterPosition', value: DataType.uint },\n 0x5378: { name: 'blockNumber', value: DataType.uint },\n 0xea: { name: 'codecState', value: DataType.uint },\n 0xdb: {\n name: 'reference', container: {\n 0x96: { name: 'time', value: DataType.uint },\n 0x97: { name: 'cluster', value: DataType.uint },\n 0x535f: { name: 'number', value: DataType.uint },\n 0xeb: { name: 'codecState', value: DataType.uint }\n }\n },\n 0xf0: { name: 'relativePosition', value: DataType.uint } // extended\n }\n }\n }\n }\n }\n },\n // Attachment\n 0x1941a469: {\n name: 'attachments',\n container: {\n 0x61a7: {\n name: 'attachedFiles',\n multiple: true,\n container: {\n 0x467e: { name: 'description', value: DataType.string },\n 0x466e: { name: 'name', value: DataType.string },\n 0x4660: { name: 'mimeType', value: DataType.string },\n 0x465c: { name: 'data', value: DataType.binary },\n 0x46ae: { name: 'uid', value: DataType.uid }\n }\n }\n }\n },\n // Chapters\n 0x1043a770: {\n name: 'chapters',\n container: {\n 0x45b9: {\n name: 'editionEntry',\n container: {\n 0xb6: {\n name: 'chapterAtom',\n container: {\n 0x73c4: { name: 'uid', value: DataType.uid },\n 0x91: { name: 'timeStart', value: DataType.uint },\n 0x92: { name: 'timeEnd', value: DataType.uid },\n 0x98: { name: 'hidden', value: DataType.bool },\n 0x4598: { name: 'enabled', value: DataType.uid },\n 0x8f: {\n name: 'track', container: {\n 0x89: { name: 'trackNumber', value: DataType.uid },\n 0x80: {\n name: 'display', container: {\n 0x85: { name: 'string', value: DataType.string },\n 0x437c: { name: 'language ', value: DataType.string },\n 0x437e: { name: 'country ', value: DataType.string }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n },\n // Tagging\n 0x1254c367: {\n name: 'tags',\n container: {\n 0x7373: {\n name: 'tag',\n multiple: true,\n container: {\n 0x63c0: {\n name: 'target',\n container: {\n 0x63c5: { name: 'tagTrackUID', value: DataType.uid },\n 0x63c4: { name: 'tagChapterUID', value: DataType.uint },\n 0x63c6: { name: 'tagAttachmentUID', value: DataType.uid },\n 0x63ca: { name: 'targetType', value: DataType.string }, // extended\n 0x68ca: { name: 'targetTypeValue', value: DataType.uint }, // extended\n 0x63c9: { name: 'tagEditionUID', value: DataType.uid } // extended\n }\n },\n 0x67c8: {\n name: 'simpleTags',\n multiple: true,\n container: {\n 0x45a3: { name: 'name', value: DataType.string },\n 0x4487: { name: 'string', value: DataType.string },\n 0x4485: { name: 'binary', value: DataType.binary },\n 0x447a: { name: 'language', value: DataType.string }, // extended\n 0x447b: { name: 'languageIETF', value: DataType.string }, // extended\n 0x4484: { name: 'default', value: DataType.bool } // extended\n }\n }\n }\n }\n }\n }\n }\n }\n }\n};\n","import { Float32_BE, Float64_BE, StringType, UINT8 } from 'token-types';\nimport initDebug from 'debug';\nimport { EndOfStreamError } from 'strtok3';\nimport { DataType } from './types.js';\nimport * as Token from 'token-types';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nconst debug = initDebug('music-metadata:parser:ebml');\nexport class EbmlContentError extends makeUnexpectedFileContentError('EBML') {\n}\nexport const ParseAction = {\n ReadNext: 0, // Continue reading the next elements\n IgnoreElement: 2, // Ignore (do not read) this element\n SkipSiblings: 3, // Skip all remaining elements at the same level\n TerminateParsing: 4, // Terminate the parsing process\n SkipElement: 5 // Consider the element has read, assume position is at the next element\n};\n/**\n * Extensible Binary Meta Language (EBML) iterator\n * https://en.wikipedia.org/wiki/Extensible_Binary_Meta_Language\n * http://matroska.sourceforge.net/technical/specs/rfc/index.html\n *\n * WEBM VP8 AUDIO FILE\n */\nexport class EbmlIterator {\n /**\n * @param {ITokenizer} tokenizer Input\n * @param tokenizer\n */\n constructor(tokenizer) {\n this.parserMap = new Map();\n this.ebmlMaxIDLength = 4;\n this.ebmlMaxSizeLength = 8;\n this.tokenizer = tokenizer;\n this.parserMap.set(DataType.uint, e => this.readUint(e));\n this.parserMap.set(DataType.string, e => this.readString(e));\n this.parserMap.set(DataType.binary, e => this.readBuffer(e));\n this.parserMap.set(DataType.uid, async (e) => this.readBuffer(e));\n this.parserMap.set(DataType.bool, e => this.readFlag(e));\n this.parserMap.set(DataType.float, e => this.readFloat(e));\n }\n async iterate(dtdElement, posDone, listener) {\n return this.parseContainer(linkParents(dtdElement), posDone, listener);\n }\n async parseContainer(dtdElement, posDone, listener) {\n const tree = {};\n while (this.tokenizer.position < posDone) {\n let element;\n const elementPosition = this.tokenizer.position;\n try {\n element = await this.readElement();\n }\n catch (error) {\n if (error instanceof EndOfStreamError) {\n break;\n }\n throw error;\n }\n const child = dtdElement.container[element.id];\n if (child) {\n const action = listener.startNext(child);\n switch (action) {\n case ParseAction.ReadNext:\n {\n if (element.id === 0x1F43B675) {\n // Hack to ignore remaining segment, when cluster element received\n // await this.tokenizer.ignore(posDone - this.tokenizer.position);\n // break;\n }\n debug(`Read element: name=${getElementPath(child)}{id=0x${element.id.toString(16)}, container=${!!child.container}} at position=${elementPosition}`);\n if (child.container) {\n const res = await this.parseContainer(child, element.len >= 0 ? this.tokenizer.position + element.len : -1, listener);\n if (child.multiple) {\n if (!tree[child.name]) {\n tree[child.name] = [];\n }\n tree[child.name].push(res);\n }\n else {\n tree[child.name] = res;\n }\n await listener.elementValue(child, res, elementPosition);\n }\n else {\n const parser = this.parserMap.get(child.value);\n if (typeof parser === 'function') {\n const value = await parser(element);\n tree[child.name] = value;\n await listener.elementValue(child, value, elementPosition);\n }\n }\n }\n break;\n case ParseAction.SkipElement:\n debug(`Go to next element: name=${getElementPath(child)}, element.id=0x${element.id}, container=${!!child.container} at position=${elementPosition}`);\n break;\n case ParseAction.IgnoreElement:\n debug(`Ignore element: name=${getElementPath(child)}, element.id=0x${element.id}, container=${!!child.container} at position=${elementPosition}`);\n await this.tokenizer.ignore(element.len);\n break;\n case ParseAction.SkipSiblings:\n debug(`Ignore remaining container, at: name=${getElementPath(child)}, element.id=0x${element.id}, container=${!!child.container} at position=${elementPosition}`);\n await this.tokenizer.ignore(posDone - this.tokenizer.position);\n break;\n case ParseAction.TerminateParsing:\n debug(`Terminate parsing at element: name=${getElementPath(child)}, element.id=0x${element.id}, container=${!!child.container} at position=${elementPosition}`);\n return tree;\n }\n }\n else {\n switch (element.id) {\n case 0xec: // void\n await this.tokenizer.ignore(element.len);\n break;\n default:\n debug(`parseEbml: parent=${getElementPath(dtdElement)}, unknown child: id=${element.id.toString(16)} at position=${elementPosition}`);\n await this.tokenizer.ignore(element.len);\n }\n }\n }\n return tree;\n }\n async readVintData(maxLength) {\n const msb = await this.tokenizer.peekNumber(UINT8);\n let mask = 0x80;\n let oc = 1;\n // Calculate VINT_WIDTH\n while ((msb & mask) === 0) {\n if (oc > maxLength) {\n throw new EbmlContentError('VINT value exceeding maximum size');\n }\n ++oc;\n mask >>= 1;\n }\n const id = new Uint8Array(oc);\n await this.tokenizer.readBuffer(id);\n return id;\n }\n async readElement() {\n const id = await this.readVintData(this.ebmlMaxIDLength);\n const lenField = await this.readVintData(this.ebmlMaxSizeLength);\n lenField[0] ^= 0x80 >> (lenField.length - 1);\n return {\n id: readUIntBE(id, id.length),\n len: readUIntBE(lenField, lenField.length)\n };\n }\n async readFloat(e) {\n switch (e.len) {\n case 0:\n return 0.0;\n case 4:\n return this.tokenizer.readNumber(Float32_BE);\n case 8:\n return this.tokenizer.readNumber(Float64_BE);\n case 10:\n return this.tokenizer.readNumber(Float64_BE);\n default:\n throw new EbmlContentError(`Invalid IEEE-754 float length: ${e.len}`);\n }\n }\n async readFlag(e) {\n return (await this.readUint(e)) === 1;\n }\n async readUint(e) {\n const buf = await this.readBuffer(e);\n return readUIntBE(buf, e.len);\n }\n async readString(e) {\n const rawString = await this.tokenizer.readToken(new StringType(e.len, 'utf-8'));\n return rawString.replace(/\\x00.*$/g, '');\n }\n async readBuffer(e) {\n const buf = new Uint8Array(e.len);\n await this.tokenizer.readBuffer(buf);\n return buf;\n }\n}\nfunction readUIntBE(buf, len) {\n return Number(readUIntBeAsBigInt(buf, len));\n}\n/**\n * Reeds an unsigned integer from a big endian buffer of length `len`\n * @param buf Buffer to decode from\n * @param len Number of bytes\n * @private\n */\nfunction readUIntBeAsBigInt(buf, len) {\n const normalizedNumber = new Uint8Array(8);\n const cleanNumber = buf.subarray(0, len);\n try {\n normalizedNumber.set(cleanNumber, 8 - len);\n return Token.UINT64_BE.get(normalizedNumber, 0);\n }\n catch (_error) {\n return BigInt(-1);\n }\n}\nfunction linkParents(element) {\n if (element.container) {\n Object.keys(element.container)\n .map(id => {\n const child = element.container[id];\n child.id = Number.parseInt(id, 10);\n return child;\n }).forEach(child => {\n child.parent = element;\n linkParents(child);\n });\n }\n return element;\n}\nexport function getElementPath(element) {\n let path = '';\n if (element.parent && element.parent.name !== 'dtd') {\n path += `${getElementPath(element.parent)}/`;\n }\n return path + element.name;\n}\n"],"mappings":"0NAAA,IAAAA,EAAsB,OCAf,IAAMC,EAAW,CACpB,OAAQ,EACR,KAAM,EACN,IAAK,EACL,KAAM,EACN,OAAQ,EACR,MAAO,CACX,ECAO,IAAMC,EAAc,CACvB,KAAM,MACN,UAAW,CACP,UAAY,CACR,KAAM,OACN,UAAW,CACP,MAAQ,CAAE,KAAM,cAAe,MAAOC,EAAS,IAAK,EACpD,MAAQ,CAAE,KAAM,kBAAmB,MAAOA,EAAS,IAAK,EACxD,MAAQ,CAAE,KAAM,iBAAkB,MAAOA,EAAS,IAAK,EACvD,MAAQ,CAAE,KAAM,mBAAoB,MAAOA,EAAS,IAAK,EACzD,MAAQ,CAAE,KAAM,UAAW,MAAOA,EAAS,MAAO,EAClD,MAAQ,CAAE,KAAM,iBAAkB,MAAOA,EAAS,IAAK,EACvD,MAAQ,CAAE,KAAM,qBAAsB,MAAOA,EAAS,IAAK,CAC/D,CACJ,EAEA,UAAY,CACR,KAAM,UACN,UAAW,CAEP,UAAY,CACR,KAAM,WACN,UAAW,CACP,MAAQ,CACJ,KAAM,OACN,SAAU,GACV,UAAW,CACP,MAAQ,CAAE,KAAM,KAAM,MAAOA,EAAS,MAAO,EAC7C,MAAQ,CAAE,KAAM,WAAY,MAAOA,EAAS,IAAK,CACrD,CACJ,CACJ,CACJ,EAEA,UAAY,CACR,KAAM,OACN,UAAW,CACP,MAAQ,CAAE,KAAM,MAAO,MAAOA,EAAS,GAAI,EAC3C,MAAQ,CAAE,KAAM,WAAY,MAAOA,EAAS,MAAO,EACnD,QAAU,CAAE,KAAM,UAAW,MAAOA,EAAS,GAAI,EACjD,QAAU,CAAE,KAAM,eAAgB,MAAOA,EAAS,MAAO,EACzD,QAAU,CAAE,KAAM,UAAW,MAAOA,EAAS,GAAI,EACjD,QAAU,CAAE,KAAM,eAAgB,MAAOA,EAAS,MAAO,EACzD,QAAU,CAAE,KAAM,gBAAiB,MAAOA,EAAS,IAAK,EACxD,MAAQ,CAAE,KAAM,WAAY,MAAOA,EAAS,KAAM,EAClD,MAAQ,CAAE,KAAM,UAAW,MAAOA,EAAS,IAAK,EAChD,MAAQ,CAAE,KAAM,QAAS,MAAOA,EAAS,MAAO,EAChD,MAAQ,CAAE,KAAM,YAAa,MAAOA,EAAS,MAAO,EACpD,MAAQ,CAAE,KAAM,aAAc,MAAOA,EAAS,MAAO,CACzD,CACJ,EAEA,UAAY,CACR,KAAM,UACN,SAAU,GACV,UAAW,CACP,IAAM,CAAE,KAAM,WAAY,MAAOA,EAAS,GAAI,EAC9C,MAAQ,CAAE,KAAM,gBAAiB,SAAU,EAAK,EAChD,IAAM,CAAE,KAAM,WAAY,MAAOA,EAAS,GAAI,EAC9C,IAAM,CAAE,KAAM,WAAY,MAAOA,EAAS,GAAI,EAC9C,IAAM,CAAE,KAAM,YAAa,EAC3B,IAAM,CAAE,KAAM,aAAc,CAChC,CACJ,EAEA,UAAY,CACR,KAAM,SACN,UAAW,CACP,IAAM,CACF,KAAM,UACN,SAAU,GACV,UAAW,CACP,IAAM,CAAE,KAAM,cAAe,MAAOA,EAAS,IAAK,EAClD,MAAQ,CAAE,KAAM,MAAO,MAAOA,EAAS,GAAI,EAC3C,IAAM,CAAE,KAAM,YAAa,MAAOA,EAAS,IAAK,EAChD,IAAM,CAAE,KAAM,cAAe,MAAOA,EAAS,IAAK,EAClD,IAAM,CAAE,KAAM,cAAe,MAAOA,EAAS,IAAK,EAClD,MAAQ,CAAE,KAAM,aAAc,MAAOA,EAAS,IAAK,EACnD,IAAM,CAAE,KAAM,aAAc,MAAOA,EAAS,IAAK,EACjD,MAAQ,CAAE,KAAM,WAAY,MAAOA,EAAS,IAAK,EACjD,MAAQ,CAAE,KAAM,WAAY,MAAOA,EAAS,IAAK,EACjD,QAAU,CAAE,KAAM,kBAAmB,MAAOA,EAAS,IAAK,EAC1D,QAAU,CAAE,KAAM,gBAAiB,MAAOA,EAAS,KAAM,EACzD,MAAQ,CAAE,KAAM,OAAQ,MAAOA,EAAS,MAAO,EAC/C,QAAU,CAAE,KAAM,WAAY,MAAOA,EAAS,MAAO,EACrD,IAAM,CAAE,KAAM,UAAW,MAAOA,EAAS,MAAO,EAChD,MAAQ,CAAE,KAAM,eAAgB,MAAOA,EAAS,MAAO,EACvD,QAAU,CAAE,KAAM,YAAa,MAAOA,EAAS,MAAO,EACtD,QAAU,CAAE,KAAM,gBAAiB,MAAOA,EAAS,MAAO,EAC1D,QAAU,CAAE,KAAM,eAAgB,MAAOA,EAAS,MAAO,EACzD,OAAU,CAAE,KAAM,mBAAoB,MAAOA,EAAS,MAAO,EAC7D,IAAM,CAAE,KAAM,iBAAkB,MAAOA,EAAS,IAAK,EACrD,MAAQ,CAAE,KAAM,eAAgB,MAAOA,EAAS,IAAK,EAErD,IAAM,CACF,KAAM,QACN,UAAW,CACP,IAAM,CAAE,KAAM,iBAAkB,MAAOA,EAAS,IAAK,EACrD,MAAQ,CAAE,KAAM,aAAc,MAAOA,EAAS,IAAK,EACnD,IAAM,CAAE,KAAM,aAAc,MAAOA,EAAS,IAAK,EACjD,IAAM,CAAE,KAAM,cAAe,MAAOA,EAAS,IAAK,EAClD,MAAQ,CAAE,KAAM,eAAgB,MAAOA,EAAS,IAAK,EACrD,MAAQ,CAAE,KAAM,gBAAiB,MAAOA,EAAS,IAAK,EACtD,MAAQ,CAAE,KAAM,kBAAmB,MAAOA,EAAS,IAAK,EACxD,QAAU,CAAE,KAAM,cAAe,MAAOA,EAAS,IAAK,EACtD,QAAU,CAAE,KAAM,aAAc,MAAOA,EAAS,KAAM,CAC1D,CACJ,EAEA,IAAM,CACF,KAAM,QACN,UAAW,CACP,IAAM,CAAE,KAAM,oBAAqB,MAAOA,EAAS,KAAM,EACzD,MAAQ,CAAE,KAAM,0BAA2B,MAAOA,EAAS,KAAM,EACjE,IAAM,CAAE,KAAM,WAAY,MAAOA,EAAS,IAAK,EAC/C,IAAM,CAAE,KAAM,WAAY,MAAOA,EAAS,IAAK,EAC/C,MAAQ,CAAE,KAAM,mBAAoB,MAAOA,EAAS,MAAO,EAC3D,MAAQ,CAAE,KAAM,WAAY,MAAOA,EAAS,IAAK,CACrD,CACJ,EAEA,MAAQ,CACJ,KAAM,mBACN,UAAW,CACP,MAAQ,CACJ,KAAM,kBACN,UAAW,CACP,MAAQ,CAAE,KAAM,QAAS,MAAOA,EAAS,IAAK,EAC9C,MAAQ,CAAE,KAAM,QAAS,MAAOA,EAAS,IAAK,EAC9C,MAAQ,CAAE,KAAM,OAAQ,MAAOA,EAAS,IAAK,EAC7C,MAAQ,CACJ,KAAM,kBACN,UAAW,CACP,MAAQ,CAAE,KAAM,kBAAmB,MAAOA,EAAS,IAAK,EACxD,MAAQ,CAAE,KAAM,sBAAuB,MAAOA,EAAS,MAAO,CAClE,CACJ,EACA,MAAQ,CACJ,KAAM,kBACN,UAAW,CACP,MAAQ,CAAE,KAAM,iBAAkB,MAAOA,EAAS,IAAK,EACvD,MAAQ,CAAE,KAAM,kBAAmB,MAAOA,EAAS,MAAO,EAC1D,MAAQ,CAAE,KAAM,oBAAqB,MAAOA,EAAS,MAAO,EAC5D,MAAQ,CAAE,KAAM,oBAAqB,MAAOA,EAAS,MAAO,EAC5D,MAAQ,CAAE,KAAM,kBAAmB,MAAOA,EAAS,IAAK,EACxD,MAAQ,CAAE,KAAM,sBAAuB,MAAOA,EAAS,IAAK,CAChE,CACJ,EACA,MAAQ,CAAE,KAAM,WAAY,MAAOA,EAAS,IAAK,CACrD,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,EAEA,UAAY,CACR,KAAM,OACN,UAAW,CACP,IAAM,CACF,KAAM,WACN,UAAW,CACP,IAAM,CAAE,KAAM,UAAW,MAAOA,EAAS,GAAI,EAC7C,IAAM,CACF,KAAM,YACN,UAAW,CACP,IAAM,CAAE,KAAM,QAAS,MAAOA,EAAS,IAAK,EAC5C,IAAM,CAAE,KAAM,kBAAmB,MAAOA,EAAS,IAAK,EACtD,MAAQ,CAAE,KAAM,cAAe,MAAOA,EAAS,IAAK,EACpD,IAAM,CAAE,KAAM,aAAc,MAAOA,EAAS,IAAK,EACjD,IAAM,CACF,KAAM,YAAa,UAAW,CAC1B,IAAM,CAAE,KAAM,OAAQ,MAAOA,EAAS,IAAK,EAC3C,IAAM,CAAE,KAAM,UAAW,MAAOA,EAAS,IAAK,EAC9C,MAAQ,CAAE,KAAM,SAAU,MAAOA,EAAS,IAAK,EAC/C,IAAM,CAAE,KAAM,aAAc,MAAOA,EAAS,IAAK,CACrD,CACJ,EACA,IAAM,CAAE,KAAM,mBAAoB,MAAOA,EAAS,IAAK,CAC3D,CACJ,CACJ,CACJ,CACJ,CACJ,EAEA,UAAY,CACR,KAAM,cACN,UAAW,CACP,MAAQ,CACJ,KAAM,gBACN,SAAU,GACV,UAAW,CACP,MAAQ,CAAE,KAAM,cAAe,MAAOA,EAAS,MAAO,EACtD,MAAQ,CAAE,KAAM,OAAQ,MAAOA,EAAS,MAAO,EAC/C,MAAQ,CAAE,KAAM,WAAY,MAAOA,EAAS,MAAO,EACnD,MAAQ,CAAE,KAAM,OAAQ,MAAOA,EAAS,MAAO,EAC/C,MAAQ,CAAE,KAAM,MAAO,MAAOA,EAAS,GAAI,CAC/C,CACJ,CACJ,CACJ,EAEA,UAAY,CACR,KAAM,WACN,UAAW,CACP,MAAQ,CACJ,KAAM,eACN,UAAW,CACP,IAAM,CACF,KAAM,cACN,UAAW,CACP,MAAQ,CAAE,KAAM,MAAO,MAAOA,EAAS,GAAI,EAC3C,IAAM,CAAE,KAAM,YAAa,MAAOA,EAAS,IAAK,EAChD,IAAM,CAAE,KAAM,UAAW,MAAOA,EAAS,GAAI,EAC7C,IAAM,CAAE,KAAM,SAAU,MAAOA,EAAS,IAAK,EAC7C,MAAQ,CAAE,KAAM,UAAW,MAAOA,EAAS,GAAI,EAC/C,IAAM,CACF,KAAM,QAAS,UAAW,CACtB,IAAM,CAAE,KAAM,cAAe,MAAOA,EAAS,GAAI,EACjD,IAAM,CACF,KAAM,UAAW,UAAW,CACxB,IAAM,CAAE,KAAM,SAAU,MAAOA,EAAS,MAAO,EAC/C,MAAQ,CAAE,KAAM,YAAa,MAAOA,EAAS,MAAO,EACpD,MAAQ,CAAE,KAAM,WAAY,MAAOA,EAAS,MAAO,CACvD,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,EAEA,UAAY,CACR,KAAM,OACN,UAAW,CACP,MAAQ,CACJ,KAAM,MACN,SAAU,GACV,UAAW,CACP,MAAQ,CACJ,KAAM,SACN,UAAW,CACP,MAAQ,CAAE,KAAM,cAAe,MAAOA,EAAS,GAAI,EACnD,MAAQ,CAAE,KAAM,gBAAiB,MAAOA,EAAS,IAAK,EACtD,MAAQ,CAAE,KAAM,mBAAoB,MAAOA,EAAS,GAAI,EACxD,MAAQ,CAAE,KAAM,aAAc,MAAOA,EAAS,MAAO,EACrD,MAAQ,CAAE,KAAM,kBAAmB,MAAOA,EAAS,IAAK,EACxD,MAAQ,CAAE,KAAM,gBAAiB,MAAOA,EAAS,GAAI,CACzD,CACJ,EACA,MAAQ,CACJ,KAAM,aACN,SAAU,GACV,UAAW,CACP,MAAQ,CAAE,KAAM,OAAQ,MAAOA,EAAS,MAAO,EAC/C,MAAQ,CAAE,KAAM,SAAU,MAAOA,EAAS,MAAO,EACjD,MAAQ,CAAE,KAAM,SAAU,MAAOA,EAAS,MAAO,EACjD,MAAQ,CAAE,KAAM,WAAY,MAAOA,EAAS,MAAO,EACnD,MAAQ,CAAE,KAAM,eAAgB,MAAOA,EAAS,MAAO,EACvD,MAAQ,CAAE,KAAM,UAAW,MAAOA,EAAS,IAAK,CACpD,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,ECzRA,IAAAC,EAAsB,OAKtB,IAAMC,KAAQ,EAAAC,SAAU,4BAA4B,EACvCC,EAAN,cAA+BC,EAA+B,MAAM,CAAE,CAP7E,MAO6E,CAAAC,EAAA,yBAC7E,EACaC,EAAc,CACvB,SAAU,EACV,cAAe,EACf,aAAc,EACd,iBAAkB,EAClB,YAAa,CACjB,EAQaC,EAAN,KAAmB,CAvB1B,MAuB0B,CAAAF,EAAA,qBAKtB,YAAYG,EAAW,CACnB,KAAK,UAAY,IAAI,IACrB,KAAK,gBAAkB,EACvB,KAAK,kBAAoB,EACzB,KAAK,UAAYA,EACjB,KAAK,UAAU,IAAIC,EAAS,KAAMC,GAAK,KAAK,SAASA,CAAC,CAAC,EACvD,KAAK,UAAU,IAAID,EAAS,OAAQC,GAAK,KAAK,WAAWA,CAAC,CAAC,EAC3D,KAAK,UAAU,IAAID,EAAS,OAAQC,GAAK,KAAK,WAAWA,CAAC,CAAC,EAC3D,KAAK,UAAU,IAAID,EAAS,IAAK,MAAOC,GAAM,KAAK,WAAWA,CAAC,CAAC,EAChE,KAAK,UAAU,IAAID,EAAS,KAAMC,GAAK,KAAK,SAASA,CAAC,CAAC,EACvD,KAAK,UAAU,IAAID,EAAS,MAAOC,GAAK,KAAK,UAAUA,CAAC,CAAC,CAC7D,CACA,MAAM,QAAQC,EAAYC,EAASC,EAAU,CACzC,OAAO,KAAK,eAAeC,EAAYH,CAAU,EAAGC,EAASC,CAAQ,CACzE,CACA,MAAM,eAAeF,EAAYC,EAASC,EAAU,CAChD,IAAME,EAAO,CAAC,EACd,KAAO,KAAK,UAAU,SAAWH,GAAS,CACtC,IAAII,EACEC,EAAkB,KAAK,UAAU,SACvC,GAAI,CACAD,EAAU,MAAM,KAAK,YAAY,CACrC,OACOE,EAAO,CACV,GAAIA,aAAiBC,EACjB,MAEJ,MAAMD,CACV,CACA,IAAME,EAAQT,EAAW,UAAUK,EAAQ,EAAE,EAC7C,GAAII,EAEA,OADeP,EAAS,UAAUO,CAAK,EACvB,CACZ,KAAKd,EAAY,SAQT,GANIU,EAAQ,GAKZf,EAAM,sBAAsBoB,EAAeD,CAAK,CAAC,SAASJ,EAAQ,GAAG,SAAS,EAAE,CAAC,eAAe,CAAC,CAACI,EAAM,SAAS,iBAAiBH,CAAe,EAAE,EAC/IG,EAAM,UAAW,CACjB,IAAME,EAAM,MAAM,KAAK,eAAeF,EAAOJ,EAAQ,KAAO,EAAI,KAAK,UAAU,SAAWA,EAAQ,IAAM,GAAIH,CAAQ,EAChHO,EAAM,UACDL,EAAKK,EAAM,IAAI,IAChBL,EAAKK,EAAM,IAAI,EAAI,CAAC,GAExBL,EAAKK,EAAM,IAAI,EAAE,KAAKE,CAAG,GAGzBP,EAAKK,EAAM,IAAI,EAAIE,EAEvB,MAAMT,EAAS,aAAaO,EAAOE,EAAKL,CAAe,CAC3D,KACK,CACD,IAAMM,EAAS,KAAK,UAAU,IAAIH,EAAM,KAAK,EAC7C,GAAI,OAAOG,GAAW,WAAY,CAC9B,IAAMC,EAAQ,MAAMD,EAAOP,CAAO,EAClCD,EAAKK,EAAM,IAAI,EAAII,EACnB,MAAMX,EAAS,aAAaO,EAAOI,EAAOP,CAAe,CAC7D,CACJ,CAEJ,MACJ,KAAKX,EAAY,YACbL,EAAM,4BAA4BoB,EAAeD,CAAK,CAAC,kBAAkBJ,EAAQ,EAAE,eAAe,CAAC,CAACI,EAAM,SAAS,gBAAgBH,CAAe,EAAE,EACpJ,MACJ,KAAKX,EAAY,cACbL,EAAM,wBAAwBoB,EAAeD,CAAK,CAAC,kBAAkBJ,EAAQ,EAAE,eAAe,CAAC,CAACI,EAAM,SAAS,gBAAgBH,CAAe,EAAE,EAChJ,MAAM,KAAK,UAAU,OAAOD,EAAQ,GAAG,EACvC,MACJ,KAAKV,EAAY,aACbL,EAAM,wCAAwCoB,EAAeD,CAAK,CAAC,kBAAkBJ,EAAQ,EAAE,eAAe,CAAC,CAACI,EAAM,SAAS,gBAAgBH,CAAe,EAAE,EAChK,MAAM,KAAK,UAAU,OAAOL,EAAU,KAAK,UAAU,QAAQ,EAC7D,MACJ,KAAKN,EAAY,iBACb,OAAAL,EAAM,sCAAsCoB,EAAeD,CAAK,CAAC,kBAAkBJ,EAAQ,EAAE,eAAe,CAAC,CAACI,EAAM,SAAS,gBAAgBH,CAAe,EAAE,EACvJF,CACf,MAGQC,EAAQ,KACP,IACD,MAAM,KAAK,UAAU,OAAOA,EAAQ,GAAG,GAGvCf,EAAM,qBAAqBoB,EAAeV,CAAU,CAAC,uBAAuBK,EAAQ,GAAG,SAAS,EAAE,CAAC,gBAAgBC,CAAe,EAAE,EACpI,MAAM,KAAK,UAAU,OAAOD,EAAQ,GAAG,EAGvD,CACA,OAAOD,CACX,CACA,MAAM,aAAaU,EAAW,CAC1B,IAAMC,EAAM,MAAM,KAAK,UAAU,WAAWC,CAAK,EAC7CC,EAAO,IACPC,EAAK,EAET,MAAQH,EAAME,KAAU,GAAG,CACvB,GAAIC,EAAKJ,EACL,MAAM,IAAItB,EAAiB,mCAAmC,EAElE,EAAE0B,EACFD,IAAS,CACb,CACA,IAAME,EAAK,IAAI,WAAWD,CAAE,EAC5B,aAAM,KAAK,UAAU,WAAWC,CAAE,EAC3BA,CACX,CACA,MAAM,aAAc,CAChB,IAAMA,EAAK,MAAM,KAAK,aAAa,KAAK,eAAe,EACjDC,EAAW,MAAM,KAAK,aAAa,KAAK,iBAAiB,EAC/D,OAAAA,EAAS,CAAC,GAAK,KAASA,EAAS,OAAS,EACnC,CACH,GAAIC,EAAWF,EAAIA,EAAG,MAAM,EAC5B,IAAKE,EAAWD,EAAUA,EAAS,MAAM,CAC7C,CACJ,CACA,MAAM,UAAUrB,EAAG,CACf,OAAQA,EAAE,IAAK,CACX,IAAK,GACD,MAAO,GACX,IAAK,GACD,OAAO,KAAK,UAAU,WAAWuB,CAAU,EAC/C,IAAK,GACD,OAAO,KAAK,UAAU,WAAWC,CAAU,EAC/C,IAAK,IACD,OAAO,KAAK,UAAU,WAAWA,CAAU,EAC/C,QACI,MAAM,IAAI/B,EAAiB,kCAAkCO,EAAE,GAAG,EAAE,CAC5E,CACJ,CACA,MAAM,SAASA,EAAG,CACd,OAAQ,MAAM,KAAK,SAASA,CAAC,IAAO,CACxC,CACA,MAAM,SAASA,EAAG,CACd,IAAMyB,EAAM,MAAM,KAAK,WAAWzB,CAAC,EACnC,OAAOsB,EAAWG,EAAKzB,EAAE,GAAG,CAChC,CACA,MAAM,WAAWA,EAAG,CAEhB,OADkB,MAAM,KAAK,UAAU,UAAU,IAAI0B,EAAW1B,EAAE,IAAK,OAAO,CAAC,GAC9D,QAAQ,WAAY,EAAE,CAC3C,CACA,MAAM,WAAWA,EAAG,CAChB,IAAMyB,EAAM,IAAI,WAAWzB,EAAE,GAAG,EAChC,aAAM,KAAK,UAAU,WAAWyB,CAAG,EAC5BA,CACX,CACJ,EACA,SAASH,EAAWG,EAAKE,EAAK,CAC1B,OAAO,OAAOC,EAAmBH,EAAKE,CAAG,CAAC,CAC9C,CAFShC,EAAA2B,EAAA,cAST,SAASM,EAAmBH,EAAKE,EAAK,CAClC,IAAME,EAAmB,IAAI,WAAW,CAAC,EACnCC,EAAcL,EAAI,SAAS,EAAGE,CAAG,EACvC,GAAI,CACA,OAAAE,EAAiB,IAAIC,EAAa,EAAIH,CAAG,EAC5BI,EAAU,IAAIF,EAAkB,CAAC,CAClD,MACe,CACX,OAAO,OAAO,EAAE,CACpB,CACJ,CAVSlC,EAAAiC,EAAA,sBAWT,SAASxB,EAAYE,EAAS,CAC1B,OAAIA,EAAQ,WACR,OAAO,KAAKA,EAAQ,SAAS,EACxB,IAAIc,GAAM,CACX,IAAMV,EAAQJ,EAAQ,UAAUc,CAAE,EAClC,OAAAV,EAAM,GAAK,OAAO,SAASU,EAAI,EAAE,EAC1BV,CACX,CAAC,EAAE,QAAQA,GAAS,CAChBA,EAAM,OAASJ,EACfF,EAAYM,CAAK,CACrB,CAAC,EAEEJ,CACX,CAbSX,EAAAS,EAAA,eAcF,SAASO,EAAeL,EAAS,CACpC,IAAI0B,EAAO,GACX,OAAI1B,EAAQ,QAAUA,EAAQ,OAAO,OAAS,QAC1C0B,GAAQ,GAAGrB,EAAeL,EAAQ,MAAM,CAAC,KAEtC0B,EAAO1B,EAAQ,IAC1B,CANgBX,EAAAgB,EAAA,kBH9MhB,IAAMsB,KAAQ,EAAAC,SAAU,gCAAgC,EAQ3CC,EAAN,cAA6BC,CAAY,CAbhD,MAagD,CAAAC,EAAA,uBAC5C,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,eAAiB,EAKtB,KAAK,2BAA6B,KAAK,QAAQ,aAAe,EAClE,CACA,MAAM,OAAQ,CACV,IAAMC,EAAgB,KAAK,UAAU,SAAS,MAAQ,OAAO,iBACvDC,EAAmB,IAAIC,EAAa,KAAK,SAAS,EACxDP,EAAM,uCAAuC,EAC7C,MAAMM,EAAiB,QAAQE,EAAaH,EAAe,CACvD,UAAWD,EAACK,GAAY,CACpB,OAAQA,EAAQ,GAAI,CAEhB,IAAK,WACD,OAAAT,EAAM,sBAAsBS,EAAQ,IAAI,UAAUA,EAAQ,GAAG,SAAS,EAAE,CAAC,EAAE,EACpEC,EAAY,cACvB,IAAK,WACD,GAAI,KAAK,4BAA8B,KAAK,SAAU,CAClD,IAAMC,EAAQ,KAAK,SAAS,KAAK,KAAKA,GAASA,EAAM,SAAW,KAAK,eAAiB,KAAK,UAAU,QAAQ,EAC7G,GAAIA,EAAO,CAEP,IAAMC,EAAaD,EAAM,SAAW,KAAK,eAAiB,KAAK,UAAU,SACzE,OAAAX,EAAM,8CAA8CY,CAAU,QAAQ,EACtE,KAAK,UAAU,OAAOA,CAAU,EACzBF,EAAY,WACvB,CACJ,CACA,OAAOA,EAAY,cACvB,QACI,OAAOA,EAAY,QAC3B,CACJ,EArBW,aAsBX,aAAcN,EAAA,MAAOK,EAASI,EAAOC,IAAW,CAE5C,OADAd,EAAM,kBAAkBS,EAAQ,IAAI,WAAWI,CAAK,EAAE,EAC9CJ,EAAQ,GAAI,CAChB,IAAK,OACD,KAAK,SAAS,UAAU,YAAa,QAAQI,CAAK,EAAE,EACpD,MACJ,IAAK,WACD,KAAK,SAAWA,EAChB,KAAK,eAAiBC,EACtB,MACJ,IAAK,WACD,CACI,IAAMC,EAAOF,EACPG,EAAgBD,EAAK,cAAgBA,EAAK,cAAgB,IAChE,GAAI,OAAOA,EAAK,UAAa,SAAU,CACnC,IAAME,EAAWF,EAAK,SAAWC,EAAgB,IACjD,MAAM,KAAK,OAAO,gBAAiBD,EAAK,KAAK,EAC7C,KAAK,SAAS,UAAU,WAAY,OAAOE,CAAQ,CAAC,CACxD,CACJ,CACA,MACJ,IAAK,WACD,CACI,IAAMC,EAAcL,EACpB,GAAIK,GAAa,QAAS,CACtBA,EAAY,QAAQ,QAAQC,GAAS,CACjC,IAAMC,EAAS,CACX,UAAWD,EAAM,QAAQ,QAAQ,KAAM,EAAE,EAAE,QAAQ,KAAM,EAAE,EAC3D,cAAeA,EAAM,cACrB,YAAaA,EAAM,YACnB,WAAYA,EAAM,WAClB,YAAaA,EAAM,YACnB,SAAUA,EAAM,SAChB,KAAMA,EAAM,KACZ,KAAMA,EAAM,UACZ,MAAOA,EAAM,MACb,MAAOA,EAAM,KACjB,EACA,KAAK,SAAS,cAAcC,CAAM,CACtC,CAAC,EACD,IAAMC,EAAaH,EAAY,QAC1B,OAAOC,GAASA,EAAM,YAAcG,EAAU,KAAK,EACnD,OAAO,CAACC,EAAKC,IACV,CAACD,GAEDC,EAAI,aAAe,CAACD,EAAI,aAExBC,EAAI,YAAcD,EAAI,YACfC,EACJD,EACR,IAAI,EACHF,IACA,KAAK,SAAS,UAAU,QAASA,EAAW,QAAQ,QAAQ,KAAM,EAAE,CAAC,EACrE,KAAK,SAAS,UAAU,aAAcA,EAAW,MAAM,iBAAiB,EACxE,KAAK,SAAS,UAAU,mBAAoBA,EAAW,MAAM,QAAQ,EAE7E,CACJ,CACA,MACJ,IAAK,WACD,CACI,IAAMI,EAAOZ,EACb,MAAM,QAAQ,IAAIY,EAAK,IAAI,IAAI,MAAOC,GAAQ,CAC1C,IAAMC,EAASD,EAAI,OACbE,EAAaD,GAAQ,gBAAkBE,EAAWF,EAAO,eAAe,EAAKA,GAAQ,WAAaA,EAAO,WAAa,QAC5H,MAAM,QAAQ,IAAID,EAAI,WAAW,IAAI,MAAOI,GAAc,CACtD,IAAMjB,EAAQiB,EAAU,OAASA,EAAU,OAASA,EAAU,OAC9D,MAAM,KAAK,OAAO,GAAGF,CAAU,IAAIE,EAAU,IAAI,GAAIjB,CAAK,CAC9D,CAAC,CAAC,CACN,CAAC,CAAC,CACN,CACA,MACJ,IAAK,WACD,CACI,IAAMkB,EAAclB,EACpB,MAAM,QAAQ,IAAIkB,EAAY,cACzB,OAAOC,GAAQA,EAAK,SAAS,WAAW,QAAQ,CAAC,EACjD,IAAIA,GAAQ,KAAK,OAAO,UAAW,CACpC,KAAMA,EAAK,KACX,OAAQA,EAAK,SACb,YAAaA,EAAK,YAClB,KAAMA,EAAK,IACf,CAAC,CAAC,CAAC,CACP,CACA,KACR,CACJ,EAtFc,eAuFlB,CAAC,CACL,CACA,MAAM,OAAOC,EAAOpB,EAAO,CACvB,MAAM,KAAK,SAAS,OAAO,WAAYoB,EAAOpB,CAAK,CACvD,CACJ","names":["import_debug","DataType","matroskaDtd","DataType","import_debug","debug","initDebug","EbmlContentError","makeUnexpectedFileContentError","__name","ParseAction","EbmlIterator","tokenizer","DataType","e","dtdElement","posDone","listener","linkParents","tree","element","elementPosition","error","EndOfStreamError","child","getElementPath","res","parser","value","maxLength","msb","UINT8","mask","oc","id","lenField","readUIntBE","Float32_BE","Float64_BE","buf","StringType","len","readUIntBeAsBigInt","normalizedNumber","cleanNumber","UINT64_BE","path","debug","initDebug","MatroskaParser","BasicParser","__name","containerSize","matroskaIterator","EbmlIterator","matroskaDtd","element","ParseAction","index","ignoreSize","value","offset","info","timecodeScale","duration","audioTracks","entry","stream","audioTrack","TrackType","acc","cur","tags","tag","target","targetType","TargetType","simpleTag","attachments","file","tagId"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/MatroskaParser-S7QBLT5N.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js new file mode 100644 index 00000000..c8fdf607 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js @@ -0,0 +1,3 @@ +import{a as S}from"./chunk-BF2A4D4Q.js";import"./chunk-6XPFWKSW.js";import"./chunk-GSVEIULU.js";import"./chunk-LINMKWZS.js";import"./chunk-C5GF5WSP.js";import{g as T,h as n,i as l}from"./chunk-FHQAE777.js";import{A as w,B as f,H as x,a as u,f as N,i as p,k as I,o as c,q as k}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as r,d as M}from"./chunk-75KFZLU6.js";var R=M(N());var F={len:2,get:r((i,e)=>{let t=n(i,e,0,3),a=n(i,e,6,1),s=n(i,e,7,9)/10;if(t>0)return{type:n(i,e,0,3),origin:n(i,e,3,3),adjustment:a?-s:s}},"get")};var B={len:27,get:r((i,e)=>{let t=c.get(i,e+2);return{revision:n(i,e,0,4),vbr_method:n(i,e,4,4),lowpass_filter:100*p.get(i,e+1),track_peak:t===0?null:t/2**23,track_gain:F.get(i,6),album_gain:F.get(i,8),music_length:c.get(i,e+20),music_crc:p.get(i,e+24),header_crc:I.get(i,e+24)}},"get")};var b=new f(4,"ascii"),g=new f(6,"ascii"),D={len:4,get:r((i,e)=>({frames:l(i,e,31),bytes:l(i,e,30),toc:l(i,e,29),vbrScale:l(i,e,28)}),"get")};async function A(i){let e=await i.readToken(D),t={numFrames:null,streamSize:null,vbrScale:null};if(e.frames&&(t.numFrames=await i.readToken(c)),e.bytes&&(t.streamSize=await i.readToken(c)),e.toc&&(t.toc=new Uint8Array(100),await i.readBuffer(t.toc)),e.vbrScale&&(t.vbrScale=await i.readToken(c)),await i.peekToken(new f(4,"ascii"))==="LAME"){await i.ignore(4),t.lame={version:await i.readToken(new f(5,"ascii"))};let s=t.lame.version.match(/\d+.\d+/g);if(s!==null){let C=s[0].split(".").map(L=>Number.parseInt(L,10));C[0]>=3&&C[1]>=90&&(t.lame.extended=await i.readToken(B))}}return t}r(A,"readXingHeader");var o=(0,R.default)("music-metadata:parser:mpeg"),d=class extends x("MPEG"){static{r(this,"MpegContentError")}},P=1024,v={AudioObjectTypes:["AAC Main","AAC LC","AAC SSR","AAC LTP"],SamplingFrequencies:[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350,null,null,null]},H=[void 0,["front-center"],["front-left","front-right"],["front-center","front-left","front-right"],["front-center","front-left","front-right","back-center"],["front-center","front-left","front-right","back-left","back-right"],["front-center","front-left","front-right","back-left","back-right","LFE-channel"],["front-center","front-left","front-right","side-left","side-right","back-left","back-right","LFE-channel"]],m=class i{static{r(this,"MpegFrameHeader")}constructor(e,t){this.bitrateIndex=null,this.sampRateFreqIndex=null,this.padding=null,this.privateBit=null,this.channelModeIndex=null,this.modeExtension=null,this.isOriginalMedia=null,this.version=null,this.bitrate=null,this.samplingRate=null,this.frameLength=0,this.versionIndex=n(e,t+1,3,2),this.layer=i.LayerDescription[n(e,t+1,5,2)],this.versionIndex>1&&this.layer===0?this.parseAdtsHeader(e,t):this.parseMpegHeader(e,t),this.isProtectedByCRC=!l(e,t+1,7)}calcDuration(e){return this.samplingRate==null?null:e*this.calcSamplesPerFrame()/this.samplingRate}calcSamplesPerFrame(){return i.samplesInFrameTable[this.version===1?0:1][this.layer]}calculateSideInfoLength(){if(this.layer!==3)return 2;if(this.channelModeIndex===3){if(this.version===1)return 17;if(this.version===2||this.version===2.5)return 9}else{if(this.version===1)return 32;if(this.version===2||this.version===2.5)return 17}return null}calcSlotSize(){return[null,4,1,1][this.layer]}parseMpegHeader(e,t){this.container="MPEG",this.bitrateIndex=n(e,t+2,0,4),this.sampRateFreqIndex=n(e,t+2,4,2),this.padding=l(e,t+2,6),this.privateBit=l(e,t+2,7),this.channelModeIndex=n(e,t+3,0,2),this.modeExtension=n(e,t+3,2,2),this.isCopyrighted=l(e,t+3,4),this.isOriginalMedia=l(e,t+3,5),this.emphasis=n(e,t+3,7,2),this.version=i.VersionID[this.versionIndex],this.channelMode=i.ChannelMode[this.channelModeIndex],this.codec=`MPEG ${this.version} Layer ${this.layer}`;let a=this.calcBitrate();if(!a)throw new d("Cannot determine bit-rate");if(this.bitrate=a*1e3,this.samplingRate=this.calcSamplingRate(),this.samplingRate==null)throw new d("Cannot determine sampling-rate")}parseAdtsHeader(e,t){o("layer=0 => ADTS"),this.version=this.versionIndex===2?4:2,this.container=`ADTS/MPEG-${this.version}`;let a=n(e,t+2,0,2);this.codec="AAC",this.codecProfile=v.AudioObjectTypes[a],o(`MPEG-4 audio-codec=${this.codec}`);let s=n(e,t+2,2,4);this.samplingRate=v.SamplingFrequencies[s],o(`sampling-rate=${this.samplingRate}`);let h=n(e,t+2,7,3);this.mp4ChannelConfig=H[h],o(`channel-config=${this.mp4ChannelConfig?this.mp4ChannelConfig.join("+"):"?"}`),this.frameLength=n(e,t+3,6,2)<<11}calcBitrate(){if(this.bitrateIndex===0||this.bitrateIndex===15)return null;if(this.version&&this.bitrateIndex){let e=10*Math.floor(this.version)+this.layer;return i.bitrate_index[this.bitrateIndex][e]}return null}calcSamplingRate(){return this.sampRateFreqIndex===3||this.version===null||this.sampRateFreqIndex==null?null:i.sampling_rate_freq_index[this.version][this.sampRateFreqIndex]}};m.SyncByte1=255;m.SyncByte2=224;m.VersionID=[2.5,null,2,1];m.LayerDescription=[0,3,2,1];m.ChannelMode=["stereo","joint_stereo","dual_channel","mono"];m.bitrate_index={1:{11:32,12:32,13:32,21:32,22:8,23:8},2:{11:64,12:48,13:40,21:48,22:16,23:16},3:{11:96,12:56,13:48,21:56,22:24,23:24},4:{11:128,12:64,13:56,21:64,22:32,23:32},5:{11:160,12:80,13:64,21:80,22:40,23:40},6:{11:192,12:96,13:80,21:96,22:48,23:48},7:{11:224,12:112,13:96,21:112,22:56,23:56},8:{11:256,12:128,13:112,21:128,22:64,23:64},9:{11:288,12:160,13:128,21:144,22:80,23:80},10:{11:320,12:192,13:160,21:160,22:96,23:96},11:{11:352,12:224,13:192,21:176,22:112,23:112},12:{11:384,12:256,13:224,21:192,22:128,23:128},13:{11:416,12:320,13:256,21:224,22:144,23:144},14:{11:448,12:384,13:320,21:256,22:160,23:160}};m.sampling_rate_freq_index={1:{0:44100,1:48e3,2:32e3},2:{0:22050,1:24e3,2:16e3},2.5:{0:11025,1:12e3,2:8e3}};m.samplesInFrameTable=[[0,384,1152,1152],[0,384,1152,576]];var z={len:4,get:r((i,e)=>new m(i,e),"get")};function O(i){return`V${Math.floor((100-i)/10)}`}r(O,"getVbrCodecProfile");var E=class extends S{static{r(this,"MpegParser")}constructor(){super(...arguments),this.frameCount=0,this.syncFrameCount=-1,this.totalDataLength=0,this.bitrates=[],this.offset=0,this.frame_size=0,this.calculateEofDuration=!1,this.samplesPerFrame=null,this.buf_frame_header=new Uint8Array(4),this.mpegOffset=null,this.syncPeek={buf:new Uint8Array(P),len:0}}async postId3v2Parse(){this.metadata.setFormat("lossless",!1),this.metadata.setAudioOnly();try{let e=!1;for(;!e;)await this.sync(),e=await this.parseCommonMpegHeader()}catch(e){if(e instanceof u){if(o("End-of-stream"),this.calculateEofDuration&&this.samplesPerFrame!==null){let t=this.frameCount*this.samplesPerFrame;if(this.metadata.setFormat("numberOfSamples",t),this.metadata.format.sampleRate){let a=t/this.metadata.format.sampleRate;o(`Calculate duration at EOF: ${a} sec.`,a),this.metadata.setFormat("duration",a)}}}else throw e}}finalize(){let e=this.metadata.format,t=!!this.metadata.native.ID3v1;if(this.mpegOffset!==null){if(e.duration&&this.tokenizer.fileInfo.size){let a=this.tokenizer.fileInfo.size-this.mpegOffset-(t?128:0);e.codecProfile&&e.codecProfile[0]==="V"&&this.metadata.setFormat("bitrate",a*8/e.duration)}if(this.tokenizer.fileInfo.size&&e.codecProfile==="CBR"){let a=this.tokenizer.fileInfo.size-this.mpegOffset-(t?128:0);if(this.frame_size!==null&&this.samplesPerFrame!==null){let s=Math.round(a/this.frame_size)*this.samplesPerFrame;if(this.metadata.setFormat("numberOfSamples",s),e.sampleRate&&!e.duration){let h=s/e.sampleRate;o("Calculate CBR duration based on file size: %s",h),this.metadata.setFormat("duration",h)}}}}}async sync(){let e=!1;for(;;){let t=0;if(this.syncPeek.len=await this.tokenizer.peekBuffer(this.syncPeek.buf,{length:P,mayBeLess:!0}),this.syncPeek.len<=163)throw new u;for(;;){if(e&&(this.syncPeek.buf[t]&224)===224){this.buf_frame_header[0]=m.SyncByte1,this.buf_frame_header[1]=this.syncPeek.buf[t],await this.tokenizer.ignore(t),o(`Sync at offset=${this.tokenizer.position-1}, frameCount=${this.frameCount}`),this.syncFrameCount===this.frameCount&&(o(`Re-synced MPEG stream, frameCount=${this.frameCount}`),this.frameCount=0,this.frame_size=0),this.syncFrameCount=this.frameCount;return}if(e=!1,t=this.syncPeek.buf.indexOf(m.SyncByte1,t),t===-1){if(this.syncPeek.len=2&&e.layer===0?this.parseAdts(e):this.parseAudioFrameHeader(e)}async parseAudioFrameHeader(e){this.metadata.setFormat("numberOfChannels",e.channelMode==="mono"?1:2),this.metadata.setFormat("bitrate",e.bitrate),this.frameCount<20*1e4&&o("offset=%s MP%s bitrate=%s sample-rate=%s",this.tokenizer.position-4,e.layer,e.bitrate,e.samplingRate);let t=e.calcSlotSize();if(t===null)throw new d("invalid slot_size");let a=e.calcSamplesPerFrame();o(`samples_per_frame=${a}`);let s=a/8;if(e.bitrate!==null&&e.samplingRate!=null){let h=s*e.bitrate/e.samplingRate+(e.padding?t:0);this.frame_size=Math.floor(h)}if(this.audioFrameHeader=e,e.bitrate!==null&&this.bitrates.push(e.bitrate),this.frameCount===1)return this.offset=z.len,await this.skipSideInformation(),!1;if(this.frameCount===4){if(this.areAllSame(this.bitrates)){if(this.samplesPerFrame=a,this.metadata.setFormat("codecProfile","CBR"),this.tokenizer.fileInfo.size)return!0}else if(this.metadata.format.duration)return!0;if(!this.options.duration)return!0}return this.options.duration&&this.frameCount===4&&(this.samplesPerFrame=a,this.calculateEofDuration=!0),this.offset=4,e.isProtectedByCRC?(await this.parseCrc(),!1):(await this.skipSideInformation(),!1)}async parseAdts(e){let t=new Uint8Array(3);if(await this.tokenizer.readBuffer(t),e.frameLength+=n(t,0,0,11),this.totalDataLength+=e.frameLength,this.samplesPerFrame=1024,e.samplingRate!==null){let a=e.samplingRate/this.samplesPerFrame,h=8*(this.frameCount===0?0:this.totalDataLength/this.frameCount)*a+.5;this.metadata.setFormat("bitrate",h),o(`frame-count=${this.frameCount}, size=${e.frameLength} bytes, bit-rate=${h}`)}if(await this.tokenizer.ignore(e.frameLength>7?e.frameLength-7:1),this.frameCount===3)if(this.metadata.setFormat("codecProfile",e.codecProfile),e.mp4ChannelConfig&&this.metadata.setFormat("numberOfChannels",e.mp4ChannelConfig.length),this.options.duration)this.calculateEofDuration=!0;else return!0;return!1}async parseCrc(){return await this.tokenizer.ignore(k.len),this.offset+=k.len,this.skipSideInformation()}async skipSideInformation(){if(this.audioFrameHeader){let e=this.audioFrameHeader.calculateSideInfoLength();if(e!==null){await this.tokenizer.readToken(new w(e)),this.offset+=e,await this.readXtraInfoHeader();return}}}async readXtraInfoHeader(){let e=await this.tokenizer.readToken(b);switch(this.offset+=b.len,e){case"Info":return this.metadata.setFormat("codecProfile","CBR"),this.readXingInfoHeader();case"Xing":{let a=await this.readXingInfoHeader();if(a.vbrScale!==null){let s=O(a.vbrScale);this.metadata.setFormat("codecProfile",s)}return null}case"Xtra":break;case"LAME":{let a=await this.tokenizer.readToken(g);if(this.frame_size!==null&&this.frame_size>=this.offset+g.len)return this.offset+=g.len,this.metadata.setFormat("tool",`LAME ${a}`),await this.skipFrameData(this.frame_size-this.offset),null;this.metadata.addWarning("Corrupt LAME header");break}}let t=this.frame_size-this.offset;return t<0?this.metadata.addWarning(`Frame ${this.frameCount}corrupt: negative frameDataLeft`):await this.skipFrameData(t),null}async readXingInfoHeader(){let e=this.tokenizer.position,t=await A(this.tokenizer);if(this.offset+=this.tokenizer.position-e,t.lame&&(this.metadata.setFormat("tool",`LAME ${T(t.lame.version)}`),t.lame.extended&&(this.metadata.setFormat("trackPeakLevel",t.lame.extended.track_peak),t.lame.extended.track_gain&&this.metadata.setFormat("trackGain",t.lame.extended.track_gain.adjustment),t.lame.extended.album_gain&&this.metadata.setFormat("albumGain",t.lame.extended.album_gain.adjustment),this.metadata.setFormat("duration",t.lame.extended.music_length/1e3))),t.streamSize&&this.audioFrameHeader&&t.numFrames!==null){let s=this.audioFrameHeader.calcDuration(t.numFrames);return this.metadata.setFormat("duration",s),o("Get duration from Xing header: %s",this.metadata.format.duration),t}let a=this.frame_size-this.offset;return await this.skipFrameData(a),t}async skipFrameData(e){if(e<0)throw new d("frame-data-left cannot be negative");await this.tokenizer.ignore(e)}areAllSame(e){let t=e[0];return e.every(a=>a===t)}};export{d as MpegContentError,E as MpegParser}; + +//# sourceMappingURL=./MpegParser-O2RE6KKD.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js.br new file mode 100644 index 0000000000000000000000000000000000000000..cd71fb50d191192c4b07fd1fc46b6b53b7264511 GIT binary patch literal 4172 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 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js.map new file mode 100644 index 00000000..9e45b169 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MpegParser-O2RE6KKD.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/mpeg/MpegParser.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/mpeg/ReplayGainDataFormat.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/mpeg/ExtendedLameHeader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/mpeg/XingTag.js"],"sourcesContent":["import * as Token from 'token-types';\nimport { EndOfStreamError } from 'strtok3';\nimport initDebug from 'debug';\nimport * as common from '../common/Util.js';\nimport { AbstractID3Parser } from '../id3v2/AbstractID3Parser.js';\nimport { InfoTagHeaderTag, LameEncoderVersion, readXingHeader } from './XingTag.js';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nconst debug = initDebug('music-metadata:parser:mpeg');\nexport class MpegContentError extends makeUnexpectedFileContentError('MPEG') {\n}\n/**\n * Cache buffer size used for searching synchronization preabmle\n */\nconst maxPeekLen = 1024;\n/**\n * MPEG-4 Audio definitions\n * Ref: https://wiki.multimedia.cx/index.php/MPEG-4_Audio\n */\nconst MPEG4 = {\n /**\n * Audio Object Types\n */\n AudioObjectTypes: [\n 'AAC Main',\n 'AAC LC', // Low Complexity\n 'AAC SSR', // Scalable Sample Rate\n 'AAC LTP' // Long Term Prediction\n ],\n /**\n * Sampling Frequencies\n * https://wiki.multimedia.cx/index.php/MPEG-4_Audio#Sampling_Frequencies\n */\n SamplingFrequencies: [\n 96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350, null, null, null\n ]\n /**\n * Channel Configurations\n */\n};\nconst MPEG4_ChannelConfigurations = [\n undefined,\n ['front-center'],\n ['front-left', 'front-right'],\n ['front-center', 'front-left', 'front-right'],\n ['front-center', 'front-left', 'front-right', 'back-center'],\n ['front-center', 'front-left', 'front-right', 'back-left', 'back-right'],\n ['front-center', 'front-left', 'front-right', 'back-left', 'back-right', 'LFE-channel'],\n ['front-center', 'front-left', 'front-right', 'side-left', 'side-right', 'back-left', 'back-right', 'LFE-channel']\n];\n/**\n * MPEG Audio Layer I/II/III frame header\n * Ref: https://www.mp3-tech.org/programmer/frame_header.html\n * Bit layout: AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM\n * Ref: https://wiki.multimedia.cx/index.php/ADTS\n */\nclass MpegFrameHeader {\n constructor(buf, off) {\n // E(15,12): Bitrate index\n this.bitrateIndex = null;\n // F(11,10): Sampling rate frequency index\n this.sampRateFreqIndex = null;\n // G(9): Padding bit\n this.padding = null;\n // H(8): Private bit\n this.privateBit = null;\n // I(7,6): Channel Mode\n this.channelModeIndex = null;\n // J(5,4): Mode extension (Only used in Joint stereo)\n this.modeExtension = null;\n // L(2): Original\n this.isOriginalMedia = null;\n this.version = null;\n this.bitrate = null;\n this.samplingRate = null;\n this.frameLength = 0;\n // B(20,19): MPEG Audio versionIndex ID\n this.versionIndex = common.getBitAllignedNumber(buf, off + 1, 3, 2);\n // C(18,17): Layer description\n this.layer = MpegFrameHeader.LayerDescription[common.getBitAllignedNumber(buf, off + 1, 5, 2)];\n if (this.versionIndex > 1 && this.layer === 0) {\n this.parseAdtsHeader(buf, off); // Audio Data Transport Stream (ADTS)\n }\n else {\n this.parseMpegHeader(buf, off); // Conventional MPEG header\n }\n // D(16): Protection bit (if true 16-bit CRC follows header)\n this.isProtectedByCRC = !common.isBitSet(buf, off + 1, 7);\n }\n calcDuration(numFrames) {\n return this.samplingRate == null ? null : (numFrames * this.calcSamplesPerFrame() / this.samplingRate);\n }\n calcSamplesPerFrame() {\n return MpegFrameHeader.samplesInFrameTable[this.version === 1 ? 0 : 1][this.layer];\n }\n calculateSideInfoLength() {\n if (this.layer !== 3)\n return 2;\n if (this.channelModeIndex === 3) {\n // mono\n if (this.version === 1) {\n return 17;\n }\n if (this.version === 2 || this.version === 2.5) {\n return 9;\n }\n }\n else {\n if (this.version === 1) {\n return 32;\n }\n if (this.version === 2 || this.version === 2.5) {\n return 17;\n }\n }\n return null;\n }\n calcSlotSize() {\n return [null, 4, 1, 1][this.layer];\n }\n parseMpegHeader(buf, off) {\n this.container = 'MPEG';\n // E(15,12): Bitrate index\n this.bitrateIndex = common.getBitAllignedNumber(buf, off + 2, 0, 4);\n // F(11,10): Sampling rate frequency index\n this.sampRateFreqIndex = common.getBitAllignedNumber(buf, off + 2, 4, 2);\n // G(9): Padding bit\n this.padding = common.isBitSet(buf, off + 2, 6);\n // H(8): Private bit\n this.privateBit = common.isBitSet(buf, off + 2, 7);\n // I(7,6): Channel Mode\n this.channelModeIndex = common.getBitAllignedNumber(buf, off + 3, 0, 2);\n // J(5,4): Mode extension (Only used in Joint stereo)\n this.modeExtension = common.getBitAllignedNumber(buf, off + 3, 2, 2);\n // K(3): Copyright\n this.isCopyrighted = common.isBitSet(buf, off + 3, 4);\n // L(2): Original\n this.isOriginalMedia = common.isBitSet(buf, off + 3, 5);\n // M(3): The original bit indicates, if it is set, that the frame is located on its original media.\n this.emphasis = common.getBitAllignedNumber(buf, off + 3, 7, 2);\n this.version = MpegFrameHeader.VersionID[this.versionIndex];\n this.channelMode = MpegFrameHeader.ChannelMode[this.channelModeIndex];\n this.codec = `MPEG ${this.version} Layer ${this.layer}`;\n // Calculate bitrate\n const bitrateInKbps = this.calcBitrate();\n if (!bitrateInKbps) {\n throw new MpegContentError('Cannot determine bit-rate');\n }\n this.bitrate = bitrateInKbps * 1000;\n // Calculate sampling rate\n this.samplingRate = this.calcSamplingRate();\n if (this.samplingRate == null) {\n throw new MpegContentError('Cannot determine sampling-rate');\n }\n }\n parseAdtsHeader(buf, off) {\n debug(\"layer=0 => ADTS\");\n this.version = this.versionIndex === 2 ? 4 : 2;\n this.container = `ADTS/MPEG-${this.version}`;\n const profileIndex = common.getBitAllignedNumber(buf, off + 2, 0, 2);\n this.codec = 'AAC';\n this.codecProfile = MPEG4.AudioObjectTypes[profileIndex];\n debug(`MPEG-4 audio-codec=${this.codec}`);\n const samplingFrequencyIndex = common.getBitAllignedNumber(buf, off + 2, 2, 4);\n this.samplingRate = MPEG4.SamplingFrequencies[samplingFrequencyIndex];\n debug(`sampling-rate=${this.samplingRate}`);\n const channelIndex = common.getBitAllignedNumber(buf, off + 2, 7, 3);\n this.mp4ChannelConfig = MPEG4_ChannelConfigurations[channelIndex];\n debug(`channel-config=${this.mp4ChannelConfig ? this.mp4ChannelConfig.join('+') : '?'}`);\n this.frameLength = common.getBitAllignedNumber(buf, off + 3, 6, 2) << 11;\n }\n calcBitrate() {\n if (this.bitrateIndex === 0x00 || // free\n this.bitrateIndex === 0x0F) { // reserved\n return null;\n }\n if (this.version && this.bitrateIndex) {\n const codecIndex = 10 * Math.floor(this.version) + this.layer;\n return MpegFrameHeader.bitrate_index[this.bitrateIndex][codecIndex];\n }\n return null;\n }\n calcSamplingRate() {\n if (this.sampRateFreqIndex === 0x03 || this.version === null || this.sampRateFreqIndex == null)\n return null; // 'reserved'\n return MpegFrameHeader.sampling_rate_freq_index[this.version][this.sampRateFreqIndex];\n }\n}\nMpegFrameHeader.SyncByte1 = 0xFF;\nMpegFrameHeader.SyncByte2 = 0xE0;\nMpegFrameHeader.VersionID = [2.5, null, 2, 1];\nMpegFrameHeader.LayerDescription = [0, 3, 2, 1];\nMpegFrameHeader.ChannelMode = ['stereo', 'joint_stereo', 'dual_channel', 'mono'];\nMpegFrameHeader.bitrate_index = {\n 1: { 11: 32, 12: 32, 13: 32, 21: 32, 22: 8, 23: 8 },\n 2: { 11: 64, 12: 48, 13: 40, 21: 48, 22: 16, 23: 16 },\n 3: { 11: 96, 12: 56, 13: 48, 21: 56, 22: 24, 23: 24 },\n 4: { 11: 128, 12: 64, 13: 56, 21: 64, 22: 32, 23: 32 },\n 5: { 11: 160, 12: 80, 13: 64, 21: 80, 22: 40, 23: 40 },\n 6: { 11: 192, 12: 96, 13: 80, 21: 96, 22: 48, 23: 48 },\n 7: { 11: 224, 12: 112, 13: 96, 21: 112, 22: 56, 23: 56 },\n 8: { 11: 256, 12: 128, 13: 112, 21: 128, 22: 64, 23: 64 },\n 9: { 11: 288, 12: 160, 13: 128, 21: 144, 22: 80, 23: 80 },\n 10: { 11: 320, 12: 192, 13: 160, 21: 160, 22: 96, 23: 96 },\n 11: { 11: 352, 12: 224, 13: 192, 21: 176, 22: 112, 23: 112 },\n 12: { 11: 384, 12: 256, 13: 224, 21: 192, 22: 128, 23: 128 },\n 13: { 11: 416, 12: 320, 13: 256, 21: 224, 22: 144, 23: 144 },\n 14: { 11: 448, 12: 384, 13: 320, 21: 256, 22: 160, 23: 160 }\n};\nMpegFrameHeader.sampling_rate_freq_index = {\n 1: { 0: 44100, 1: 48000, 2: 32000 },\n 2: { 0: 22050, 1: 24000, 2: 16000 },\n 2.5: { 0: 11025, 1: 12000, 2: 8000 }\n};\nMpegFrameHeader.samplesInFrameTable = [\n /* Layer I II III */\n [0, 384, 1152, 1152], // MPEG-1\n [0, 384, 1152, 576] // MPEG-2(.5\n];\n/**\n * MPEG Audio Layer I/II/III\n */\nconst FrameHeader = {\n len: 4,\n get: (buf, off) => {\n return new MpegFrameHeader(buf, off);\n }\n};\nfunction getVbrCodecProfile(vbrScale) {\n return `V${Math.floor((100 - vbrScale) / 10)}`;\n}\nexport class MpegParser extends AbstractID3Parser {\n constructor() {\n super(...arguments);\n this.frameCount = 0;\n this.syncFrameCount = -1;\n this.totalDataLength = 0;\n this.bitrates = [];\n this.offset = 0;\n this.frame_size = 0;\n this.calculateEofDuration = false;\n this.samplesPerFrame = null;\n this.buf_frame_header = new Uint8Array(4);\n /**\n * Number of bytes already parsed since beginning of stream / file\n */\n this.mpegOffset = null;\n this.syncPeek = {\n buf: new Uint8Array(maxPeekLen),\n len: 0\n };\n }\n /**\n * Called after ID3 headers have been parsed\n */\n async postId3v2Parse() {\n this.metadata.setFormat('lossless', false);\n this.metadata.setAudioOnly();\n try {\n let quit = false;\n while (!quit) {\n await this.sync();\n quit = await this.parseCommonMpegHeader();\n }\n }\n catch (err) {\n if (err instanceof EndOfStreamError) {\n debug(\"End-of-stream\");\n if (this.calculateEofDuration) {\n if (this.samplesPerFrame !== null) {\n const numberOfSamples = this.frameCount * this.samplesPerFrame;\n this.metadata.setFormat('numberOfSamples', numberOfSamples);\n if (this.metadata.format.sampleRate) {\n const duration = numberOfSamples / this.metadata.format.sampleRate;\n debug(`Calculate duration at EOF: ${duration} sec.`, duration);\n this.metadata.setFormat('duration', duration);\n }\n }\n }\n }\n else {\n throw err;\n }\n }\n }\n /**\n * Called after file has been fully parsed, this allows, if present, to exclude the ID3v1.1 header length\n */\n finalize() {\n const format = this.metadata.format;\n const hasID3v1 = !!this.metadata.native.ID3v1;\n if (this.mpegOffset !== null) {\n if (format.duration && this.tokenizer.fileInfo.size) {\n const mpegSize = this.tokenizer.fileInfo.size - this.mpegOffset - (hasID3v1 ? 128 : 0);\n if (format.codecProfile && format.codecProfile[0] === 'V') {\n this.metadata.setFormat('bitrate', mpegSize * 8 / format.duration);\n }\n }\n if (this.tokenizer.fileInfo.size && format.codecProfile === 'CBR') {\n const mpegSize = this.tokenizer.fileInfo.size - this.mpegOffset - (hasID3v1 ? 128 : 0);\n if (this.frame_size !== null && this.samplesPerFrame !== null) {\n const numberOfSamples = Math.round(mpegSize / this.frame_size) * this.samplesPerFrame;\n this.metadata.setFormat('numberOfSamples', numberOfSamples);\n if (format.sampleRate && !format.duration) {\n const duration = numberOfSamples / format.sampleRate;\n debug(\"Calculate CBR duration based on file size: %s\", duration);\n this.metadata.setFormat('duration', duration);\n }\n }\n }\n }\n }\n async sync() {\n let gotFirstSync = false;\n while (true) {\n let bo = 0;\n this.syncPeek.len = await this.tokenizer.peekBuffer(this.syncPeek.buf, { length: maxPeekLen, mayBeLess: true });\n if (this.syncPeek.len <= 163) {\n throw new EndOfStreamError();\n }\n while (true) {\n if (gotFirstSync && (this.syncPeek.buf[bo] & 0xE0) === 0xE0) {\n this.buf_frame_header[0] = MpegFrameHeader.SyncByte1;\n this.buf_frame_header[1] = this.syncPeek.buf[bo];\n await this.tokenizer.ignore(bo);\n debug(`Sync at offset=${this.tokenizer.position - 1}, frameCount=${this.frameCount}`);\n if (this.syncFrameCount === this.frameCount) {\n debug(`Re-synced MPEG stream, frameCount=${this.frameCount}`);\n this.frameCount = 0;\n this.frame_size = 0;\n }\n this.syncFrameCount = this.frameCount;\n return; // sync\n }\n gotFirstSync = false;\n bo = this.syncPeek.buf.indexOf(MpegFrameHeader.SyncByte1, bo);\n if (bo === -1) {\n if (this.syncPeek.len < this.syncPeek.buf.length) {\n throw new EndOfStreamError();\n }\n await this.tokenizer.ignore(this.syncPeek.len);\n break; // continue with next buffer\n }\n ++bo;\n gotFirstSync = true;\n }\n }\n }\n /**\n * Combined ADTS & MPEG (MP2 & MP3) header handling\n * @return {Promise} true if parser should quit\n */\n async parseCommonMpegHeader() {\n if (this.frameCount === 0) {\n this.mpegOffset = this.tokenizer.position - 1;\n }\n await this.tokenizer.peekBuffer(this.buf_frame_header.subarray(1), { length: 3 });\n let header;\n try {\n header = FrameHeader.get(this.buf_frame_header, 0);\n }\n catch (err) {\n await this.tokenizer.ignore(1);\n if (err instanceof Error) {\n this.metadata.addWarning(`Parse error: ${err.message}`);\n return false; // sync\n }\n throw err;\n }\n await this.tokenizer.ignore(3);\n this.metadata.setFormat('container', header.container);\n this.metadata.setFormat('codec', header.codec);\n this.metadata.setFormat('lossless', false);\n this.metadata.setFormat('sampleRate', header.samplingRate);\n this.frameCount++;\n return header.version !== null && header.version >= 2 && header.layer === 0 ? this.parseAdts(header) : this.parseAudioFrameHeader(header);\n }\n /**\n * @return {Promise} true if parser should quit\n */\n async parseAudioFrameHeader(header) {\n this.metadata.setFormat('numberOfChannels', header.channelMode === 'mono' ? 1 : 2);\n this.metadata.setFormat('bitrate', header.bitrate);\n if (this.frameCount < 20 * 10000) {\n debug('offset=%s MP%s bitrate=%s sample-rate=%s', this.tokenizer.position - 4, header.layer, header.bitrate, header.samplingRate);\n }\n const slot_size = header.calcSlotSize();\n if (slot_size === null) {\n throw new MpegContentError('invalid slot_size');\n }\n const samples_per_frame = header.calcSamplesPerFrame();\n debug(`samples_per_frame=${samples_per_frame}`);\n const bps = samples_per_frame / 8.0;\n if (header.bitrate !== null && header.samplingRate != null) {\n const fsize = (bps * header.bitrate / header.samplingRate) + ((header.padding) ? slot_size : 0);\n this.frame_size = Math.floor(fsize);\n }\n this.audioFrameHeader = header;\n if (header.bitrate !== null) {\n this.bitrates.push(header.bitrate);\n }\n // xtra header only exists in first frame\n if (this.frameCount === 1) {\n this.offset = FrameHeader.len;\n await this.skipSideInformation();\n return false;\n }\n if (this.frameCount === 4) {\n // the stream is CBR if the first 3 frame bitrates are the same\n if (this.areAllSame(this.bitrates)) {\n // Actual calculation will be done in finalize\n this.samplesPerFrame = samples_per_frame;\n this.metadata.setFormat('codecProfile', 'CBR');\n if (this.tokenizer.fileInfo.size)\n return true; // Will calculate duration based on the file size\n }\n else if (this.metadata.format.duration) {\n return true; // We already got the duration, stop processing MPEG stream any further\n }\n if (!this.options.duration) {\n return true; // Enforce duration not enabled, stop processing entire stream\n }\n }\n // once we know the file is VBR attach listener to end of\n // stream so we can do the duration calculation when we\n // have counted all the frames\n if (this.options.duration && this.frameCount === 4) {\n this.samplesPerFrame = samples_per_frame;\n this.calculateEofDuration = true;\n }\n this.offset = 4;\n if (header.isProtectedByCRC) {\n await this.parseCrc();\n return false;\n }\n await this.skipSideInformation();\n return false;\n }\n async parseAdts(header) {\n const buf = new Uint8Array(3);\n await this.tokenizer.readBuffer(buf);\n header.frameLength += common.getBitAllignedNumber(buf, 0, 0, 11);\n this.totalDataLength += header.frameLength;\n this.samplesPerFrame = 1024;\n if (header.samplingRate !== null) {\n const framesPerSec = header.samplingRate / this.samplesPerFrame;\n const bytesPerFrame = this.frameCount === 0 ? 0 : this.totalDataLength / this.frameCount;\n const bitrate = 8 * bytesPerFrame * framesPerSec + 0.5;\n this.metadata.setFormat('bitrate', bitrate);\n debug(`frame-count=${this.frameCount}, size=${header.frameLength} bytes, bit-rate=${bitrate}`);\n }\n await this.tokenizer.ignore(header.frameLength > 7 ? header.frameLength - 7 : 1);\n // Consume remaining header and frame data\n if (this.frameCount === 3) {\n this.metadata.setFormat('codecProfile', header.codecProfile);\n if (header.mp4ChannelConfig) {\n this.metadata.setFormat('numberOfChannels', header.mp4ChannelConfig.length);\n }\n if (this.options.duration) {\n this.calculateEofDuration = true;\n }\n else {\n return true; // Stop parsing after the third frame\n }\n }\n return false;\n }\n async parseCrc() {\n await this.tokenizer.ignore(Token.INT16_BE.len); // Ignore CRC\n this.offset += Token.INT16_BE.len;\n return this.skipSideInformation();\n }\n async skipSideInformation() {\n if (this.audioFrameHeader) {\n const sideinfo_length = this.audioFrameHeader.calculateSideInfoLength();\n if (sideinfo_length !== null) {\n await this.tokenizer.readToken(new Token.Uint8ArrayType(sideinfo_length));\n // side information\n this.offset += sideinfo_length;\n await this.readXtraInfoHeader();\n return;\n }\n }\n }\n async readXtraInfoHeader() {\n const headerTag = await this.tokenizer.readToken(InfoTagHeaderTag);\n this.offset += InfoTagHeaderTag.len; // 12\n switch (headerTag) {\n case 'Info':\n this.metadata.setFormat('codecProfile', 'CBR');\n return this.readXingInfoHeader();\n case 'Xing': {\n const infoTag = await this.readXingInfoHeader();\n if (infoTag.vbrScale !== null) {\n const codecProfile = getVbrCodecProfile(infoTag.vbrScale);\n this.metadata.setFormat('codecProfile', codecProfile);\n }\n return null;\n }\n case 'Xtra':\n // ToDo: ???\n break;\n case 'LAME': {\n const version = await this.tokenizer.readToken(LameEncoderVersion);\n if (this.frame_size !== null && this.frame_size >= this.offset + LameEncoderVersion.len) {\n this.offset += LameEncoderVersion.len;\n this.metadata.setFormat('tool', `LAME ${version}`);\n await this.skipFrameData(this.frame_size - this.offset);\n return null;\n }\n this.metadata.addWarning('Corrupt LAME header');\n break;\n }\n // ToDo: ???\n }\n // ToDo: promise duration???\n const frameDataLeft = this.frame_size - this.offset;\n if (frameDataLeft < 0) {\n this.metadata.addWarning(`Frame ${this.frameCount}corrupt: negative frameDataLeft`);\n }\n else {\n await this.skipFrameData(frameDataLeft);\n }\n return null;\n }\n /**\n * Ref: http://gabriel.mp3-tech.org/mp3infotag.html\n * @returns {Promise}\n */\n async readXingInfoHeader() {\n const offset = this.tokenizer.position;\n const infoTag = await readXingHeader(this.tokenizer);\n this.offset += this.tokenizer.position - offset;\n if (infoTag.lame) {\n this.metadata.setFormat('tool', `LAME ${common.stripNulls(infoTag.lame.version)}`);\n if (infoTag.lame.extended) {\n // this.metadata.setFormat('trackGain', infoTag.lame.extended.track_gain);\n this.metadata.setFormat('trackPeakLevel', infoTag.lame.extended.track_peak);\n if (infoTag.lame.extended.track_gain) {\n this.metadata.setFormat('trackGain', infoTag.lame.extended.track_gain.adjustment);\n }\n if (infoTag.lame.extended.album_gain) {\n this.metadata.setFormat('albumGain', infoTag.lame.extended.album_gain.adjustment);\n }\n this.metadata.setFormat('duration', infoTag.lame.extended.music_length / 1000);\n }\n }\n if (infoTag.streamSize && this.audioFrameHeader && infoTag.numFrames !== null) {\n const duration = this.audioFrameHeader.calcDuration(infoTag.numFrames);\n this.metadata.setFormat('duration', duration);\n debug('Get duration from Xing header: %s', this.metadata.format.duration);\n return infoTag;\n }\n // frames field is not present\n const frameDataLeft = this.frame_size - this.offset;\n await this.skipFrameData(frameDataLeft);\n return infoTag;\n }\n async skipFrameData(frameDataLeft) {\n if (frameDataLeft < 0)\n throw new MpegContentError('frame-data-left cannot be negative');\n await this.tokenizer.ignore(frameDataLeft);\n }\n areAllSame(array) {\n const first = array[0];\n return array.every(element => {\n return element === first;\n });\n }\n}\n","import * as common from '../common/Util.js';\n/**\n * https://github.com/Borewit/music-metadata/wiki/Replay-Gain-Data-Format#name-code\n */\nconst NameCode = {\n /**\n * not set\n */\n not_set: 0,\n /**\n * Radio Gain Adjustment\n */\n radio: 1,\n /**\n * Audiophile Gain Adjustment\n */\n audiophile: 2\n};\n/**\n * https://github.com/Borewit/music-metadata/wiki/Replay-Gain-Data-Format#originator-code\n */\nconst ReplayGainOriginator = {\n /**\n * Replay Gain unspecified\n */\n unspecified: 0,\n /**\n * Replay Gain pre-set by artist/producer/mastering engineer\n */\n engineer: 1,\n /**\n * Replay Gain set by user\n */\n user: 2,\n /**\n * Replay Gain determined automatically, as described on this site\n */\n automatic: 3,\n /**\n * Set by simple RMS average\n */\n rms_average: 4\n};\n/**\n * Replay Gain Data Format\n *\n * https://github.com/Borewit/music-metadata/wiki/Replay-Gain-Data-Format\n */\nexport const ReplayGain = {\n len: 2,\n get: (buf, off) => {\n const gain_type = common.getBitAllignedNumber(buf, off, 0, 3);\n const sign = common.getBitAllignedNumber(buf, off, 6, 1);\n const gain_adj = common.getBitAllignedNumber(buf, off, 7, 9) / 10.0;\n if (gain_type > 0) {\n return {\n type: common.getBitAllignedNumber(buf, off, 0, 3),\n origin: common.getBitAllignedNumber(buf, off, 3, 3),\n adjustment: (sign ? -gain_adj : gain_adj)\n };\n }\n return undefined;\n }\n};\n","/**\n * Extended Lame Header\n */\nimport * as Token from 'token-types';\nimport * as common from '../common/Util.js';\nimport { ReplayGain } from './ReplayGainDataFormat.js';\n/**\n * Info Tag\n * @link http://gabriel.mp3-tech.org/mp3infotag.html\n * @link https://github.com/quodlibet/mutagen/blob/abd58ee58772224334a18817c3fb31103572f70e/mutagen/mp3/_util.py#L112\n */\nexport const ExtendedLameHeader = {\n len: 27,\n get: (buf, off) => {\n const track_peak = Token.UINT32_BE.get(buf, off + 2);\n return {\n revision: common.getBitAllignedNumber(buf, off, 0, 4),\n vbr_method: common.getBitAllignedNumber(buf, off, 4, 4),\n lowpass_filter: 100 * Token.UINT8.get(buf, off + 1),\n track_peak: track_peak === 0 ? null : track_peak / 2 ** 23,\n track_gain: ReplayGain.get(buf, 6),\n album_gain: ReplayGain.get(buf, 8),\n music_length: Token.UINT32_BE.get(buf, off + 20),\n music_crc: Token.UINT8.get(buf, off + 24),\n header_crc: Token.UINT16_BE.get(buf, off + 24)\n };\n }\n};\n","import * as Token from 'token-types';\nimport * as util from '../common/Util.js';\nimport { ExtendedLameHeader } from './ExtendedLameHeader.js';\n/**\n * Info Tag: Xing, LAME\n */\nexport const InfoTagHeaderTag = new Token.StringType(4, 'ascii');\n/**\n * LAME TAG value\n * Did not find any official documentation for this\n * Value e.g.: \"3.98.4\"\n */\nexport const LameEncoderVersion = new Token.StringType(6, 'ascii');\n/**\n * Info Tag\n * Ref: http://gabriel.mp3-tech.org/mp3infotag.html\n */\nexport const XingHeaderFlags = {\n len: 4,\n get: (buf, off) => {\n return {\n frames: util.isBitSet(buf, off, 31),\n bytes: util.isBitSet(buf, off, 30),\n toc: util.isBitSet(buf, off, 29),\n vbrScale: util.isBitSet(buf, off, 28)\n };\n }\n};\n// /**\n// * XING Header Tag\n// * Ref: http://gabriel.mp3-tech.org/mp3infotag.html\n// */\nexport async function readXingHeader(tokenizer) {\n const flags = await tokenizer.readToken(XingHeaderFlags);\n const xingInfoTag = { numFrames: null, streamSize: null, vbrScale: null };\n if (flags.frames) {\n xingInfoTag.numFrames = await tokenizer.readToken(Token.UINT32_BE);\n }\n if (flags.bytes) {\n xingInfoTag.streamSize = await tokenizer.readToken(Token.UINT32_BE);\n }\n if (flags.toc) {\n xingInfoTag.toc = new Uint8Array(100);\n await tokenizer.readBuffer(xingInfoTag.toc);\n }\n if (flags.vbrScale) {\n xingInfoTag.vbrScale = await tokenizer.readToken(Token.UINT32_BE);\n }\n const lameTag = await tokenizer.peekToken(new Token.StringType(4, 'ascii'));\n if (lameTag === 'LAME') {\n await tokenizer.ignore(4);\n xingInfoTag.lame = {\n version: await tokenizer.readToken(new Token.StringType(5, 'ascii'))\n };\n const match = xingInfoTag.lame.version.match(/\\d+.\\d+/g);\n if (match !== null) {\n const majorMinorVersion = match[0]; // e.g. 3.97\n const version = majorMinorVersion.split('.').map(n => Number.parseInt(n, 10));\n if (version[0] >= 3 && version[1] >= 90) {\n xingInfoTag.lame.extended = await tokenizer.readToken(ExtendedLameHeader);\n }\n }\n }\n return xingInfoTag;\n}\n"],"mappings":"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","names":["import_debug","ReplayGain","__name","buf","off","gain_type","getBitAllignedNumber","sign","gain_adj","ExtendedLameHeader","__name","buf","off","track_peak","UINT32_BE","getBitAllignedNumber","UINT8","ReplayGain","UINT16_BE","InfoTagHeaderTag","StringType","LameEncoderVersion","XingHeaderFlags","__name","buf","off","isBitSet","readXingHeader","tokenizer","flags","xingInfoTag","UINT32_BE","match","version","n","ExtendedLameHeader","debug","initDebug","MpegContentError","makeUnexpectedFileContentError","__name","maxPeekLen","MPEG4","MPEG4_ChannelConfigurations","MpegFrameHeader","_MpegFrameHeader","buf","off","getBitAllignedNumber","isBitSet","numFrames","bitrateInKbps","profileIndex","samplingFrequencyIndex","channelIndex","codecIndex","FrameHeader","getVbrCodecProfile","vbrScale","MpegParser","AbstractID3Parser","quit","err","EndOfStreamError","numberOfSamples","duration","format","hasID3v1","mpegSize","gotFirstSync","bo","header","slot_size","samples_per_frame","bps","fsize","framesPerSec","bitrate","INT16_BE","sideinfo_length","Uint8ArrayType","headerTag","InfoTagHeaderTag","infoTag","codecProfile","version","LameEncoderVersion","frameDataLeft","offset","readXingHeader","stripNulls","array","first","element"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/MpegParser-O2RE6KKD.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MusepackParser-K4V5PCYW.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MusepackParser-K4V5PCYW.js new file mode 100644 index 00000000..51bc3959 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MusepackParser-K4V5PCYW.js @@ -0,0 +1,3 @@ +import{a as N}from"./chunk-BF2A4D4Q.js";import"./chunk-6XPFWKSW.js";import"./chunk-GSVEIULU.js";import{a as x,c as k}from"./chunk-LINMKWZS.js";import"./chunk-C5GF5WSP.js";import{h as s,i as d}from"./chunk-FHQAE777.js";import{B as c,H as b,I as p,f as u,g as z,i as y,j as m,n}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as i,d as h}from"./chunk-75KFZLU6.js";var H=h(u());var E=h(u());var C=h(u());var B=(0,C.default)("music-metadata:parser:musepack:sv8"),D=new c(2,"latin1"),P={len:5,get:i((a,e)=>({crc:n.get(a,e),streamVersion:y.get(a,e+4)}),"get")},A={len:2,get:i((a,e)=>({sampleFrequency:[44100,48e3,37800,32e3][s(a,e,0,3)],maxUsedBands:s(a,e,3,5),channelCount:s(a,e+1,0,4)+1,msUsed:d(a,e+1,4),audioBlockFrames:s(a,e+1,5,3)}),"get")},g=class{static{i(this,"StreamReader")}get tokenizer(){return this._tokenizer}set tokenizer(e){this._tokenizer=e}constructor(e){this._tokenizer=e}async readPacketHeader(){let e=await this.tokenizer.readToken(D),t=await this.readVariableSizeField();return{key:e,payloadLength:t.value-2-t.len}}async readStreamHeader(e){let t={};B(`Reading SH at offset=${this.tokenizer.position}`);let r=await this.tokenizer.readToken(P);e-=P.len,Object.assign(t,r),B(`SH.streamVersion = ${r.streamVersion}`);let l=await this.readVariableSizeField();e-=l.len,t.sampleCount=l.value;let L=await this.readVariableSizeField();e-=L.len,t.beginningOfSilence=L.value;let M=await this.tokenizer.readToken(A);return e-=A.len,Object.assign(t,M),await this.tokenizer.ignore(e),t}async readVariableSizeField(e=1,t=0){let r=await this.tokenizer.readNumber(y);return(r&128)===0?{len:e,value:t+r}:(r&=127,r+=t,this.readVariableSizeField(e+1,r<<7))}};var o=class extends b("Musepack"){static{i(this,"MusepackContentError")}};var q=(0,E.default)("music-metadata:parser:musepack"),w=class extends p{static{i(this,"MpcSv8Parser")}constructor(){super(...arguments),this.audioLength=0}async parse(){if(await this.tokenizer.readToken(x)!=="MPCK")throw new o("Invalid Magic number");return this.metadata.setFormat("container","Musepack, SV8"),this.parsePacket()}async parsePacket(){let e=new g(this.tokenizer);do{let t=await e.readPacketHeader();switch(q(`packet-header key=${t.key}, payloadLength=${t.payloadLength}`),t.key){case"SH":{let r=await e.readStreamHeader(t.payloadLength);this.metadata.setFormat("numberOfSamples",r.sampleCount),this.metadata.setFormat("sampleRate",r.sampleFrequency),this.metadata.setFormat("duration",r.sampleCount/r.sampleFrequency),this.metadata.setFormat("numberOfChannels",r.channelCount);break}case"AP":this.audioLength+=t.payloadLength,await this.tokenizer.ignore(t.payloadLength);break;case"RG":case"EI":case"SO":case"ST":case"CT":await this.tokenizer.ignore(t.payloadLength);break;case"SE":return this.metadata.format.duration&&this.metadata.setFormat("bitrate",this.audioLength*8/this.metadata.format.duration),k(this.metadata,this.tokenizer,this.options);default:throw new o(`Unexpected header: ${t.key}`)}}while(!0)}};var V=h(u());var T=class{static{i(this,"BitReader")}constructor(e){this.pos=0,this.dword=null,this.tokenizer=e}async read(e){for(;this.dword===null;)this.dword=await this.tokenizer.readToken(n);let t=this.dword;return this.pos+=e,this.pos<32?(t>>>=32-this.pos,t&(1<>>32-this.pos),t&(1<0){let l=32-this.pos;this.dword=null,e-=l,this.pos=0}let t=e%32,r=(e-t)/32;return await this.tokenizer.ignore(r*4),this.read(t)}};var I={len:24,get:i((a,e)=>{let t={signature:z(a.subarray(e,e+3),"latin1"),streamMinorVersion:s(a,e+3,0,4),streamMajorVersion:s(a,e+3,4,4),frameCount:n.get(a,e+4),maxLevel:m.get(a,e+8),sampleFrequency:[44100,48e3,37800,32e3][s(a,e+10,0,2)],link:s(a,e+10,2,2),profile:s(a,e+10,4,4),maxBand:s(a,e+11,0,6),intensityStereo:d(a,e+11,6),midSideStereo:d(a,e+11,7),titlePeak:m.get(a,e+12),titleGain:m.get(a,e+14),albumPeak:m.get(a,e+16),albumGain:m.get(a,e+18),lastFrameLength:n.get(a,e+20)>>>20&2047,trueGapless:d(a,e+23,0)};return t.lastFrameLength=t.trueGapless?n.get(a,20)>>>20&2047:0,t},"get")};var U=(0,V.default)("music-metadata:parser:musepack"),S=class extends p{static{i(this,"MpcSv7Parser")}constructor(){super(...arguments),this.bitreader=null,this.audioLength=0,this.duration=null}async parse(){let e=await this.tokenizer.readToken(I);if(e.signature!=="MP+")throw new o("Unexpected magic number");U(`stream-version=${e.streamMajorVersion}.${e.streamMinorVersion}`),this.metadata.setFormat("container","Musepack, SV7"),this.metadata.setFormat("sampleRate",e.sampleFrequency);let t=1152*(e.frameCount-1)+e.lastFrameLength;this.metadata.setFormat("numberOfSamples",t),this.duration=t/e.sampleFrequency,this.metadata.setFormat("duration",this.duration),this.bitreader=new T(this.tokenizer),this.metadata.setFormat("numberOfChannels",e.midSideStereo||e.intensityStereo?2:1);let r=await this.bitreader.read(8);return this.metadata.setFormat("codec",(r/100).toFixed(2)),await this.skipAudioData(e.frameCount),U(`End of audio stream, switching to APEv2, offset=${this.tokenizer.position}`),k(this.metadata,this.tokenizer,this.options)}async skipAudioData(e){for(;e-- >0;){let r=await this.bitreader.read(20);this.audioLength+=20+r,await this.bitreader.ignore(r)}let t=await this.bitreader.read(11);this.audioLength+=t,this.duration!==null&&this.metadata.setFormat("bitrate",this.audioLength/this.duration)}};var _=(0,H.default)("music-metadata:parser:musepack"),v=class extends N{static{i(this,"MusepackParser")}async postId3v2Parse(){let e=await this.tokenizer.peekToken(new c(3,"latin1")),t;switch(e){case"MP+":{_("Stream-version 7"),t=new S(this.metadata,this.tokenizer,this.options);break}case"MPC":{_("Stream-version 8"),t=new w(this.metadata,this.tokenizer,this.options);break}default:throw new o("Invalid signature prefix")}return this.metadata.setAudioOnly(),t.parse()}};export{v as MusepackParser}; + +//# sourceMappingURL=./MusepackParser-K4V5PCYW.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MusepackParser-K4V5PCYW.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/MusepackParser-K4V5PCYW.js.br new file mode 100644 index 0000000000000000000000000000000000000000..ecc67ceedc6d1edde2c5850e36f1615e01bb6534 GIT binary patch literal 1974 zcmb1+5NCMuzwX?>|9@+IEq>b+Uq9_}@de}Yh%7DXpt9XA>$+HDB(zWeUpG~~-+MuJ zOsk^Ms$&yR|M&c*HuJ7>%Yk=a)KpVi*JP~@iPgO+6?yecEf1SZ%eI>}8AlW=4>a}I zip||0EIjpQk^K6v?=HLw`F&MCX=-L(blm>N>+yRZ{+|1P-?fSV&1USmxBroZtNNV3 zmp95~F~3*u=P!SM|L@jsS&I|j-u=Gm)6zMMcott4?23L}@Mo#H6H+!O29KCkl(A2^InRM4&DLoHM!RL%ZC&bRDzdX}m5~{w@C-VPkD=zbf>y!G>E3(r>E{8(i3S;@?;0 z*I#2Z7Vz#bke(A~%(dH5ChgqKv}E27`y3hce=OXP^C((eWA=`-yPjGl`WA{Ba53Iu zs9tn)dvjJs_Wa!w-a9Wi^H|TipJAzlY5lXs^EEj%uP&$%e|=0XyK6D`QkgiLYj*K} zR^HipVpi7s)2;VjD0m)S{7v6;kv$_P=UcfrgXqal%f1(!Fkd2Z@_~d)R>8f?!nS*+ zPwK9a57?@_H8kH*s_~%qpBGMtJIoaKZ@#qsS+W$XjGfrBs;!9BmFyi^KZSj4BV6OZw71E!%GXFERVVUCUz62`O%{yF`Us;{Z_4J z*L!*CvYXPkzn+3Aky|=;9unDbdilSIA1`$cPTD=qw3IGdZT@YgT5R6F=NbR+m+}?Rq1j^6{Wvhuz`xt#cTz zW<`~}^StDu+S}S&nptrA^yBok^G;r#lxgbVm3fE3(d^-qf6M!{mbV_hJjrCO)w0x; z7m`%0+LxY9lU<;(!B5RzMVWW6(YJ$J*<)@mWfMG|^-?U-)Z?;BQQ)la;-=HjJ_wO| zP+0Rl?@ZqAne`bJbIY$OtlO-3|HJE@0!jC$8dNu^@@$F8T*IzW5N`40;+)+F!{ zA)6CLjsEAJZs=Pe_vnJ3Oi0>Ok*OV8yCXg<7Q18M$T8d+kD^e;PhMqJ+M&=wG|e0rF8@PTLhxqj-L@c4Xu*5l(Ad-&qj46E7JExoYhsDH6M zkKZX1pTfqd)3+p}=Y5dTcy;{yp@`pN?Z2lm%yzq-CTi(Zc=NXD!`<7O)0$74x+ZQu zDSQ6KqTO2F+DG~H)4C6FXuf;$T<}l&u>_;b^tkP2#_T?)6>~*M6LFQ+1}v7vYDtEv-KHd0xGaY5B6RVBV5D zZ`GeXmyOlvV?Ug-hx`446m!|-zurw+qr>_C|EFcScMGm&ZC#T4QdHhC^ikSo&jqs| zeCYqWYs=bw8^m}1Tx;r%EVHF%!vB4r9SB>!G?Sw(<;BVENlf3@Y`uT0 z$a!|B)m=^jzeQ&Zk8Ak+H2igco59pMC9I;iH>ICBSmN|+Czo`gT==}F{t|l@|C$(R z<76~Xc15k%xmI?i+x1V5nm=m^*`~PC;o8-20!KY(87X`eGYd`64HI57Y4wC4<)iZ@ zmP@Ho;|C6q(HOY|8BZ zzuWrjYo+>+uZw-}}A(Wvj;W24~UdC2DO)d9Ey6+BxUw{L0Rg zteHPm7O}pZwfc`EYt8X*KAY2OpQ$YRK4}+c>Zc_OG{hE%)cke-e{dt7TE_J zTxBEtVX8lS;fYC>pX*P?Xs}DNs#pHL9LD*&qPe+sXLZ4ucDE^>uBSBf`b*|+${~y-ZOMaj#vB_ad zuJL@u)sZJ3%I}%?#j`iHW{Xk5JiFpI)80fiwCHL%3ES*^sd;Zsr$}? {\n return {\n crc: Token.UINT32_LE.get(buf, off),\n streamVersion: Token.UINT8.get(buf, off + 4)\n };\n }\n};\n/**\n * Stream Header Packet part 3\n * Ref: http://trac.musepack.net/musepack/wiki/SV8Specification#StreamHeaderPacket\n */\nconst SH_part3 = {\n len: 2,\n get: (buf, off) => {\n return {\n sampleFrequency: [44100, 48000, 37800, 32000][util.getBitAllignedNumber(buf, off, 0, 3)],\n maxUsedBands: util.getBitAllignedNumber(buf, off, 3, 5),\n channelCount: util.getBitAllignedNumber(buf, off + 1, 0, 4) + 1,\n msUsed: util.isBitSet(buf, off + 1, 4),\n audioBlockFrames: util.getBitAllignedNumber(buf, off + 1, 5, 3)\n };\n }\n};\nexport class StreamReader {\n get tokenizer() {\n return this._tokenizer;\n }\n set tokenizer(value) {\n this._tokenizer = value;\n }\n constructor(_tokenizer) {\n this._tokenizer = _tokenizer;\n }\n async readPacketHeader() {\n const key = await this.tokenizer.readToken(PacketKey);\n const size = await this.readVariableSizeField();\n return {\n key,\n payloadLength: size.value - 2 - size.len\n };\n }\n async readStreamHeader(size) {\n const streamHeader = {};\n debug(`Reading SH at offset=${this.tokenizer.position}`);\n const part1 = await this.tokenizer.readToken(SH_part1);\n size -= SH_part1.len;\n Object.assign(streamHeader, part1);\n debug(`SH.streamVersion = ${part1.streamVersion}`);\n const sampleCount = await this.readVariableSizeField();\n size -= sampleCount.len;\n streamHeader.sampleCount = sampleCount.value;\n const bs = await this.readVariableSizeField();\n size -= bs.len;\n streamHeader.beginningOfSilence = bs.value;\n const part3 = await this.tokenizer.readToken(SH_part3);\n size -= SH_part3.len;\n Object.assign(streamHeader, part3);\n // assert.equal(size, 0);\n await this.tokenizer.ignore(size);\n return streamHeader;\n }\n async readVariableSizeField(len = 1, hb = 0) {\n let n = await this.tokenizer.readNumber(Token.UINT8);\n if ((n & 0x80) === 0) {\n return { len, value: hb + n };\n }\n n &= 0x7F;\n n += hb;\n return this.readVariableSizeField(len + 1, n << 7);\n }\n}\n","import { makeUnexpectedFileContentError } from '../ParseError.js';\nexport class MusepackContentError extends makeUnexpectedFileContentError('Musepack') {\n}\n","import initDebug from 'debug';\nimport { BasicParser } from '../../common/BasicParser.js';\nimport { tryParseApeHeader } from '../../apev2/APEv2Parser.js';\nimport { BitReader } from './BitReader.js';\nimport * as SV7 from './StreamVersion7.js';\nimport { MusepackContentError } from '../MusepackConentError.js';\nconst debug = initDebug('music-metadata:parser:musepack');\nexport class MpcSv7Parser extends BasicParser {\n constructor() {\n super(...arguments);\n this.bitreader = null;\n this.audioLength = 0;\n this.duration = null;\n }\n async parse() {\n const header = await this.tokenizer.readToken(SV7.Header);\n if (header.signature !== 'MP+')\n throw new MusepackContentError('Unexpected magic number');\n debug(`stream-version=${header.streamMajorVersion}.${header.streamMinorVersion}`);\n this.metadata.setFormat('container', 'Musepack, SV7');\n this.metadata.setFormat('sampleRate', header.sampleFrequency);\n const numberOfSamples = 1152 * (header.frameCount - 1) + header.lastFrameLength;\n this.metadata.setFormat('numberOfSamples', numberOfSamples);\n this.duration = numberOfSamples / header.sampleFrequency;\n this.metadata.setFormat('duration', this.duration);\n this.bitreader = new BitReader(this.tokenizer);\n this.metadata.setFormat('numberOfChannels', header.midSideStereo || header.intensityStereo ? 2 : 1);\n const version = await this.bitreader.read(8);\n this.metadata.setFormat('codec', (version / 100).toFixed(2));\n await this.skipAudioData(header.frameCount);\n debug(`End of audio stream, switching to APEv2, offset=${this.tokenizer.position}`);\n return tryParseApeHeader(this.metadata, this.tokenizer, this.options);\n }\n async skipAudioData(frameCount) {\n while (frameCount-- > 0) {\n const frameLength = await this.bitreader.read(20);\n this.audioLength += 20 + frameLength;\n await this.bitreader.ignore(frameLength);\n }\n // last frame\n const lastFrameLength = await this.bitreader.read(11);\n this.audioLength += lastFrameLength;\n if (this.duration !== null) {\n this.metadata.setFormat('bitrate', this.audioLength / this.duration);\n }\n }\n}\n","import * as Token from 'token-types';\nexport class BitReader {\n constructor(tokenizer) {\n this.pos = 0;\n this.dword = null;\n this.tokenizer = tokenizer;\n }\n /**\n *\n * @param bits 1..30 bits\n */\n async read(bits) {\n while (this.dword === null) {\n this.dword = await this.tokenizer.readToken(Token.UINT32_LE);\n }\n let out = this.dword;\n this.pos += bits;\n if (this.pos < 32) {\n out >>>= (32 - this.pos);\n return out & ((1 << bits) - 1);\n }\n this.pos -= 32;\n if (this.pos === 0) {\n this.dword = null;\n return out & ((1 << bits) - 1);\n }\n this.dword = await this.tokenizer.readToken(Token.UINT32_LE);\n if (this.pos) {\n out <<= this.pos;\n out |= this.dword >>> (32 - this.pos);\n }\n return out & ((1 << bits) - 1);\n }\n async ignore(bits) {\n if (this.pos > 0) {\n const remaining = 32 - this.pos;\n this.dword = null;\n bits -= remaining;\n this.pos = 0;\n }\n const remainder = bits % 32;\n const numOfWords = (bits - remainder) / 32;\n await this.tokenizer.ignore(numOfWords * 4);\n return this.read(remainder);\n }\n}\n","import * as Token from 'token-types';\nimport * as util from '../../common/Util.js';\nimport { textDecode } from '@borewit/text-codec';\n/**\n * BASIC STRUCTURE\n */\nexport const Header = {\n len: 6 * 4,\n get: (buf, off) => {\n const header = {\n // word 0\n signature: textDecode(buf.subarray(off, off + 3), 'latin1'),\n // versionIndex number * 1000 (3.81 = 3810) (remember that 4-byte alignment causes this to take 4-bytes)\n streamMinorVersion: util.getBitAllignedNumber(buf, off + 3, 0, 4),\n streamMajorVersion: util.getBitAllignedNumber(buf, off + 3, 4, 4),\n // word 1\n frameCount: Token.UINT32_LE.get(buf, off + 4),\n // word 2\n maxLevel: Token.UINT16_LE.get(buf, off + 8),\n sampleFrequency: [44100, 48000, 37800, 32000][util.getBitAllignedNumber(buf, off + 10, 0, 2)],\n link: util.getBitAllignedNumber(buf, off + 10, 2, 2),\n profile: util.getBitAllignedNumber(buf, off + 10, 4, 4),\n maxBand: util.getBitAllignedNumber(buf, off + 11, 0, 6),\n intensityStereo: util.isBitSet(buf, off + 11, 6),\n midSideStereo: util.isBitSet(buf, off + 11, 7),\n // word 3\n titlePeak: Token.UINT16_LE.get(buf, off + 12),\n titleGain: Token.UINT16_LE.get(buf, off + 14),\n // word 4\n albumPeak: Token.UINT16_LE.get(buf, off + 16),\n albumGain: Token.UINT16_LE.get(buf, off + 18),\n // word\n lastFrameLength: (Token.UINT32_LE.get(buf, off + 20) >>> 20) & 0x7FF,\n trueGapless: util.isBitSet(buf, off + 23, 0)\n };\n header.lastFrameLength = header.trueGapless ? (Token.UINT32_LE.get(buf, 20) >>> 20) & 0x7FF : 0;\n return header;\n }\n};\n"],"mappings":"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","names":["import_debug","import_debug","import_debug","debug","initDebug","PacketKey","StringType","SH_part1","__name","buf","off","UINT32_LE","UINT8","SH_part3","getBitAllignedNumber","isBitSet","StreamReader","value","_tokenizer","key","size","streamHeader","part1","sampleCount","bs","part3","len","hb","n","MusepackContentError","makeUnexpectedFileContentError","__name","debug","initDebug","MpcSv8Parser","BasicParser","__name","FourCcToken","MusepackContentError","sv8reader","StreamReader","header","sh","tryParseApeHeader","import_debug","BitReader","__name","tokenizer","bits","UINT32_LE","out","remaining","remainder","numOfWords","Header","__name","buf","off","header","textDecode","getBitAllignedNumber","UINT32_LE","UINT16_LE","isBitSet","debug","initDebug","MpcSv7Parser","BasicParser","__name","header","Header","MusepackContentError","numberOfSamples","BitReader","version","tryParseApeHeader","frameCount","frameLength","lastFrameLength","debug","initDebug","MusepackParser","AbstractID3Parser","__name","signature","StringType","mpcParser","MpcSv7Parser","MpcSv8Parser","MusepackContentError"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/MusepackParser-K4V5PCYW.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js new file mode 100644 index 00000000..a0acd318 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js @@ -0,0 +1,3 @@ +import{a as $,b as d,c as p,d as b,e as M,f as G}from"./chunk-N4UC4CSU.js";import"./chunk-BF2A4D4Q.js";import"./chunk-6XPFWKSW.js";import"./chunk-GSVEIULU.js";import{a as D}from"./chunk-LINMKWZS.js";import"./chunk-C5GF5WSP.js";import{c as N,e as R}from"./chunk-FHQAE777.js";import{A,B as n,H as I,I as V,a as H,f as w,i as o,j as L,k as x,m as B,n as l,t as i,u as z}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as r,d as S}from"./chunk-75KFZLU6.js";var Z=S(w());var h=class extends I("Opus"){static{r(this,"OpusContentError")}},y=class{static{r(this,"IdHeader")}constructor(e){if(e<19)throw new h("ID-header-page 0 should be at least 19 bytes long");this.len=e}get(e,t){return{magicSignature:new n(8,"ascii").get(e,t+0),version:o.get(e,t+8),channelCount:o.get(e,t+9),preSkip:L.get(e,t+10),inputSampleRate:l.get(e,t+12),outputGain:L.get(e,t+16),channelMapping:o.get(e,t+18)}}};var F=class extends d{static{r(this,"OpusStream")}constructor(e,t,s){super(e,t),this.idHeader=null,this.lastPos=-1,this.tokenizer=s,this.durationOnLastPage=!0}parseFirstPage(e,t){if(this.metadata.setFormat("codec","Opus"),this.idHeader=new y(t.length).get(t,0),this.idHeader.magicSignature!=="OpusHead")throw new h("Illegal ogg/Opus magic-signature");this.metadata.setFormat("sampleRate",this.idHeader.inputSampleRate),this.metadata.setFormat("numberOfChannels",this.idHeader.channelCount),this.metadata.setAudioOnly()}async parseFullPage(e){new n(8,"ascii").get(e,0)==="OpusTags"&&(await this.parseUserCommentList(e,8),this.lastPos=this.tokenizer.position-e.length)}calculateDuration(e){if(this.lastPageHeader&&(e||this.lastPageHeader.headerType.lastPage)&&this.metadata.format.sampleRate&&this.lastPageHeader.absoluteGranulePosition>=0){let t=this.lastPageHeader.absoluteGranulePosition-this.idHeader.preSkip;if(this.metadata.setFormat("numberOfSamples",t),this.metadata.setFormat("duration",t/48e3),this.lastPos!==-1&&this.tokenizer.fileInfo.size&&this.metadata.format.duration){let s=this.tokenizer.fileInfo.size-this.lastPos;this.metadata.setFormat("bitrate",8*s/this.metadata.format.duration)}}}};var j=S(w());var q={len:80,get:r((a,e)=>({speex:new n(8,"ascii").get(a,e+0),version:R(new n(20,"ascii").get(a,e+8)),version_id:i.get(a,e+28),header_size:i.get(a,e+32),rate:i.get(a,e+36),mode:i.get(a,e+40),mode_bitstream_version:i.get(a,e+44),nb_channels:i.get(a,e+48),bitrate:i.get(a,e+52),frame_size:i.get(a,e+56),vbr:i.get(a,e+60),frames_per_packet:i.get(a,e+64),extra_headers:i.get(a,e+68),reserved1:i.get(a,e+72),reserved2:i.get(a,e+76)}),"get")};var W=(0,j.default)("music-metadata:parser:ogg:speex"),_=class extends d{static{r(this,"SpeexStream")}constructor(e,t,s){super(e,t),this.commentHeaderParsed=!1}parseFirstPage(e,t){W("First Ogg/Speex page");let s=q.get(t,0);this.metadata.setFormat("codec",`Speex ${s.version}`),this.metadata.setFormat("numberOfChannels",s.nb_channels),this.metadata.setFormat("sampleRate",s.rate),s.bitrate!==-1&&this.metadata.setFormat("bitrate",s.bitrate),this.metadata.setAudioOnly()}async parseFullPage(e){this.commentHeaderParsed||(this.commentHeaderParsed=!0,W("Parse Ogg/Speex comment header"),await this.parseUserCommentList(e,0))}};var J=S(w());var f={len:42,get:r((a,e)=>({id:new n(7,"ascii").get(a,e),vmaj:o.get(a,e+7),vmin:o.get(a,e+8),vrev:o.get(a,e+9),vmbw:x.get(a,e+10),vmbh:x.get(a,e+17),nombr:B.get(a,e+37),nqual:o.get(a,e+40)}),"get")};var K=(0,J.default)("music-metadata:parser:ogg:theora"),O=class{static{r(this,"TheoraStream")}constructor(e,t,s){this.durationOnLastPage=!1,this.metadata=e}async parsePage(e,t){e.headerType.firstPage&&await this.parseFirstPage(e,t)}calculateDuration(){K("duration calculation not implemented")}async parseFirstPage(e,t){K("First Ogg/Theora page"),this.metadata.setFormat("codec","Theora");let s=f.get(t,0);this.metadata.setFormat("bitrate",s.nombr),this.metadata.setFormat("hasVideo",!0)}flush(){return Promise.resolve()}};var Q={len:27,get:r((a,e)=>({capturePattern:new n(4,"latin1").get(a,e),version:o.get(a,e+4),headerType:{continued:N(a,e+5,0),firstPage:N(a,e+5,1),lastPage:N(a,e+5,2)},absoluteGranulePosition:Number(z.get(a,e+6)),streamSerialNumber:l.get(a,e+14),pageSequenceNo:l.get(a,e+18),pageChecksum:l.get(a,e+22),page_segments:o.get(a,e+26)}),"get")},C=class a{static{r(this,"SegmentTable")}static sum(e,t,s){let g=new DataView(e.buffer,0),k=0;for(let c=t;cP>=32&&P<=126).map(P=>String.fromCharCode(P)).join("");switch(c){case"vorbis":m(`Set Ogg stream serial ${t.streamSerialNumber}, codec=Vorbis`),this.pageConsumer=new d(this.metadata,this.options);break;case"OpusHea":m("Set page consumer to Ogg/Opus"),this.pageConsumer=new F(this.metadata,this.options,e);break;case"Speex ":m("Set page consumer to Ogg/Speex"),this.pageConsumer=new _(this.metadata,this.options,e);break;case"fishead":case"theora":m("Set page consumer to Ogg/Theora"),this.pageConsumer=new O(this.metadata,this.options,e);break;case"FLAC":m("Set page consumer to Vorbis"),this.pageConsumer=new E(this.metadata,this.options,e);break;default:throw new T(`Ogg codec not recognized (id=${c}`)}}if(t.headerType.lastPage&&(this.closed=!0),this.pageConsumer)await this.pageConsumer.parsePage(t,g);else throw new Error("pageConsumer should be initialized")}},Y=class extends V{static{r(this,"OggParser")}constructor(){super(...arguments),this.streams=new Map}async parse(){this.streams=new Map;let e=!1,t;try{do{if(t=await this.tokenizer.readToken(Q),t.capturePattern!=="OggS")throw new T("Invalid Ogg capture pattern");let s=this.streams.get(t.streamSerialNumber);if(s||(s=new v(this.metadata,t.streamSerialNumber,this.options),this.streams.set(t.streamSerialNumber,s)),await s.parsePage(this.tokenizer,t),s.pageNumber>12&&!(this.options.duration&&[...this.streams.values()].find(g=>g.pageConsumer?.durationOnLastPage))){m("Stop processing Ogg stream");break}}while(![...this.streams.values()].every(s=>s.closed))}catch(s){if(s instanceof H)m("Reached end-of-stream"),e=!0;else if(s instanceof T)this.metadata.addWarning(`Corrupt Ogg content at ${this.tokenizer.position}`);else throw s}for(let s of this.streams.values())s.closed||(this.metadata.addWarning(`End-of-stream reached before reaching last page in Ogg stream serial=${s.streamSerial}`),await s.pageConsumer?.flush()),s.pageConsumer?.calculateDuration(e)}};export{T as OggContentError,Y as OggParser}; + +//# sourceMappingURL=./OggParser-ZLVT63EM.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js.br new file mode 100644 index 0000000000000000000000000000000000000000..b54128a2b9fc43489b2fc4d9d2aaf8befde6705e GIT binary patch literal 2753 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 BY_9+S literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js.map new file mode 100644 index 00000000..9271450b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/OggParser-ZLVT63EM.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/OggParser.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/opus/Opus.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/opus/OpusStream.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/speex/SpeexStream.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/speex/Speex.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/theora/TheoraStream.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/theora/Theora.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/OggToken.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/flac/FlacStream.js"],"sourcesContent":["import * as Token from 'token-types';\nimport { EndOfStreamError } from 'strtok3';\nimport initDebug from 'debug';\nimport { BasicParser } from '../common/BasicParser.js';\nimport { VorbisStream } from './vorbis/VorbisStream.js';\nimport { OpusStream } from './opus/OpusStream.js';\nimport { SpeexStream } from './speex/SpeexStream.js';\nimport { TheoraStream } from './theora/TheoraStream.js';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nimport { PageHeader, SegmentTable } from './OggToken.js';\nimport { FlacStream } from './flac/FlacStream.js';\nexport class OggContentError extends makeUnexpectedFileContentError('Ogg') {\n}\nconst debug = initDebug('music-metadata:parser:ogg');\nclass OggStream {\n constructor(metadata, streamSerial, options) {\n this.pageNumber = 0;\n this.closed = false;\n this.metadata = metadata;\n this.streamSerial = streamSerial;\n this.options = options;\n }\n async parsePage(tokenizer, header) {\n this.pageNumber = header.pageSequenceNo;\n debug('serial=%s page#=%s, Ogg.id=%s', header.streamSerialNumber, header.pageSequenceNo, header.capturePattern);\n const segmentTable = await tokenizer.readToken(new SegmentTable(header));\n debug('totalPageSize=%s', segmentTable.totalPageSize);\n const pageData = await tokenizer.readToken(new Token.Uint8ArrayType(segmentTable.totalPageSize));\n debug('firstPage=%s, lastPage=%s, continued=%s', header.headerType.firstPage, header.headerType.lastPage, header.headerType.continued);\n if (header.headerType.firstPage) {\n this.metadata.setFormat('container', 'Ogg');\n const idData = pageData.subarray(0, 7); // Copy this portion\n const asciiId = Array.from(idData)\n .filter(b => b >= 32 && b <= 126) // Keep only printable ASCII\n .map(b => String.fromCharCode(b))\n .join('');\n switch (asciiId) {\n case 'vorbis': // Ogg/Vorbis\n debug(`Set Ogg stream serial ${header.streamSerialNumber}, codec=Vorbis`);\n this.pageConsumer = new VorbisStream(this.metadata, this.options);\n break;\n case 'OpusHea': // Ogg/Opus\n debug('Set page consumer to Ogg/Opus');\n this.pageConsumer = new OpusStream(this.metadata, this.options, tokenizer);\n break;\n case 'Speex ': // Ogg/Speex\n debug('Set page consumer to Ogg/Speex');\n this.pageConsumer = new SpeexStream(this.metadata, this.options, tokenizer);\n break;\n case 'fishead':\n case 'theora': // Ogg/Theora\n debug('Set page consumer to Ogg/Theora');\n this.pageConsumer = new TheoraStream(this.metadata, this.options, tokenizer);\n break;\n case 'FLAC': // Ogg/Theora\n debug('Set page consumer to Vorbis');\n this.pageConsumer = new FlacStream(this.metadata, this.options, tokenizer);\n break;\n default:\n throw new OggContentError(`Ogg codec not recognized (id=${asciiId}`);\n }\n }\n if (header.headerType.lastPage) {\n this.closed = true;\n }\n if (this.pageConsumer) {\n await this.pageConsumer.parsePage(header, pageData);\n }\n else\n throw new Error('pageConsumer should be initialized');\n }\n}\n/**\n * Parser for Ogg logical bitstream framing\n */\nexport class OggParser extends BasicParser {\n constructor() {\n super(...arguments);\n this.streams = new Map();\n }\n /**\n * Parse page\n * @returns {Promise}\n */\n async parse() {\n this.streams = new Map();\n let enfOfStream = false;\n let header;\n try {\n do {\n header = await this.tokenizer.readToken(PageHeader);\n if (header.capturePattern !== 'OggS')\n throw new OggContentError('Invalid Ogg capture pattern');\n let stream = this.streams.get(header.streamSerialNumber);\n if (!stream) {\n stream = new OggStream(this.metadata, header.streamSerialNumber, this.options);\n this.streams.set(header.streamSerialNumber, stream);\n }\n await stream.parsePage(this.tokenizer, header);\n if (stream.pageNumber > 12 && !(this.options.duration && [...this.streams.values()].find(stream => stream.pageConsumer?.durationOnLastPage))) {\n debug(\"Stop processing Ogg stream\");\n break;\n }\n } while (![...this.streams.values()].every(item => item.closed));\n }\n catch (err) {\n if (err instanceof EndOfStreamError) {\n debug(\"Reached end-of-stream\");\n enfOfStream = true;\n }\n else if (err instanceof OggContentError) {\n this.metadata.addWarning(`Corrupt Ogg content at ${this.tokenizer.position}`);\n }\n else\n throw err;\n }\n for (const stream of this.streams.values()) {\n if (!stream.closed) {\n this.metadata.addWarning(`End-of-stream reached before reaching last page in Ogg stream serial=${stream.streamSerial}`);\n await stream.pageConsumer?.flush();\n }\n stream.pageConsumer?.calculateDuration(enfOfStream);\n }\n }\n}\n","import * as Token from 'token-types';\nimport { makeUnexpectedFileContentError } from '../../ParseError.js';\nexport class OpusContentError extends makeUnexpectedFileContentError('Opus') {\n}\n/**\n * Opus ID Header parser\n * Ref: https://wiki.xiph.org/OggOpus#ID_Header\n */\nexport class IdHeader {\n constructor(len) {\n if (len < 19) {\n throw new OpusContentError('ID-header-page 0 should be at least 19 bytes long');\n }\n this.len = len;\n }\n get(buf, off) {\n return {\n magicSignature: new Token.StringType(8, 'ascii').get(buf, off + 0),\n version: Token.UINT8.get(buf, off + 8),\n channelCount: Token.UINT8.get(buf, off + 9),\n preSkip: Token.UINT16_LE.get(buf, off + 10),\n inputSampleRate: Token.UINT32_LE.get(buf, off + 12),\n outputGain: Token.UINT16_LE.get(buf, off + 16),\n channelMapping: Token.UINT8.get(buf, off + 18)\n };\n }\n}\n","import * as Token from 'token-types';\nimport { VorbisStream } from '../vorbis/VorbisStream.js';\nimport * as Opus from './Opus.js';\nimport { OpusContentError } from './Opus.js';\n/**\n * Opus parser\n * Internet Engineering Task Force (IETF) - RFC 6716\n * Used by OggStream\n */\nexport class OpusStream extends VorbisStream {\n constructor(metadata, options, tokenizer) {\n super(metadata, options);\n this.idHeader = null;\n this.lastPos = -1;\n this.tokenizer = tokenizer;\n this.durationOnLastPage = true;\n }\n /**\n * Parse first Opus Ogg page\n * @param {IPageHeader} header\n * @param {Uint8Array} pageData\n */\n parseFirstPage(_header, pageData) {\n this.metadata.setFormat('codec', 'Opus');\n // Parse Opus ID Header\n this.idHeader = new Opus.IdHeader(pageData.length).get(pageData, 0);\n if (this.idHeader.magicSignature !== \"OpusHead\")\n throw new OpusContentError(\"Illegal ogg/Opus magic-signature\");\n this.metadata.setFormat('sampleRate', this.idHeader.inputSampleRate);\n this.metadata.setFormat('numberOfChannels', this.idHeader.channelCount);\n this.metadata.setAudioOnly();\n }\n async parseFullPage(pageData) {\n const magicSignature = new Token.StringType(8, 'ascii').get(pageData, 0);\n switch (magicSignature) {\n case 'OpusTags':\n await this.parseUserCommentList(pageData, 8);\n this.lastPos = this.tokenizer.position - pageData.length;\n break;\n default:\n break;\n }\n }\n calculateDuration(enfOfStream) {\n if (this.lastPageHeader && (enfOfStream || this.lastPageHeader.headerType.lastPage) && this.metadata.format.sampleRate && this.lastPageHeader.absoluteGranulePosition >= 0) {\n // Calculate duration\n const pos_48bit = this.lastPageHeader.absoluteGranulePosition - this.idHeader.preSkip;\n this.metadata.setFormat('numberOfSamples', pos_48bit);\n this.metadata.setFormat('duration', pos_48bit / 48000);\n if (this.lastPos !== -1 && this.tokenizer.fileInfo.size && this.metadata.format.duration) {\n const dataSize = this.tokenizer.fileInfo.size - this.lastPos;\n this.metadata.setFormat('bitrate', 8 * dataSize / this.metadata.format.duration);\n }\n }\n }\n}\n","import initDebug from 'debug';\nimport { VorbisStream } from '../vorbis/VorbisStream.js';\nimport * as Speex from './Speex.js';\nconst debug = initDebug('music-metadata:parser:ogg:speex');\n/**\n * Speex, RFC 5574\n * Ref:\n * - https://www.speex.org/docs/manual/speex-manual/\n * - https://tools.ietf.org/html/rfc5574\n */\nexport class SpeexStream extends VorbisStream {\n constructor(metadata, options, _tokenizer) {\n super(metadata, options);\n this.commentHeaderParsed = false;\n }\n /**\n * Parse first Speex Ogg page\n * @param {IPageHeader} header\n * @param {Uint8Array} pageData\n */\n parseFirstPage(_header, pageData) {\n debug('First Ogg/Speex page');\n const speexHeader = Speex.Header.get(pageData, 0);\n this.metadata.setFormat('codec', `Speex ${speexHeader.version}`);\n this.metadata.setFormat('numberOfChannels', speexHeader.nb_channels);\n this.metadata.setFormat('sampleRate', speexHeader.rate);\n if (speexHeader.bitrate !== -1) {\n this.metadata.setFormat('bitrate', speexHeader.bitrate);\n }\n this.metadata.setAudioOnly();\n }\n /**\n * The packet following the identification header is the comment header, in\n * Vorbis comment format but without a packet type or magic signature.\n * Ref: https://tools.ietf.org/html/rfc5574#section-3\n */\n async parseFullPage(pageData) {\n if (this.commentHeaderParsed)\n return;\n this.commentHeaderParsed = true;\n debug('Parse Ogg/Speex comment header');\n await this.parseUserCommentList(pageData, 0);\n }\n}\n","import * as Token from 'token-types';\nimport * as util from '../../common/Util.js';\n/**\n * Speex Header Packet\n * Ref: https://www.speex.org/docs/manual/speex-manual/node8.html#SECTION00830000000000000000\n */\nexport const Header = {\n len: 80,\n get: (buf, off) => {\n return {\n speex: new Token.StringType(8, 'ascii').get(buf, off + 0),\n version: util.trimRightNull(new Token.StringType(20, 'ascii').get(buf, off + 8)),\n version_id: Token.INT32_LE.get(buf, off + 28),\n header_size: Token.INT32_LE.get(buf, off + 32),\n rate: Token.INT32_LE.get(buf, off + 36),\n mode: Token.INT32_LE.get(buf, off + 40),\n mode_bitstream_version: Token.INT32_LE.get(buf, off + 44),\n nb_channels: Token.INT32_LE.get(buf, off + 48),\n bitrate: Token.INT32_LE.get(buf, off + 52),\n frame_size: Token.INT32_LE.get(buf, off + 56),\n vbr: Token.INT32_LE.get(buf, off + 60),\n frames_per_packet: Token.INT32_LE.get(buf, off + 64),\n extra_headers: Token.INT32_LE.get(buf, off + 68),\n reserved1: Token.INT32_LE.get(buf, off + 72),\n reserved2: Token.INT32_LE.get(buf, off + 76)\n };\n }\n};\n","import initDebug from 'debug';\nimport { IdentificationHeader } from './Theora.js';\nconst debug = initDebug('music-metadata:parser:ogg:theora');\n/**\n * Ref:\n * - https://theora.org/doc/Theora.pdf\n */\nexport class TheoraStream {\n constructor(metadata, _options, _tokenizer) {\n this.durationOnLastPage = false;\n this.metadata = metadata;\n }\n /**\n * Vorbis 1 parser\n * @param header Ogg Page Header\n * @param pageData Page data\n */\n async parsePage(header, pageData) {\n if (header.headerType.firstPage) {\n await this.parseFirstPage(header, pageData);\n }\n }\n calculateDuration() {\n debug('duration calculation not implemented');\n }\n /**\n * Parse first Theora Ogg page. the initial identification header packet\n */\n async parseFirstPage(_header, pageData) {\n debug('First Ogg/Theora page');\n this.metadata.setFormat('codec', 'Theora');\n const idHeader = IdentificationHeader.get(pageData, 0);\n this.metadata.setFormat('bitrate', idHeader.nombr);\n this.metadata.setFormat('hasVideo', true);\n }\n flush() {\n return Promise.resolve();\n }\n}\n","import * as Token from 'token-types';\n/**\n * 6.2 Identification Header\n * Ref: https://theora.org/doc/Theora.pdf: 6.2 Identification Header Decode\n */\nexport const IdentificationHeader = {\n len: 42,\n get: (buf, off) => {\n return {\n id: new Token.StringType(7, 'ascii').get(buf, off),\n vmaj: Token.UINT8.get(buf, off + 7),\n vmin: Token.UINT8.get(buf, off + 8),\n vrev: Token.UINT8.get(buf, off + 9),\n vmbw: Token.UINT16_BE.get(buf, off + 10),\n vmbh: Token.UINT16_BE.get(buf, off + 17),\n nombr: Token.UINT24_BE.get(buf, off + 37),\n nqual: Token.UINT8.get(buf, off + 40)\n };\n }\n};\n","import * as Token from 'token-types';\nimport * as util from '../common/Util.js';\nimport { StringType } from 'token-types';\nexport const PageHeader = {\n len: 27,\n get: (buf, off) => {\n return {\n capturePattern: new StringType(4, 'latin1').get(buf, off),\n version: Token.UINT8.get(buf, off + 4),\n headerType: {\n continued: util.getBit(buf, off + 5, 0),\n firstPage: util.getBit(buf, off + 5, 1),\n lastPage: util.getBit(buf, off + 5, 2)\n },\n // packet_flag: Token.UINT8.get(buf, off + 5),\n absoluteGranulePosition: Number(Token.UINT64_LE.get(buf, off + 6)),\n streamSerialNumber: Token.UINT32_LE.get(buf, off + 14),\n pageSequenceNo: Token.UINT32_LE.get(buf, off + 18),\n pageChecksum: Token.UINT32_LE.get(buf, off + 22),\n page_segments: Token.UINT8.get(buf, off + 26)\n };\n }\n};\nexport class SegmentTable {\n static sum(buf, off, len) {\n const dv = new DataView(buf.buffer, 0);\n let s = 0;\n for (let i = off; i < off + len; ++i) {\n s += dv.getUint8(i);\n }\n return s;\n }\n constructor(header) {\n this.len = header.page_segments;\n }\n get(buf, off) {\n return {\n totalPageSize: SegmentTable.sum(buf, off, this.len)\n };\n }\n}\n","import initDebug from 'debug';\nimport * as Flac from '../../flac/FlacToken.js';\nimport { FlacParser } from '../../flac/FlacParser.js';\nimport { FourCcToken } from '../../common/FourCC.js';\nimport { VorbisPictureToken } from '../vorbis/Vorbis.js';\nconst debug = initDebug('music-metadata:parser:ogg:theora');\n/**\n * Ref:\n * - https://xiph.org/flac/ogg_mapping.html\n */\nexport class FlacStream {\n constructor(metadata, options, tokenizer) {\n this.durationOnLastPage = false;\n this.metadata = metadata;\n this.options = options;\n this.tokenizer = tokenizer;\n this.flacParser = new FlacParser(this.metadata, this.tokenizer, options);\n }\n /**\n * Vorbis 1 parser\n * @param header Ogg Page Header\n * @param pageData Page data\n */\n async parsePage(header, pageData) {\n if (header.headerType.firstPage) {\n await this.parseFirstPage(header, pageData);\n }\n }\n calculateDuration() {\n debug('duration calculation not implemented');\n }\n /**\n * Parse first Theora Ogg page. the initial identification header packet\n */\n async parseFirstPage(_header, pageData) {\n debug('First Ogg/FLAC page');\n const fourCC = await FourCcToken.get(pageData, 9);\n if (fourCC.toString() !== 'fLaC') {\n throw new Error('Invalid FLAC preamble');\n }\n const blockHeader = await Flac.BlockHeader.get(pageData, 13);\n await this.parseDataBlock(blockHeader, pageData.subarray(13 + Flac.BlockHeader.len));\n }\n async parseDataBlock(blockHeader, pageData) {\n debug(`blockHeader type=${blockHeader.type}, length=${blockHeader.length}`);\n switch (blockHeader.type) {\n case Flac.BlockType.STREAMINFO: {\n const streamInfo = Flac.BlockStreamInfo.get(pageData, 0);\n return this.flacParser.processsStreamInfo(streamInfo);\n }\n case Flac.BlockType.PADDING:\n break;\n case Flac.BlockType.APPLICATION:\n break;\n case Flac.BlockType.SEEKTABLE:\n break;\n case Flac.BlockType.VORBIS_COMMENT:\n return this.flacParser.parseComment(pageData);\n case Flac.BlockType.PICTURE:\n if (!this.options.skipCovers) {\n const picture = new VorbisPictureToken(pageData.length).get(pageData, 0);\n return this.flacParser.addPictureTag(picture);\n }\n break;\n default:\n this.metadata.addWarning(`Unknown block type: ${blockHeader.type}`);\n }\n // Ignore data block\n return this.tokenizer.ignore(blockHeader.length).then();\n }\n flush() {\n return Promise.resolve();\n }\n}\n"],"mappings":"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","names":["import_debug","OpusContentError","makeUnexpectedFileContentError","__name","IdHeader","len","buf","off","StringType","UINT8","UINT16_LE","UINT32_LE","OpusStream","VorbisStream","__name","metadata","options","tokenizer","_header","pageData","IdHeader","OpusContentError","StringType","enfOfStream","pos_48bit","dataSize","import_debug","Header","__name","buf","off","StringType","trimRightNull","INT32_LE","debug","initDebug","SpeexStream","VorbisStream","__name","metadata","options","_tokenizer","_header","pageData","speexHeader","Header","import_debug","IdentificationHeader","__name","buf","off","StringType","UINT8","UINT16_BE","UINT24_BE","debug","initDebug","TheoraStream","__name","metadata","_options","_tokenizer","header","pageData","_header","idHeader","IdentificationHeader","PageHeader","__name","buf","off","StringType","UINT8","getBit","UINT64_LE","UINT32_LE","SegmentTable","_SegmentTable","len","dv","s","i","header","import_debug","debug","initDebug","FlacStream","__name","metadata","options","tokenizer","FlacParser","header","pageData","_header","FourCcToken","blockHeader","BlockHeader","BlockType","streamInfo","BlockStreamInfo","picture","VorbisPictureToken","OggContentError","makeUnexpectedFileContentError","__name","debug","initDebug","OggStream","metadata","streamSerial","options","tokenizer","header","segmentTable","SegmentTable","pageData","Uint8ArrayType","idData","asciiId","b","VorbisStream","OpusStream","SpeexStream","TheoraStream","FlacStream","OggParser","BasicParser","enfOfStream","PageHeader","stream","item","err","EndOfStreamError"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/OggParser-ZLVT63EM.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WavPackParser-KLZ65ZHU.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WavPackParser-KLZ65ZHU.js new file mode 100644 index 00000000..2885e018 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WavPackParser-KLZ65ZHU.js @@ -0,0 +1,3 @@ +import{a as p,c as x}from"./chunk-LINMKWZS.js";import{a as b}from"./chunk-FHQAE777.js";import{A as u,H as D,I as z,f as y,i as k,j as f,l as S,n as l}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as n,d as U}from"./chunk-75KFZLU6.js";var _=[6e3,8e3,9600,11025,12e3,16e3,22050,24e3,32e3,44100,48e3,64e3,88200,96e3,192e3,-1],c={len:32,get:n((a,e)=>{let t=l.get(a,e+24),i={BlockID:p.get(a,e),blockSize:l.get(a,e+4),version:f.get(a,e+8),totalSamples:l.get(a,e+12),blockIndex:l.get(a,e+16),blockSamples:l.get(a,e+20),flags:{bitsPerSample:(1+g(t,0,2))*8,isMono:o(t,2),isHybrid:o(t,3),isJointStereo:o(t,4),crossChannel:o(t,5),hybridNoiseShaping:o(t,6),floatingPoint:o(t,7),samplingRate:_[g(t,23,4)],isDSD:o(t,31)},crc:new u(4).get(a,e+28)};return i.flags.isDSD&&(i.totalSamples*=8),i},"get")},h={len:1,get:n((a,e)=>({functionId:g(a[e],0,6),isOptional:o(a[e],5),isOddSize:o(a[e],6),largeBlock:o(a[e],7)}),"get")};function o(a,e){return g(a,e,1)===1}n(o,"isBitSet");function g(a,e,t){return a>>>e&4294967295>>>32-t}n(g,"getBitAllignedNumber");var w=U(y());var r=(0,w.default)("music-metadata:parser:WavPack"),d=class extends D("WavPack"){static{n(this,"WavPackContentError")}},B=class extends z{static{n(this,"WavPackParser")}constructor(){super(...arguments),this.audioDataSize=0}async parse(){return this.metadata.setAudioOnly(),this.audioDataSize=0,await this.parseWavPackBlocks(),x(this.metadata,this.tokenizer,this.options)}async parseWavPackBlocks(){do{if(await this.tokenizer.peekToken(p)!=="wvpk")break;let t=await this.tokenizer.readToken(c);if(t.BlockID!=="wvpk")throw new d("Invalid WavPack Block-ID");r(`WavPack header blockIndex=${t.blockIndex}, len=${c.len}`),t.blockIndex===0&&!this.metadata.format.container&&(this.metadata.setFormat("container","WavPack"),this.metadata.setFormat("lossless",!t.flags.isHybrid),this.metadata.setFormat("bitsPerSample",t.flags.bitsPerSample),t.flags.isDSD||(this.metadata.setFormat("sampleRate",t.flags.samplingRate),this.metadata.setFormat("duration",t.totalSamples/t.flags.samplingRate)),this.metadata.setFormat("numberOfChannels",t.flags.isMono?1:2),this.metadata.setFormat("numberOfSamples",t.totalSamples),this.metadata.setFormat("codec",t.flags.isDSD?"DSD":"PCM"));let i=t.blockSize-(c.len-8);await(t.blockIndex===0?this.parseMetadataSubBlock(t,i):this.tokenizer.ignore(i)),t.blockSamples>0&&(this.audioDataSize+=t.blockSize)}while(!this.tokenizer.fileInfo.size||this.tokenizer.fileInfo.size-this.tokenizer.position>=c.len);this.metadata.format.duration&&this.metadata.setFormat("bitrate",this.audioDataSize*8/this.metadata.format.duration)}async parseMetadataSubBlock(e,t){let i=t;for(;i>h.len;){let s=await this.tokenizer.readToken(h),I=await this.tokenizer.readNumber(s.largeBlock?S:k),m=new Uint8Array(I*2-(s.isOddSize?1:0));switch(await this.tokenizer.readBuffer(m),r(`Metadata Sub-Blocks functionId=0x${s.functionId.toString(16)}, id.largeBlock=${s.largeBlock},data-size=${m.length}`),s.functionId){case 0:break;case 14:{r("ID_DSD_BLOCK");let F=1<;I_RKh$5z zoegK-TbMU#_wCpD_QB<`mpqnEotdLE`SkJ2-3Jo{O0w)9JngkT_N1@!IP2%OuA2{L zMLwA38Mu9usodkkPgQpQFZ&jJ%>KjI^ShtCTv`2YL2Po}?Nj2#foywUpFBTXzt-eZ z{4e#ouc_kgo4Ob8d%o~}wIlyuhq8<5a*`}@=MO7PiG5?l)xPk3rNk?Z-{!6DhYx%% zP+9lg-D!T|AA1Y&t6^F9cndUjulJ;CIQHagM<*S<7VGspVySRTgICDO8MBVmoHt?M zdp0LzulKr#T#W744vCjDI(Kw#y_~cC{;5xApRg}`rfM~P{h15FcZ^(Fmal-RvuQ=vk6IKc^yor9r zkd+Z7YnrIwx_SxQwaKbaHD5Ff99nOxJz>=+pPL~Y@7Yefa-;u!%Hxj_+YTj&^!;j1 zxFX$u{O*B`ThmUv`CA2lE7=|Dty^64SmS|sys{>pVK?g!)s*bFTKZaB z6Le3#5h?l}l(%fk|J!yb-JGf!=TVjV zv`4M#Scu?zjf*SZsu;GO*zjMbEcSdFOYgIewA9#3_E$W%1$C#HmTwQb{-06ROsVBV z)Y@YK2X>mo&MaLofB)FjY0IuACA+E@iMh#}m_&q>d~pd4*x01@!laA0TUg@ZlB`c3 zFZl${KF`I@Ft4tz<_B-Y@+tja-+cVwzskJtPlA``k~7U)xAo_E)*e{e^s=t;)>*H7 zgMa?tZ#-}0eAKkSJ7{ZQ>ZQ|j@-}4mWzIP^<#PMyXfA={YN}4GOXnR-WSsJZN3rW& zSfqrh^*PV0xx4$m7;xX>HSFf9u$myc>Cud)4wZAWkH;POSiIl$xU%w<)5TwpNwq!n zS-j%LoviI4?>{|uUS#_G-Uj_|$1J`?lx)lInAF7EP`5qm;;ET8gx($har?0H=^7WI zdy@?APdKh?^by zQt0ZtearXGyx%U>c`7!P>t~fpZSS#*`!*#7nXH~0y+--P1!}@=FG|Tw5I`bE3r5sb=rv6rO%lC{EUxXS;O?J+8 zdGb2$oNni3iJfmPwKFe<;-Cl40wL*9W(5zWx0B@%i_B{`=1N zn>@Q)-S68B=_NN8$9Rh0sysQ*Q*5SJmV(Nw`xAaMa3<{Stv1&!uTnkCX#S>t)6DZf z%Ihi%>*m(&e43p;U7O$f;+nKK$7251E1C-4VW>DVvH4#63YE9&)=v|+mDf#@nc6OV z+bd|T%*24TrJEQoey#Z&tyVIrOkn?}y=%Xy?V9AeIY?0LG#8WLp^op;c2}|vhB$NR x8{N>2Sg(HeL|0O(_$i@O&)qVdnIXF^m45DO*U=DP{eIVDN#X1H->iPI006OI9&Z2u literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WavPackParser-KLZ65ZHU.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WavPackParser-KLZ65ZHU.js.map new file mode 100644 index 00000000..32235582 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WavPackParser-KLZ65ZHU.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/wavpack/WavPackToken.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/wavpack/WavPackParser.js"],"sourcesContent":["import * as Token from 'token-types';\nimport { FourCcToken } from '../common/FourCC.js';\nconst SampleRates = [6000, 8000, 9600, 11025, 12000, 16000, 22050, 24000, 32000, 44100,\n 48000, 64000, 88200, 96000, 192000, -1];\n/**\n * WavPack Block Header\n *\n * 32-byte little-endian header at the front of every WavPack block\n *\n * Ref: http://www.wavpack.com/WavPack5FileFormat.pdf (page 2/6: 2.0 \"Block Header\")\n */\nexport const BlockHeaderToken = {\n len: 32,\n get: (buf, off) => {\n const flags = Token.UINT32_LE.get(buf, off + 24);\n const res = {\n // should equal 'wvpk'\n BlockID: FourCcToken.get(buf, off),\n // 0x402 to 0x410 are valid for decode\n blockSize: Token.UINT32_LE.get(buf, off + 4),\n // 0x402 (1026) to 0x410 are valid for decode\n version: Token.UINT16_LE.get(buf, off + 8),\n // 40-bit total samples for entire file (if block_index == 0 and a value of -1 indicates an unknown length)\n totalSamples: /* replace with bigint? (Token.UINT8.get(buf, off + 11) << 32) + */ Token.UINT32_LE.get(buf, off + 12),\n // 40-bit block_index\n blockIndex: /* replace with bigint? (Token.UINT8.get(buf, off + 10) << 32) + */ Token.UINT32_LE.get(buf, off + 16),\n // 40-bit total samples for entire file (if block_index == 0 and a value of -1 indicates an unknown length)\n blockSamples: Token.UINT32_LE.get(buf, off + 20),\n // various flags for id and decoding\n flags: {\n bitsPerSample: (1 + getBitAllignedNumber(flags, 0, 2)) * 8,\n isMono: isBitSet(flags, 2),\n isHybrid: isBitSet(flags, 3),\n isJointStereo: isBitSet(flags, 4),\n crossChannel: isBitSet(flags, 5),\n hybridNoiseShaping: isBitSet(flags, 6),\n floatingPoint: isBitSet(flags, 7),\n samplingRate: SampleRates[getBitAllignedNumber(flags, 23, 4)],\n isDSD: isBitSet(flags, 31)\n },\n // crc for actual decoded data\n crc: new Token.Uint8ArrayType(4).get(buf, off + 28)\n };\n if (res.flags.isDSD) {\n res.totalSamples *= 8;\n }\n return res;\n }\n};\n/**\n * 3.0 Metadata Sub-Blocks\n * Ref: http://www.wavpack.com/WavPack5FileFormat.pdf (page 4/6: 3.0 \"Metadata Sub-Block\")\n */\nexport const MetadataIdToken = {\n len: 1,\n get: (buf, off) => {\n return {\n functionId: getBitAllignedNumber(buf[off], 0, 6), // functionId overlaps with isOptional flag\n isOptional: isBitSet(buf[off], 5),\n isOddSize: isBitSet(buf[off], 6),\n largeBlock: isBitSet(buf[off], 7)\n };\n }\n};\nfunction isBitSet(flags, bitOffset) {\n return getBitAllignedNumber(flags, bitOffset, 1) === 1;\n}\nfunction getBitAllignedNumber(flags, bitOffset, len) {\n return (flags >>> bitOffset) & (0xffffffff >>> (32 - len));\n}\n","import * as Token from 'token-types';\nimport { tryParseApeHeader } from '../apev2/APEv2Parser.js';\nimport { FourCcToken } from '../common/FourCC.js';\nimport { BasicParser } from '../common/BasicParser.js';\nimport { BlockHeaderToken, MetadataIdToken } from './WavPackToken.js';\nimport initDebug from 'debug';\nimport { uint8ArrayToHex } from 'uint8array-extras';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nconst debug = initDebug('music-metadata:parser:WavPack');\nexport class WavPackContentError extends makeUnexpectedFileContentError('WavPack') {\n}\n/**\n * WavPack Parser\n */\nexport class WavPackParser extends BasicParser {\n constructor() {\n super(...arguments);\n this.audioDataSize = 0;\n }\n async parse() {\n this.metadata.setAudioOnly();\n this.audioDataSize = 0;\n // First parse all WavPack blocks\n await this.parseWavPackBlocks();\n // try to parse APEv2 header\n return tryParseApeHeader(this.metadata, this.tokenizer, this.options);\n }\n async parseWavPackBlocks() {\n do {\n const blockId = await this.tokenizer.peekToken(FourCcToken);\n if (blockId !== 'wvpk')\n break;\n const header = await this.tokenizer.readToken(BlockHeaderToken);\n if (header.BlockID !== 'wvpk')\n throw new WavPackContentError('Invalid WavPack Block-ID');\n debug(`WavPack header blockIndex=${header.blockIndex}, len=${BlockHeaderToken.len}`);\n if (header.blockIndex === 0 && !this.metadata.format.container) {\n this.metadata.setFormat('container', 'WavPack');\n this.metadata.setFormat('lossless', !header.flags.isHybrid);\n // tagTypes: this.type,\n this.metadata.setFormat('bitsPerSample', header.flags.bitsPerSample);\n if (!header.flags.isDSD) {\n // In case isDSD, these values will ne set in ID_DSD_BLOCK\n this.metadata.setFormat('sampleRate', header.flags.samplingRate);\n this.metadata.setFormat('duration', header.totalSamples / header.flags.samplingRate);\n }\n this.metadata.setFormat('numberOfChannels', header.flags.isMono ? 1 : 2);\n this.metadata.setFormat('numberOfSamples', header.totalSamples);\n this.metadata.setFormat('codec', header.flags.isDSD ? 'DSD' : 'PCM');\n }\n const ignoreBytes = header.blockSize - (BlockHeaderToken.len - 8);\n await (header.blockIndex === 0 ? this.parseMetadataSubBlock(header, ignoreBytes) : this.tokenizer.ignore(ignoreBytes));\n if (header.blockSamples > 0) {\n this.audioDataSize += header.blockSize; // Count audio data for bit-rate calculation\n }\n } while (!this.tokenizer.fileInfo.size || this.tokenizer.fileInfo.size - this.tokenizer.position >= BlockHeaderToken.len);\n if (this.metadata.format.duration) {\n this.metadata.setFormat('bitrate', this.audioDataSize * 8 / this.metadata.format.duration);\n }\n }\n /**\n * Ref: http://www.wavpack.com/WavPack5FileFormat.pdf, 3.0 Metadata Sub-blocks\n * @param header Header\n * @param remainingLength Remaining length\n */\n async parseMetadataSubBlock(header, remainingLength) {\n let remaining = remainingLength;\n while (remaining > MetadataIdToken.len) {\n const id = await this.tokenizer.readToken(MetadataIdToken);\n const dataSizeInWords = await this.tokenizer.readNumber(id.largeBlock ? Token.UINT24_LE : Token.UINT8);\n const data = new Uint8Array(dataSizeInWords * 2 - (id.isOddSize ? 1 : 0));\n await this.tokenizer.readBuffer(data);\n debug(`Metadata Sub-Blocks functionId=0x${id.functionId.toString(16)}, id.largeBlock=${id.largeBlock},data-size=${data.length}`);\n switch (id.functionId) {\n case 0x0: // ID_DUMMY: could be used to pad WavPack blocks\n break;\n case 0xe: { // ID_DSD_BLOCK\n debug('ID_DSD_BLOCK');\n // https://github.com/dbry/WavPack/issues/71#issuecomment-483094813\n const mp = 1 << Token.UINT8.get(data, 0);\n const samplingRate = header.flags.samplingRate * mp * 8; // ToDo: second factor should be read from DSD-metadata block https://github.com/dbry/WavPack/issues/71#issuecomment-483094813\n if (!header.flags.isDSD)\n throw new WavPackContentError('Only expect DSD block if DSD-flag is set');\n this.metadata.setFormat('sampleRate', samplingRate);\n this.metadata.setFormat('duration', header.totalSamples / samplingRate);\n break;\n }\n case 0x24: // ID_ALT_TRAILER: maybe used to embed original ID3 tag header\n debug('ID_ALT_TRAILER: trailer for non-wav files');\n break;\n case 0x26: // ID_MD5_CHECKSUM\n this.metadata.setFormat('audioMD5', data);\n break;\n case 0x2f: // ID_BLOCK_CHECKSUM\n debug(`ID_BLOCK_CHECKSUM: checksum=${uint8ArrayToHex(data)}`);\n break;\n default:\n debug(`Ignore unsupported meta-sub-block-id functionId=0x${id.functionId.toString(16)}`);\n break;\n }\n remaining -= MetadataIdToken.len + (id.largeBlock ? Token.UINT24_LE.len : Token.UINT8.len) + dataSizeInWords * 2;\n debug(`remainingLength=${remaining}`);\n if (id.isOddSize)\n this.tokenizer.ignore(1);\n }\n if (remaining !== 0)\n throw new WavPackContentError('metadata-sub-block should fit it remaining length');\n }\n}\n"],"mappings":"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","names":["SampleRates","BlockHeaderToken","__name","buf","off","flags","UINT32_LE","res","FourCcToken","UINT16_LE","getBitAllignedNumber","isBitSet","Uint8ArrayType","MetadataIdToken","bitOffset","len","import_debug","debug","initDebug","WavPackContentError","makeUnexpectedFileContentError","__name","WavPackParser","BasicParser","tryParseApeHeader","FourCcToken","header","BlockHeaderToken","ignoreBytes","remainingLength","remaining","MetadataIdToken","id","dataSizeInWords","UINT24_LE","UINT8","data","mp","samplingRate","uint8ArrayToHex"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/WavPackParser-KLZ65ZHU.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WaveParser-OIX4G4ED.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WaveParser-OIX4G4ED.js new file mode 100644 index 00000000..b02e279a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WaveParser-OIX4G4ED.js @@ -0,0 +1,3 @@ +import{a as z}from"./chunk-6XPFWKSW.js";import"./chunk-GSVEIULU.js";import{a as I}from"./chunk-LINMKWZS.js";import"./chunk-C5GF5WSP.js";import{g as k}from"./chunk-FHQAE777.js";import{A as l,B as h,H as F,I as x,a as w,d as E,f as R,j as o,n as c}from"./chunk-PHFIOWBZ.js";import"./chunk-KZNIRR3C.js";import{a as r,d as P}from"./chunk-75KFZLU6.js";var _=P(R());var T={len:8,get:r((n,e)=>({chunkID:new h(4,"latin1").get(n,e),chunkSize:c.get(n,e+4)}),"get")},u=class{static{r(this,"ListInfoTagValue")}constructor(e){this.tagHeader=e,this.len=e.chunkSize,this.len+=this.len&1}get(e,t){return new h(this.tagHeader.chunkSize,"utf8").get(e,t)}};var d=class extends F("Wave"){static{r(this,"WaveContentError")}},i={PCM:1,ADPCM:2,IEEE_FLOAT:3,ALAW:6,MULAW:7,DVI_ADPCM:17,GSM610:49,MPEG_ADTS_AAC:5632,MPEG_LOAS:5634,RAW_AAC1:255,DOLBY_AC3_SPDIF:146,DVM:8192,RAW_SPORT:576,ESST_AC3:577,DRM:9,DTS2:8193,MPEG:80,MPEGLAYER3:85},D={[i.PCM]:"PCM",[i.ADPCM]:"ADPCM",[i.IEEE_FLOAT]:"IEEE_FLOAT",[i.ALAW]:"ALAW",[i.MULAW]:"MULAW",[i.DVI_ADPCM]:"DVI_ADPCM",[i.GSM610]:"GSM610",[i.MPEG_ADTS_AAC]:"MPEG_ADTS_AAC",[i.MPEG_LOAS]:"MPEG_LOAS",[i.RAW_AAC1]:"RAW_AAC1",[i.DOLBY_AC3_SPDIF]:"DOLBY_AC3_SPDIF",[i.DVM]:"DVM",[i.RAW_SPORT]:"RAW_SPORT",[i.ESST_AC3]:"ESST_AC3",[i.DRM]:"DRM",[i.DTS2]:"DTS2",[i.MPEG]:"MPEG",[i.MPEGLAYER3]:"MPEGLAYER3"},p=class{static{r(this,"Format")}constructor(e){if(e.chunkSize<16)throw new d("Invalid chunk size");this.len=e.chunkSize}get(e,t){return{wFormatTag:o.get(e,t),nChannels:o.get(e,t+2),nSamplesPerSec:c.get(e,t+4),nAvgBytesPerSec:c.get(e,t+8),nBlockAlign:o.get(e,t+12),wBitsPerSample:o.get(e,t+14)}}},S=class{static{r(this,"FactChunk")}constructor(e){if(e.chunkSize<4)throw new d("Invalid fact chunk size.");this.len=e.chunkSize}get(e,t){return{dwSampleLength:c.get(e,t)}}};var f={len:420,get:r((n,e)=>({description:k(new h(256,"ascii").get(n,e)).trim(),originator:k(new h(32,"ascii").get(n,e+256)).trim(),originatorReference:k(new h(32,"ascii").get(n,e+288)).trim(),originationDate:k(new h(10,"ascii").get(n,e+320)).trim(),originationTime:k(new h(8,"ascii").get(n,e+330)).trim(),timeReferenceLow:c.get(n,e+338),timeReferenceHigh:c.get(n,e+342),version:o.get(n,e+346),umid:new l(64).get(n,e+348),loudnessValue:o.get(n,e+412),maxTruePeakLevel:o.get(n,e+414),maxMomentaryLoudness:o.get(n,e+416),maxShortTermLoudness:o.get(n,e+418)}),"get")};var m=(0,_.default)("music-metadata:parser:RIFF"),L=class extends x{static{r(this,"WaveParser")}constructor(){super(...arguments),this.blockAlign=0,this.avgBytesPerSec=0}async parse(){let e=await this.tokenizer.readToken(T);if(m(`pos=${this.tokenizer.position}, parse: chunkID=${e.chunkID}`),e.chunkID==="RIFF")return this.metadata.setAudioOnly(),this.parseRiffChunk(e.chunkSize).catch(t=>{if(!(t instanceof w))throw t})}async parseRiffChunk(e){let t=await this.tokenizer.readToken(I);if(this.metadata.setFormat("container",t),t==="WAVE")return this.readWaveChunk(e-I.len);throw new d(`Unsupported RIFF format: RIFF/${t}`)}async readWaveChunk(e){for(;e>=T.len;){let t=await this.tokenizer.readToken(T);switch(e-=T.len+t.chunkSize,t.chunkSize>e&&this.metadata.addWarning("Data chunk size exceeds file size"),this.header=t,m(`pos=${this.tokenizer.position}, readChunk: chunkID=RIFF/WAVE/${t.chunkID}`),t.chunkID){case"LIST":await this.parseListTag(t);break;case"fact":this.metadata.setFormat("lossless",!1),this.fact=await this.tokenizer.readToken(new S(t));break;case"fmt ":{let a=await this.tokenizer.readToken(new p(t)),s=D[a.wFormatTag];s||(m(`WAVE/non-PCM format=${a.wFormatTag}`),s=`non-PCM (${a.wFormatTag})`),this.metadata.setFormat("codec",s),this.metadata.setFormat("bitsPerSample",a.wBitsPerSample),this.metadata.setFormat("sampleRate",a.nSamplesPerSec),this.metadata.setFormat("numberOfChannels",a.nChannels),this.blockAlign=a.nBlockAlign,this.avgBytesPerSec=a.nAvgBytesPerSec;break}case"id3 ":case"ID3 ":{let a=await this.tokenizer.readToken(new l(t.chunkSize)),s=E(a);await new z().parse(this.metadata,s,this.options);break}case"data":{this.metadata.format.lossless!==!1&&this.metadata.setFormat("lossless",!0);let a=t.chunkSize;if(this.tokenizer.fileInfo.size){let g=this.tokenizer.fileInfo.size-this.tokenizer.position;g0?this.metadata.setFormat("bitrate",this.avgBytesPerSec*8):this.metadata.format.duration&&this.metadata.setFormat("bitrate",a*8/this.metadata.format.duration),await this.tokenizer.ignore(t.chunkSize);break}case"bext":{let a=await this.tokenizer.readToken(f);Object.keys(a).forEach(g=>{this.metadata.addTag("exif",`bext.${g}`,a[g])});let s=t.chunkSize-f.len;await this.tokenizer.ignore(s);break}case"\0\0\0\0":m(`Ignore padding chunk: RIFF/${t.chunkID} of ${t.chunkSize} bytes`),this.metadata.addWarning(`Ignore chunk: RIFF/${t.chunkID}`),await this.tokenizer.ignore(t.chunkSize);break;default:m(`Ignore chunk: RIFF/${t.chunkID} of ${t.chunkSize} bytes`),this.metadata.addWarning(`Ignore chunk: RIFF/${t.chunkID}`),await this.tokenizer.ignore(t.chunkSize)}this.header.chunkSize%2===1&&(m("Read odd padding byte"),await this.tokenizer.ignore(1))}}async parseListTag(e){let t=await this.tokenizer.readToken(new h(4,"latin1"));return m("pos=%s, parseListTag: chunkID=RIFF/WAVE/LIST/%s",this.tokenizer.position,t),t==="INFO"?this.parseRiffInfoTags(e.chunkSize-4):(this.metadata.addWarning(`Ignore chunk: RIFF/WAVE/LIST/${t}`),m(`Ignoring chunkID=RIFF/WAVE/LIST/${t}`),this.tokenizer.ignore(e.chunkSize-4).then())}async parseRiffInfoTags(e){for(;e>=8;){let t=await this.tokenizer.readToken(T),a=new u(t),s=await this.tokenizer.readToken(a);this.addTag(t.chunkID,k(s)),e-=8+a.len}if(e!==0)throw new d(`Illegal remaining size: ${e}`)}addTag(e,t){this.metadata.addTag("exif",e,t)}};export{L as WaveParser}; + +//# sourceMappingURL=./WaveParser-OIX4G4ED.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WaveParser-OIX4G4ED.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/WaveParser-OIX4G4ED.js.br new file mode 100644 index 0000000000000000000000000000000000000000..198c3ba64a4a609d252974586109884e7c0f8de2 GIT binary patch literal 2103 zcmb2H7iV~Ke%i0^^_GH5yRX=6uIycL>0tCBmg_YNh35ThB^p06Nlr*M5BYw!b{_Mz z+$n2S0@Pn;iF`Pd^G!ML(jTTnK@)EZS`@yI$z8gpcVSrlIt?M01DDUKtLj}X=)Hbx z_o_dw9_D7ZgE!`Xtz)@-Gv=J7oBCx0I3-@mUq@rK-1)3Cd_3JKRe_y4x|`_%sHfl1HeH!`%(s5qZ~e2ryC z6Q6?cq%a9_1&-Z^eg96cN{;H-yzQv0!@dn`TmNyoEa^FP+9~j#-iu`k=VtQ-vIImi z2(qewtN(aZD*BY!)X8U9Pn^%rd>D7excm;kV5#J%-%~~ZT~}Up?DeGddk+j5XLifD z9BkQ_UKhV3G5XQur7fH+9_PC=b1xW7{dvYgeI}n2Tj*x5Otonq@|T@ltFPS>St}vDV`L2HZfv?)+t5@dlHq32)y_@@1^UceN`|Nt= z?-hMJKdN>|f12&-C3B-^uulFx)w*x-)Yp9(+pllieEe6j`KejA8ZX37u|K`2Y&-Yk zo%Vlb+T~w~b3J%tcF^j}%^yGa@U4lS{fjx!fIs=x+wTcNt{)#tZn^#bu*IBHOP9UdyhNip zi{pN*O~t<5C!9qqyu1D#i&@umYSN-y9o4fxyt~Xg+7~H5So*{>WP#CirfnOqT#ehX zBxCZD3mQTx7oQkKdY*dHBmZjp-p6LscJ1PuCXy@E|7(LH%U9TYc z=X=j}Rl0e{OK~5~;I`amd4)B;Fj-hbsjkMh!%84j#q1#SDfcCUFPGifp7SHz?i!zf z+?>~PpVmCs)srf0!CxH7yHor7_GQjff&^Y>>D)gNcsT5RwXhZc@ntp2q1#-)9FHlQ z_DyP^hSAPk&6;F}uBC}T8)R?Su-#Bz^+)vO&yxPb(b8}8_yyLRSIW&dc4?o)s8$em zs7q(Hmv!E4e)YW@ckj*T(++QT)NVd#`e~CyapX?X({IXen=wuc$Ro*1OzeE?um8@3T+eF#RKqj*nZgn^3H#46S)~Hb{%7yIE_FWTF=z78 zk53*P?5p@2b?uF_^Xyt(_29aN4aGfGPkHjs*qQY0=r9km{-k)to3T%36tph=c0YDqK#t4ItaKsUZ)5 z{sroGwLyohD<- zE4VM{Yq)GQoOiM8Qci{Lg!it7i=+e5R%s>0g=T+Q#R#WN!&weG?m%hC6|KCs5tmK1>bfOMs zr0M_O$j@u}LVd-}S$WPgl>D!)-DL1KdR7N-)2y7m(?9-a;n>l~k&}H{CTQbJR{=`V^tQ zmG_UtvmU{_(>1rfDLVGTZ0XZ$+b^Bm_sM^Lfyzt8z!6c`ORUI^Ecd^u;%u+ z)82lf_oOD4EjP1xJ4N8J?Gx+Iv(w$QpBr7Z{W+a+p>^rfO`>x?+m-%HO)$7+$!MM! zZoI0hJ?U}!6W5p}^M7g$#X|J*c}pHBXz+otj@y{3EdNBX<|pT%-6{S|Kmk8ZtMWR#t$@I3jt%37bTHa9j0 z-15$U$-McEhF-n)zUY#*|8_J-r{4VUZsaa{vu)dJkNaOQru9V5w|l7Uw(vn`m|EvI z$0KJQsx8kcxhT4btFM{J|5r;ko=METC*j;b`RoUIE+!0-Zj$oZ>rGqy`*fFA-(Oz* z#J4*fRUb)1YBlbWU9{TAHHQ}{ {\n if (!(err instanceof strtok3.EndOfStreamError)) {\n throw err;\n }\n });\n }\n async parseRiffChunk(chunkSize) {\n const type = await this.tokenizer.readToken(FourCcToken);\n this.metadata.setFormat('container', type);\n switch (type) {\n case 'WAVE':\n return this.readWaveChunk(chunkSize - FourCcToken.len);\n default:\n throw new WaveContentError(`Unsupported RIFF format: RIFF/${type}`);\n }\n }\n async readWaveChunk(remaining) {\n while (remaining >= riff.Header.len) {\n const header = await this.tokenizer.readToken(riff.Header);\n remaining -= riff.Header.len + header.chunkSize;\n if (header.chunkSize > remaining) {\n this.metadata.addWarning('Data chunk size exceeds file size');\n }\n this.header = header;\n debug(`pos=${this.tokenizer.position}, readChunk: chunkID=RIFF/WAVE/${header.chunkID}`);\n switch (header.chunkID) {\n case 'LIST':\n await this.parseListTag(header);\n break;\n case 'fact': // extended Format chunk,\n this.metadata.setFormat('lossless', false);\n this.fact = await this.tokenizer.readToken(new WaveChunk.FactChunk(header));\n break;\n case 'fmt ': { // The Util Chunk, non-PCM Formats\n const fmt = await this.tokenizer.readToken(new WaveChunk.Format(header));\n let subFormat = WaveChunk.WaveFormatNameMap[fmt.wFormatTag];\n if (!subFormat) {\n debug(`WAVE/non-PCM format=${fmt.wFormatTag}`);\n subFormat = `non-PCM (${fmt.wFormatTag})`;\n }\n this.metadata.setFormat('codec', subFormat);\n this.metadata.setFormat('bitsPerSample', fmt.wBitsPerSample);\n this.metadata.setFormat('sampleRate', fmt.nSamplesPerSec);\n this.metadata.setFormat('numberOfChannels', fmt.nChannels);\n this.blockAlign = fmt.nBlockAlign;\n this.avgBytesPerSec = fmt.nAvgBytesPerSec;\n break;\n }\n case 'id3 ': // The way Picard, FooBar currently stores, ID3 meta-data\n case 'ID3 ': { // The way Mp3Tags stores ID3 meta-data\n const id3_data = await this.tokenizer.readToken(new Token.Uint8ArrayType(header.chunkSize));\n const rst = strtok3.fromBuffer(id3_data);\n await new ID3v2Parser().parse(this.metadata, rst, this.options);\n break;\n }\n case 'data': { // PCM-data\n if (this.metadata.format.lossless !== false) {\n this.metadata.setFormat('lossless', true);\n }\n let chunkSize = header.chunkSize;\n if (this.tokenizer.fileInfo.size) {\n const calcRemaining = this.tokenizer.fileInfo.size - this.tokenizer.position;\n if (calcRemaining < chunkSize) {\n this.metadata.addWarning('data chunk length exceeding file length');\n chunkSize = calcRemaining;\n }\n }\n const numberOfSamples = this.fact ? this.fact.dwSampleLength : (chunkSize === 0xffffffff ? undefined : chunkSize / this.blockAlign);\n if (numberOfSamples) {\n this.metadata.setFormat('numberOfSamples', numberOfSamples);\n if (this.metadata.format.sampleRate) {\n this.metadata.setFormat('duration', numberOfSamples / this.metadata.format.sampleRate);\n }\n }\n if (this.avgBytesPerSec > 0) {\n this.metadata.setFormat('bitrate', this.avgBytesPerSec * 8);\n }\n else if (this.metadata.format.duration) {\n this.metadata.setFormat('bitrate', chunkSize * 8 / this.metadata.format.duration);\n }\n await this.tokenizer.ignore(header.chunkSize);\n break;\n }\n case 'bext': { // Broadcast Audio Extension chunk\thttps://tech.ebu.ch/docs/tech/tech3285.pdf\n const bext = await this.tokenizer.readToken(BroadcastAudioExtensionChunk);\n Object.keys(bext).forEach(key => {\n this.metadata.addTag('exif', `bext.${key}`, bext[key]);\n });\n const bextRemaining = header.chunkSize - BroadcastAudioExtensionChunk.len;\n await this.tokenizer.ignore(bextRemaining);\n break;\n }\n case '\\x00\\x00\\x00\\x00': // padding ??\n debug(`Ignore padding chunk: RIFF/${header.chunkID} of ${header.chunkSize} bytes`);\n this.metadata.addWarning(`Ignore chunk: RIFF/${header.chunkID}`);\n await this.tokenizer.ignore(header.chunkSize);\n break;\n default:\n debug(`Ignore chunk: RIFF/${header.chunkID} of ${header.chunkSize} bytes`);\n this.metadata.addWarning(`Ignore chunk: RIFF/${header.chunkID}`);\n await this.tokenizer.ignore(header.chunkSize);\n }\n if (this.header.chunkSize % 2 === 1) {\n debug('Read odd padding byte'); // https://wiki.multimedia.cx/index.php/RIFF\n await this.tokenizer.ignore(1);\n }\n }\n }\n async parseListTag(listHeader) {\n const listType = await this.tokenizer.readToken(new Token.StringType(4, 'latin1'));\n debug('pos=%s, parseListTag: chunkID=RIFF/WAVE/LIST/%s', this.tokenizer.position, listType);\n switch (listType) {\n case 'INFO':\n return this.parseRiffInfoTags(listHeader.chunkSize - 4);\n default:\n this.metadata.addWarning(`Ignore chunk: RIFF/WAVE/LIST/${listType}`);\n debug(`Ignoring chunkID=RIFF/WAVE/LIST/${listType}`);\n return this.tokenizer.ignore(listHeader.chunkSize - 4).then();\n }\n }\n async parseRiffInfoTags(chunkSize) {\n while (chunkSize >= 8) {\n const header = await this.tokenizer.readToken(riff.Header);\n const valueToken = new riff.ListInfoTagValue(header);\n const value = await this.tokenizer.readToken(valueToken);\n this.addTag(header.chunkID, util.stripNulls(value));\n chunkSize -= (8 + valueToken.len);\n }\n if (chunkSize !== 0) {\n throw new WaveContentError(`Illegal remaining size: ${chunkSize}`);\n }\n }\n addTag(id, value) {\n this.metadata.addTag('exif', id, value);\n }\n}\n","import * as Token from 'token-types';\n/**\n * Common RIFF chunk header\n */\nexport const Header = {\n len: 8,\n get: (buf, off) => {\n return {\n // Group-ID\n chunkID: new Token.StringType(4, 'latin1').get(buf, off),\n // Size\n chunkSize: Token.UINT32_LE.get(buf, off + 4)\n };\n }\n};\n/**\n * Token to parse RIFF-INFO tag value\n */\nexport class ListInfoTagValue {\n constructor(tagHeader) {\n this.tagHeader = tagHeader;\n this.len = tagHeader.chunkSize;\n this.len += this.len & 1; // if it is an odd length, round up to even\n }\n get(buf, off) {\n return new Token.StringType(this.tagHeader.chunkSize, 'utf8').get(buf, off);\n }\n}\n","import * as Token from 'token-types';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nexport class WaveContentError extends makeUnexpectedFileContentError('Wave') {\n}\n/**\n * Ref: https://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx\n */\nexport const WaveFormat = {\n PCM: 0x0001,\n ADPCM: 0x0002,\n IEEE_FLOAT: 0x0003,\n ALAW: 0x0006,\n MULAW: 0x0007,\n DVI_ADPCM: 0x0011,\n GSM610: 0x0031,\n // MPEG-4 and AAC Audio Types\n MPEG_ADTS_AAC: 0x1600,\n MPEG_LOAS: 0x1602,\n RAW_AAC1: 0x00FF,\n // Dolby Audio Types\n DOLBY_AC3_SPDIF: 0x0092,\n DVM: 0x2000,\n RAW_SPORT: 0x0240,\n ESST_AC3: 0x0241,\n DRM: 0x0009,\n DTS2: 0x2001,\n MPEG: 0x0050,\n MPEGLAYER3: 0x0055\n};\nexport const WaveFormatNameMap = {\n [WaveFormat.PCM]: 'PCM',\n [WaveFormat.ADPCM]: 'ADPCM',\n [WaveFormat.IEEE_FLOAT]: 'IEEE_FLOAT',\n [WaveFormat.ALAW]: 'ALAW',\n [WaveFormat.MULAW]: 'MULAW',\n [WaveFormat.DVI_ADPCM]: 'DVI_ADPCM',\n [WaveFormat.GSM610]: 'GSM610',\n [WaveFormat.MPEG_ADTS_AAC]: 'MPEG_ADTS_AAC',\n [WaveFormat.MPEG_LOAS]: 'MPEG_LOAS',\n [WaveFormat.RAW_AAC1]: 'RAW_AAC1',\n [WaveFormat.DOLBY_AC3_SPDIF]: 'DOLBY_AC3_SPDIF',\n [WaveFormat.DVM]: 'DVM',\n [WaveFormat.RAW_SPORT]: 'RAW_SPORT',\n [WaveFormat.ESST_AC3]: 'ESST_AC3',\n [WaveFormat.DRM]: 'DRM',\n [WaveFormat.DTS2]: 'DTS2',\n [WaveFormat.MPEG]: 'MPEG',\n [WaveFormat.MPEGLAYER3]: 'MPEGLAYER3'\n};\n/**\n * format chunk; chunk-id is \"fmt \"\n * http://soundfile.sapp.org/doc/WaveFormat/\n */\nexport class Format {\n constructor(header) {\n if (header.chunkSize < 16)\n throw new WaveContentError('Invalid chunk size');\n this.len = header.chunkSize;\n }\n get(buf, off) {\n return {\n wFormatTag: Token.UINT16_LE.get(buf, off),\n nChannels: Token.UINT16_LE.get(buf, off + 2),\n nSamplesPerSec: Token.UINT32_LE.get(buf, off + 4),\n nAvgBytesPerSec: Token.UINT32_LE.get(buf, off + 8),\n nBlockAlign: Token.UINT16_LE.get(buf, off + 12),\n wBitsPerSample: Token.UINT16_LE.get(buf, off + 14)\n };\n }\n}\n/**\n * Fact chunk; chunk-id is \"fact\"\n * http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html\n * http://www.recordingblogs.com/wiki/fact-chunk-of-a-wave-file\n */\nexport class FactChunk {\n constructor(header) {\n if (header.chunkSize < 4) {\n throw new WaveContentError('Invalid fact chunk size.');\n }\n this.len = header.chunkSize;\n }\n get(buf, off) {\n return {\n dwSampleLength: Token.UINT32_LE.get(buf, off)\n };\n }\n}\n","import * as Token from 'token-types';\nimport { stripNulls } from '../common/Util.js';\n/**\n * Broadcast Audio Extension Chunk\n * Ref: https://tech.ebu.ch/docs/tech/tech3285.pdf\n */\nexport const BroadcastAudioExtensionChunk = {\n len: 420,\n get: (uint8array, off) => {\n return {\n description: stripNulls(new Token.StringType(256, 'ascii').get(uint8array, off)).trim(),\n originator: stripNulls(new Token.StringType(32, 'ascii').get(uint8array, off + 256)).trim(),\n originatorReference: stripNulls(new Token.StringType(32, 'ascii').get(uint8array, off + 288)).trim(),\n originationDate: stripNulls(new Token.StringType(10, 'ascii').get(uint8array, off + 320)).trim(),\n originationTime: stripNulls(new Token.StringType(8, 'ascii').get(uint8array, off + 330)).trim(),\n timeReferenceLow: Token.UINT32_LE.get(uint8array, off + 338),\n timeReferenceHigh: Token.UINT32_LE.get(uint8array, off + 342),\n version: Token.UINT16_LE.get(uint8array, off + 346),\n umid: new Token.Uint8ArrayType(64).get(uint8array, off + 348),\n loudnessValue: Token.UINT16_LE.get(uint8array, off + 412),\n maxTruePeakLevel: Token.UINT16_LE.get(uint8array, off + 414),\n maxMomentaryLoudness: Token.UINT16_LE.get(uint8array, off + 416),\n maxShortTermLoudness: Token.UINT16_LE.get(uint8array, off + 418)\n };\n }\n};\n"],"mappings":"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","names":["import_debug","Header","__name","buf","off","StringType","UINT32_LE","ListInfoTagValue","tagHeader","WaveContentError","makeUnexpectedFileContentError","__name","WaveFormat","WaveFormatNameMap","Format","header","buf","off","UINT16_LE","UINT32_LE","FactChunk","BroadcastAudioExtensionChunk","__name","uint8array","off","stripNulls","StringType","UINT32_LE","UINT16_LE","Uint8ArrayType","debug","initDebug","WaveParser","BasicParser","__name","riffHeader","Header","err","EndOfStreamError","chunkSize","type","FourCcToken","WaveContentError","remaining","header","FactChunk","fmt","Format","subFormat","WaveFormatNameMap","id3_data","Uint8ArrayType","rst","fromBuffer","ID3v2Parser","calcRemaining","numberOfSamples","bext","BroadcastAudioExtensionChunk","key","bextRemaining","listHeader","listType","StringType","valueToken","ListInfoTagValue","value","stripNulls","id"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/WaveParser-OIX4G4ED.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/android-chrome-192x192.png b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/android-chrome-192x192.png new file mode 120000 index 00000000..03fda498 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/android-chrome-192x192.png @@ -0,0 +1 @@ +../bafybeickgtv5nqyo2wizj323e6jy4mlcrmchzyfsgjgngl5kbzv6coqhk4/android-chrome-192x192.png \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/android-chrome-512x512.png b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/android-chrome-512x512.png new file mode 120000 index 00000000..bac8c97f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/android-chrome-512x512.png @@ -0,0 +1 @@ +../bafybeickgtv5nqyo2wizj323e6jy4mlcrmchzyfsgjgngl5kbzv6coqhk4/android-chrome-512x512.png \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/apple-touch-icon.png b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/apple-touch-icon.png new file mode 120000 index 00000000..6b16e545 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/apple-touch-icon.png @@ -0,0 +1 @@ +../bafybeickgtv5nqyo2wizj323e6jy4mlcrmchzyfsgjgngl5kbzv6coqhk4/apple-touch-icon.png \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js new file mode 120000 index 00000000..1280c786 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/base-DQOOZU4W.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js.br new file mode 120000 index 00000000..fd2eb85a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/base-DQOOZU4W.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js.map new file mode 120000 index 00000000..309af56c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/base-DQOOZU4W.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/base-DQOOZU4W.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/browserconfig.xml b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/browserconfig.xml new file mode 120000 index 00000000..b82829b2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/browserconfig.xml @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/browserconfig.xml \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/browserconfig.xml.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/browserconfig.xml.br new file mode 120000 index 00000000..f3005c02 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/browserconfig.xml.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/browserconfig.xml.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js new file mode 120000 index 00000000..0a3bb6d2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/butterchurn-Q7SUG6GB.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js.br new file mode 120000 index 00000000..53d68b3f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/butterchurn-Q7SUG6GB.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js.map new file mode 120000 index 00000000..147ba410 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/butterchurn-Q7SUG6GB.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/butterchurn-Q7SUG6GB.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/catalogue/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/catalogue/index.html new file mode 100644 index 00000000..47061a89 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/catalogue/index.html @@ -0,0 +1,2756 @@ + + + + + + + + + + + + + Catalogue | Diffuse + + + + + + + + + + + + + + + + + + + + + + + +

+ +
+ +
+

Featured

+ +
+ +
+ Filter by + + + + + + + +
+ + Category +
+
+ + + +
+ +

+ + +

+ + + +
+ +
+ + + + + + + + + + diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/catalogue/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/catalogue/index.html.br new file mode 100644 index 0000000000000000000000000000000000000000..1941c69cf089621df788e97ce38276eab92fd3e3 GIT binary patch literal 8493 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 Id;FUP02%ZxdH?_b literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js new file mode 120000 index 00000000..8fd291fb --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-2QN2TM5L.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js.br new file mode 120000 index 00000000..ed7bccbf --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-2QN2TM5L.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js.map new file mode 120000 index 00000000..f4f3bb3f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-2QN2TM5L.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-2QN2TM5L.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-33B7PAHN.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-33B7PAHN.js new file mode 100644 index 00000000..3975e346 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-33B7PAHN.js @@ -0,0 +1,3 @@ +import{a as I,b as H,c as m}from"./chunk-RQUYKOSL.js";import{c as T,e as k}from"./chunk-IA3NIKPO.js";import{j as B,o as l}from"./chunk-XILA3E7E.js";import{a,c as K}from"./chunk-75KFZLU6.js";var ot={};K(ot,{CLASS:()=>V,NAME:()=>F,default:()=>st});var v=a(e=>e/2**32|0,"fromNumH"),Y=a(e=>e>>>0,"fromNumL");function R(e,t,n,r){let s=v(n),o=Y(n);e.setUint32(t,r?o:s,r),e.setUint32(t+4,r?s:o,r)}a(R,"setU64FromNum");function M(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}a(M,"isBytes");var w=a(e=>e?`"${e}" `:"","atitle");function X(e,t=""){if(typeof e!="number")throw new TypeError(w(t)+"expected number, got "+typeof e);if(!Number.isSafeInteger(e)||e<0)throw new RangeError(w(t)+"expected integer >= 0, got "+e);return e}a(X,"anumber");function p(e,t,n=""){if(M(e)&&(t===void 0||e.length===t))return e;t!==void 0&&X(t,"length");let r=M(e),s=t!==void 0?` of length ${t}`:"",o=r?`length=${e.length}`:`type=${typeof e}`,c=w(n)+"expected Uint8Array"+s+", got "+o;throw r?new RangeError(c):new TypeError(c)}a(p,"abytes");var C=a((e,t)=>{if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError((t==="object"?"":`"${t}" `)+"expected object, got type="+typeof e)},"aobject");function A(e,t=!0){if(e.destroyed)throw new Error("hash was destroyed");if(t&&e.finished)throw new Error("digest() was already called")}a(A,"aexists");function O(e,t){p(e,void 0,"output");let n=t.outputLen;if(!(e.length>=n))throw new RangeError('"output" expected length >= '+n)}a(O,"aoutput");function E(...e){for(let t=0;t>>32-t>>>0}a(j,"rotl");var G=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",J=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function P(e){if(p(e),G)return e.toHex();let t="";for(let n=0;n} */\n const params = {};\n\n if (tags.title) params.track = tags.title;\n if (tags.artist) params.artist = tags.artist;\n if (tags.album) params.album = tags.album;\n if (tags.albumartist) params.albumArtist = tags.albumartist;\n if (tags.track?.no != null) params.trackNumber = String(tags.track.no);\n if (track.stats?.duration != null) {\n params.duration = String(Math.round(track.stats.duration / 1000));\n }\n\n return this.#authenticatedCall(\"track.updateNowPlaying\", params);\n }\n\n /**\n * @param {Track} track\n * @param {number} startedAt Unix timestamp in milliseconds\n * @param {{ duration?: number }} [_options] duration in milliseconds\n */\n async scrobble(track, startedAt, _options) {\n const tags = track.tags ?? {};\n /** @type {Record} */\n const params = {\n timestamp: String(Math.floor(startedAt / 1000)),\n };\n\n if (tags.title) params.track = tags.title;\n if (tags.artist) params.artist = tags.artist;\n if (tags.album) params.album = tags.album;\n if (tags.albumartist) params.albumArtist = tags.albumartist;\n if (tags.track?.no != null) params.trackNumber = String(tags.track.no);\n if (track.stats?.duration != null) {\n params.duration = String(Math.round(track.stats.duration / 1000));\n }\n\n return this.#authenticatedCall(\"track.scrobble\", params);\n }\n\n // API\n\n /**\n * Sign a set of API parameters (excluding `format` and `callback`).\n *\n * @param {Record} params\n * @returns {string} MD5 hex digest\n */\n #sign(params) {\n const str = Object.keys(params)\n .sort()\n .map((k) => k + params[k])\n .join(\"\");\n return bytesToHex(md5(utf8ToBytes(str + this.#apiSecret)));\n }\n\n /**\n * @param {string} method\n * @param {Record} [params]\n * @returns {Promise}\n */\n async #call(method, params = {}) {\n const allParams = { ...params, api_key: this.#apiKey, method };\n const api_sig = this.#sign(allParams);\n const body = new URLSearchParams({ ...allParams, api_sig, format: \"json\" });\n\n const response = await fetch(LASTFM_API_URL, { method: \"POST\", body });\n const data = await response.json();\n\n if (data.error) {\n throw new Error(`last.fm error ${data.error}: ${data.message}`);\n }\n\n return data;\n }\n\n /**\n * @param {string} method\n * @param {Record} [params]\n * @returns {Promise}\n */\n async #authenticatedCall(method, params = {}) {\n const sk = this.#sessionKey.value;\n if (!sk) throw new Error(\"Not authenticated with last.fm\");\n return this.#call(method, { ...params, sk });\n }\n\n /**\n * @param {string} token\n * @returns {Promise<{ key: string, name: string }>}\n */\n async #getSession(token) {\n const data = await this.#call(\"auth.getSession\", { token });\n return data.session;\n }\n}\n\nexport default LastFmScrobbler;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = LastFmScrobbler;\nexport const NAME = \"ds-lastfm-scrobbler\";\n\ndefineElement(NAME, CLASS);\n","const U32_MASK64 = /* @__PURE__ */ (() => BigInt(2 ** 32 - 1))();\nconst _32n = /* @__PURE__ */ BigInt(32);\n// Split bigint into two 32-bit halves. With `le=true`, returned fields become `{ h: low, l: high\n// }` to match little-endian word order rather than the property names.\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\n// Split bigint list into `[highWords, lowWords]` when `le=false`; with `le=true`, the first array\n// holds the low halves because `fromBig(...)` swaps the semantic meaning of `h` and `l`.\nfunction split(lst, le = false) {\n const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\n// Combine explicit `(high, low)` 32-bit halves into a bigint; `>>> 0` normalizes signed JS\n// bitwise results back to uint32 first, and little-endian callers must swap.\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// Split a JS number into u32 halves without a BigInt allocation. Exact only for integers\n// `0 <= n < 2**53`; callers use it on byte / bit counters, which JS length math caps far below\n// that (an ArrayBuffer cannot exceed 2**53 - 1 bytes).\nconst fromNumH = (n) => (n / 2 ** 32) | 0;\nconst fromNumL = (n) => n >>> 0;\n// Drop-in replacement for `view.setBigUint64(byteOffset, BigInt(n), isLE)` without the per-call\n// BigInt allocation. Same `n < 2**53` precondition as `fromNumH`/`fromNumL`.\nfunction setU64FromNum(view, byteOffset, n, isLE) {\n const h = fromNumH(n);\n const l = fromNumL(n);\n view.setUint32(byteOffset, isLE ? l : h, isLE);\n view.setUint32(byteOffset + 4, isLE ? h : l, isLE);\n}\n// High 32-bit half of a 64-bit logical right shift for `s` in `0..31`.\nconst shrSH = (h, _l, s) => h >>> s;\n// Low 32-bit half of a 64-bit logical right shift, valid for `s` in `1..31`.\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// High 32-bit half of a 64-bit right rotate, valid for `s` in `1..31`.\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\n// Low 32-bit half of a 64-bit right rotate, valid for `s` in `1..31`.\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// High 32-bit half of a 64-bit right rotate, valid for `s` in `33..63`; `32` uses `rotr32*`.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\n// Low 32-bit half of a 64-bit right rotate, valid for `s` in `33..63`; `32` uses `rotr32*`.\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// High 32-bit half of a 64-bit right rotate for `s === 32`; this is just the swapped low half.\nconst rotr32H = (_h, l) => l;\n// Low 32-bit half of a 64-bit right rotate for `s === 32`; this is just the swapped high half.\nconst rotr32L = (h, _l) => h;\n// 64-bit left rotates (rotl*) are not defined here: sha3.ts, their only consumer, keeps\n// local copies so V8 inlines them into keccakP.\n// Add two split 64-bit words and return the split `{ h, l }` sum.\n// JS uses 32-bit signed integers for bitwise operations, so we cannot simply shift the carry out\n// of the low sum and instead use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\n// Unmasked low-word accumulator for 3-way addition; pass the raw result into `add3H(...)`.\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\n// High-word finalize step for 3-way addition; `low` must be the untruncated output of `add3L(...)`.\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\n// Unmasked low-word accumulator for 4-way addition; pass the raw result into `add4H(...)`.\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\n// High-word finalize step for 4-way addition; `low` must be the untruncated output of `add4L(...)`.\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\n// Unmasked low-word accumulator for 5-way addition; pass the raw result into `add5H(...)`.\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\n// High-word finalize step for 5-way addition; `low` must be the untruncated output of `add5L(...)`.\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, fromNumH, fromNumL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, setU64FromNum, shrSH, shrSL, split, toBig };\n","/**\n * Checks if something is Uint8Array. Be careful: nodejs Buffer will return true.\n * @param a - value to test\n * @returns `true` when the value is a Uint8Array-compatible view.\n * @example\n * Check whether a value is a Uint8Array-compatible view.\n * ```ts\n * isBytes(new Uint8Array([1, 2, 3]));\n * ```\n */\nexport function isBytes(a) {\n // Plain `instanceof Uint8Array` is too strict for some Buffer / proxy / cross-realm cases.\n // The fallback still requires a real ArrayBuffer view, so plain\n // JSON-deserialized `{ constructor: ... }` spoofing is rejected, and\n // `BYTES_PER_ELEMENT === 1` keeps the fallback on byte-oriented views.\n return (a instanceof Uint8Array ||\n (ArrayBuffer.isView(a) &&\n a.constructor.name === 'Uint8Array' &&\n 'BYTES_PER_ELEMENT' in a &&\n a.BYTES_PER_ELEMENT === 1));\n}\n// Shared error-message prefix builder. Only called on throw paths, so assert\n// success paths never pay for the string concatenation.\nconst atitle = (title) => (title ? `\"${title}\" ` : '');\n/**\n * Asserts something is a non-negative integer.\n * @param n - number to validate\n * @param title - label included in thrown errors\n * @returns The validated number.\n * @throws On wrong argument types. {@link TypeError}\n * @throws On wrong argument ranges or values. {@link RangeError}\n * @example\n * Validate a non-negative integer option.\n * ```ts\n * anumber(32, 'length');\n * ```\n */\nexport function anumber(n, title = '') {\n if (typeof n !== 'number')\n throw new TypeError(atitle(title) + 'expected number, got ' + typeof n);\n if (!Number.isSafeInteger(n) || n < 0)\n throw new RangeError(atitle(title) + 'expected integer >= 0, got ' + n);\n return n;\n}\n/**\n * Asserts something is a boolean.\n * @param value - value to validate\n * @param title - label included in thrown errors\n * @returns The validated boolean.\n * @throws On wrong argument types. {@link TypeError}\n * @example\n * Validate a boolean option.\n * ```ts\n * abool(true, 'enableXOF');\n * ```\n */\nexport function abool(value, title = '') {\n if (typeof value !== 'boolean')\n throw new TypeError(atitle(title) + 'expected boolean, got type=' + typeof value);\n return value;\n}\n/**\n * Asserts something is Uint8Array.\n * @param value - value to validate\n * @param length - optional exact length constraint\n * @param title - label included in thrown errors\n * @returns The validated byte array.\n * @throws On wrong argument types. {@link TypeError}\n * @throws On wrong argument ranges or values. {@link RangeError}\n * @example\n * Validate that a value is a byte array.\n * ```ts\n * abytes(new Uint8Array([1, 2, 3]));\n * ```\n */\nexport function abytes(value, length, title = '') {\n // Success path first: this runs at the start of every update() / digestInto(), and the\n // common `abytes(data)` form must not pay for length handling it does not use.\n if (isBytes(value) && (length === undefined || value.length === length))\n return value;\n // Error path: recompute freely to build the exact message.\n if (length !== undefined)\n anumber(length, 'length');\n const bytes = isBytes(value);\n const ofLen = length !== undefined ? ` of length ${length}` : '';\n const got = bytes ? `length=${value.length}` : `type=${typeof value}`;\n const message = atitle(title) + 'expected Uint8Array' + ofLen + ', got ' + got;\n if (!bytes)\n throw new TypeError(message);\n throw new RangeError(message);\n}\n/**\n * Copies bytes into a fresh Uint8Array.\n * Buffer-style slices can alias the same backing store, so callers that need ownership should copy.\n * @param bytes - source bytes to clone\n * @returns Freshly allocated copy of `bytes`.\n * @throws On wrong argument types. {@link TypeError}\n * @example\n * Clone a byte array before mutating it.\n * ```ts\n * const copy = copyBytes(new Uint8Array([1, 2, 3]));\n * ```\n */\nexport function copyBytes(bytes) {\n // `Uint8Array.from(...)` would also accept arrays / other typed arrays. Keep this helper strict\n // because callers use it at byte-validation boundaries before mutating the detached copy.\n return Uint8Array.from(abytes(bytes));\n}\n/**\n * Asserts something is a wrapped hash constructor.\n * @param h - hash constructor to validate\n * @throws On wrong argument types or invalid hash wrapper shape. {@link TypeError}\n * @throws On invalid hash metadata ranges or values. {@link RangeError}\n * @throws If the hash metadata allows empty outputs or block sizes. {@link Error}\n * @example\n * Validate a callable hash wrapper.\n * ```ts\n * import { ahash } from '@noble/hashes/utils.js';\n * import { sha256 } from '@noble/hashes/sha2.js';\n * ahash(sha256);\n * ```\n */\nexport function ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new TypeError('expected hash wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n // HMAC and KDF callers treat these as real byte lengths; allowing zero lets fake wrappers pass\n // validation and can produce empty outputs instead of failing fast.\n if (h.outputLen < 1 || h.blockLen < 1)\n throw new Error('hash blockLen / outputLen must be >= 1');\n}\nconst aobject = (value, label) => {\n if (value === null || typeof value !== 'object' || Array.isArray(value))\n throw new TypeError((label === 'object' ? '' : `\"${label}\" `) + 'expected object, got type=' + typeof value);\n};\n/**\n * Asserts a hash instance has not been destroyed or finished.\n * @param instance - hash instance to validate\n * @param checkFinished - whether to reject finalized instances\n * @throws If the hash instance has already been destroyed or finalized. {@link Error}\n * @example\n * Validate that a hash instance is still usable.\n * ```ts\n * import { aexists } from '@noble/hashes/utils.js';\n * import { sha256 } from '@noble/hashes/sha2.js';\n * const hash = sha256.create();\n * aexists(hash);\n * ```\n */\nexport function aexists(instance, checkFinished = true) {\n // Runs on every update()/digestInto(); the flags are library-owned booleans, so only their\n // truthiness is checked - re-validating their type per call was pure hot-path overhead.\n if (instance.destroyed)\n throw new Error('hash was destroyed');\n if (checkFinished && instance.finished)\n throw new Error('digest() was already called');\n}\n/**\n * Asserts output is a sufficiently-sized byte array.\n * @param out - destination buffer\n * @param instance - hash instance providing output length\n * Oversized buffers are allowed; downstream code only promises to fill the first `outputLen` bytes.\n * @throws On wrong argument types. {@link TypeError}\n * @throws On wrong argument ranges or values. {@link RangeError}\n * @example\n * Validate a caller-provided digest buffer.\n * ```ts\n * import { aoutput } from '@noble/hashes/utils.js';\n * import { sha256 } from '@noble/hashes/sha2.js';\n * const hash = sha256.create();\n * aoutput(new Uint8Array(hash.outputLen), hash);\n * ```\n */\nexport function aoutput(out, instance) {\n abytes(out, undefined, 'output');\n // `outputLen` is a library-owned readonly number; the negated comparison keeps failing fast\n // when it is missing/NaN (comparisons with undefined/NaN are false) without an anumber() call.\n const min = instance.outputLen;\n if (!(out.length >= min)) {\n throw new RangeError('\"output\" expected length >= ' + min);\n }\n}\n/**\n * Casts a typed array view to Uint8Array.\n * @param arr - source typed array\n * @returns Uint8Array view over the same buffer.\n * @example\n * Reinterpret a typed array as bytes.\n * ```ts\n * u8(new Uint32Array([1, 2]));\n * ```\n */\nexport function u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/**\n * Casts a typed array view to Uint32Array.\n * `arr.byteOffset` must already be 4-byte aligned or the platform\n * Uint32Array constructor will throw.\n * @param arr - source typed array\n * @returns Uint32Array view over the same buffer.\n * @example\n * Reinterpret a byte array as 32-bit words.\n * ```ts\n * u32(new Uint8Array(8));\n * ```\n */\nexport function u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/**\n * Zeroizes typed arrays in place. Warning: JS provides no guarantees.\n * @param arrays - arrays to overwrite with zeros\n * @example\n * Zeroize sensitive buffers in place.\n * ```ts\n * clean(new Uint8Array([1, 2, 3]));\n * ```\n */\nexport function clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/**\n * Creates a DataView for byte-level manipulation.\n * @param arr - source typed array\n * @returns DataView over the same buffer region.\n * @example\n * Create a DataView over an existing buffer.\n * ```ts\n * createView(new Uint8Array(4));\n * ```\n */\nexport function createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/**\n * Rotate-right operation for uint32 values.\n * @param word - source word\n * @param shift - shift amount in bits\n * @returns Rotated word.\n * @example\n * Rotate a 32-bit word to the right.\n * ```ts\n * rotr(0x12345678, 8);\n * ```\n */\nexport function rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/**\n * Rotate-left operation for uint32 values.\n * @param word - source word\n * @param shift - shift amount in bits\n * @returns Rotated word.\n * @example\n * Rotate a 32-bit word to the left.\n * ```ts\n * rotl(0x12345678, 8);\n * ```\n */\nexport function rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Whether the current platform is little-endian. */\nexport const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/**\n * Byte-swap operation for uint32 values.\n * @param word - source word\n * @returns Word with reversed byte order.\n * @example\n * Reverse the byte order of a 32-bit word.\n * ```ts\n * byteSwap(0x11223344);\n * ```\n */\nexport function byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/**\n * Conditionally byte-swaps one 32-bit word on big-endian platforms.\n * @param n - source word\n * @returns Original or byte-swapped word depending on platform endianness.\n * @example\n * Normalize a 32-bit word for host endianness.\n * ```ts\n * swap8IfBE(0x11223344);\n * ```\n */\nexport const swap8IfBE = isLE\n ? (n) => n\n : (n) => byteSwap(n) >>> 0;\n/**\n * Byte-swaps every word of a Uint32Array in place.\n * @param arr - array to mutate\n * @returns The same array after mutation; callers pass live state arrays here.\n * @example\n * Reverse the byte order of every word in place.\n * ```ts\n * byteSwap32(new Uint32Array([0x11223344]));\n * ```\n */\nexport function byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\n/**\n * Conditionally byte-swaps a Uint32Array on big-endian platforms.\n * @param u - array to normalize for host endianness\n * @returns Original or byte-swapped array depending on platform endianness.\n * On big-endian runtimes this mutates `u` in place via `byteSwap32(...)`.\n * @example\n * Normalize a word array for host endianness.\n * ```ts\n * swap32IfBE(new Uint32Array([0x11223344]));\n * ```\n */\nexport const swap32IfBE = isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string.\n * Uses the built-in function when available and assumes it matches the tested\n * fallback semantics.\n * @param bytes - bytes to encode\n * @returns Lowercase hexadecimal string.\n * @throws On wrong argument types. {@link TypeError}\n * @example\n * Convert bytes to lowercase hexadecimal.\n * ```ts\n * bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])); // 'cafe0123'\n * ```\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// Strict ASCII nibble parser: non-ASCII hex lookalikes are rejected as undefined.\n// ASCII codes: '0'..'9' = 48..57, 'A'..'F' = 65..70, 'a'..'f' = 97..102.\n// prettier-ignore\nfunction asciiToBase16(ch) {\n return ch >= 48 && ch <= 57 ? ch - 48 // '2' => 50-48\n : ch >= 65 && ch <= 70 ? ch - (65 - 10) // 'B' => 66-(65-10)\n : ch >= 97 && ch <= 102 ? ch - (97 - 10) // 'b' => 98-(97-10)\n : undefined;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @param hex - hexadecimal string to decode\n * @returns Decoded bytes.\n * @throws On wrong argument types. {@link TypeError}\n * @throws On wrong argument ranges or values. {@link RangeError}\n * @example\n * Decode lowercase hexadecimal into bytes.\n * ```ts\n * hexToBytes('cafe0123'); // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n * ```\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new TypeError('hex string expected, got ' + typeof hex);\n if (hasHexBuiltin) {\n try {\n return Uint8Array.fromHex(hex);\n }\n catch (error) {\n if (error instanceof SyntaxError)\n throw new RangeError(error.message);\n throw error;\n }\n }\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new RangeError('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi)); // parse first char, multiply it by 16\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1)); // parse second char\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new RangeError('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // example: 'A9' => 10*16 + 9\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * This yields to the Promise/microtask scheduler queue, not to timers or the\n * full macrotask event loop.\n * @example\n * Yield to the next scheduler tick.\n * ```ts\n * await nextTick();\n * ```\n */\nexport const nextTick = async () => { };\n/**\n * Returns control to the Promise/microtask scheduler every `tick`\n * milliseconds to avoid blocking long loops.\n * @param iters - number of loop iterations to run\n * @param tick - maximum time slice in milliseconds\n * @param cb - callback executed on each iteration\n * @throws On wrong argument types. {@link TypeError}\n * @throws On wrong argument ranges or values. {@link RangeError}\n * @example\n * Run a loop that periodically yields back to the event loop.\n * ```ts\n * await asyncLoop(2, 0, () => {});\n * ```\n */\nexport async function asyncLoop(iters, tick, cb) {\n anumber(iters, 'iters');\n anumber(tick, 'tick');\n if (typeof cb !== 'function')\n throw new TypeError('callback must be a function');\n // Callback is synchronous by contract; asyncLoop only yields between sync work windows.\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n // Track only synchronous work time; scheduler delay after yielding is outside our budget.\n ts += diff;\n }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * Built-in doesn't validate input to be string: we do the check.\n * Non-ASCII details are delegated to the platform `TextEncoder`.\n * @param str - string to encode\n * @returns UTF-8 encoded bytes.\n * @throws On wrong argument types. {@link TypeError}\n * @example\n * Encode a string as UTF-8 bytes.\n * ```ts\n * utf8ToBytes('abc'); // Uint8Array.from([97, 98, 99])\n * ```\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new TypeError('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Helper for KDFs: consumes Uint8Array or string.\n * String inputs are UTF-8 encoded; byte-array inputs stay aliased to the caller buffer.\n * @param data - user-provided KDF input\n * @param errorTitle - label included in thrown errors\n * @returns Byte representation of the input.\n * @throws On wrong argument types. {@link TypeError}\n * @example\n * Normalize KDF input to bytes.\n * ```ts\n * kdfInputToBytes('password');\n * ```\n */\nexport function kdfInputToBytes(data, errorTitle = '') {\n if (typeof data === 'string')\n return utf8ToBytes(data);\n return abytes(data, undefined, errorTitle);\n}\n/**\n * Copies several Uint8Arrays into one.\n * @param arrays - arrays to concatenate\n * @returns Concatenated byte array.\n * @throws On wrong argument types. {@link TypeError}\n * @example\n * Concatenate multiple byte arrays.\n * ```ts\n * concatBytes(new Uint8Array([1]), new Uint8Array([2]));\n * ```\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n/**\n * Validates declared required and optional field types on a plain object.\n * This walks field schemas and formats detailed errors, so avoid it on hot paths; use direct\n * one-line guards such as `abytes()`, `abool()`, or `anumber()` instead.\n * @param object - object to validate\n * @param fields - map of required field names to expected types\n * @param optFields - map of optional field names to expected types\n * @param title - label included in thrown errors\n * @throws On wrong argument types. {@link TypeError}\n * @example\n * Validate required and optional option fields.\n * ```ts\n * validateObject({ N: 1024, dkLen: 32 }, { N: 'number' }, { dkLen: 'number' });\n * ```\n */\nexport const validateObject = (object, fields = {}, optFields = {}, title = 'object') => {\n aobject(object, title);\n aobject(fields, 'fields');\n aobject(optFields, 'optFields');\n function checkField(fieldName, expectedType, isOpt) {\n const label = title === 'object' ? `param \"${String(fieldName)}\"` : `\"${title}.${String(fieldName)}\"`;\n // Config fields must be explicit own properties. Optional inherited values are rejected too\n // because callers keep reading the same options object after validation.\n const val = object[fieldName];\n // Runtime objects such as Field instances intentionally satisfy required method slots\n // via their shared prototype.\n if (!Object.hasOwn(object, fieldName) &&\n (isOpt ? val !== undefined : expectedType !== 'function')) {\n throw new TypeError(`${label} is invalid: expected own property`);\n }\n if (isOpt && val === undefined)\n return;\n const current = typeof val;\n if (current !== expectedType || val === null)\n throw new TypeError(`${label} is invalid: expected ${expectedType}, got ${current}`);\n }\n const iter = (f, isOpt) => Object.entries(f).forEach(([k, v]) => checkField(k, v, isOpt));\n iter(fields, false);\n iter(optFields, true);\n};\n/**\n * Merges default options and passed options.\n * @param defaults - base option object\n * @param opts - user overrides\n * @param title - label included in thrown override errors\n * @returns Merged option object. The merge mutates `defaults` in place.\n * @throws On wrong argument types. {@link TypeError}\n * @example\n * Merge user overrides onto default options.\n * ```ts\n * checkOpts({ dkLen: 32 }, { asyncTick: 10 });\n * ```\n */\nexport function checkOpts(defaults, opts, title = 'opts') {\n aobject(defaults, 'defaults');\n if (opts !== undefined)\n aobject(opts, title);\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/**\n * Creates a callable hash function from a stateful class constructor.\n * @param hashCons - hash constructor or factory\n * @param info - optional metadata such as DER OID\n * @returns Frozen callable hash wrapper with `.create()`.\n * Wrapper construction eagerly calls `hashCons(undefined)` once to read\n * `outputLen` / `blockLen`, so constructor side effects happen at module\n * init time.\n * @throws On wrong argument types. {@link TypeError}\n * @example\n * Wrap a stateful hash constructor into a callable helper.\n * ```ts\n * import { createHasher } from '@noble/hashes/utils.js';\n * import { sha256 } from '@noble/hashes/sha2.js';\n * const wrapped = createHasher(sha256.create, { oid: sha256.oid });\n * wrapped(new Uint8Array([1]));\n * ```\n */\nexport function createHasher(hashCons, info = {}) {\n if (typeof hashCons !== 'function')\n throw new TypeError('\"hashCons\" expected function, got type=' + typeof hashCons);\n info = checkOpts({}, info, 'info');\n const hashC = (msg, opts) => hashCons(opts)\n .update(msg)\n .digest();\n const tmp = hashCons(undefined);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.canXOF = tmp.canXOF;\n hashC.create = (opts) => hashCons(opts);\n Object.assign(hashC, info);\n return Object.freeze(hashC);\n}\n/**\n * Cryptographically secure PRNG backed by `crypto.getRandomValues`.\n * @param bytesLength - number of random bytes to generate\n * @returns Random bytes.\n * The platform `getRandomValues()` implementation still defines any\n * single-call length cap, and this helper rejects oversize requests\n * with a stable library `RangeError` instead of host-specific errors.\n * @throws On wrong argument types. {@link TypeError}\n * @throws On wrong argument ranges or values. {@link RangeError}\n * @throws If the current runtime does not provide `crypto.getRandomValues`. {@link Error}\n * @example\n * Generate a fresh random key or nonce.\n * ```ts\n * const key = randomBytes(16);\n * ```\n */\nexport function randomBytes(bytesLength = 32) {\n // Match the repo's other length-taking helpers instead of relying on Uint8Array coercion.\n anumber(bytesLength, 'bytesLength');\n const cr = typeof globalThis === 'object' ? globalThis.crypto : null;\n if (typeof cr?.getRandomValues !== 'function')\n throw new Error('crypto.getRandomValues must be defined');\n // Web Cryptography API Level 2 §10.1.1:\n // if `byteLength > 65536`, throw `QuotaExceededError`.\n // Keep the guard explicit so callers can see the quota in code\n // instead of discovering it by reading the spec or host errors.\n // This wrapper surfaces the same quota as a stable library RangeError.\n if (bytesLength > 65536)\n throw new RangeError(`\"bytesLength\" expected <= 65536, got ${bytesLength}`);\n return cr.getRandomValues(new Uint8Array(bytesLength));\n}\n/**\n * Creates OID metadata for NIST hashes with prefix `06 09 60 86 48 01 65 03 04 02`.\n * @param suffix - final OID byte for the selected hash.\n * The helper accepts any byte even though only the documented NIST hash\n * suffixes are meaningful downstream.\n * @returns Object containing the DER-encoded OID.\n * @example\n * Build OID metadata for a NIST hash.\n * ```ts\n * oidNist(0x01);\n * ```\n */\nexport const oidNist = (suffix) => ({\n // Current NIST hashAlgs suffixes used here fit in one DER subidentifier octet.\n // Larger suffix values would need base-128 OID encoding and a different length byte.\n oid: Uint8Array.from([0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, suffix]),\n});\n","/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { setU64FromNum } from \"./_u64.js\";\nimport { abytes, aexists, aoutput, createView } from \"./utils.js\";\n/**\n * Shared 32-bit conditional boolean primitive reused by SHA-256, SHA-1, and MD5 `F`.\n * Returns bits from `b` when `a` is set, otherwise from `c`.\n * The XOR form is equivalent to MD5's `F(X,Y,Z) = XY v not(X)Z` because the masked terms never\n * set the same bit.\n * @param a - selector word\n * @param b - word chosen when selector bit is set\n * @param c - word chosen when selector bit is clear\n * @returns Mixed 32-bit word.\n * @example\n * Combine three words with the shared 32-bit choice primitive.\n * ```ts\n * Chi(0xffffffff, 0x12345678, 0x87654321);\n * ```\n */\nexport function Chi(a, b, c) {\n return (a & b) ^ (~a & c);\n}\n/**\n * Shared 32-bit majority primitive reused by SHA-256 and SHA-1.\n * Returns bits shared by at least two inputs.\n * @param a - first input word\n * @param b - second input word\n * @param c - third input word\n * @returns Mixed 32-bit word.\n * @example\n * Combine three words with the shared 32-bit majority primitive.\n * ```ts\n * Maj(0xffffffff, 0x12345678, 0x87654321);\n * ```\n */\nexport function Maj(a, b, c) {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n * Accepts only byte-aligned `Uint8Array` input, even when the underlying spec describes bit\n * strings with partial-byte tails.\n * @param blockLen - internal block size in bytes\n * @param outputLen - digest size in bytes\n * @param padOffset - trailing length field size in bytes\n * @param isLE - whether length and state words are encoded in little-endian\n * @example\n * Use a concrete subclass to get the shared Merkle-Damgard update/digest flow.\n * ```ts\n * import { _SHA1 } from '@noble/hashes/legacy.js';\n * const hash = new _SHA1();\n * hash.update(new Uint8Array([97, 98, 99]));\n * hash.digest();\n * ```\n */\nexport class HashMD {\n blockLen;\n outputLen;\n canXOF = false;\n padOffset;\n isLE;\n // For partial updates less than block size\n buffer;\n view;\n finished = false;\n length = 0;\n pos = 0;\n destroyed = false;\n constructor(blockLen, outputLen, padOffset, isLE) {\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n aexists(this);\n abytes(data);\n const { view, buffer, blockLen } = this;\n const len = data.length;\n let processed = false;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path only when there is no buffered partial block: `take === blockLen` implies\n // `this.pos === 0`, so we can process full blocks directly from the input view.\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n processed = true;\n continue;\n }\n // When the whole input is buffered in one go (common for short messages), passing `data`\n // directly avoids allocating a subarray view.\n buffer.set(pos === 0 && take === len ? data : data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n processed = true;\n }\n }\n this.length += data.length;\n // Shared schedule buffers only pick up input-derived words inside process(); if everything\n // was buffered without processing, there is nothing to zero.\n if (processed)\n this.roundClean();\n return this;\n }\n digestInto(out) {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message, then zero-pad the rest of the block\n buffer[pos++] = 0b10000000;\n buffer.fill(0, pos);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n buffer.fill(0);\n }\n // `padOffset` reserves the whole length field. For SHA-384/512 the high 64 bits stay zero from\n // the padding fill above, and JS will overflow before user input can make that half non-zero.\n // So we only need to write the low 64 bits here (`length * 8` only scales the exponent of an\n // integer below 2**53, so the split inside the helper stays exact).\n setU64FromNum(view, blockLen - 8, this.length * 8, isLE);\n this.process(view, 0);\n // The final block above is processed outside update(), so the shared message-schedule\n // buffers (e.g. SHA256_W) would otherwise retain input-derived words after digest().\n this.roundClean();\n // digest() passes our own `buffer` as `out`; reuse its cached view instead of allocating one.\n const oview = out === buffer ? view : createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which must be fused in single op with modulo by JIT\n const outLen = len / 4;\n const state = this.get();\n // Subclass-misconfiguration invariant: outputLen must be 32-bit aligned and fit the state.\n if (len % 4 || outLen > state.length)\n throw new Error('invalid outputLen');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n // Copy before destroy(): subclasses wipe `buffer` during cleanup, but `digest()` must return\n // fresh bytes to the caller.\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneIntoMeta(to) {\n const { buffer, length, finished, destroyed, pos } = this;\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n // Only partial-block bytes need copying: when `length % blockLen === 0`, `pos === 0` and\n // later `update()` / `digestInto()` overwrite `to.buffer` from the start before reading it.\n if (pos)\n to.buffer.set(buffer); // Avoid a hot modulo guard.\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n}\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state from RFC 6234 §6.1: the first 32 bits of the fractional parts of the\n * square roots of the first eight prime numbers. Exported as a shared table; callers must treat\n * it as read-only because constructors copy words from it by index. */\nexport const SHA256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state `H(0)` from RFC 6234 §6.1. Exported as a shared table; callers must\n * treat it as read-only because constructors copy words from it by index. */\nexport const SHA224_IV = /* @__PURE__ */ Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state from RFC 6234 §6.3: eight RFC 64-bit `H(0)` words stored as sixteen\n * big-endian 32-bit halves. Derived from the fractional parts of the square roots of the ninth\n * through sixteenth prime numbers. Exported as a shared table; callers must treat it as read-only\n * because constructors copy halves from it by index. */\nexport const SHA384_IV = /* @__PURE__ */ Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state from RFC 6234 §6.3: eight RFC 64-bit `H(0)` words stored as sixteen\n * big-endian 32-bit halves. Derived from the fractional parts of the square roots of the first\n * eight prime numbers. Exported as a shared table; callers must treat it as read-only because\n * constructors copy halves from it by index. */\nexport const SHA512_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n","/**\n\nSHA1 (RFC 3174), MD5 (RFC 1321), and RIPEMD160 legacy, weak hash functions.\nRFC 2286 only covers HMAC-RIPEMD160 wrapper material and test vectors,\nnot the base RIPEMD-160 compression spec.\nDon't use them in a new protocol. What \"weak\" means:\n\n- Collisions can be made with 2^18 effort in MD5, 2^60 in SHA1, 2^80 in RIPEMD160.\n- No practical pre-image attacks (only theoretical, 2^123.4)\n- HMAC seems kinda ok: https://www.rfc-editor.org/rfc/rfc6151\n * @module\n */\nimport { Chi, HashMD, Maj } from \"./_md.js\";\nimport { clean, createHasher, rotl } from \"./utils.js\";\n/** Initial SHA-1 state from RFC 3174 §6.1. */\nconst SHA1_IV = /* @__PURE__ */ Uint32Array.from([\n 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,\n]);\n// Reusable 80-word SHA-1 message schedule buffer.\nconst SHA1_W = /* @__PURE__ */ new Uint32Array(80);\n/** Internal SHA1 legacy hash class. */\nexport class _SHA1 extends HashMD {\n A = SHA1_IV[0] | 0;\n B = SHA1_IV[1] | 0;\n C = SHA1_IV[2] | 0;\n D = SHA1_IV[3] | 0;\n E = SHA1_IV[4] | 0;\n constructor() {\n super(64, 20, 8, false);\n }\n get() {\n const { A, B, C, D, E } = this;\n return [A, B, C, D, E];\n }\n set(A, B, C, D, E) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n }\n _cloneInto(to) {\n (to ||= new this.constructor()).set(...this.get());\n return this._cloneIntoMeta(to);\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n SHA1_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 80; i++)\n SHA1_W[i] = rotl(SHA1_W[i - 3] ^ SHA1_W[i - 8] ^ SHA1_W[i - 14] ^ SHA1_W[i - 16], 1);\n // Compression function main loop, 80 rounds\n let { A, B, C, D, E } = this;\n for (let i = 0; i < 80; i++) {\n let F, K;\n if (i < 20) {\n F = Chi(B, C, D);\n K = 0x5a827999;\n }\n else if (i < 40) {\n F = B ^ C ^ D;\n K = 0x6ed9eba1;\n }\n else if (i < 60) {\n F = Maj(B, C, D);\n K = 0x8f1bbcdc;\n }\n else {\n F = B ^ C ^ D;\n K = 0xca62c1d6;\n }\n const T = (rotl(A, 5) + F + E + K + SHA1_W[i]) | 0;\n E = D;\n D = C;\n C = rotl(B, 30);\n B = A;\n A = T;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n this.set(A, B, C, D, E);\n }\n roundClean() {\n clean(SHA1_W);\n }\n destroy() {\n // HashMD callers route post-destroy usability through `destroyed`; zeroizing alone still leaves\n // update()/digest() callable on reused instances.\n this.destroyed = true;\n this.set(0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\n/**\n * SHA1 (RFC 3174) legacy hash function. It was cryptographically broken.\n * @param msg - message bytes to hash\n * @param opts - Reserved hash options.\n * @returns Digest bytes.\n * @example\n * Hash a message with SHA1.\n * ```ts\n * sha1(new Uint8Array([97, 98, 99]));\n * ```\n */\nexport const sha1 = /* @__PURE__ */ createHasher(() => new _SHA1());\n/** RFC 1321 `T[i]` uses `floor(2^32 * abs(sin(i)))`; this is the shared `2^32` scale factor. */\nconst p32 = /* @__PURE__ */ Math.pow(2, 32);\n/** RFC 1321 `T[1..64]` table. */\nconst K = /* @__PURE__ */ Array.from({ length: 64 }, (_, i) => Math.floor(p32 * Math.abs(Math.sin(i + 1))));\n/** MD5 initial state from RFC 1321, stored as 4 u32 words. */\nconst MD5_IV = /* @__PURE__ */ SHA1_IV.slice(0, 4);\n// Reusable 16-word MD5 message block buffer.\nconst MD5_W = /* @__PURE__ */ new Uint32Array(16);\n// RFC 1321 §3.4 per-round rotate amounts, flattened to 64 entries so the round loop\n// avoids allocating a 4-element array literal every round (measured ~5% of md5).\nconst MD5_SHIFTS = /* @__PURE__ */ (() => {\n const S = [\n [7, 12, 17, 22],\n [5, 9, 14, 20],\n [4, 11, 16, 23],\n [6, 10, 15, 21],\n ];\n return Uint8Array.from({ length: 64 }, (_, i) => S[Math.floor(i / 16)][i % 4]);\n})();\n/** Internal MD5 legacy hash class. */\nexport class _MD5 extends HashMD {\n A = MD5_IV[0] | 0;\n B = MD5_IV[1] | 0;\n C = MD5_IV[2] | 0;\n D = MD5_IV[3] | 0;\n constructor() {\n super(64, 16, 8, true);\n }\n get() {\n const { A, B, C, D } = this;\n return [A, B, C, D];\n }\n set(A, B, C, D) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n }\n _cloneInto(to) {\n (to ||= new this.constructor()).set(...this.get());\n return this._cloneIntoMeta(to);\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n MD5_W[i] = view.getUint32(offset, true);\n // Compression function main loop, 64 rounds\n let { A, B, C, D } = this;\n for (let i = 0; i < 64; i++) {\n let F, g;\n if (i < 16) {\n F = Chi(B, C, D);\n g = i;\n }\n else if (i < 32) {\n // RFC 1321 round 2 uses G(B,C,D) = (B & D) | (C & ~D), which is `Chi(D, B, C)`.\n F = Chi(D, B, C);\n g = (5 * i + 1) % 16;\n }\n else if (i < 48) {\n F = B ^ C ^ D;\n g = (3 * i + 5) % 16;\n }\n else {\n F = C ^ (B | ~D);\n g = (7 * i) % 16;\n }\n F = F + A + K[i] + MD5_W[g];\n A = D;\n D = C;\n C = B;\n B = B + rotl(F, MD5_SHIFTS[i]);\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n this.set(A, B, C, D);\n }\n roundClean() {\n clean(MD5_W);\n }\n destroy() {\n // HashMD callers route post-destroy usability through `destroyed`; zeroizing alone still leaves\n // update()/digest() callable on reused instances.\n this.destroyed = true;\n this.set(0, 0, 0, 0);\n clean(this.buffer);\n }\n}\n/**\n * MD5 (RFC 1321) legacy hash function. It was cryptographically broken.\n * MD5 architecture is similar to SHA1, with some differences:\n * - Reduced output length: 16 bytes (128 bit) instead of 20\n * - 64 rounds, instead of 80\n * - Little-endian: could be faster, but will require more code\n * - Non-linear index selection: huge speed-up for unroll\n * - Per round constants: more memory accesses, additional speed-up for unroll\n * @param msg - message bytes to hash\n * @param opts - Reserved hash options.\n * @returns Digest bytes.\n * @example\n * Hash a message with MD5.\n * ```ts\n * md5(new Uint8Array([97, 98, 99]));\n * ```\n */\nexport const md5 = /* @__PURE__ */ createHasher(() => new _MD5());\n// RIPEMD-160\n// Permutation repeatedly applied to derive the later RIPEMD-160 message-order tables.\nconst Rho160 = /* @__PURE__ */ Uint8Array.from([\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n]);\nconst Id160 = /* @__PURE__ */ (() => Uint8Array.from(new Array(16).fill(0).map((_, i) => i)))();\nconst Pi160 = /* @__PURE__ */ (() => Id160.map((i) => (9 * i + 5) % 16))();\n// Five left/right message-word orderings for the RIPEMD-160 dual-lane rounds.\nconst idxLR = /* @__PURE__ */ (() => {\n const L = [Id160];\n const R = [Pi160];\n const res = [L, R];\n for (let i = 0; i < 4; i++)\n for (let j of res)\n j.push(j[i].map((k) => Rho160[k]));\n return res;\n})();\nconst idxL = /* @__PURE__ */ (() => idxLR[0])();\nconst idxR = /* @__PURE__ */ (() => idxLR[1])();\n// const [idxL, idxR] = idxLR;\n// Base per-group shift table before the left/right message-order permutations are applied.\nconst shifts160 = /* @__PURE__ */ [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => Uint8Array.from(i));\nconst shiftsL160 = /* @__PURE__ */ idxL.map((idx, i) => idx.map((j) => shifts160[i][j]));\nconst shiftsR160 = /* @__PURE__ */ idxR.map((idx, i) => idx.map((j) => shifts160[i][j]));\n// Five left-lane additive constants for RIPEMD-160.\nconst Kl160 = /* @__PURE__ */ Uint32Array.from([\n 0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e,\n]);\n// Five right-lane additive constants for RIPEMD-160.\nconst Kr160 = /* @__PURE__ */ Uint32Array.from([\n 0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000,\n]);\n// Called `f()` in the spec; valid `group` values are 0..4, and out-of-range\n// inputs currently fall through to the group-4 branch.\nfunction ripemd_f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n if (group === 1)\n return (x & y) | (~x & z);\n if (group === 2)\n return (x | ~y) ^ z;\n if (group === 3)\n return (x & z) | (y & ~z);\n return x ^ (y | ~z);\n}\n// Reusable 16-word RIPEMD-160 message block buffer.\nconst BUF_160 = /* @__PURE__ */ new Uint32Array(16);\n/**\n * Internal RIPEMD-160 legacy hash class.\n * RFC 2286 only adds HMAC-RIPEMD160 material, not the core hash specification.\n */\nexport class _RIPEMD160 extends HashMD {\n h0 = 0x67452301 | 0;\n h1 = 0xefcdab89 | 0;\n h2 = 0x98badcfe | 0;\n h3 = 0x10325476 | 0;\n h4 = 0xc3d2e1f0 | 0;\n constructor() {\n super(64, 20, 8, true);\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n _cloneInto(to) {\n (to ||= new this.constructor()).set(...this.get());\n return this._cloneIntoMeta(to);\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF_160[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl160[group], hbr = Kr160[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL160[group], sr = shiftsR160[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + ripemd_f(group, bl, cl, dl) + BUF_160[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + ripemd_f(rGroup, br, cr, dr) + BUF_160[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n // Final recombination cross-adds the left/right lane accumulators into the next h0..h4 order.\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n clean(BUF_160);\n }\n destroy() {\n this.destroyed = true;\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0);\n }\n}\n/**\n * RIPEMD-160 - a legacy hash function from 1990s.\n * RFC 2286 only covers HMAC-RIPEMD160 test material; the links below point\n * at the base RIPEMD-160 references.\n * * {@link https://homes.esat.kuleuven.be/~bosselae/ripemd160.html}\n * * {@link https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf}\n * @param msg - message bytes to hash\n * @param opts - Reserved hash options.\n * @returns Digest bytes.\n * @example\n * Hash a message with RIPEMD-160.\n * ```ts\n * ripemd160(new Uint8Array([97, 98, 99]));\n * ```\n */\nexport const ripemd160 = /* @__PURE__ */ createHasher(() => new _RIPEMD160());\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","fromNumH","__name","n","fromNumL","setU64FromNum","view","byteOffset","isLE","h","l","isBytes","a","__name","atitle","title","anumber","n","abytes","value","length","title","isBytes","anumber","bytes","ofLen","got","message","atitle","__name","aobject","__name","value","label","aexists","instance","checkFinished","aoutput","out","abytes","min","clean","arrays","i","__name","createView","arr","rotl","word","shift","__name","hasHexBuiltin","hexes","_","i","bytesToHex","bytes","abytes","hex","__name","utf8ToBytes","str","__name","checkOpts","defaults","opts","title","aobject","__name","createHasher","hashCons","info","hashC","msg","tmp","Chi","a","b","c","__name","HashMD","__name","blockLen","outputLen","padOffset","isLE","createView","data","aexists","abytes","view","buffer","len","processed","pos","take","dataView","out","aoutput","setU64FromNum","oview","outLen","state","i","res","to","length","finished","destroyed","SHA1_IV","p32","K","_","i","MD5_IV","SHA1_IV","MD5_W","MD5_SHIFTS","S","_MD5","HashMD","__name","A","B","C","D","to","view","offset","F","g","Chi","rotl","clean","md5","createHasher","LASTFM_API_URL","LASTFM_AUTH_URL","STORAGE_KEY","DEFAULT_API_KEY","DEFAULT_API_SECRET","LastFmScrobbler","BroadcastableDiffuseElement","__name","#apiKey","#apiSecret","#handle","signal","#sessionKey","#isAuthenticating","computed","actions","#tryRestore","urlParams","urlToken","newSearch","session","#getSession","#setSession","err","stored","readSession","key","handle","clearSession","callbackUrl","authUrl","saveSession","track","tags","params","#authenticatedCall","startedAt","_options","#sign","str","k","bytesToHex","md5","utf8ToBytes","#call","method","allParams","api_sig","body","data","sk","token","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-33B7PAHN.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3ILOIHWO.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3ILOIHWO.js new file mode 100644 index 00000000..2661e5b2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3ILOIHWO.js @@ -0,0 +1,3 @@ +import{a as o,i as r,k as l,l as m}from"./chunk-YT5N63AW.js";import{a as u}from"./chunk-SVXEMCXP.js";import{b as h,e as p}from"./chunk-IA3NIKPO.js";import{c as n}from"./chunk-VQAZGKWE.js";import{a as d,c as y}from"./chunk-75KFZLU6.js";var k={};y(k,{CLASS:()=>f,NAME:()=>w,default:()=>x});var a=class extends h{static{d(this,"LocalInput")}static NAME="diffuse/input/local";static WORKER_URL="components/input/local/worker.js";SCHEME=u;#t=new Map;constructor(){super(),this.proxy=this.workerProxy(),this.artwork=this.proxy.artwork,this.consult=this.proxy.consult,this.detach=this.proxy.detach,this.groupConsult=this.proxy.groupConsult,this.list=this.proxy.list,this.resolve=this.proxy.resolve}async connectedCallback(){super.connectedCallback();let s=await r();for(let[t,e]of Object.entries(s))this.#t.set(t,e.name)}async addDirectory(){let s=await globalThis.showDirectoryPicker({mode:"read"}),t=n(),e=await r();return e[t]=s,await l(e),this.#t.set(t,s.name),o(t)}async addFiles(){let s=await globalThis.showOpenFilePicker({multiple:!0}),t=await r(),e=[];for(let c of s){let i=n();t[i]=c,this.#t.set(i,c.name),e.push(o(i))}return await l(t),e}sources(s){return Object.values(m(s)).map(t=>({label:this.#t.get(t)??t,uri:o(t)}))}},x=a,f=a,w="di-local";p(w,f);export{x as a,f as b,w as c,k as d}; + +//# sourceMappingURL=./chunk-3ILOIHWO.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3ILOIHWO.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3ILOIHWO.js.br new file mode 100644 index 0000000000000000000000000000000000000000..09258fe01c7a1913a41ed15f87ef45f0cdf1a9e1 GIT binary patch literal 630 zcmb2x##(Uag-{wYBMT@8r4dr$p{By?qjS zuIlKE|8v|or}QaHFYoYN>2oyvK)-eNAIIDLM^fwNrqpno=*Ncg3c6oh;5IREhm-AY z>)kfDcGm3PX>;vP+1cNVigaCnyvexLD%H$dzw_3u`<6E^Hb<%5eKck6jJR5vn$_GP zr>ufKE@W?e;cPzpb-RJ`r$3$|iL)HmtC+~x9+sF;nfJj&$=K$e#>5_3{STWz$er58 z9G&wmuK8l+dnK+KzPhhr2X6f2d^chF%9t}e+8Z==w)cF0*;Dl}z_5O;jZpV3pI&9L zmXJ{K7WXQp1JlrAZ107Mb#%nwx%Vlj+kIpFap!PRMIzxx)K0?DG#7eXB#+ec}>UKFgzQ+WaOYslT!6 z|0po;>kX%kwFe)Z{3`dq?w3u%Egr_Nm%CR#o0%GWRH^)uW?l5f$<-Ibw$5YrPR@^g z(K6X+cI&O+MUiJVN;j37O;+#_Ss<6{c5w|?*Rd~6Usiea_W#vh|7U%}lUq^;1@6R~ u+e|P@pOMKt)yzQGHf`y>vTDOtFReLSyHBmjU0`INP&Iv}\n * @implements {InputSchemeProvider}\n */\nclass LocalInput extends DiffuseElement {\n static NAME = \"diffuse/input/local\";\n static WORKER_URL = \"components/input/local/worker.js\";\n\n SCHEME = SCHEME;\n\n /** @type {Map} tid → handle name */\n #names = new Map();\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n this.proxy = this.workerProxy();\n\n this.artwork = this.proxy.artwork;\n this.consult = this.proxy.consult;\n this.detach = this.proxy.detach;\n this.groupConsult = this.proxy.groupConsult;\n this.list = this.proxy.list;\n this.resolve = this.proxy.resolve;\n }\n\n // LIFECYCLE\n\n /** @override */\n async connectedCallback() {\n super.connectedCallback();\n const handles = await loadHandles();\n for (const [tid, handle] of Object.entries(handles)) {\n this.#names.set(tid, handle.name);\n }\n }\n\n // 🛠️\n\n /**\n * Prompts the user to pick a directory.\n * Stores handle in IDB.\n * Returns the URI for the track placeholder.\n */\n async addDirectory() {\n const dirHandle = await /** @type {any} */ (globalThis).showDirectoryPicker(\n { mode: \"read\" },\n );\n\n const tid = TID.now();\n const handles = await loadHandles();\n\n handles[tid] = dirHandle;\n await saveHandles(handles);\n this.#names.set(tid, dirHandle.name);\n\n return buildURI(tid);\n }\n\n /**\n * Prompts the user to pick one or more files.\n * Stores handles in IDB.\n * Returns the URIs for the track placeholders.\n */\n async addFiles() {\n const fileHandles = await /** @type {any} */ (globalThis)\n .showOpenFilePicker({ multiple: true });\n const handles = await loadHandles();\n const uris = [];\n\n for (const fileHandle of fileHandles) {\n const tid = TID.now();\n handles[tid] = fileHandle;\n this.#names.set(tid, fileHandle.name);\n uris.push(buildURI(tid));\n }\n\n await saveHandles(handles);\n return uris;\n }\n\n /** @param {Track[]} tracks */\n sources(tracks) {\n return Object.values(tidsFromTracks(tracks)).map((tid) => ({\n label: this.#names.get(tid) ?? tid,\n uri: buildURI(tid),\n }));\n }\n}\n\nexport default LocalInput;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = LocalInput;\nexport const NAME = \"di-local\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"2OAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAwBA,IAAMC,EAAN,cAAyBC,CAAe,CAxBxC,MAwBwC,CAAAC,EAAA,mBACtC,OAAO,KAAO,sBACd,OAAO,WAAa,mCAEpB,OAASC,EAGTC,GAAS,IAAI,IAEb,aAAc,CACZ,MAAM,EAGN,KAAK,MAAQ,KAAK,YAAY,EAE9B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,OAAS,KAAK,MAAM,OACzB,KAAK,aAAe,KAAK,MAAM,aAC/B,KAAK,KAAO,KAAK,MAAM,KACvB,KAAK,QAAU,KAAK,MAAM,OAC5B,CAKA,MAAM,mBAAoB,CACxB,MAAM,kBAAkB,EACxB,IAAMC,EAAU,MAAMC,EAAY,EAClC,OAAW,CAACC,EAAKC,CAAM,IAAK,OAAO,QAAQH,CAAO,EAChD,KAAKD,GAAO,IAAIG,EAAKC,EAAO,IAAI,CAEpC,CASA,MAAM,cAAe,CACnB,IAAMC,EAAY,MAA0B,WAAY,oBACtD,CAAE,KAAM,MAAO,CACjB,EAEMF,EAAUG,EAAI,EACdL,EAAU,MAAMC,EAAY,EAElC,OAAAD,EAAQE,CAAG,EAAIE,EACf,MAAME,EAAYN,CAAO,EACzB,KAAKD,GAAO,IAAIG,EAAKE,EAAU,IAAI,EAE5BG,EAASL,CAAG,CACrB,CAOA,MAAM,UAAW,CACf,IAAMM,EAAc,MAA0B,WAC3C,mBAAmB,CAAE,SAAU,EAAK,CAAC,EAClCR,EAAU,MAAMC,EAAY,EAC5BQ,EAAO,CAAC,EAEd,QAAWC,KAAcF,EAAa,CACpC,IAAMN,EAAUG,EAAI,EACpBL,EAAQE,CAAG,EAAIQ,EACf,KAAKX,GAAO,IAAIG,EAAKQ,EAAW,IAAI,EACpCD,EAAK,KAAKF,EAASL,CAAG,CAAC,CACzB,CAEA,aAAMI,EAAYN,CAAO,EAClBS,CACT,CAGA,QAAQE,EAAQ,CACd,OAAO,OAAO,OAAOC,EAAeD,CAAM,CAAC,EAAE,IAAKT,IAAS,CACzD,MAAO,KAAKH,GAAO,IAAIG,CAAG,GAAKA,EAC/B,IAAKK,EAASL,CAAG,CACnB,EAAE,CACJ,CACF,EAEOW,EAAQlB,EAMFmB,EAAQnB,EACRoB,EAAO,WAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","LocalInput","DiffuseElement","__name","SCHEME","#names","handles","loadHandles","tid","handle","dirHandle","now","saveHandles","buildURI","fileHandles","uris","fileHandle","tracks","tidsFromTracks","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-3ILOIHWO.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js new file mode 120000 index 00000000..5cd0b8d2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-3U47TTXA.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js.br new file mode 120000 index 00000000..14d6afc3 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-3U47TTXA.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js.map new file mode 120000 index 00000000..c2d44a74 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3U47TTXA.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-3U47TTXA.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js new file mode 100644 index 00000000..bf77f659 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js @@ -0,0 +1,3 @@ +import{b as C,c as A,d as E,e as f,f as T,g as k,h as g,i as y,j as v}from"./chunk-RHDOE5G3.js";import{a as L}from"./chunk-BTSSVB7R.js";import{e as S}from"./chunk-IA3NIKPO.js";import{j as u,o as l}from"./chunk-XILA3E7E.js";import{a as d,c as w}from"./chunk-75KFZLU6.js";var N={};w(N,{CLASS:()=>b,NAME:()=>P,default:()=>K});var h=class m extends L{static{d(this,"PasskeyEncryptionTransformer")}static NAME="diffuse/transformer/output/refiner/passkey-encryption";#a;constructor(){super();let e=this.base(),s=this.#t,i=this.#e,n=this.#s;this.facets=e.facets,this.playlistItems=e.playlistItems,this.ready=this.#o.get,this.settings={...e.settings,collection:u(()=>{let t=e.settings.collection();if(t?.state!=="loaded")return t?.state==="error"?{state:"error"}:{state:"loading"};let c=s.get(),o=[],a=[];for(let r of t.data){let p=r.value;if(typeof p=="string"&&g(p))if(c)try{o.push({...r,value:v(c,p)})}catch{a.push(r)}else a.push(r);else o.push(r)}return i.set(a),{state:"loaded",data:o}}),save:d(async t=>{let c=s.get();c&&(t=t.map(o=>({...o,value:y(c,o.value)})),t=t.concat(i.value)),await e.settings.save(t)},"save")},this.#a=()=>{let t=e.tracks.collection();if(t?.state!=="loaded")return t?.state==="error"?{state:"error",locked:[],unlocked:[]}:{state:"loading",locked:[],unlocked:[]};let c=s.get(),o=[],a=[];for(let r of t.data)if(!g(r.uri))o.push(r);else if(c)try{o.push({...r,uri:v(c,r.uri)})}catch{a.push(r)}else a.push(r);return{state:"loaded",locked:a,unlocked:o}},this.tracks={...e.tracks,collection:u(()=>{let t=this.#a();return t.state==="loading"?{state:"loading"}:(n.set(t.locked),{state:"loaded",data:t.unlocked})}),save:d(async t=>{let c=s.get();c&&(t=t.map(o=>({...o,uri:y(c,o.uri)})),t=t.concat(n.value)),await e.tracks.save(t)},"save")}}#t=l(null);#o=l(!1);#e=l([]);#s=l([]);passkeyActive=u(()=>this.#t.get()!==null);lockedSettings=this.#e.get;lockedTracks=this.#s.get;connectedCallback(){if(this.hasAttribute("group")){let e=this.namespace?.length?`${m.NAME}/${this.namespace}/${this.group}`:`${m.NAME}/${this.group}`,s=this.broadcast(e,{getLockedSettings:{strategy:"leaderOnly",fn:this.#e.get},setLockedSettings:{strategy:"replicate",fn:this.#e.set},getLockedTracks:{strategy:"leaderOnly",fn:this.#s.get},setLockedTracks:{strategy:"replicate",fn:this.#s.set}});s&&(this.#e.set=s.setLockedSettings,this.#s.set=s.setLockedTracks,s.getLockedSettings().then(i=>{this.#e.value=i}),s.getLockedTracks().then(i=>{this.#s.value=i}))}super.connectedCallback(),T(this.namespace??"").then(e=>{e&&(this.#t.value=e),this.#o.value=!0})}async setupPasskey(){let e=this.namespace??"",s=await C(e);if(!s.supported)throw new Error(s.reason);let i=await k(s.prfSecond);await f(e,i),this.#t.value=i;let n=!1,t=!1,c=this.effect(()=>{if(n){c();return}let a=this.settings.collection();a.state==="loaded"&&(n=!0,this.settings.save(a.data))}),o=this.effect(()=>{if(t){o();return}let a=this.tracks.collection();a.state==="loaded"&&(t=!0,this.tracks.save(a.data))})}async adoptPasskey(){let e=this.namespace??"",s=await A(e);if(!s.supported)throw new Error(s.reason);let i=await k(s.prfSecond);await f(e,i),this.#t.value=i;let n=!1,t=!1,c=this.effect(()=>{if(n){c();return}let a=this.settings.collection();a.state==="loaded"&&(n=!0,this.settings.save(a.data))}),o=this.effect(()=>{if(t){o();return}let a=this.tracks.collection();a.state==="loaded"&&(t=!0,this.tracks.save(a.data))})}async removePasskey(){let e=this.namespace??"";await E(e);let s=!1,i=this.effect(()=>{if(s){i();return}let n=this.settings.collection(),t=this.tracks.collection();n.state!=="loaded"||t.state!=="loaded"||(s=!0,this.#t.value=null,this.settings.save(n.data),this.tracks.save(t.data))})}},K=h,b=h,P="dtor-passkey-encryption";S(P,b);export{K as a,b,P as c,N as d}; + +//# sourceMappingURL=./chunk-3XJW57X3.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js.br new file mode 100644 index 0000000000000000000000000000000000000000..6d9a50e4c9811793c7ac23a6a1654fe26c432bcf GIT binary patch literal 1235 zcmb21%*XJ=B=rB^Jt=8-8O5zKx3_dpzH2C^J2$6l0+Z))(U57*eM?9<3>qQQoZx3%V*tlcCuka$b-X~oy zmx8o^dKjOa^lXx3q^Cdk=Ula4o=cB^t$94H{r&v7eLJfPiv9H$t;+bobJ{zC^|`!# z&5xRYFKpFLe|os$!Ofd{ub+?GQ`?-m+x*FD9qlRB^|jwVy}5UFv9{Qj-VUAH+Zp@i z_U!og@6%=Hlt21=o+*Y$SNI-2dU`XzyqAOB%uBB~hll&#j=m)GZ|lAjjft~ApT6{2 z?De6?i#JwS&bVr1^6!`2%I#{$mVOCe$5%VuA#L9^x0=a|*RZroI>%o4#kcy{wzq1h zEE+S9>phoa=XA`MC=a&cd-{3SsxqHa{*RLK4D9YX>}$d%aV5rGxs|)9L8Lm#x--XH z?}^UFUru?_-V>h&J2QVT)4seu$LIW{HOJGxGfET%#@feTdp&cB;weMviVIQR)BB2? zW`13Fry=et^KogRX5PzE9`Wx?E^1Xrxt+;+>Z{y)$YOch&K~6hi`0&7@VuFN{;B$* za}nmjk*@D%Der&JJn6ao{u3Yi<3nFF_k_0{+U|PE{MRLg_KAJXeClT|D%Yy-)3r*Q znjUrK-#;F!Bimm|1;1dQpFQEjG>09NPe-p8!l< z>ba1FO68$T8cCZMeX&%&yXJMl%>&7^Urb8NbhKad>Tj*boG-UZ9{g;vU-Pr4~Jo6A{oQR)PP$yt@6X_w{i8RkUH5&wT-`m9U8OfpZ&@6ULA zi|5!o*0O&w47#!Q2F(l14=Pm!e@!SpuXaQK!0XGe6n@S*rmCZFbmw->HKUBFEn+2K z!a5?qIAlGtaNa*<)eUvWN16vM=bC2z+WTXkZ6@1y)y3jUy^f8K-x%#umNPA1dBVCg zyg>P=f6~^+m8^@C*Oaw{e|Rh&X1&o-DD!LN+&61CZ1c!t@!PBXtkc2lZ@Ud!gN@?h zTm91-4)v$-2dJHGja(ZRWB%a5I}ROl^N%`jU3C^*OJ9A6#d*@!^E1D$ez)c16Bnap^xBo*w9NMx zu8s?Q?e)=rj;7Lmxh2szZ>juz;5tiV#k&1QQ7I0oI)5b2MYz__KG@vG{yd@1aN*e| z#w@9%Bt9MU1@}as9sG3Cf#LUxnYk<*GA$(o+FZGxJ*~2QYvz8@{R8KHmz6(vBnkX1 z$@H7Oz`^SNOj+5~GaF}gPcpk(mZJKgI8=D4M$wE)J%^%_1d*@nzQ_4|ez3iDa&F<& z7Sj#ysu!2f=AG-hKGx|jbIfZ>Yth+nNU<37w;X0v?znpsZ{Kg^tRj{n27Wf3R$3#aW7&vXv1x?OPn M%P;LaPhRl>0G-}=MF0Q* literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js.map new file mode 100644 index 00000000..0552d3e9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-3XJW57X3.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/transformer/output/refiner/passkey-encryption/element.js"],"sourcesContent":["import { computed, signal } from \"~/common/signal.js\";\nimport { OutputTransformer } from \"../../base.js\";\nimport { defineElement } from \"~/common/element.js\";\n\nimport {\n adoptPasskeyPrfResult,\n createPasskey,\n decryptUri,\n deriveCipherKey,\n encryptUri,\n isEncryptedUri,\n loadStoredCipherKey,\n removeStoredPasskey,\n storeCipherKey,\n} from \"./passkey.js\";\n\n/**\n * @import { Setting, Track } from \"~/definitions/types.d.ts\"\n * @import { OutputManager } from \"@specs/components/output/types.d.ts\"\n */\n\n/**\n * Output transformer that encrypts track URIs and setting values using a\n * passkey-derived key.\n *\n * On read, decrypts `encrypted://` URIs in tracks and `encrypted://`-encoded\n * JSON in setting values transparently. On write, re-encrypts before passing\n * downstream.\n *\n * Tracks/settings that cannot be decrypted (no key in memory) are held in\n * `lockedTracks`/`lockedSettings` and excluded from the visible collection.\n *\n * @extends {OutputTransformer}\n */\nclass PasskeyEncryptionTransformer extends OutputTransformer {\n static NAME = \"diffuse/transformer/output/refiner/passkey-encryption\";\n\n #tracks;\n\n constructor() {\n super();\n\n const base = this.base();\n\n const encryptionKey = this.#encryptionKey;\n const lockedSettings = this.#lockedSettings;\n const lockedTracks = this.#lockedTracks;\n\n this.facets = base.facets;\n this.playlistItems = base.playlistItems;\n this.ready = this.#keyReady.get;\n\n // Settings\n /** @type {OutputManager[\"settings\"]} */\n this.settings = {\n ...base.settings,\n\n collection: computed(() => {\n const col = base.settings.collection();\n if (col?.state !== \"loaded\") {\n return col?.state === \"error\" ? { state: \"error\" } : { state: \"loading\" };\n }\n\n const key = encryptionKey.get();\n\n /** @type {Setting[]} */\n const unlocked = [];\n\n /** @type {Setting[]} */\n const locked = [];\n\n for (const setting of col.data) {\n const value = setting.value;\n if (typeof value === \"string\" && isEncryptedUri(value)) {\n if (key) {\n try {\n unlocked.push({\n ...setting,\n value: decryptUri(key, value),\n });\n } catch {\n locked.push(setting);\n }\n } else {\n locked.push(setting);\n }\n } else {\n unlocked.push(setting);\n }\n }\n\n lockedSettings.set(locked);\n return { state: \"loaded\", data: unlocked };\n }),\n\n save: async (/** @type {Setting[]} */ newSettings) => {\n const key = encryptionKey.get();\n\n if (key) {\n newSettings = newSettings.map((setting) => ({\n ...setting,\n value: encryptUri(key, setting.value),\n }));\n\n // Re-append still-locked settings so they are not lost\n newSettings = newSettings.concat(lockedSettings.value);\n }\n\n await base.settings.save(newSettings);\n },\n };\n\n // Tracks\n this.#tracks = () => {\n const col = base.tracks.collection();\n\n if (col?.state !== \"loaded\") {\n return col?.state === \"error\"\n ? { state: \"error\", locked: [], unlocked: [] }\n : { state: \"loading\", locked: [], unlocked: [] };\n }\n\n const key = encryptionKey.get();\n\n /** @type {Track[]} */\n const unlocked = [];\n\n /** @type {Track[]} */\n const locked = [];\n\n for (const track of col.data) {\n if (!isEncryptedUri(track.uri)) {\n unlocked.push(track);\n } else if (key) {\n try {\n unlocked.push({ ...track, uri: decryptUri(key, track.uri) });\n } catch {\n locked.push(track);\n }\n } else {\n locked.push(track);\n }\n }\n\n return { state: \"loaded\", locked, unlocked };\n };\n\n /** @type {OutputManager[\"tracks\"]} */\n this.tracks = {\n ...base.tracks,\n\n collection: computed(() => {\n const result = this.#tracks();\n if (result.state === \"loading\") return { state: \"loading\" };\n lockedTracks.set(result.locked);\n return { state: \"loaded\", data: result.unlocked };\n }),\n\n save: async (/** @type {Track[]} */ newTracks) => {\n const key = encryptionKey.get();\n\n if (key) {\n newTracks = newTracks.map((track) => ({\n ...track,\n uri: encryptUri(key, track.uri),\n }));\n\n // Re-append still-locked tracks so they are not lost\n newTracks = newTracks.concat(lockedTracks.value);\n }\n\n await base.tracks.save(newTracks);\n },\n };\n }\n\n // SIGNALS\n\n #encryptionKey = signal(/** @type {Uint8Array | null} */ (null));\n #keyReady = signal(false);\n #lockedSettings = signal(/** @type {Setting[]} */ ([]));\n #lockedTracks = signal(/** @type {Track[]} */ ([]));\n\n passkeyActive = computed(() => this.#encryptionKey.get() !== null);\n lockedSettings = this.#lockedSettings.get;\n lockedTracks = this.#lockedTracks.get;\n\n // LIFECYCLE\n\n /** @override */\n connectedCallback() {\n if (this.hasAttribute(\"group\")) {\n const channelName = this.namespace?.length\n ? `${PasskeyEncryptionTransformer.NAME}/${this.namespace}/${this.group}`\n : `${PasskeyEncryptionTransformer.NAME}/${this.group}`;\n\n const actions = this.broadcast(channelName, {\n getLockedSettings: {\n strategy: \"leaderOnly\",\n fn: this.#lockedSettings.get,\n },\n setLockedSettings: {\n strategy: \"replicate\",\n fn: this.#lockedSettings.set,\n },\n getLockedTracks: {\n strategy: \"leaderOnly\",\n fn: this.#lockedTracks.get,\n },\n setLockedTracks: {\n strategy: \"replicate\",\n fn: this.#lockedTracks.set,\n },\n });\n\n if (actions) {\n this.#lockedSettings.set = actions.setLockedSettings;\n this.#lockedTracks.set = actions.setLockedTracks;\n\n actions.getLockedSettings().then((locked) => {\n this.#lockedSettings.value = locked;\n });\n\n actions.getLockedTracks().then((locked) => {\n this.#lockedTracks.value = locked;\n });\n }\n }\n\n super.connectedCallback();\n\n loadStoredCipherKey(this.namespace ?? \"\").then((key) => {\n if (key) {\n this.#encryptionKey.value = key;\n }\n\n this.#keyReady.value = true;\n });\n }\n\n // PASSKEY\n\n /**\n * Register a new passkey for track URI encryption.\n * Throws if the authenticator does not support the PRF extension.\n */\n async setupPasskey() {\n const namespace = this.namespace ?? \"\";\n const result = await createPasskey(namespace);\n\n if (!result.supported) {\n throw new Error(result.reason);\n }\n\n const key = await deriveCipherKey(result.prfSecond);\n await storeCipherKey(namespace, key);\n this.#encryptionKey.value = key;\n\n let savedSettings = false;\n let savedTracks = false;\n\n const stopSettings = this.effect(() => {\n if (savedSettings) { stopSettings(); return; }\n const col = this.settings.collection();\n if (col.state !== \"loaded\") return;\n savedSettings = true;\n this.settings.save(col.data);\n });\n\n const stopTracks = this.effect(() => {\n if (savedTracks) { stopTracks(); return; }\n const col = this.tracks.collection();\n if (col.state !== \"loaded\") return;\n savedTracks = true;\n this.tracks.save(col.data);\n });\n }\n\n /**\n * Adopt an existing passkey from another device via discoverable-credential\n * lookup. Stores the credential ID locally and derives the cipher key.\n */\n async adoptPasskey() {\n const namespace = this.namespace ?? \"\";\n const result = await adoptPasskeyPrfResult(namespace);\n\n if (!result.supported) {\n throw new Error(result.reason);\n }\n\n const key = await deriveCipherKey(result.prfSecond);\n await storeCipherKey(namespace, key);\n this.#encryptionKey.value = key;\n\n let savedSettings = false;\n let savedTracks = false;\n\n const stopSettings = this.effect(() => {\n if (savedSettings) { stopSettings(); return; }\n const col = this.settings.collection();\n if (col.state !== \"loaded\") return;\n savedSettings = true;\n this.settings.save(col.data);\n });\n\n const stopTracks = this.effect(() => {\n if (savedTracks) { stopTracks(); return; }\n const col = this.tracks.collection();\n if (col.state !== \"loaded\") return;\n savedTracks = true;\n this.tracks.save(col.data);\n });\n }\n\n /**\n * Remove the stored passkey credential and clear in-memory key material.\n */\n async removePasskey() {\n const namespace = this.namespace ?? \"\";\n await removeStoredPasskey(namespace);\n\n // Both collections must be captured in the same reactive snapshot before\n // clearing the key. If the key were cleared between the two reads, the\n // second collection would evaluate with key=null and show encrypted items\n // as locked (invisible), causing them to be silently dropped on save.\n let removed = false;\n\n const stop = this.effect(() => {\n if (removed) { stop(); return; }\n\n const settingsCol = this.settings.collection();\n const tracksCol = this.tracks.collection();\n\n if (settingsCol.state !== \"loaded\" || tracksCol.state !== \"loaded\") return;\n\n removed = true;\n\n this.#encryptionKey.value = null;\n\n this.settings.save(settingsCol.data);\n this.tracks.save(tracksCol.data);\n });\n }\n}\n\nexport default PasskeyEncryptionTransformer;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = PasskeyEncryptionTransformer;\nexport const NAME = \"dtor-passkey-encryption\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","PasskeyEncryptionTransformer","_PasskeyEncryptionTransformer","OutputTransformer","__name","#tracks","base","encryptionKey","#encryptionKey","lockedSettings","#lockedSettings","lockedTracks","#lockedTracks","#keyReady","computed","col","key","unlocked","locked","setting","value","isEncryptedUri","decryptUri","newSettings","encryptUri","track","result","newTracks","signal","channelName","actions","loadStoredCipherKey","namespace","createPasskey","deriveCipherKey","storeCipherKey","savedSettings","savedTracks","stopSettings","stopTracks","adoptPasskeyPrfResult","removeStoredPasskey","removed","stop","settingsCol","tracksCol","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-3XJW57X3.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js new file mode 100644 index 00000000..e43fb527 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js @@ -0,0 +1,8 @@ +import{a as w}from"./chunk-KQX3HL46.js";import{a as $}from"./chunk-BTSSVB7R.js";import{e as b}from"./chunk-IA3NIKPO.js";import{b as C}from"./chunk-ZGMMU2IC.js";import{j as I,o as v}from"./chunk-XILA3E7E.js";import{a as p,c as N}from"./chunk-75KFZLU6.js";var L={};N(L,{CLASS:()=>O,NAME:()=>k,default:()=>E});var S=["facets","playlistItems","settings","tracks"],R={"sh.diffuse.output.facet":"facets","sh.diffuse.output.playlistItemBundle":"playlistItems","sh.diffuse.output.setting":"settings","sh.diffuse.output.trackBundle":"tracks"},u="diffuse/transformer/output/atproto-sync",g=class extends ${static{p(this,"ATProtoOutputSyncTransformer")}static NAME="diffuse/transformer/output/raw/atproto-sync";constructor(){super();let t=this.base(),n=this.#t.get;for(let o of S)this[o]={collection:I(()=>{let s=n();if(!s)return{state:"loading"};let i=s[o].collection();return i.state==="loading"||i.state==="error"?i:{state:"loaded",data:i.data??[]}}),reload:p(async()=>{await this.#o()},"reload"),save:p(async s=>{let i=n();if(!i)return;let f=new Set(s.map(c=>c.id)),r=this.#a(o),e=!1,l=i[o].collection(),h=l.state==="loaded"&&Array.isArray(l.data)?l.data:[];for(let c of h)!f.has(c.id)&&!r.has(c.id)&&(r.add(c.id),e=!0);for(let c of s)r.has(c.id)&&(r.delete(c.id),e=!0);if(e&&localStorage.setItem(`${u}/tombstones/${o}`,JSON.stringify([...r])),this.#h(),await i[o].save(s),t.ready()){let c=t[o].collection(),a=c.state==="loaded"&&Array.isArray(c.data)?this.#r(o,s,c.data):s;t[o].save(a).then(()=>{let d=this.#s()?.rev();d&&this.#c(d),this.#d()}).catch(d=>{console.error(d)})}},"save")};this.ready=()=>!0,this.effect(()=>{n()&&(this.effect(async()=>{t.ready()&&await this.isLeader()&&this.#o()}),this.effect(async()=>{let s=this.#s();if(!s)return;let i=s.firehoseRev();if(!i||!t.ready()||!await this.isLeader())return;let f=[...i.collections].map(r=>R[r]).filter(r=>r!==void 0);f.length>0&&this.#o(f,i.rev)}))})}#t=v(void 0);#e=!1;#s(){return this.output.signal()}async#o(t=S,n=null){if(!this.#e){this.#e=!0;try{let o=this.#t.get(),s=this.base(),i=this.#s();if(!o||!i||!s.ready())return;let f=t===S,r=o,e=s,l=n??await i.getLatestCommit();if(!l)return;if(f){let a=this.#u(),d=this.#l();if(a===l&&!d)return}for(let a of t)await e[a].reload();if(!(await Promise.all(t.map(a=>C(r[a])))).some(a=>Array.isArray(a)&&a.length>0)&&!this.#l())for(let a of t){let d=e[a].collection();d.state==="loaded"&&Array.isArray(d.data)&&d.data.length>0&&(this.#n(a,d.data),await r[a].save(d.data))}else for(let a of t){let d=r[a].collection(),y=e[a].collection(),x=d.state==="loaded"&&Array.isArray(d.data)?d.data:[],A=y.state==="loaded"&&Array.isArray(y.data)?y.data:[],m=this.#r(a,x,A);await r[a].save(m),this.#f(m,A)&&await e[a].save(m),this.#n(a,m)}this.#c(i.rev()??l),f&&this.#d()}catch(o){console.warn("Sync failed:",o)}finally{this.#e=!1}}}#r(t,n,o){let s=this.#a(t),i=this.#i(t),f=new Set(o.map(e=>e.id)),r=new Map;for(let e of n)s.has(e.id)||i.has(e.id)&&!f.has(e.id)||r.set(e.id,e);for(let e of o){if(s.has(e.id)||n.length>0&&i.has(e.id)&&!r.has(e.id))continue;let l=r.get(e.id);if(!l)r.set(e.id,e);else{let h=l.updatedAt,c=e.updatedAt;h&&c&&c>h&&r.set(e.id,e)}}return[...r.values()]}#f(t,n){if(t.length!==n.length)return!0;let o=new Map(n.map(s=>[s.id,s.updatedAt]));return t.some(s=>o.get(s.id)!==s.updatedAt)}#a(t){let n=localStorage.getItem(`${u}/tombstones/${t}`);return n?new Set(JSON.parse(n)):new Set}#i(t){let n=localStorage.getItem(`${u}/known/${t}`);return n?new Set(JSON.parse(n)):new Set}#n(t,n){let o=this.#i(t);for(let s of n)o.add(s.id);localStorage.setItem(`${u}/known/${t}`,JSON.stringify([...o]))}#u(){return localStorage.getItem(`${u}/rev`)}#c(t){t&&localStorage.setItem(`${u}/rev`,t)}#h(){localStorage.setItem(`${u}/dirty`,"1")}#d(){localStorage.removeItem(`${u}/dirty`)}#l(){return localStorage.getItem(`${u}/dirty`)==="1"}connectedCallback(){this.hasAttribute("group")&&this.broadcast(this.identifier,{}),super.connectedCallback();let t=this.root().querySelector("dop-indexed-db");if(!t)throw new Error("Can't find local output");customElements.whenDefined(t.localName).then(()=>{this.#t.value=t})}render({html:t}){return t` + + `}},E=g,O=g,k="dtor-atproto-sync";b(k,O);export{E as a,O as b,k as c,L as d}; + +//# sourceMappingURL=./chunk-43TMPYCI.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js.br new file mode 100644 index 0000000000000000000000000000000000000000..5bcd7f6e8acc4f6b80cc1df18237fabba9d0d2ce GIT binary patch literal 1742 zcmb2<7G!wxCHLF^-=C+>(6Uzc_5FQs?wW*cqVf2!Z=?)=R*KQiw3{oC!A=j+$+PuW`L{B={u@{RldSJi+0 ze>i@UW9t7y%`bw#vhZJ-Z$HORO?82U?d8iaA3wd_#eYde?(b=qmTR3eHf8;-;_11u zY-((_)1Ka{z0X4f%AB=-OgxbGMXgFKEN14in`~#_9)EQ7O=4 zQdUXWvEz1OMO!?Ao&<`VwUG1JBC4~|v?St3Z{XKk{KjUysedL1r^~mUyVf)9k^QI5 z#w)hBzge(7{bqi{E$=s9{;GC=jXA(P`P{YlN3R+CSf25D>Ak#$Q@{Mm^-z1>{WmKQ zJiWbL`Yq$?u;V&in@=iU;`1Z>3=LvqLGqX2wy7Bwm_4%^T)9~E1?E&}G z=5NyF;MUu$$p2%tOTZDfSR)m$X)CJSrfg};KXuUB<8ZMlr{cHj@4q=%Uis$aoVs*- zOVStLw5>}Y>ZkV{zZ~i1F>lSfI}Ps6e#cMDH8GrA)Whs^MCh8~lKi)iUTSYr2tBrh zhwGzt?}n=Bz9lUOt`{+HmAHCG!{w9KpWQ+-lf-@+Zau_N!yVNbcC9@7XxF1F)i(=; zXXx8` zeSX7Kt*+8!UN5FaQo^6^Prte9$O`t*+1aMsPbp~l%n&j(%H;{3%Aab?YG`k-)wwNm z%D!~R-%(eXqD8B2MvJ7ap7CM9QYQW9f^U9scsvaV;rdyUQ>3x4+5Fh+socMO%S^s4 z`)il}@YC)XC@T^zEdUY_-S zkJ!&Z(c0xJOV7Q(%j0oSJ1^x+#Pe^}u1lR;oa)rL6xE)zD(fhr(jM zk9XEySDW^7Tk4kCY*I27lXPzGN?BAkducS6;;mHIbw#^4Zx_CFUvho@@}gsRr5C3- zKiM6>CwlgRojK7Rrmjz}pF8OPlt*wP`}S)G1%DVV)$P(^?pOYCi=#4O!=cUZo@`$p zFejuga8G20l87cVGxsDRqjaV{msPtre-tmsRZL#vQO{9&CQka7;a2``591+P@IdzIbOVw^UYw?{d9F;kg_lS9TnGvRlBrnBn+iv6YOHKMZ%R zF4_@Tb}2gHZ||o!+d2P6o;;D5)iX8scH*-~$2FHWwtGyIshVLdq!i*KykWsaAB#no zrIKdLJzW;q_1dPJG1zIfK9g40qK(NHm*sa9RB~R5nDF$$I`M7SqJmrwvermsr!U?Z z&HH#)SVerpMVX~mi3Y|YOk19oO!#0>Dz#F~>dB$2t2ACMTH(HWk;XxP&OJ9AqH5+W zWIGTkW%9~ZbIys1WW6J;igC}}b9VVn6k5~e`C(b(ky!^^uJTxim9?00PMgd(>3+vf z0r$?8YJr>nhHd$+8Z$|QBlK3`)?|N%<7b!?1W#*dM;l}7JMSZ~DN zTh-Hlcg_vN!!55mzLXr1s{LYM`R3`TGhq)-O7%rb&D4&XdwQEJyY+<*zBMTpy_cDV zZcMnDYAbBWwS3*||J&XbByU-6r^st>_P8~hS!hP>iH$$Du*}`eVae~a^X$U~bv@#d%L!zu-Yg{p2lg50*WUBa&p62p}%QJmgZ9Mpe zwW9PVe&-Wd^H)jD=Q5Yvm&KXp+}wMA~W z!A2k6uyy~ZKUn*+M``M`pF)fCo%PlPKB+hK@6|W46eW$7ImQ^9Oi~udJV08ch literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js.map new file mode 100644 index 00000000..e3514255 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-43TMPYCI.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/transformer/output/raw/atproto-sync/element.js"],"sourcesContent":["import { ifDefined } from \"lit-html/directives/if-defined.js\";\n\nimport \"~/components/output/polymorphic/indexed-db/element.js\";\n\nimport { computed, signal } from \"~/common/signal.js\";\nimport { OutputTransformer } from \"../../base.js\";\nimport { defineElement } from \"~/common/element.js\";\nimport * as Output from \"~/common/output.js\";\n\n/**\n * @import { RenderArg } from \"~/common/element.d.ts\"\n * @import { OutputElement } from \"@specs/components/output/types.d.ts\"\n * @import { ATProtoPasskeyOutputElement } from \"@specs/components/output/raw/atproto-passkey/types.d.ts\"\n */\n\nconst COLLECTIONS = /** @type {const} */ ([\n \"facets\",\n \"playlistItems\",\n \"settings\",\n \"tracks\",\n]);\n\n/** @type {Record} */\nconst NSID_TO_COLLECTION = {\n \"sh.diffuse.output.facet\": \"facets\",\n \"sh.diffuse.output.playlistItemBundle\": \"playlistItems\",\n \"sh.diffuse.output.setting\": \"settings\",\n \"sh.diffuse.output.trackBundle\": \"tracks\",\n};\n\nconst STORAGE_PREFIX = \"diffuse/transformer/output/atproto-sync\";\n\n/**\n * Wraps an AT Protocol output with a local IndexedDB cache.\n *\n * Uses the repo `rev` (revision) from the AT Protocol to skip\n * unnecessary fetches when nothing changed remotely.\n *\n * When both local and remote have diverged, performs a union merge\n * by record `id`: records from both sides are combined, with\n * `updatedAt` used as a tiebreaker for conflicts on the same id\n * (falling back to local wins).\n *\n * Maintains a per-collection tombstone set of deleted record ids\n * so that records deleted on one side are not re-introduced by\n * the other during merge.\n *\n * @extends {OutputTransformer}\n */\nclass ATProtoOutputSyncTransformer extends OutputTransformer {\n static NAME = \"diffuse/transformer/output/raw/atproto-sync\";\n\n constructor() {\n super();\n\n const remote = this.base();\n const local = this.#localOutput.get;\n\n for (const name of COLLECTIONS) {\n /** @ts-ignore */\n this[name] = {\n collection: computed(() => {\n const l = local();\n if (!l) return { state: \"loading\" };\n const c = l[name].collection();\n if (c.state === \"loading\") return c;\n if (c.state === \"error\") return c;\n return { state: \"loaded\", data: c.data ?? [] };\n }),\n reload: async () => {\n await this.#sync();\n },\n save: async (/** @type {any} */ newData) => {\n const l = local();\n if (!l) return;\n\n const newIds = new Set(newData.map((/** @type {any} */ r) => r.id));\n\n // Update tombstones in one pass: add for records deleted from local,\n // remove for records being (re-)added — so that fixed-ID records can\n // be recreated after deletion without the tombstone blocking them.\n const tombstones = this.#getTombstones(name);\n let tombstonesChanged = false;\n\n const existing = l[name].collection();\n const existingArr =\n existing.state === \"loaded\" && Array.isArray(existing.data)\n ? existing.data\n : [];\n\n for (const record of existingArr) {\n if (!newIds.has(record.id) && !tombstones.has(record.id)) {\n tombstones.add(record.id);\n tombstonesChanged = true;\n }\n }\n\n for (const record of newData) {\n if (tombstones.has(record.id)) {\n tombstones.delete(record.id);\n tombstonesChanged = true;\n }\n }\n\n if (tombstonesChanged) {\n localStorage.setItem(\n `${STORAGE_PREFIX}/tombstones/${name}`,\n JSON.stringify([...tombstones]),\n );\n }\n\n this.#markDirty();\n await l[name].save(newData);\n\n if (remote.ready()) {\n // Merge with any records added remotely since the last sync so we\n // don't accidentally overwrite them with our local-only view.\n const remoteCol = remote[name].collection();\n const dataForRemote =\n remoteCol.state === \"loaded\" && Array.isArray(remoteCol.data)\n ? this.#mergeRecords(name, newData, /** @type {typeof newData} */ (remoteCol.data))\n : newData;\n\n remote[name].save(dataForRemote).then(() => {\n const rev = this.#atproto()?.rev();\n if (rev) this.#storeRev(rev);\n this.#clearDirty();\n }).catch((err) => {\n console.error(err);\n });\n }\n },\n };\n }\n\n this.ready = () => true;\n\n // Sync when remote becomes ready\n this.effect(() => {\n const l = local();\n if (!l) return;\n\n this.effect(async () => {\n if (!remote.ready()) return;\n if (!(await this.isLeader())) return;\n this.#sync();\n });\n\n // Re-sync when firehose detects a remote change\n this.effect(async () => {\n const atproto = this.#atproto();\n if (!atproto) return;\n const firehose = atproto.firehoseRev();\n if (!firehose) return;\n if (!remote.ready()) return;\n if (!(await this.isLeader())) return;\n const touched = /** @type {string[]} */ (\n [...firehose.collections]\n .map((nsid) => NSID_TO_COLLECTION[nsid])\n .filter((name) => name !== undefined)\n );\n if (touched.length > 0) this.#sync(touched, firehose.rev);\n });\n });\n }\n\n // SIGNALS\n\n #localOutput = signal(\n /** @type {OutputElement | undefined} */ (undefined),\n );\n\n #syncing = false;\n\n /**\n * @returns {ATProtoPasskeyOutputElement | undefined}\n */\n #atproto() {\n return /** @type {any} */ (this.output.signal());\n }\n\n // SYNC\n\n /**\n * @param {readonly string[]} collections\n * @param {string | null} [knownRev]\n */\n async #sync(collections = COLLECTIONS, knownRev = null) {\n if (this.#syncing) return;\n this.#syncing = true;\n\n try {\n const l = this.#localOutput.get();\n const remote = this.base();\n const atproto = this.#atproto();\n\n if (!l || !atproto || !remote.ready()) return;\n\n const isFull = collections === COLLECTIONS;\n /** @type {Record} */\n const lAny = l;\n /** @type {Record} */\n const remoteAny = remote;\n\n const remoteRev = knownRev ?? await atproto.getLatestCommit();\n if (!remoteRev) return;\n\n if (isFull) {\n const localRev = this.#getStoredRev();\n const dirty = this.#isDirty();\n if (localRev === remoteRev && !dirty) return;\n }\n\n // Fetch remote data for the affected collections only\n for (const name of collections) {\n await remoteAny[name].reload();\n }\n\n const localCollections = await Promise.all(\n collections.map((name) => Output.data(lAny[name])),\n );\n\n const localHasData = localCollections.some(\n (data) => Array.isArray(data) && data.length > 0,\n );\n\n if (!localHasData && !this.#isDirty()) {\n // Local is empty and clean — just pull remote\n for (const name of collections) {\n const remoteCol = remoteAny[name].collection();\n if (\n remoteCol.state === \"loaded\" && Array.isArray(remoteCol.data) &&\n remoteCol.data.length > 0\n ) {\n this.#trackIds(name, remoteCol.data);\n await lAny[name].save(remoteCol.data);\n }\n }\n } else {\n // Union merge\n for (const name of collections) {\n const localCol = lAny[name].collection();\n const remoteCol = remoteAny[name].collection();\n const localArr =\n localCol.state === \"loaded\" && Array.isArray(localCol.data)\n ? localCol.data\n : [];\n const remoteArr =\n remoteCol.state === \"loaded\" && Array.isArray(remoteCol.data)\n ? remoteCol.data\n : [];\n\n const merged = this.#mergeRecords(name, localArr, remoteArr);\n\n await lAny[name].save(merged);\n\n if (this.#differFromRemote(merged, remoteArr)) {\n await remoteAny[name].save(merged);\n }\n this.#trackIds(name, merged);\n }\n }\n\n this.#storeRev(atproto.rev() ?? remoteRev);\n if (isFull) this.#clearDirty();\n } catch (err) {\n console.warn(\"Sync failed:\", err);\n } finally {\n this.#syncing = false;\n }\n }\n\n /**\n * Union merge two record arrays by `id`.\n *\n * - Records only in local → keep (unless tombstoned)\n * - Records only in remote → keep (unless tombstoned)\n * - Records in both → pick the one with the later `updatedAt`,\n * falling back to local wins\n * - Records whose id is in the tombstone set are excluded\n *\n * @template {Record & { id: string }} T\n * @param {string} collection\n * @param {T[]} localArr\n * @param {T[]} remoteArr\n * @returns {T[]}\n */\n #mergeRecords(collection, localArr, remoteArr) {\n const tombstones = this.#getTombstones(collection);\n const knownIds = this.#getKnownIds(collection);\n const remoteIds = new Set(remoteArr.map((r) => r.id));\n\n /** @type {Map} */\n const merged = new Map();\n\n // Start with local records\n for (const record of localArr) {\n if (tombstones.has(record.id)) continue;\n // If previously synced but now absent from remote, it was deleted remotely.\n if (knownIds.has(record.id) && !remoteIds.has(record.id)) continue;\n merged.set(record.id, record);\n }\n\n // Merge remote records\n for (const record of remoteArr) {\n if (tombstones.has(record.id)) continue;\n\n // If this id was previously known but is absent from local,\n // it was deleted locally — skip it. Only apply this heuristic when\n // localArr is non-empty; an empty localArr could mean the local cache\n // was cleared rather than the user deleting everything.\n if (\n localArr.length > 0 &&\n knownIds.has(record.id) &&\n !merged.has(record.id)\n ) continue;\n\n const existing = merged.get(record.id);\n\n if (!existing) {\n merged.set(record.id, record);\n } else {\n // Both sides have this record — pick by updatedAt\n const lt = existing.updatedAt;\n const rt = record.updatedAt;\n if (lt && rt && rt > lt) {\n merged.set(record.id, record);\n }\n }\n }\n\n return [...merged.values()];\n }\n\n /**\n * @param {Array<{ id: string, updatedAt?: string }>} merged\n * @param {Array<{ id: string, updatedAt?: string }>} remote\n * @returns {boolean}\n */\n #differFromRemote(merged, remote) {\n if (merged.length !== remote.length) return true;\n const remoteMap = new Map(remote.map((r) => [r.id, r.updatedAt]));\n return merged.some((r) => remoteMap.get(r.id) !== r.updatedAt);\n }\n\n // TOMBSTONES & KNOWN IDS\n\n /**\n * @param {string} collection\n * @returns {Set}\n */\n #getTombstones(collection) {\n const raw = localStorage.getItem(\n `${STORAGE_PREFIX}/tombstones/${collection}`,\n );\n return raw ? new Set(JSON.parse(raw)) : new Set();\n }\n\n /**\n * @param {string} collection\n * @returns {Set}\n */\n #getKnownIds(collection) {\n const raw = localStorage.getItem(`${STORAGE_PREFIX}/known/${collection}`);\n return raw ? new Set(JSON.parse(raw)) : new Set();\n }\n\n /**\n * Record all ids from a data array as known.\n *\n * @param {string} collection\n * @param {Array<{ id: string }>} data\n */\n #trackIds(collection, data) {\n const known = this.#getKnownIds(collection);\n for (const record of data) {\n known.add(record.id);\n }\n localStorage.setItem(\n `${STORAGE_PREFIX}/known/${collection}`,\n JSON.stringify([...known]),\n );\n }\n\n // REV & DIRTY FLAG\n\n /** @returns {string | null} */\n #getStoredRev() {\n return localStorage.getItem(`${STORAGE_PREFIX}/rev`);\n }\n\n /** @param {string | null} rev */\n #storeRev(rev) {\n if (rev) {\n localStorage.setItem(`${STORAGE_PREFIX}/rev`, rev);\n }\n }\n\n #markDirty() {\n localStorage.setItem(`${STORAGE_PREFIX}/dirty`, \"1\");\n }\n\n #clearDirty() {\n localStorage.removeItem(`${STORAGE_PREFIX}/dirty`);\n }\n\n /** @returns {boolean} */\n #isDirty() {\n return localStorage.getItem(`${STORAGE_PREFIX}/dirty`) === \"1\";\n }\n\n // LIFECYCLE\n\n /** @override */\n connectedCallback() {\n // Broadcast if needed\n if (this.hasAttribute(\"group\")) {\n this.broadcast(this.identifier, {});\n }\n\n super.connectedCallback();\n\n /** @type {OutputElement | null} */\n const local = this.root().querySelector(\"dop-indexed-db\");\n if (!local) throw new Error(\"Can't find local output\");\n\n customElements.whenDefined(local.localName).then(() => {\n this.#localOutput.value = local;\n });\n }\n\n // RENDER\n\n /**\n * @param {RenderArg} _\n */\n render({ html }) {\n return html`\n \n `;\n }\n}\n\nexport default ATProtoOutputSyncTransformer;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = ATProtoOutputSyncTransformer;\nexport const NAME = \"dtor-atproto-sync\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","COLLECTIONS","NSID_TO_COLLECTION","STORAGE_PREFIX","ATProtoOutputSyncTransformer","OutputTransformer","__name","remote","local","#localOutput","name","computed","l","c","#sync","newData","newIds","r","tombstones","#getTombstones","tombstonesChanged","existing","existingArr","record","#markDirty","remoteCol","dataForRemote","#mergeRecords","rev","#atproto","#storeRev","#clearDirty","err","atproto","firehose","touched","nsid","signal","#syncing","collections","knownRev","isFull","lAny","remoteAny","remoteRev","localRev","#getStoredRev","dirty","#isDirty","data","#trackIds","localCol","localArr","remoteArr","merged","#differFromRemote","collection","knownIds","#getKnownIds","remoteIds","lt","rt","remoteMap","raw","known","html","o","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-43TMPYCI.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js new file mode 120000 index 00000000..ba3eafd6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-47J7TE33.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js.br new file mode 120000 index 00000000..4d8d1fe7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-47J7TE33.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js.map new file mode 120000 index 00000000..17967037 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-47J7TE33.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-47J7TE33.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js new file mode 100644 index 00000000..3ee6e7b3 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js @@ -0,0 +1,3 @@ +import{o as c}from"./chunk-XILA3E7E.js";import{a as s}from"./chunk-75KFZLU6.js";var q=new URL(document.location.href),a=q.searchParams.get("group")??"facets",r={configurator:{artwork:c(null),metadata:c(null),input:c(null),scrobbles:c(null),upload:c(null)},engine:{audio:c(null),queue:c(null),repeatShuffle:c(null),scope:c(null)},orchestrator:{artwork:c(null),controller:c(null),coverGroups:c(null),autoQueue:c(null),favourites:c(null),mediaSession:c(null),output:c(null),pathCollections:c(null),processTracks:c(null),queueAudio:c(null),scopedTracks:c(null),scrobbleAudio:c(null),sources:c(null),spectrogramAudio:c(null)}},S={GROUP:a,configurator:{artwork:h,metadata:w,input:A,scrobbles:y,upload:L},engine:{audio:d,queue:b,repeatShuffle:m,scope:C},orchestrator:{artwork:k,controller:P,coverGroups:v,autoQueue:O,favourites:T,mediaSession:Q,output:g,pathCollections:M,processTracks:G,queueAudio:x,scopedTracks:f,scrobbleAudio:E,sources:F,spectrogramAudio:R},signals:{configurator:{artwork:r.configurator.artwork.get,metadata:r.configurator.metadata.get,input:r.configurator.input.get,scrobbles:r.configurator.scrobbles.get,upload:r.configurator.upload.get},engine:{audio:r.engine.audio.get,queue:r.engine.queue.get,repeatShuffle:r.engine.repeatShuffle.get,scope:r.engine.scope.get},orchestrator:{artwork:r.orchestrator.artwork.get,controller:r.orchestrator.controller.get,coverGroups:r.orchestrator.coverGroups.get,autoQueue:r.orchestrator.autoQueue.get,favourites:r.orchestrator.favourites.get,mediaSession:r.orchestrator.mediaSession.get,output:r.orchestrator.output.get,pathCollections:r.orchestrator.pathCollections.get,processTracks:r.orchestrator.processTracks.get,queueAudio:r.orchestrator.queueAudio.get,scopedTracks:r.orchestrator.scopedTracks.get,scrobbleAudio:r.orchestrator.scrobbleAudio.get,sources:r.orchestrator.sources.get,spectrogramAudio:r.orchestrator.spectrogramAudio.get}},container:s(()=>document.body.querySelector("#container"),"container"),hideLoader:s(()=>{let e=document.querySelector("#diffuse-loader");e&&(e.classList.add("loaded"),setTimeout(()=>{e.remove(),e.parentElement?.remove()},750))},"hideLoader"),setup:s(({title:e})=>{document.title=e},"setup"),ready:s(()=>{S.hideLoader(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{document.querySelector("#container")?.classList.add("has-loaded")})})},"ready")},W=S;async function h(){let{CLASS:e}=await import("./components/configurator/artwork/element.js"),t=new e;return t.setAttribute("group",a),i(t,r.configurator.artwork)}s(h,"configuratorArtwork");async function w(){let{CLASS:e}=await import("./components/configurator/metadata/element.js"),t=new e;return t.setAttribute("group",a),i(t,r.configurator.metadata)}s(w,"configuratorMetadata");async function A(){let{CLASS:e}=await import("./components/configurator/input/element.js"),t=new e;return t.setAttribute("group",a),i(t,r.configurator.input)}s(A,"input");async function L(){let{CLASS:e}=await import("./components/configurator/upload/element.js"),t=new e;return t.setAttribute("group",a),i(t,r.configurator.upload)}s(L,"upload");async function y(){let{CLASS:e}=await import("./components/configurator/scrobbles/element.js"),t=new e;t.setAttribute("group",a);let o=document.body.querySelector(t.selector);return o||(document.body.append(t),t)}s(y,"scrobbles");async function d(){let{CLASS:e}=await import("./components/engine/audio/element.js"),t=new e;return t.setAttribute("group",a),i(t,r.engine.audio)}s(d,"audio");async function b(){let{CLASS:e}=await import("./components/engine/queue/element.js"),t=new e;return t.setAttribute("group",a),i(t,r.engine.queue)}s(b,"queue");async function m(){let{CLASS:e}=await import("./components/engine/repeat-shuffle/element.js"),t=new e;return t.setAttribute("group",a),i(t,r.engine.repeatShuffle)}s(m,"repeatShuffle");async function C(){let{CLASS:e}=await import("./components/engine/scope/element.js"),t=new e;return t.setAttribute("group",a),i(t,r.engine.scope)}s(C,"scope");async function k(){let[{CLASS:e},t]=await Promise.all([import("./components/orchestrator/artwork/element.js"),h()]),o=new e;return o.setAttribute("group",a),o.setAttribute("artwork-selector",t.selector),i(o,r.orchestrator.artwork)}s(k,"artwork");async function O(){let[{CLASS:e},t,o,n]=await Promise.all([import("./components/orchestrator/auto-queue/element.js"),b(),m(),f()]),u=new e;return u.setAttribute("group",a),u.setAttribute("queue-engine-selector",t.selector),u.setAttribute("repeat-shuffle-engine-selector",o.selector),u.setAttribute("tracks-selector",n.selector),i(u,r.orchestrator.autoQueue)}s(O,"autoQueue");async function P(){let[{CLASS:e},t,o,n]=await Promise.all([import("./components/orchestrator/controller/element.js"),d(),g(),b()]),u=new e;return u.setAttribute("audio-engine-selector",t.selector),u.setAttribute("output-selector",o.selector),u.setAttribute("queue-engine-selector",n.selector),i(u,r.orchestrator.controller)}s(P,"controller");async function v(){let[{CLASS:e},t]=await Promise.all([import("./components/orchestrator/cover-groups/element.js"),f()]),o=new e;return o.setAttribute("tracks-selector",t.selector),i(o,r.orchestrator.coverGroups)}s(v,"coverGroups");async function T(){let[{CLASS:e},t]=await Promise.all([import("./components/orchestrator/favourites/element.js"),g()]),o=new e;return o.setAttribute("group",a),o.setAttribute("output-selector",t.selector),i(o,r.orchestrator.favourites)}s(T,"favourites");async function Q(){let[{CLASS:e},t,o,n,u]=await Promise.all([import("./components/orchestrator/media-session/element.js"),d(),k(),g(),b()]),l=new e;return l.setAttribute("group",a),l.setAttribute("audio-engine-selector",t.selector),l.setAttribute("artwork-selector",o.selector),l.setAttribute("output-selector",n.selector),l.setAttribute("queue-engine-selector",u.selector),i(l,r.orchestrator.mediaSession)}s(Q,"mediaSession");async function g(e){let{CLASS:t}=await import("./components/orchestrator/output/element.js"),o=new t;return o.setAttribute("group",a),e?.namespace&&o.setAttribute("namespace",e.namespace),i(o,r.orchestrator.output)}s(g,"output");async function G(e={disableWhenReady:!1}){let[{CLASS:t},o,n,u]=await Promise.all([import("./components/orchestrator/process-tracks/element.js"),A(),g(),w()]),l=new t;return l.setAttribute("group",a),l.setAttribute("input-selector",o.selector),l.setAttribute("output-selector",n.selector),l.setAttribute("metadata-selector",u.selector),e.disableWhenReady||l.toggleAttribute("process-when-ready"),i(l,r.orchestrator.processTracks)}s(G,"processTracks");async function x(){let[{CLASS:e},t,o,n,u,l]=await Promise.all([import("./components/orchestrator/queue-audio/element.js"),d(),A(),g(),b(),m()]),p=new e;return p.setAttribute("group",a),p.setAttribute("audio-engine-selector",t.selector),p.setAttribute("input-selector",o.selector),p.setAttribute("output-selector",n.selector),p.setAttribute("queue-engine-selector",u.selector),p.setAttribute("repeat-shuffle-engine-selector",l.selector),i(p,r.orchestrator.queueAudio)}s(x,"queueAudio");async function f(){let[{CLASS:e},t,o,n]=await Promise.all([import("./components/orchestrator/scoped-tracks/element.js"),A(),g(),C()]),u=new e;return u.setAttribute("group",a),u.setAttribute("input-selector",t.selector),u.setAttribute("output-selector",o.selector),u.setAttribute("scope-engine-selector",n.selector),i(u,r.orchestrator.scopedTracks)}s(f,"scopedTracks");async function E(){let[{CLASS:e},t,o]=await Promise.all([import("./components/orchestrator/scrobble-audio/element.js"),d(),y()]),n=new e;return n.setAttribute("group",a),n.setAttribute("audio-engine-selector",t.selector),n.setAttribute("scrobble-selector",o.selector),i(n,r.orchestrator.scrobbleAudio)}s(E,"scrobbleAudio");async function R(){let[{CLASS:e},{CLASS:t},o,n,u]=await Promise.all([import("./components/orchestrator/spectrogram-audio/element.js"),import("./components/metadata/spectrogram/element.js"),d(),A(),g()]),l=new t;l.setAttribute("group",a),l.setAttribute("input-selector",n.selector),document.body.querySelector(l.selector)||document.body.append(l);let p=new e;return p.setAttribute("group",a),p.setAttribute("audio-engine-selector",o.selector),p.setAttribute("spectrogram-selector",l.selector),p.setAttribute("output-selector",u.selector),i(p,r.orchestrator.spectrogramAudio)}s(R,"spectrogramAudio");async function M(){let[{CLASS:e},t]=await Promise.all([import("./components/orchestrator/path-collections/element.js"),g()]),o=new e;return o.setAttribute("group",a),o.setAttribute("output-selector",t.selector),i(o,r.orchestrator.pathCollections)}s(M,"pathCollections");async function F(){let[{CLASS:e},t,o]=await Promise.all([import("./components/orchestrator/sources/element.js"),A(),g()]),n=new e;return n.setAttribute("group",a),n.setAttribute("input-selector",t.selector),n.setAttribute("output-selector",o.selector),i(n,r.orchestrator.sources)}s(F,"sources");function i(e,t){let o=document.body.querySelector(e.selector);return o?(t.value=o,o):(document.body.append(e),t.value=e,e)}s(i,"findExistingOrAdd");export{a,S as b,W as c,i as d}; + +//# sourceMappingURL=./chunk-4AUG55HO.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js.br new file mode 120000 index 00000000..3ab3f553 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-KFRLOUP4.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js.map new file mode 100644 index 00000000..d3a471a5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4AUG55HO.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/common/foundation.js"],"sourcesContent":["import { signal } from \"~/common/signal.js\";\n\n/**\n * @import { DiffuseElement } from \"~/common/element.js\";\n * @import { Signal } from \"~/common/signal.d.ts\";\n * @import { ScrobbleElement } from \"@specs/components/supplement/types.d.ts\";\n */\n\nconst url = new URL(document.location.href);\nexport const GROUP = url.searchParams.get(\"group\") ?? \"facets\";\n\n/**\n * [PRIVATE] Signals.\n */\nconst signals = {\n configurator: {\n artwork: signal(\n /** @type {import(\"~/components/configurator/artwork/element.js\").CLASS | null} */ (null),\n ),\n metadata: signal(\n /** @type {import(\"~/components/configurator/metadata/element.js\").CLASS | null} */ (null),\n ),\n input: signal(\n /** @type {import(\"~/components/configurator/input/element.js\").CLASS | null} */ (null),\n ),\n scrobbles: signal(\n /** @type {import(\"~/components/configurator/scrobbles/element.js\").CLASS | null} */ (null),\n ),\n upload: signal(\n /** @type {import(\"~/components/configurator/upload/element.js\").CLASS | null} */ (null),\n ),\n },\n\n engine: {\n audio: signal(\n /** @type {import(\"~/components/engine/audio/element.js\").CLASS | null} */ (null),\n ),\n queue: signal(\n /** @type {import(\"~/components/engine/queue/element.js\").CLASS | null} */ (null),\n ),\n repeatShuffle: signal(\n /** @type {import(\"~/components/engine/repeat-shuffle/element.js\").CLASS | null} */ (null),\n ),\n scope: signal(\n /** @type {import(\"~/components/engine/scope/element.js\").CLASS | null} */ (null),\n ),\n },\n\n orchestrator: {\n artwork: signal(\n /** @type {import(\"~/components/orchestrator/artwork/element.js\").CLASS | null} */ (null),\n ),\n controller: signal(\n /** @type {import(\"~/components/orchestrator/controller/element.js\").CLASS | null} */ (null),\n ),\n coverGroups: signal(\n /** @type {import(\"~/components/orchestrator/cover-groups/element.js\").CLASS | null} */ (null),\n ),\n autoQueue: signal(\n /** @type {import(\"~/components/orchestrator/auto-queue/element.js\").CLASS | null} */ (null),\n ),\n favourites: signal(\n /** @type {import(\"~/components/orchestrator/favourites/element.js\").CLASS | null} */ (null),\n ),\n mediaSession: signal(\n /** @type {import(\"~/components/orchestrator/media-session/element.js\").CLASS | null} */ (null),\n ),\n output: signal(\n /** @type {import(\"~/components/orchestrator/output/element.js\").CLASS | null} */ (null),\n ),\n pathCollections: signal(\n /** @type {import(\"~/components/orchestrator/path-collections/element.js\").CLASS | null} */ (null),\n ),\n processTracks: signal(\n /** @type {import(\"~/components/orchestrator/process-tracks/element.js\").CLASS | null} */ (null),\n ),\n queueAudio: signal(\n /** @type {import(\"~/components/orchestrator/queue-audio/element.js\").CLASS | null} */ (null),\n ),\n scopedTracks: signal(\n /** @type {import(\"~/components/orchestrator/scoped-tracks/element.js\").CLASS | null} */ (null),\n ),\n scrobbleAudio: signal(\n /** @type {import(\"~/components/orchestrator/scrobble-audio/element.js\").CLASS | null} */ (null),\n ),\n sources: signal(\n /** @type {import(\"~/components/orchestrator/sources/element.js\").CLASS | null} */ (null),\n ),\n spectrogramAudio: signal(\n /** @type {import(\"~/components/orchestrator/spectrogram-audio/element.js\").CLASS | null} */ (null),\n ),\n },\n};\n\n/**\n * Default config for facets.\n */\nexport const config = {\n GROUP,\n\n // Elements\n configurator: {\n artwork: configuratorArtwork,\n metadata: configuratorMetadata,\n input,\n scrobbles,\n upload,\n },\n\n engine: {\n audio,\n queue,\n repeatShuffle,\n scope,\n },\n\n orchestrator: {\n artwork,\n controller,\n coverGroups,\n autoQueue,\n favourites,\n mediaSession,\n output,\n pathCollections,\n processTracks,\n queueAudio,\n scopedTracks,\n scrobbleAudio,\n sources,\n spectrogramAudio,\n },\n\n /**\n * Element signals\n */\n signals: {\n configurator: {\n artwork: signals.configurator.artwork.get,\n metadata: signals.configurator.metadata.get,\n input: signals.configurator.input.get,\n scrobbles: signals.configurator.scrobbles.get,\n upload: signals.configurator.upload.get,\n },\n\n engine: {\n audio: signals.engine.audio.get,\n queue: signals.engine.queue.get,\n repeatShuffle: signals.engine.repeatShuffle.get,\n scope: signals.engine.scope.get,\n },\n\n orchestrator: {\n artwork: signals.orchestrator.artwork.get,\n controller: signals.orchestrator.controller.get,\n coverGroups: signals.orchestrator.coverGroups.get,\n autoQueue: signals.orchestrator.autoQueue.get,\n favourites: signals.orchestrator.favourites.get,\n mediaSession: signals.orchestrator.mediaSession.get,\n output: signals.orchestrator.output.get,\n pathCollections: signals.orchestrator.pathCollections.get,\n processTracks: signals.orchestrator.processTracks.get,\n queueAudio: signals.orchestrator.queueAudio.get,\n scopedTracks: signals.orchestrator.scopedTracks.get,\n scrobbleAudio: signals.orchestrator.scrobbleAudio.get,\n sources: signals.orchestrator.sources.get,\n spectrogramAudio: signals.orchestrator.spectrogramAudio.get,\n },\n },\n\n // Utilities\n\n container: () => {\n return document.body.querySelector(\"#container\");\n },\n\n hideLoader: () => {\n const loader = document.querySelector(\"#diffuse-loader\");\n\n if (loader) {\n loader.classList.add(\"loaded\");\n setTimeout(() => {\n loader.remove();\n loader.parentElement?.remove();\n }, 750);\n }\n },\n\n /**\n * @param {{ title: string }} options\n */\n setup: ({ title }) => {\n document.title = title;\n },\n\n /**\n * Hide the loader and fade in the facet content by adding the `has-loaded`\n * class to `#container` after two animation frames (so the initial opacity:0\n * is painted first and the CSS transition actually runs).\n */\n ready: () => {\n config.hideLoader();\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n document.querySelector(\"#container\")?.classList.add(\"has-loaded\");\n });\n });\n },\n};\n\nexport default config;\n\n// 🥡\n\n// Configurators\n\nasync function configuratorArtwork() {\n const { CLASS: ArtworkConfigurator } = await import(\n \"~/components/configurator/artwork/element.js\"\n );\n\n const ac = new ArtworkConfigurator();\n ac.setAttribute(\"group\", GROUP);\n\n return findExistingOrAdd(ac, signals.configurator.artwork);\n}\n\nasync function configuratorMetadata() {\n const { CLASS: MetadataConfigurator } = await import(\n \"~/components/configurator/metadata/element.js\"\n );\n\n const mc = new MetadataConfigurator();\n mc.setAttribute(\"group\", GROUP);\n\n return findExistingOrAdd(mc, signals.configurator.metadata);\n}\n\nasync function input() {\n const { CLASS: InputConfigurator } = await import(\n \"~/components/configurator/input/element.js\"\n );\n\n const i = new InputConfigurator();\n i.setAttribute(\"group\", GROUP);\n\n return findExistingOrAdd(i, signals.configurator.input);\n}\n\nasync function upload() {\n const { CLASS: UploadConfigurator } = await import(\n \"~/components/configurator/upload/element.js\"\n );\n\n const u = new UploadConfigurator();\n u.setAttribute(\"group\", GROUP);\n\n return findExistingOrAdd(u, signals.configurator.upload);\n}\n\n/**\n * @returns {Promise}\n */\nasync function scrobbles() {\n const { CLASS: ScrobblesConfigurator } = await import(\n \"~/components/configurator/scrobbles/element.js\"\n );\n\n const sc = new ScrobblesConfigurator();\n sc.setAttribute(\"group\", GROUP);\n\n const existing = document.body.querySelector(sc.selector);\n\n if (existing) {\n return /** @type {ScrobbleElement} */ (existing);\n }\n\n document.body.append(sc);\n return /** @type {ScrobbleElement} */ (/** @type {unknown} */ (sc));\n}\n\n// Engines\nasync function audio() {\n const { CLASS: AudioEngine } = await import(\n \"~/components/engine/audio/element.js\"\n );\n\n const a = new AudioEngine();\n a.setAttribute(\"group\", GROUP);\n\n return findExistingOrAdd(a, signals.engine.audio);\n}\n\nasync function queue() {\n const { CLASS: Queue } = await import(\n \"~/components/engine/queue/element.js\"\n );\n\n const q = new Queue();\n q.setAttribute(\"group\", GROUP);\n\n return findExistingOrAdd(q, signals.engine.queue);\n}\n\nasync function repeatShuffle() {\n const { CLASS: RepeatShuffleEngine } = await import(\n \"~/components/engine/repeat-shuffle/element.js\"\n );\n\n const r = new RepeatShuffleEngine();\n r.setAttribute(\"group\", GROUP);\n\n return findExistingOrAdd(r, signals.engine.repeatShuffle);\n}\n\nasync function scope() {\n const { CLASS: ScopeEngine } = await import(\n \"~/components/engine/scope/element.js\"\n );\n\n const s = new ScopeEngine();\n s.setAttribute(\"group\", GROUP);\n\n return findExistingOrAdd(s, signals.engine.scope);\n}\n\n// Orchestrators\n\nasync function artwork() {\n const [{ CLASS: ArtworkOrchestrator }, ac] = await Promise.all([\n import(\"~/components/orchestrator/artwork/element.js\"),\n configuratorArtwork(),\n ]);\n\n const a = new ArtworkOrchestrator();\n a.setAttribute(\"group\", GROUP);\n a.setAttribute(\"artwork-selector\", ac.selector);\n\n return findExistingOrAdd(a, signals.orchestrator.artwork);\n}\n\nasync function autoQueue() {\n const [{ CLASS: AutoQueueOrchestrator }, q, r, t] = await Promise.all([\n import(\"~/components/orchestrator/auto-queue/element.js\"),\n queue(),\n repeatShuffle(),\n scopedTracks(),\n ]);\n\n const aqo = new AutoQueueOrchestrator();\n aqo.setAttribute(\"group\", GROUP);\n aqo.setAttribute(\"queue-engine-selector\", q.selector);\n aqo.setAttribute(\"repeat-shuffle-engine-selector\", r.selector);\n aqo.setAttribute(\"tracks-selector\", t.selector);\n\n return findExistingOrAdd(aqo, signals.orchestrator.autoQueue);\n}\n\nasync function controller() {\n const [{ CLASS: ControllerOrchestrator }, a, o, q] = await Promise.all([\n import(\"~/components/orchestrator/controller/element.js\"),\n audio(),\n output(),\n queue(),\n ]);\n\n const co = new ControllerOrchestrator();\n co.setAttribute(\"audio-engine-selector\", a.selector);\n co.setAttribute(\"output-selector\", o.selector);\n co.setAttribute(\"queue-engine-selector\", q.selector);\n\n return findExistingOrAdd(co, signals.orchestrator.controller);\n}\n\nasync function coverGroups() {\n const [{ CLASS: CoverGroupsOrchestrator }, t] = await Promise.all([\n import(\"~/components/orchestrator/cover-groups/element.js\"),\n scopedTracks(),\n ]);\n\n const cgo = new CoverGroupsOrchestrator();\n cgo.setAttribute(\"tracks-selector\", t.selector);\n\n return findExistingOrAdd(cgo, signals.orchestrator.coverGroups);\n}\n\nasync function favourites() {\n const [{ CLASS: FavouritesOrchestrator }, o] = await Promise.all([\n import(\"~/components/orchestrator/favourites/element.js\"),\n output(),\n ]);\n\n const fo = new FavouritesOrchestrator();\n fo.setAttribute(\"group\", GROUP);\n fo.setAttribute(\"output-selector\", o.selector);\n\n return findExistingOrAdd(fo, signals.orchestrator.favourites);\n}\n\nasync function mediaSession() {\n const [{ CLASS: MediaSessionOrchestrator }, a, aw, o, q] = await Promise\n .all([\n import(\"~/components/orchestrator/media-session/element.js\"),\n audio(),\n artwork(),\n output(),\n queue(),\n ]);\n\n const mso = new MediaSessionOrchestrator();\n mso.setAttribute(\"group\", GROUP);\n mso.setAttribute(\"audio-engine-selector\", a.selector);\n mso.setAttribute(\"artwork-selector\", aw.selector);\n mso.setAttribute(\"output-selector\", o.selector);\n mso.setAttribute(\"queue-engine-selector\", q.selector);\n\n return findExistingOrAdd(mso, signals.orchestrator.mediaSession);\n}\n\n/**\n * @param {Object} [options] - Options\n * @param {string} [options.namespace] - The namespace to use for the output.\n */\nasync function output(options) {\n const { CLASS: OutputOrchestrator } = await import(\n \"~/components/orchestrator/output/element.js\"\n );\n\n const o = new OutputOrchestrator();\n o.setAttribute(\"group\", GROUP);\n\n if (options?.namespace) o.setAttribute(\"namespace\", options.namespace);\n\n return findExistingOrAdd(o, signals.orchestrator.output);\n}\n\n/**\n * @param {Object} opts - Options\n * @param {boolean} [opts.disableWhenReady] - Whether to disable processing when ready.\n */\nasync function processTracks(opts = { disableWhenReady: false }) {\n const [{ CLASS: ProcessTracksOrchestrator }, i, o, m] = await Promise.all([\n import(\"~/components/orchestrator/process-tracks/element.js\"),\n input(),\n output(),\n configuratorMetadata(),\n ]);\n\n const opt = new ProcessTracksOrchestrator();\n opt.setAttribute(\"group\", GROUP);\n opt.setAttribute(\"input-selector\", i.selector);\n opt.setAttribute(\"output-selector\", o.selector);\n opt.setAttribute(\"metadata-selector\", m.selector);\n\n if (!opts.disableWhenReady) {\n opt.toggleAttribute(\"process-when-ready\");\n }\n\n return findExistingOrAdd(opt, signals.orchestrator.processTracks);\n}\n\nasync function queueAudio() {\n const [{ CLASS: QueueAudioOrchestrator }, a, i, o, q, r] = await Promise\n .all([\n import(\"~/components/orchestrator/queue-audio/element.js\"),\n audio(),\n input(),\n output(),\n queue(),\n repeatShuffle(),\n ]);\n\n const oqa = new QueueAudioOrchestrator();\n oqa.setAttribute(\"group\", GROUP);\n oqa.setAttribute(\"audio-engine-selector\", a.selector);\n oqa.setAttribute(\"input-selector\", i.selector);\n oqa.setAttribute(\"output-selector\", o.selector);\n oqa.setAttribute(\"queue-engine-selector\", q.selector);\n oqa.setAttribute(\"repeat-shuffle-engine-selector\", r.selector);\n\n return findExistingOrAdd(oqa, signals.orchestrator.queueAudio);\n}\n\nasync function scopedTracks() {\n const [{ CLASS: ScopedTracksOrchestrator }, i, o, e] = await Promise.all([\n import(\"~/components/orchestrator/scoped-tracks/element.js\"),\n input(),\n output(),\n scope(),\n ]);\n\n const sto = new ScopedTracksOrchestrator();\n sto.setAttribute(\"group\", GROUP);\n sto.setAttribute(\"input-selector\", i.selector);\n sto.setAttribute(\"output-selector\", o.selector);\n sto.setAttribute(\"scope-engine-selector\", e.selector);\n\n return findExistingOrAdd(sto, signals.orchestrator.scopedTracks);\n}\n\nasync function scrobbleAudio() {\n const [{ CLASS: ScrobbleAudioOrchestrator }, a, sc] = await Promise.all([\n import(\"~/components/orchestrator/scrobble-audio/element.js\"),\n audio(),\n scrobbles(),\n ]);\n\n const sao = new ScrobbleAudioOrchestrator();\n sao.setAttribute(\"group\", GROUP);\n sao.setAttribute(\"audio-engine-selector\", a.selector);\n sao.setAttribute(\"scrobble-selector\", sc.selector);\n\n return findExistingOrAdd(sao, signals.orchestrator.scrobbleAudio);\n}\n\nasync function spectrogramAudio() {\n const [\n { CLASS: SpectrogramAudioOrchestrator },\n { CLASS: SpectrogramMetadata },\n a,\n i,\n o,\n ] = await Promise.all([\n import(\"~/components/orchestrator/spectrogram-audio/element.js\"),\n import(\"~/components/metadata/spectrogram/element.js\"),\n audio(),\n input(),\n output(),\n ]);\n\n // A standalone spectrogram metadata element the orchestrator can call\n // directly. It's given the input configurator so its worker can fetch audio.\n const sm = new SpectrogramMetadata();\n sm.setAttribute(\"group\", GROUP);\n sm.setAttribute(\"input-selector\", i.selector);\n\n if (!document.body.querySelector(sm.selector)) {\n document.body.append(sm);\n }\n\n const sao = new SpectrogramAudioOrchestrator();\n sao.setAttribute(\"group\", GROUP);\n sao.setAttribute(\"audio-engine-selector\", a.selector);\n sao.setAttribute(\"spectrogram-selector\", sm.selector);\n sao.setAttribute(\"output-selector\", o.selector);\n\n return findExistingOrAdd(sao, signals.orchestrator.spectrogramAudio);\n}\n\nasync function pathCollections() {\n const [{ CLASS: PathCollectionsOrchestrator }, o] = await Promise.all([\n import(\"~/components/orchestrator/path-collections/element.js\"),\n output(),\n ]);\n\n const pco = new PathCollectionsOrchestrator();\n pco.setAttribute(\"group\", GROUP);\n pco.setAttribute(\"output-selector\", o.selector);\n\n return findExistingOrAdd(pco, signals.orchestrator.pathCollections);\n}\n\nasync function sources() {\n const [{ CLASS: SourcesOrchestrator }, i, o] = await Promise.all([\n import(\"~/components/orchestrator/sources/element.js\"),\n input(),\n output(),\n ]);\n\n const so = new SourcesOrchestrator();\n so.setAttribute(\"group\", GROUP);\n so.setAttribute(\"input-selector\", i.selector);\n so.setAttribute(\"output-selector\", o.selector);\n\n return findExistingOrAdd(so, signals.orchestrator.sources);\n}\n\n// 🛠️\n\n/**\n * @template {DiffuseElement} T\n * @param {T} element\n * @param {Signal} signal\n * @returns {T}\n */\nexport function findExistingOrAdd(element, signal) {\n /** @type {T | null} */\n const alreadyAdded = document.body.querySelector(element.selector);\n\n if (!alreadyAdded) {\n document.body.append(element);\n signal.value = element;\n return element;\n }\n\n signal.value = alreadyAdded;\n return alreadyAdded;\n}\n"],"mappings":"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","names":["url","GROUP","signals","signal","config","configuratorArtwork","configuratorMetadata","input","scrobbles","upload","audio","queue","repeatShuffle","scope","artwork","controller","coverGroups","autoQueue","favourites","mediaSession","output","pathCollections","processTracks","queueAudio","scopedTracks","scrobbleAudio","sources","spectrogramAudio","__name","loader","title","foundation_default","ArtworkConfigurator","ac","findExistingOrAdd","MetadataConfigurator","mc","InputConfigurator","i","UploadConfigurator","u","ScrobblesConfigurator","sc","existing","AudioEngine","a","Queue","q","RepeatShuffleEngine","r","ScopeEngine","s","ArtworkOrchestrator","AutoQueueOrchestrator","t","aqo","ControllerOrchestrator","co","CoverGroupsOrchestrator","cgo","FavouritesOrchestrator","o","fo","MediaSessionOrchestrator","aw","mso","options","OutputOrchestrator","opts","ProcessTracksOrchestrator","m","opt","QueueAudioOrchestrator","oqa","ScopedTracksOrchestrator","e","sto","ScrobbleAudioOrchestrator","sao","SpectrogramAudioOrchestrator","SpectrogramMetadata","sm","PathCollectionsOrchestrator","pco","SourcesOrchestrator","so","element","alreadyAdded"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-4AUG55HO.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js new file mode 100644 index 00000000..8a7fa36e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js @@ -0,0 +1,3 @@ +import{c as l,e as c}from"./chunk-IA3NIKPO.js";import{n as i,o as r}from"./chunk-XILA3E7E.js";import{a,c as g}from"./chunk-75KFZLU6.js";var y={};g(y,{CLASS:()=>n,NAME:()=>h,default:()=>u});var o=class extends l{static{a(this,"ScopeEngine")}static NAME="diffuse/engine/scope";#s=r(void 0);#a=r(void 0);#r=r(void 0);#t=r(["tags.artist","tags.album","tags.disc.no","tags.track.no"]);#e=r("asc");groupBy=this.#s.get;playlist=this.#a.get;searchTerm=this.#r.get;sortBy=this.#t.get;sortDirection=this.#e.get;connectedCallback(){if(this.hasAttribute("group")){let t=this.broadcast(this.identifier,{revertToDefaultSort:{strategy:"replicate",fn:this.revertToDefaultSort},setGroupBy:{strategy:"replicate",fn:this.setGroupBy},setPlaylist:{strategy:"replicate",fn:this.setPlaylist},setSearchTerm:{strategy:"replicate",fn:this.setSearchTerm},setSortBy:{strategy:"replicate",fn:this.setSortBy},setSortDirection:{strategy:"replicate",fn:this.setSortDirection}});t&&(this.revertToDefaultSort=t.revertToDefaultSort,this.setGroupBy=t.setGroupBy,this.setPlaylist=t.setPlaylist,this.setSearchTerm=t.setSearchTerm,this.setSortBy=t.setSortBy,this.setSortDirection=t.setSortDirection)}super.connectedCallback();let e=`${this.constructor.prototype.constructor.NAME}/${this.group}`;i(()=>{this.#s.value=localStorage.getItem(`${e}/groupBy`)??void 0,this.#a.value=localStorage.getItem(`${e}/playlistId`)??void 0,this.#r.value=localStorage.getItem(`${e}/searchTerm`)??void 0,this.#t.value=JSON.parse(localStorage.getItem(`${e}/sortBy`)??'["tags.artist", "tags.album", "tags.disc.no", "tags.track.no"]'),this.#e.value=localStorage.getItem(`${e}/sortDirection`)??"asc"}),this.effect(()=>{let t=`${e}/groupBy`,s=this.#s.value;s?localStorage.setItem(t,s):localStorage.removeItem(t)}),this.effect(()=>{let t=`${e}/playlistId`,s=this.#a.value;s?localStorage.setItem(t,s):localStorage.removeItem(t)}),this.effect(()=>{let t=`${e}/searchTerm`,s=this.#r.value;s?localStorage.setItem(t,s):localStorage.removeItem(t)}),this.effect(()=>{let t=`${e}/sortBy`,s=this.#t.value;s.length?localStorage.setItem(t,JSON.stringify(s)):localStorage.removeItem(t)}),this.effect(()=>{let t=`${e}/sortDirection`,s=this.#e.value;s?localStorage.setItem(t,s):localStorage.removeItem(t)})}revertToDefaultSort=a(async()=>{this.#t.value=["tags.artist","tags.album","tags.disc.no","tags.track.no"],this.#e.value="asc"},"revertToDefaultSort");setGroupBy=a(async e=>this.#s.value=e,"setGroupBy");setPlaylist=a(async e=>this.#a.value=e,"setPlaylist");setSearchTerm=a(async e=>this.#r.value=e,"setSearchTerm");setSortBy=a(async e=>this.#t.value=e,"setSortBy");setSortDirection=a(async e=>this.#e.value=e,"setSortDirection")},u=o,n=o,h="de-scope";c(h,n);export{u as a,n as b,h as c,y as d}; + +//# sourceMappingURL=./chunk-4FK2IFLH.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js.br new file mode 100644 index 0000000000000000000000000000000000000000..9a8f73eb3b3bb7fd7014ccabcc44401aede80d14 GIT binary patch literal 800 zcmb1M#Kn*j`|ID{>B2?g(_$|D+bB?f##cCf&r#tr_m&U;{|8v!l)1#<+w!9R`~T^E zJ9FPoHxx@)yKUprc|rawJW@|58^pG6VcPXCu=Bci_M#c0AImnawW(sczUA@Fw8}4! z4qn}^AGf#uxfs*DBfCEOO!@P~;C}p`x`MAK&#DJcOnD-)VQ*es{nszgU+bHPZ2h0e zxAfP+b0Knj>pr}^EZhC?UE4joiqB8po$;``T=r|tt|vZR{{`-C__!t4aCOk!VAWqI zFSE?QwdLu5?s~}$N<31>=Ciz5w$ENT?^flC%&-3&?@yiZwsMwLaZjDO*pHNMzkf{f zbIT3=%Uv43?OuI(^Vdf;=AN(3GJW$FPP_ltasO$>=#EQFzr>2+%NM}E{Id*sPj;Ni7CLT5VT3U9jH&8BP zf=^_?TRw$pqN@YjY=vB&O@Dpvi*UNu|E;&X>im9wc(Q!TSHFq;<$v4SfAXc=Ter+i zi}~wpYnexH`?WZ;bxc1O%;QQ?lBtZ(^nAx__V&14X!a!c#(w3{+D%JZPN&>4(Oi%= ziGP*oUOAZ?uU1QoOzM8M+9<=(ZU1-J1V@Q-s-1T`xQOcLsavDdG7hPc2xE zhwD$d{_TID6uK&VaQ(&^P`NHVmuH}4&-4gw_r7K>^wa2i>ZAf)nyFlWp z)tQi+X){mj6wi8kM)6gEPPD+)4PJIjcT7CRdRIP**;Cc6wS01m+pBLy{_~vWv^noJ zE($)pO+!Rey7T;BY4uHsmA8&pGVv#L`d#g>5EAnF*ZT01@!VfGxwMpQn!akPN6+7$ zwtr;?d!^AO-xEt#&+mKsr{F~ui&Y8JFO}7zMbdo}ORZ)wh?dN$PJUmz_~6mFWlwIn z-`CmjRdA-2*;08`A4gT8ikzhXXIN|*!mPME%@i+6EO@-Q@Y>mHeOnyQPftE_aP!rW UB@>rEpK|Qzv}dzt$9}a208WLLcmMzZ literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js.map new file mode 100644 index 00000000..b8bfc586 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4FK2IFLH.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/engine/scope/element.js"],"sourcesContent":["import {\n BroadcastableDiffuseElement,\n defineElement,\n} from \"~/common/element.js\";\nimport { batch, signal } from \"~/common/signal.js\";\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\nclass ScopeEngine extends BroadcastableDiffuseElement {\n static NAME = \"diffuse/engine/scope\";\n\n // SIGNALS\n\n #groupBy = signal(/** @type {string | undefined} */ (undefined));\n #playlist = signal(/** @type {string | undefined} */ (undefined));\n #searchTerm = signal(/** @type {string | undefined} */ (undefined));\n #sortBy = signal(\n /** @type {string[]} */ ([\n \"tags.artist\",\n \"tags.album\",\n \"tags.disc.no\",\n \"tags.track.no\",\n ]),\n );\n #sortDirection = signal(/** @type {\"asc\" | \"desc\" | undefined} */ (\"asc\"));\n\n groupBy = this.#groupBy.get;\n playlist = this.#playlist.get;\n searchTerm = this.#searchTerm.get;\n sortBy = this.#sortBy.get;\n sortDirection = this.#sortDirection.get;\n\n // LIFECYCLE\n\n /**\n * @override\n */\n connectedCallback() {\n // Broadcast if needed\n if (this.hasAttribute(\"group\")) {\n const actions = this.broadcast(this.identifier, {\n revertToDefaultSort: {\n strategy: \"replicate\",\n fn: this.revertToDefaultSort,\n },\n setGroupBy: { strategy: \"replicate\", fn: this.setGroupBy },\n setPlaylist: { strategy: \"replicate\", fn: this.setPlaylist },\n setSearchTerm: { strategy: \"replicate\", fn: this.setSearchTerm },\n setSortBy: { strategy: \"replicate\", fn: this.setSortBy },\n setSortDirection: { strategy: \"replicate\", fn: this.setSortDirection },\n });\n\n if (actions) {\n this.revertToDefaultSort = actions.revertToDefaultSort;\n this.setGroupBy = actions.setGroupBy;\n this.setPlaylist = actions.setPlaylist;\n this.setSearchTerm = actions.setSearchTerm;\n this.setSortBy = actions.setSortBy;\n this.setSortDirection = actions.setSortDirection;\n }\n }\n\n // Super\n super.connectedCallback();\n\n // Signals\n const storagePrefix =\n `${this.constructor.prototype.constructor.NAME}/${this.group}`;\n\n batch(() => {\n this.#groupBy.value = localStorage.getItem(`${storagePrefix}/groupBy`) ??\n undefined;\n this.#playlist.value =\n localStorage.getItem(`${storagePrefix}/playlistId`) ?? undefined;\n this.#searchTerm.value =\n localStorage.getItem(`${storagePrefix}/searchTerm`) ?? undefined;\n this.#sortBy.value = JSON.parse(\n localStorage.getItem(`${storagePrefix}/sortBy`) ??\n `[\"tags.artist\", \"tags.album\", \"tags.disc.no\", \"tags.track.no\"]`,\n );\n this.#sortDirection.value =\n /** @type {\"desc\" | \"asc\"} */ (localStorage.getItem(\n `${storagePrefix}/sortDirection`,\n ) ?? \"asc\");\n });\n\n // Effects\n this.effect(() => {\n const key = `${storagePrefix}/groupBy`;\n const val = this.#groupBy.value;\n\n if (val) localStorage.setItem(key, val);\n else localStorage.removeItem(key);\n });\n\n this.effect(() => {\n const key = `${storagePrefix}/playlistId`;\n const val = this.#playlist.value;\n\n if (val) localStorage.setItem(key, val);\n else localStorage.removeItem(key);\n });\n\n this.effect(() => {\n const key = `${storagePrefix}/searchTerm`;\n const val = this.#searchTerm.value;\n\n if (val) localStorage.setItem(key, val);\n else localStorage.removeItem(key);\n });\n\n this.effect(() => {\n const key = `${storagePrefix}/sortBy`;\n const val = this.#sortBy.value;\n\n if (val.length) localStorage.setItem(key, JSON.stringify(val));\n else localStorage.removeItem(key);\n });\n\n this.effect(() => {\n const key = `${storagePrefix}/sortDirection`;\n const val = this.#sortDirection.value;\n\n if (val) localStorage.setItem(key, val);\n else localStorage.removeItem(key);\n });\n }\n\n // ACTIONS\n\n revertToDefaultSort = async () => {\n this.#sortBy.value = [\n \"tags.artist\",\n \"tags.album\",\n \"tags.disc.no\",\n \"tags.track.no\",\n ];\n this.#sortDirection.value = \"asc\";\n };\n\n /** @param {string | undefined} val */\n setGroupBy = async (val) => this.#groupBy.value = val;\n\n /** @param {string | undefined} val */\n setPlaylist = async (val) => this.#playlist.value = val;\n\n /** @param {string | undefined} val */\n setSearchTerm = async (val) => this.#searchTerm.value = val;\n\n /** @param {string[]} val */\n setSortBy = async (val) => this.#sortBy.value = val;\n\n /** @param {\"asc\" | \"desc\" | undefined} val */\n setSortDirection = async (val) => this.#sortDirection.value = val;\n}\n\nexport default ScopeEngine;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = ScopeEngine;\nexport const NAME = \"de-scope\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","ScopeEngine","BroadcastableDiffuseElement","__name","#groupBy","signal","#playlist","#searchTerm","#sortBy","#sortDirection","actions","storagePrefix","batch","key","val","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-4FK2IFLH.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js new file mode 120000 index 00000000..d3e77b5a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-4M37HRVT.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js.br new file mode 120000 index 00000000..4262986a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-4M37HRVT.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js.map new file mode 120000 index 00000000..2c136d1c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4M37HRVT.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-4M37HRVT.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4SQUUFKD.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4SQUUFKD.js new file mode 100644 index 00000000..f1bd5481 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4SQUUFKD.js @@ -0,0 +1,3 @@ +import{b as e,e as o,f as n}from"./chunk-IA3NIKPO.js";import{a as r,c as i}from"./chunk-75KFZLU6.js";var w={};i(w,{CLASS:()=>f,NAME:()=>a,default:()=>c});var t=class extends e{static{r(this,"ArtworkOrchestrator")}static NAME="diffuse/orchestrator/artwork";static WORKER_URL="components/orchestrator/artwork/worker.js";constructor(){super();let s=this.workerProxy();this.get=s.get}async connectedCallback(){super.connectedCallback(),this.artworkConfigurator=n(this,"artwork-selector"),await customElements.whenDefined(this.artworkConfigurator.localName)}dependencies(){if(!this.artworkConfigurator)throw new Error("Artwork configurator element not defined yet");return{artwork:this.artworkConfigurator}}},c=t,f=t,a="do-artwork";o(a,t);export{c as a,f as b,a as c,w as d}; + +//# sourceMappingURL=./chunk-4SQUUFKD.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4SQUUFKD.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-4SQUUFKD.js.br new file mode 100644 index 0000000000000000000000000000000000000000..202cf9b14a8d6e35adbe8a37397fc4c5c7a844cc GIT binary patch literal 404 zcmb1UVrFwGb$**w zc9@#qzL3D_@nOqMaj_$5S&e)S9=s82rUsgQRnYdjEZP6-Y*>5I%j|tZPi;EAd`90o{(1Atb_DD;y(f2PPRuJQS*O`)M)_4C z_0`82-4YqRHU>>@e;~ApS$_Go@9+1#42WeHsV!f~Eobem>&`9t zv2^?Hl)>=Q?U)S{8ZkpFU<(ry#k%M4U(Io9B(ckZ# zdlqxzw&UzYuQtx~lJoEkC|$zdyhq^Lv#vm~vk&f7xR-4aWO=l3om=3+<3FEmlRq)j z)%NOLjw=t=8>@<>XdMqZryhF8AbLT|mBpH$gcdA$8T3GD>IaRhzm>}N%stextl-h! zuQs8(6I3b_EZZjb2KX%HdM0vnla$@e_$|iQxh>O8w35~;WgXSJ?UQ@Es5j7K*2XTU SQ<+} */\n const p = this.workerProxy();\n\n this.get = p.get;\n }\n\n // LIFECYCLE\n\n /** @override */\n async connectedCallback() {\n super.connectedCallback();\n\n /** @type {import(\"~/components/configurator/artwork/element.js\").CLASS} */\n this.artworkConfigurator = query(this, \"artwork-selector\");\n\n await customElements.whenDefined(this.artworkConfigurator.localName);\n }\n\n // WORKERS\n\n /**\n * @override\n */\n dependencies() {\n if (!this.artworkConfigurator) {\n throw new Error(\"Artwork configurator element not defined yet\");\n }\n\n return {\n artwork: this.artworkConfigurator,\n };\n }\n}\n\nexport default ArtworkOrchestrator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = ArtworkOrchestrator;\nexport const NAME = \"do-artwork\";\n\ndefineElement(NAME, ArtworkOrchestrator);\n"],"mappings":"qGAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAWA,IAAMC,EAAN,cAAkCC,CAAe,CAXjD,MAWiD,CAAAC,EAAA,4BAC/C,OAAO,KAAO,+BACd,OAAO,WAAa,4CAEpB,aAAc,CACZ,MAAM,EAGN,IAAMC,EAAI,KAAK,YAAY,EAE3B,KAAK,IAAMA,EAAE,GACf,CAKA,MAAM,mBAAoB,CACxB,MAAM,kBAAkB,EAGxB,KAAK,oBAAsBC,EAAM,KAAM,kBAAkB,EAEzD,MAAM,eAAe,YAAY,KAAK,oBAAoB,SAAS,CACrE,CAOA,cAAe,CACb,GAAI,CAAC,KAAK,oBACR,MAAM,IAAI,MAAM,8CAA8C,EAGhE,MAAO,CACL,QAAS,KAAK,mBAChB,CACF,CACF,EAEOC,EAAQL,EAMFM,EAAQN,EACRO,EAAO,aAEpBC,EAAcD,EAAMP,CAAmB","names":["element_exports","__export","CLASS","NAME","element_default","ArtworkOrchestrator","DiffuseElement","__name","p","query","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-4SQUUFKD.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js new file mode 120000 index 00000000..28b1ed82 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-53ATAZ4X.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js.br new file mode 120000 index 00000000..94e817fd --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-53ATAZ4X.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js.map new file mode 120000 index 00000000..56bf531f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-53ATAZ4X.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-53ATAZ4X.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js new file mode 120000 index 00000000..adc55063 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-5AREERZ7.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js.br new file mode 120000 index 00000000..2f4254d6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-5AREERZ7.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js.map new file mode 120000 index 00000000..00d5ef51 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5AREERZ7.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-5AREERZ7.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js new file mode 120000 index 00000000..cb33c6ed --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-5EUZQD32.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js.br new file mode 120000 index 00000000..a2e7e66a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-5EUZQD32.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js.map new file mode 120000 index 00000000..678e41d8 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-5EUZQD32.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-5EUZQD32.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6AGURFCR.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6AGURFCR.js new file mode 100644 index 00000000..5db027d6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6AGURFCR.js @@ -0,0 +1,3 @@ +import{c,e as d,f as l}from"./chunk-IA3NIKPO.js";import{a as h,c as b}from"./chunk-75KFZLU6.js";var y={};b(y,{CLASS:()=>m,NAME:()=>u,default:()=>w});var i=class extends c{static{h(this,"ScrobbleAudioOrchestrator")}static NAME="diffuse/orchestrator/scrobble-audio";async connectedCallback(){this.hasAttribute("group")&&this.broadcast(this.identifier,{}),super.connectedCallback(),this.audio=l(this,"audio-engine-selector"),this.scrobble=l(this,"scrobble-selector"),await customElements.whenDefined(this.audio.localName),await customElements.whenDefined(this.scrobble.localName),this.effect(()=>this.#c())}disconnectedCallback(){super.disconnectedCallback(),this.#h()}#s=null;#i=null;#a=null;#n=!1;#e=!1;#l=!1;#r=0;#t=null;#o=null;#c(){if(!this.audio)return;let s=this.audio.items().find(f=>!f.isPreload),t=s?.id??null;if(t!==this.#s&&(this.#h(),this.#s=t,this.#i=s?.track??null,this.#a=t?Date.now():null,this.#n=!1,this.#e=!1,this.#r=0,this.#l=!1),!t)return;let e=this.audio.state(t),a=e?.loadingState()??"loading",n=!(typeof a=="object"&&"error"in a)&&(e?.isPlaying()??!1),o=e?.hasEnded()??!1;this.#l&&!o&&n&&(this.#h(),this.#a=Date.now(),this.#n=!1,this.#e=!1,this.#r=0,this.#l=!1),o&&(this.#l=!0),n?(this.#d(),this.#n||(this.#n=!0,this.#f(t))):this.#h()}#d(){this.#t===null&&(this.#t=Date.now(),this.#o=setInterval(()=>this.#b(),1e3))}#h(){this.#t!==null&&(this.#r+=Date.now()-this.#t,this.#t=null),this.#o!==null&&(clearInterval(this.#o),this.#o=null)}#u(){return this.#r+(this.#t!==null?Date.now()-this.#t:0)}async#f(s){if(await this.isLeader()&&!(this.#s!==s||!this.#i))try{await this.scrobble?.nowPlaying(this.#i)}catch(t){console.warn("scrobble: nowPlaying failed",t)}}async#b(){if(this.#e)return;let s=this.#s;if(!s||!this.#a||!this.#i)return;let t=this.audio?.state(s)?.duration()??0;if(t<30||this.#u()/1e3x&oxBPQ{;}!1-)`ysP1^=lG z^o{J+n9wNt_Ux~p_cGKDe=PAhy?v$Q1h%Tn?=(C0eN8J97Z+T)FiTyUYETw z+gyI0&wl^!4_~_@-9xo1*XC?n`m5lG*U^VxejI-NU%q~>gH?UO`Cz^90{_e1{paic z>|l7ZTDG?C+smu7J15p0oc$wrS(MTT$-SSs*{&{LvE1b7va&z>-Cnudep!9>n!R-F zi~T&MuOH_NZvEw$DE6Jpcz^0sr^`JT&sXm}Vx#mU%~?EH)tM>j3frFQ#O=3bQW@2| zlb3D%7`e!gC&Vh7YwN!qeF9eECfYl7%@6XMq^ju2q#rojqNh?JExzx#{o>e!Z3XN{ zTpm5zW|t`=z1029T3%0smgsO3DKWSBUzheiII!uw0PCt;|B$0EmZ|?y_;`yux#N9x zULbQ)nWEa%O`Dh*n_{%04#c?pQ(f#7*>Zht*^cC$I^6Y{_xgDEXmqOxy^vpJ`rt~2 z8H?w%c`{ICNnR-}g|SpspU+=U$5@dqFf=ze z;P|(-X^|<-{wr>tIm#g%8*sy#$;NV-QT*?vwJ}xgw2i+w;;+?>SY+q{C~n^Udyp?(>I| z#V#c)u@&!%ExRT^>ruDtwcGY*EHCS_-zr=%aq8=I<42pCCo)a@m$%RS?k(N7i%j-q Mt$w-hRnbol0Oo(Vi2wiq literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6AGURFCR.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6AGURFCR.js.map new file mode 100644 index 00000000..44019b11 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6AGURFCR.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/orchestrator/scrobble-audio/element.js"],"sourcesContent":["import { BroadcastableDiffuseElement, defineElement, query } from \"~/common/element.js\";\n\n/**\n * @import {ScrobbleElement} from \"@specs/components/supplement/types.d.ts\"\n * @import {Track} from \"~/definitions/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * Connects the audio engine with the scrobble configurator.\n *\n * Calls `nowPlaying` when a track starts and `scrobble` once the user\n * has listened long enough per the last.fm rules:\n * - Track must be at least 30 seconds long.\n * - User must have listened to at least min(duration / 2, 4 minutes).\n */\nclass ScrobbleAudioOrchestrator extends BroadcastableDiffuseElement {\n static NAME = \"diffuse/orchestrator/scrobble-audio\";\n\n // LIFECYCLE\n\n /** @override */\n async connectedCallback() {\n if (this.hasAttribute(\"group\")) {\n this.broadcast(this.identifier, {});\n }\n\n super.connectedCallback();\n\n /** @type {import(\"~/components/engine/audio/element.js\").CLASS} */\n this.audio = query(this, \"audio-engine-selector\");\n\n /** @type {ScrobbleElement} */\n this.scrobble = query(this, \"scrobble-selector\");\n\n await customElements.whenDefined(this.audio.localName);\n await customElements.whenDefined(this.scrobble.localName);\n\n this.effect(() => this.#monitorAudio());\n }\n\n /** @override */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#stopTimer();\n }\n\n // TRACK STATE\n // Resets whenever the active (non-preload) audio item changes.\n\n /** @type {string | null} */\n #trackId = null;\n\n /** @type {Track | null} */\n #activeTrack = null;\n\n /** @type {number | null} Date.now() when track first started, used as the scrobble timestamp. */\n #startedAt = null;\n\n /** Whether `nowPlaying` has been called for the current track. */\n #nowPlayingSent = false;\n\n /** Whether `scrobble` has been called for the current track. */\n #scrobbled = false;\n\n /** Whether the current track has ended (used to detect restarts, e.g. repeat). */\n #hadEnded = false;\n\n // TIMER STATE\n // Accumulates actual listening time (pauses don't count).\n\n /** Accumulated listening time in ms before the last pause. */\n #listenedMs = 0;\n\n /** Date.now() when the timer was last resumed; null when paused. */\n #timerResumedAt = /** @type {number | null} */ (null);\n\n /** @type {ReturnType | null} */\n #intervalId = null;\n\n // EFFECT\n\n /**\n * Reacts to audio item changes and playback state.\n * Detects track changes, resets state, and starts/stops the listening timer.\n */\n #monitorAudio() {\n if (!this.audio) return;\n\n const active = this.audio.items().find((item) => !item.isPreload);\n const id = active?.id ?? null;\n\n // Detect track change\n if (id !== this.#trackId) {\n this.#stopTimer();\n\n this.#trackId = id;\n this.#activeTrack = active?.track ?? null;\n this.#startedAt = id ? Date.now() : null;\n this.#nowPlayingSent = false;\n this.#scrobbled = false;\n this.#listenedMs = 0;\n this.#hadEnded = false;\n }\n\n if (!id) return;\n\n const state = this.audio.state(id);\n const loadingState = state?.loadingState() ?? \"loading\";\n const hasError = typeof loadingState === \"object\" && \"error\" in loadingState;\n const isPlaying = !hasError && (state?.isPlaying() ?? false);\n const hasEnded = state?.hasEnded() ?? false;\n\n // Detect same-track restart (e.g. repeat): the track ended and now plays again.\n if (this.#hadEnded && !hasEnded && isPlaying) {\n this.#stopTimer();\n this.#startedAt = Date.now();\n this.#nowPlayingSent = false;\n this.#scrobbled = false;\n this.#listenedMs = 0;\n this.#hadEnded = false;\n }\n\n if (hasEnded) this.#hadEnded = true;\n\n if (isPlaying) {\n this.#startTimer();\n\n if (!this.#nowPlayingSent) {\n this.#nowPlayingSent = true;\n this.#sendNowPlaying(id);\n }\n } else {\n this.#stopTimer();\n }\n }\n\n // TIMER\n\n #startTimer() {\n if (this.#timerResumedAt !== null) return;\n\n this.#timerResumedAt = Date.now();\n this.#intervalId = setInterval(() => this.#checkScrobble(), 1_000);\n }\n\n #stopTimer() {\n if (this.#timerResumedAt !== null) {\n this.#listenedMs += Date.now() - this.#timerResumedAt;\n this.#timerResumedAt = null;\n }\n\n if (this.#intervalId !== null) {\n clearInterval(this.#intervalId);\n this.#intervalId = null;\n }\n }\n\n #totalListenedMs() {\n return this.#listenedMs +\n (this.#timerResumedAt !== null ? Date.now() - this.#timerResumedAt : 0);\n }\n\n // SCROBBLING\n\n /**\n * @param {string} id\n */\n async #sendNowPlaying(id) {\n if (!(await this.isLeader())) return;\n if (this.#trackId !== id || !this.#activeTrack) return;\n\n try {\n await this.scrobble?.nowPlaying(this.#activeTrack);\n } catch (err) {\n console.warn(\"scrobble: nowPlaying failed\", err);\n }\n }\n\n async #checkScrobble() {\n if (this.#scrobbled) return;\n\n const id = this.#trackId;\n if (!id || !this.#startedAt || !this.#activeTrack) return;\n\n const durationSec = this.audio?.state(id)?.duration() ?? 0;\n\n // Track must be at least 30 seconds\n if (durationSec < 30) return;\n\n // Must have listened to at least half the track or 4 minutes\n const listenedSec = this.#totalListenedMs() / 1000;\n if (listenedSec < Math.min(durationSec / 2, 240)) return;\n\n this.#scrobbled = true;\n\n if (!(await this.isLeader())) return;\n if (this.#trackId !== id) return;\n\n const track = this.#activeTrack;\n const startedAt = this.#startedAt;\n\n try {\n await this.scrobble?.scrobble(track, startedAt, { duration: Math.round(durationSec * 1000) });\n } catch (err) {\n console.warn(\"Scrobble failed\", err);\n this.#scrobbled = false;\n }\n }\n}\n\nexport default ScrobbleAudioOrchestrator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = ScrobbleAudioOrchestrator;\nexport const NAME = \"do-scrobble-audio\";\n\ndefineElement(NAME, ScrobbleAudioOrchestrator);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","ScrobbleAudioOrchestrator","BroadcastableDiffuseElement","__name","query","#monitorAudio","#stopTimer","#trackId","#activeTrack","#startedAt","#nowPlayingSent","#scrobbled","#hadEnded","#listenedMs","#timerResumedAt","#intervalId","active","item","id","state","loadingState","isPlaying","hasEnded","#startTimer","#sendNowPlaying","#checkScrobble","#totalListenedMs","err","durationSec","track","startedAt","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-6AGURFCR.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js new file mode 120000 index 00000000..c5ce5733 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-6BX44RWC.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js.br new file mode 120000 index 00000000..96351878 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-6BX44RWC.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js.map new file mode 120000 index 00000000..d4f35ae1 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6BX44RWC.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-6BX44RWC.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js new file mode 100644 index 00000000..3fe05ac6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js @@ -0,0 +1,3 @@ +import{b as f,e as m,f as k}from"./chunk-IA3NIKPO.js";import{j as p,o as g}from"./chunk-XILA3E7E.js";import{a as l,c as v}from"./chunk-75KFZLU6.js";var x={};v(x,{CLASS:()=>h,NAME:()=>w,default:()=>C});var i=class extends f{static{l(this,"CoverGroupsOrchestrator")}static NAME="diffuse/orchestrator/cover-groups";#t=g(null);artistGroups=p(()=>{let o=this.#t.value,t=o?.groups?.(),s=[];if(t?.length){let e=o?.tracks()??[],r=new Map;for(let c of e){let a=String(c.tags?.artist??"").toLowerCase();r.set(a,(r.get(a)??0)+1)}for(let c of t){let a=b(c.tracks).map(u=>({...u,trackCount:r.get(u.artistKey)??u.trackCount}));a.length&&s.push({label:c.label,groups:a})}}else{let e=o?.tracks()??[],r=b(e);r.length&&s.push({label:"",groups:r})}return s});coverGroups=p(()=>{let o=this.#t.value,t=o?.groups?.(),s=[];if(t?.length)for(let e of t){let r=d(e.tracks);r.length&&s.push({label:e.label,groups:r})}else{let e=o?.tracks()??[],r=d(e);r.length&&s.push({label:"",groups:r})}return s});async connectedCallback(){super.connectedCallback();let o=k(this,"tracks-selector");await customElements.whenDefined(o.localName),this.#t.value=o}},C=i;function d(n){let o=new Map;for(let t of n){let s=String(t.tags?.album??"").toLowerCase(),e=o.get(s);e?e.artists.add(t.tags?.artist??"Unknown artist"):o.set(s,{track:t,artists:new Set([t.tags?.artist??"Unknown artist"])})}return[...o.entries()].sort(([t],[s])=>t.localeCompare(s)).map(([t,{track:s,artists:e}])=>({albumKey:t,albumName:s.tags?.album??"Unknown album",artist:e.size>1?"Various Artists":e.values().next().value,track:s}))}l(d,"deduplicateAlbums");function b(n){let o=new Map;for(let t of n){let s=String(t.tags?.artist??"").toLowerCase(),e=o.get(s);e?e.count++:o.set(s,{artistName:t.tags?.artist??"Unknown artist",count:1,track:t})}return[...o.entries()].sort(([t],[s])=>t.localeCompare(s)).map(([t,{artistName:s,count:e,track:r}])=>({artistKey:t,artistName:s,trackCount:e,track:r}))}l(b,"deduplicateArtists");var h=i,w="do-cover-groups";m(w,h);export{C as a,h as b,w as c,x as d}; + +//# sourceMappingURL=./chunk-6HULTT5H.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js.br new file mode 100644 index 0000000000000000000000000000000000000000..5faec26c2fe3aa090dfac6c45452c316e32341a6 GIT binary patch literal 803 zcmb1s%+Bz{B>nIE&s{Ypi~VX3Y>d%oc&=g4IBE5bqbEMs>-@a6|3IUR$CQsR&v$F} z^sLQ{dpJA&vd_0?Cc&{>E1fgVnLZx1tbZ$@XwZ2!R&1%BR%f}v!b^r+0ry2dImew} zzWCqAZ_~RUUtaBPS>ohb)Slp0=Bc{q>B}EEzfb?`ug&8+Hsy4r$Dbc%RUeAV{>#pK zz^;9lb!&rY>F)H~+qWAokh@Z{v3B465`EA5ExXH_t9MENEvQ&_;&qUomUY(LyEoFk zJm1`6-JYgZIz2aTb9DKXZEFu)xGBKtuS0D|3{RE)_}{sLbBDgCpgDu_W_FWfqC$s)hAOSVML`P0vvFnrhM= z9m~+a{JzjU-H@U`{lB^oO3$2dCHTnEJS#c&DuE5BJ+x1*Ry*2ODWVb~TKs>Wp@GGz z&|N;#@=IlcxMls8nI4zB-ju=^rY19E>vpA$w^rwJY*{TmwbhB$XJ&NX-C3_a`MYno z)NL;`o4;q$kz2nKTAh!!$$spZoEdoH@`Qpr{=sXqrRMr@^}H1;xpLMfu$>rdF8J^oetmimXXQ@bQyYl{>r2gpkmDe-5yp^TYjQS=r-1)dX^Dle; zsyf{>c@n4QEZr(~w)M>N4v+eKZzenEoIcsHv>@_#bCmg(D~mS#mAYcpsCsopMQH5K U-3m*sCS3d^@MMdZh~r)+0Nl%lEC2ui literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js.map new file mode 100644 index 00000000..78e68245 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6HULTT5H.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/orchestrator/cover-groups/element.js"],"sourcesContent":["import { defineElement, DiffuseElement, query } from \"~/common/element.js\";\nimport { computed, signal } from \"~/common/signal.js\";\n\n/**\n * @import {SignalReader} from \"~/common/signal.d.ts\"\n * @import {Track} from \"~/definitions/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\nclass CoverGroupsOrchestrator extends DiffuseElement {\n static NAME = \"diffuse/orchestrator/cover-groups\";\n\n // SIGNALS\n\n #provider = signal(\n /** @type {DiffuseElement & { tracks: SignalReader } | null} */ (null),\n );\n\n // STATE\n\n artistGroups = computed(() => {\n const provider = this.#provider.value;\n const groups = /** @type {any} */ (provider)?.groups?.();\n\n /** @type {{ label: string; groups: ArtistGroup[] }[]} */\n const result = [];\n\n if (groups?.length) {\n const allTracks = provider?.tracks() ?? [];\n\n // Total track counts per artist across all groups\n /** @type {Map} */\n const totalCounts = new Map();\n for (const track of allTracks) {\n const key = String(track.tags?.artist ?? \"\").toLowerCase();\n totalCounts.set(key, (totalCounts.get(key) ?? 0) + 1);\n }\n\n for (\n const group\n of /** @type {{ label: string; tracks: Track[] }[]} */ (groups)\n ) {\n const artists = deduplicateArtists(group.tracks).map((a) => ({\n ...a,\n trackCount: totalCounts.get(a.artistKey) ?? a.trackCount,\n }));\n if (artists.length) result.push({ label: group.label, groups: artists });\n }\n } else {\n const allTracks = provider?.tracks() ?? [];\n const artists = deduplicateArtists(allTracks);\n if (artists.length) result.push({ label: \"\", groups: artists });\n }\n\n return result;\n });\n\n coverGroups = computed(() => {\n const provider = this.#provider.value;\n const groups = /** @type {any} */ (provider)?.groups?.();\n\n /** @type {{ label: string; groups: CoverGroup[] }[]} */\n const result = [];\n\n if (groups?.length) {\n for (\n const group\n of /** @type {{ label: string; tracks: Track[] }[]} */ (groups)\n ) {\n const albums = deduplicateAlbums(group.tracks);\n if (albums.length) result.push({ label: group.label, groups: albums });\n }\n } else {\n const tracks = provider?.tracks() ?? [];\n const albums = deduplicateAlbums(tracks);\n if (albums.length) result.push({ label: \"\", groups: albums });\n }\n\n return result;\n });\n\n // LIFECYCLE\n\n /**\n * @override\n */\n async connectedCallback() {\n super.connectedCallback();\n\n /** @type {DiffuseElement & { tracks: SignalReader }} */\n const provider = query(this, \"tracks-selector\");\n\n await customElements.whenDefined(provider.localName);\n this.#provider.value = provider;\n }\n}\n\nexport default CoverGroupsOrchestrator;\n\n////////////////////////////////////////////\n// HELPERS\n////////////////////////////////////////////\n\n/**\n * @typedef {{ albumKey: string; albumName: string; artist: string; track: Track }} CoverGroup\n */\n\n/**\n * @typedef {{ artistKey: string; artistName: string; trackCount: number; track: Track }} ArtistGroup\n */\n\n/**\n * @param {Track[]} tracks\n * @returns {CoverGroup[]}\n */\nfunction deduplicateAlbums(tracks) {\n /** @type {Map }>} */\n const albumMap = new Map();\n\n for (const track of tracks) {\n const albumKey = String(track.tags?.album ?? \"\").toLowerCase();\n const existing = albumMap.get(albumKey);\n if (existing) {\n existing.artists.add(track.tags?.artist ?? \"Unknown artist\");\n } else {\n albumMap.set(albumKey, {\n track,\n artists: new Set([track.tags?.artist ?? \"Unknown artist\"]),\n });\n }\n }\n\n return [...albumMap.entries()]\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([albumKey, { track, artists }]) => ({\n albumKey,\n albumName: track.tags?.album ?? \"Unknown album\",\n artist: artists.size > 1 ? \"Various Artists\" : /** @type {string} */ (artists.values().next().value),\n track,\n }));\n}\n\n/**\n * @param {Track[]} tracks\n * @returns {ArtistGroup[]}\n */\nfunction deduplicateArtists(tracks) {\n /** @type {Map} */\n const map = new Map();\n\n for (const track of tracks) {\n const artistKey = String(track.tags?.artist ?? \"\").toLowerCase();\n const existing = map.get(artistKey);\n if (existing) {\n existing.count++;\n } else {\n map.set(artistKey, {\n artistName: track.tags?.artist ?? \"Unknown artist\",\n count: 1,\n track,\n });\n }\n }\n\n return [...map.entries()]\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([artistKey, { artistName, count, track }]) => ({\n artistKey,\n artistName,\n trackCount: count,\n track,\n }));\n}\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = CoverGroupsOrchestrator;\nexport const NAME = \"do-cover-groups\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","CoverGroupsOrchestrator","DiffuseElement","__name","#provider","signal","computed","provider","groups","result","allTracks","totalCounts","track","key","group","artists","deduplicateArtists","a","albums","deduplicateAlbums","tracks","query","element_default","albumMap","albumKey","existing","b","map","artistKey","artistName","count","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-6HULTT5H.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js new file mode 120000 index 00000000..8090b97a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-6NC6NOLO.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js.br new file mode 120000 index 00000000..80feea9f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-6NC6NOLO.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js.map new file mode 120000 index 00000000..2b699135 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6NC6NOLO.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-6NC6NOLO.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6O7EX4DS.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6O7EX4DS.js new file mode 100644 index 00000000..c616696d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6O7EX4DS.js @@ -0,0 +1,3 @@ +import{a as c}from"./chunk-EDOHDIY7.js";import{c as s}from"./chunk-WE3IOYGI.js";import{a}from"./chunk-75KFZLU6.js";function p(t){return t?t.startsWith("/")?t:"/"+t:""}a(p,"normalizePath");async function h(t,r){let i=p(r),n=await s(t,c);if(!n)return;let o=await fetch("https://content.dropboxapi.com/2/files/download",{method:"POST",headers:{Authorization:`Bearer ${n}`,"Dropbox-API-Arg":JSON.stringify({path:i})}});if(!o.ok)return;let e=await o.arrayBuffer();return new Uint8Array(e)}a(h,"getFile");async function w(t,r,i){let n=p(r),o=await s(t,c);if(!o)throw new Error("Dropbox access token could not be refreshed. Please reconnect.");let e=await fetch("https://content.dropboxapi.com/2/files/upload",{method:"POST",headers:{Authorization:`Bearer ${o}`,"Content-Type":"application/octet-stream","Dropbox-API-Arg":JSON.stringify({path:n,mode:"overwrite",mute:!0})},body:new Blob([i])});if(!e.ok){let u=await e.text().catch(()=>"");throw new Error(`Failed to upload "${r}" to Dropbox (${e.status}): ${u}`)}}a(w,"putFile");export{h as a,w as b}; + +//# sourceMappingURL=./chunk-6O7EX4DS.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6O7EX4DS.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6O7EX4DS.js.br new file mode 100644 index 0000000000000000000000000000000000000000..b1325eb2090574070d923cff40792f53b32382c9 GIT binary patch literal 506 zcmb0ZVPSX@W&Ho=o)gOsvKTH+^2(pHUEEWU{dzVJ^YbsQKMt^OQ|#R=7Z}zVTG4&v z^U5zF3;nixe-v_Al|4CSxhvO^O$jqrM#{<8353iN_x(Bh&HGrnx3c#7tLIB?icmPd zf>ZAM^M3vL{QcH546b~7^zz{8n}3C7Pu~9MNL1HFwUsgdSIX;($^;3_UZU8Vd5PiT z2QMel4%tUj3mZ>Fq~827Q*_P}@rV4KH@|jOE1oXBY&a*F0mZx7R|?+mas~N~diLJTl{3Pw>0%4HutGiQq1u z<;QL-{I@5)Nl1?@< z#HV}ze1B`j!P1NC`NJFj} The file bytes, or undefined if the file doesn't exist.\n */\nexport async function getFile(refreshToken, filePath) {\n const path = normalizePath(filePath);\n const accessToken = await getAccessToken(refreshToken, APP_KEY);\n if (!accessToken) return undefined;\n\n const resp = await fetch(\n \"https://content.dropboxapi.com/2/files/download\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Dropbox-API-Arg\": JSON.stringify({ path }),\n },\n },\n );\n\n // 409 from Dropbox means the file doesn't exist yet — not an error for us.\n if (!resp.ok) return undefined;\n\n const buffer = await resp.arrayBuffer();\n return new Uint8Array(buffer);\n}\n\n/**\n * Upload (overwrite) a file in the Dropbox app folder with raw bytes.\n *\n * Uses `mode: \"overwrite\"` because the output component syncs data files\n * (tracks, playlists, settings, facets) that should replace any previous\n * version, not be auto-renamed.\n *\n * @param {string} refreshToken - Long-lived refresh token for the output app.\n * @param {string} filePath - Path relative to the app folder root (e.g. \"/tracks\").\n * @param {Uint8Array} data - The bytes to upload.\n */\nexport async function putFile(refreshToken, filePath, data) {\n const path = normalizePath(filePath);\n const accessToken = await getAccessToken(refreshToken, APP_KEY);\n if (!accessToken) {\n throw new Error(\n \"Dropbox access token could not be refreshed. Please reconnect.\",\n );\n }\n\n const resp = await fetch(\n \"https://content.dropboxapi.com/2/files/upload\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/octet-stream\",\n \"Dropbox-API-Arg\": JSON.stringify({\n path,\n mode: \"overwrite\",\n mute: true,\n }),\n },\n body: new Blob([/** @type {BlobPart} */ (data)]),\n },\n );\n\n if (!resp.ok) {\n const body = await resp.text().catch(() => \"\");\n throw new Error(\n `Failed to upload \"${filePath}\" to Dropbox (${resp.status}): ${body}`,\n );\n }\n}\n"],"mappings":"mHAWA,SAASA,EAAcC,EAAU,CAC/B,OAAKA,EACEA,EAAS,WAAW,GAAG,EAAIA,EAAW,IAAMA,EAD7B,EAExB,CAHSC,EAAAF,EAAA,iBAgBT,eAAsBG,EAAQC,EAAcH,EAAU,CACpD,IAAMI,EAAOL,EAAcC,CAAQ,EAC7BK,EAAc,MAAMC,EAAeH,EAAcI,CAAO,EAC9D,GAAI,CAACF,EAAa,OAElB,IAAMG,EAAO,MAAM,MACjB,kDACA,CACE,OAAQ,OACR,QAAS,CACP,cAAiB,UAAUH,CAAW,GACtC,kBAAmB,KAAK,UAAU,CAAE,KAAAD,CAAK,CAAC,CAC5C,CACF,CACF,EAGA,GAAI,CAACI,EAAK,GAAI,OAEd,IAAMC,EAAS,MAAMD,EAAK,YAAY,EACtC,OAAO,IAAI,WAAWC,CAAM,CAC9B,CArBsBR,EAAAC,EAAA,WAkCtB,eAAsBQ,EAAQP,EAAcH,EAAUW,EAAM,CAC1D,IAAMP,EAAOL,EAAcC,CAAQ,EAC7BK,EAAc,MAAMC,EAAeH,EAAcI,CAAO,EAC9D,GAAI,CAACF,EACH,MAAM,IAAI,MACR,gEACF,EAGF,IAAMG,EAAO,MAAM,MACjB,gDACA,CACE,OAAQ,OACR,QAAS,CACP,cAAiB,UAAUH,CAAW,GACtC,eAAgB,2BAChB,kBAAmB,KAAK,UAAU,CAChC,KAAAD,EACA,KAAM,YACN,KAAM,EACR,CAAC,CACH,EACA,KAAM,IAAI,KAAK,CAA0BO,CAAK,CAAC,CACjD,CACF,EAEA,GAAI,CAACH,EAAK,GAAI,CACZ,IAAMI,EAAO,MAAMJ,EAAK,KAAK,EAAE,MAAM,IAAM,EAAE,EAC7C,MAAM,IAAI,MACR,qBAAqBR,CAAQ,iBAAiBQ,EAAK,MAAM,MAAMI,CAAI,EACrE,CACF,CACF,CAhCsBX,EAAAS,EAAA","names":["normalizePath","filePath","__name","getFile","refreshToken","path","accessToken","getAccessToken","APP_KEY","resp","buffer","putFile","data","body"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-6O7EX4DS.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js new file mode 100644 index 00000000..735dd014 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js @@ -0,0 +1,3 @@ +import{b as f}from"./chunk-T35PKO5E.js";import{d as y}from"./chunk-MKIFSH6R.js";import{c,e as p,f as h}from"./chunk-IA3NIKPO.js";import{b as r}from"./chunk-ZGMMU2IC.js";import{j as n,o as u}from"./chunk-XILA3E7E.js";import{a as o,c as g}from"./chunk-75KFZLU6.js";var v={};g(v,{CLASS:()=>m,NAME:()=>d,default:()=>w});var l=class extends c{static{o(this,"FavouritesOrchestrator")}static NAME="diffuse/orchestrator/favourites";static WORKER_URL="components/orchestrator/favourites/worker.js";#e;#s=!1;constructor(){super(),this.#e=this.workerProxy(),this.include=this.include.bind(this),this.expel=this.expel.bind(this),this.toggle=this.toggle.bind(this)}#t=u(null);playlistItems=n(()=>{let t=this.#t.value;if(!t)return[];let e=t.playlistItems.collection();return e.state!=="loaded"?[]:f(e.data)});async connectedCallback(){if(this.hasAttribute("group")){let e=this.broadcast(this.identifier,{include:{strategy:"leaderOnly",fn:this.include},expel:{strategy:"leaderOnly",fn:this.expel},toggle:{strategy:"leaderOnly",fn:this.toggle}});e&&(this.include=e.include,this.expel=e.expel,this.toggle=e.toggle)}super.connectedCallback();let t=h(this,"output-selector");await customElements.whenDefined(t.localName),this.#t.value=t}async include(t){let e=Array.isArray(t)?t:[t];if(e.length===0)return;let s=this.#t.value;if(!s){console.warn("Favourites orchestrator: output element not ready");return}let a=await r(s.playlistItems),i=await this.#e.include({playlistItems:a,tracks:e});i&&await s.playlistItems.save(i)}async expel(t){let e=Array.isArray(t)?t:[t];if(e.length===0)return;let s=this.#t.value;if(!s){console.warn("Favourites orchestrator: output element not ready");return}let a=await r(s.playlistItems),i=await this.#e.expel({playlistItems:a,tracks:e});i&&await s.playlistItems.save(i)}async toggle(t){if(!this.#s){this.#s=!0;try{let e=Array.isArray(t)?t:[t];if(e.length===0)return;let s=this.#t.value;if(!s){console.warn("Favourites orchestrator: output element not ready");return}let a=await r(s.playlistItems),i=await this.#e.toggle({playlistItems:a,tracks:e});i&&await s.playlistItems.save(i)}finally{this.#s=!1}}}isFavourite(t){return this.playlistItems().some(e=>y(t,e))}},w=l,m=l,d="do-favourites";p(d,m);export{w as a,m as b,d as c,v as d}; + +//# sourceMappingURL=./chunk-6RCKN5OB.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js.br new file mode 100644 index 0000000000000000000000000000000000000000..1edf66ab9d1214ca982ae2f18af2ab66dc44b4ef GIT binary patch literal 813 zcmb0>#=-EUeC5Br(}h**8(d!Aa9f|8mt}8$rJ3Wz27%A@mTzSfmNd%VdMR%nR;=rF zoJm{z^k&zYE>eXZFD2H#XSpIM-s`ZY^S(=UklHixm2=MiKD=$#&ghtZR(oUaP2WFH zD{7I#OO12>{rq|TVR<<_4=m1AIMr|b%SYt+?QZeo%fqJ|2&?oxdivqdpSp(?(|>H; zdMGcAC(_Sec7Cq@yYV~51zjHm+QhWY2^;jzZ)iY>`uSEeY@o2 z4HrAQ-+unP{+N>k+xfP_PaMg-rx&XWIrCRca?gFW*z__xi|qwv>k_pE`%5b2|4#7Z ze68WX#m4h-@Pby&(+iJBdZ*9Rz1bU5c&BR59?QG?f9~0D$vo?JTEwcYw;n`(PCtGv z^o3XCP3Nnh4Q$t6dsTMigVgJ5P9~w!kChJB-E{uZvu&kzy87MwH%ym3V2^V%i3stj zU{PmY^DsMKDdpMZg138~FO6$Zl-}@yZynp#cUg}Q7alm~d^$nD!<0>k#IQtehdbG|N}!?s}SRaUW*V%hUvZACZMInUcMONXQE ziHuHJY3y#_IUh4l#fYEW_wBagf)|pdn-refq_G4T-s_(6V&xyvscdsQ9A0f+v76;z ziDWO=biLcV7B9*%-t*OSft3imiit|&`v9JfPf1=e5BJymTs5kD9ki}vdtRwm#nsO# zzMoZ60u0YF)Gl{e7(8pH4)2FHr=`blu?Sr)cpCOR^~sgDiBFHkZ%{~A;+?2XfARewO;#=GU3Z=*2SG z*NvvnQ|e1U;c-z#XhHIlt&K;rg5B5l`M;Df5vk}*zUMbLX2$-F=9j!8QYK!Tml>Fv z`9)G~-I@LMJ$qHSiWbe-Qqm9C5bi+xqv7Sm(*t82+J1^}Nzml6N~ literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js.map new file mode 100644 index 00000000..f8640658 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6RCKN5OB.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/orchestrator/favourites/element.js"],"sourcesContent":["import {\n BroadcastableDiffuseElement,\n defineElement,\n query,\n} from \"~/common/element.js\";\nimport { match as matchPlaylistItem } from \"~/common/playlist.js\";\nimport { computed, signal } from \"~/common/signal.js\";\nimport { filterFavourites } from \"./common.js\";\nimport * as Output from \"~/common/output.js\";\n\n/**\n * @import {Track} from \"~/definitions/types.d.ts\"\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {OutputElement} from \"@specs/components/output/types.d.ts\"\n * @import {Actions} from \"@specs/components/orchestrator/favourites/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\nclass FavouritesOrchestrator extends BroadcastableDiffuseElement {\n static NAME = \"diffuse/orchestrator/favourites\";\n static WORKER_URL = \"components/orchestrator/favourites/worker.js\";\n\n /** @type {ProxiedActions} */\n #proxy;\n\n #toggleInFlight = false;\n\n constructor() {\n super();\n\n this.#proxy = this.workerProxy();\n\n // Bind methods for broadcasting\n this.include = this.include.bind(this);\n this.expel = this.expel.bind(this);\n this.toggle = this.toggle.bind(this);\n }\n\n // SIGNALS\n\n #output = signal(/** @type {OutputElement | null} */ (null));\n\n // STATE\n\n /**\n * Returns the favourites playlist items.\n */\n playlistItems = computed(() => {\n const output = this.#output.value;\n if (!output) return [];\n\n const col = output.playlistItems.collection();\n if (col.state !== \"loaded\") return [];\n return filterFavourites(col.data);\n });\n\n // LIFECYCLE\n\n /**\n * @override\n */\n async connectedCallback() {\n // Broadcast if needed\n if (this.hasAttribute(\"group\")) {\n const actions = this.broadcast(this.identifier, {\n include: { strategy: \"leaderOnly\", fn: this.include },\n expel: { strategy: \"leaderOnly\", fn: this.expel },\n toggle: { strategy: \"leaderOnly\", fn: this.toggle },\n });\n\n if (actions) {\n this.include = actions.include;\n this.expel = actions.expel;\n this.toggle = actions.toggle;\n }\n }\n\n // Super\n super.connectedCallback();\n\n /** @type {OutputElement} */\n const output = query(this, \"output-selector\");\n\n // Wait until defined\n await customElements.whenDefined(output.localName);\n\n this.#output.value = output;\n }\n\n // ACTIONS\n\n /**\n * Add one or more tracks to favourites.\n * @param {Track | Track[]} tracks\n */\n async include(tracks) {\n const tracksArray = Array.isArray(tracks) ? tracks : [tracks];\n if (tracksArray.length === 0) return;\n\n const output = this.#output.value;\n if (!output) {\n console.warn(\"Favourites orchestrator: output element not ready\");\n return;\n }\n\n const playlistItems = await Output.data(output.playlistItems);\n const result = await this.#proxy.include({\n playlistItems,\n tracks: tracksArray,\n });\n\n if (result) await output.playlistItems.save(result);\n }\n\n /**\n * Remove one or more tracks from favourites.\n * @param {Track | Track[]} tracks\n */\n async expel(tracks) {\n const tracksArray = Array.isArray(tracks) ? tracks : [tracks];\n if (tracksArray.length === 0) return;\n\n const output = this.#output.value;\n if (!output) {\n console.warn(\"Favourites orchestrator: output element not ready\");\n return;\n }\n\n const playlistItems = await Output.data(output.playlistItems);\n const result = await this.#proxy.expel({\n playlistItems,\n tracks: tracksArray,\n });\n\n if (result) await output.playlistItems.save(result);\n }\n\n /**\n * Toggle favourite status for one or more tracks.\n * Adds tracks if not in favourites, removes if already favourited.\n * @param {Track | Track[]} tracks\n */\n async toggle(tracks) {\n if (this.#toggleInFlight) return;\n this.#toggleInFlight = true;\n\n try {\n const tracksArray = Array.isArray(tracks) ? tracks : [tracks];\n if (tracksArray.length === 0) return;\n\n const output = this.#output.value;\n if (!output) {\n console.warn(\"Favourites orchestrator: output element not ready\");\n return;\n }\n\n const playlistItems = await Output.data(output.playlistItems);\n const result = await this.#proxy.toggle({\n playlistItems,\n tracks: tracksArray,\n });\n\n if (result) await output.playlistItems.save(result);\n } finally {\n this.#toggleInFlight = false;\n }\n }\n\n // 🛠️\n\n /**\n * Check if a track is a favourite.\n *\n * @param {Track} track\n */\n isFavourite(track) {\n return this.playlistItems().some((item) => {\n return matchPlaylistItem(track, item);\n });\n }\n}\n\nexport default FavouritesOrchestrator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = FavouritesOrchestrator;\nexport const NAME = \"do-favourites\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","FavouritesOrchestrator","BroadcastableDiffuseElement","__name","#proxy","#toggleInFlight","#output","signal","computed","output","col","filterFavourites","actions","query","tracks","tracksArray","playlistItems","data","result","track","item","match","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-6RCKN5OB.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js new file mode 120000 index 00000000..f143ec3f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-6VPEZDZM.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js.br new file mode 120000 index 00000000..e492b22f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-6VPEZDZM.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js.map new file mode 120000 index 00000000..22a748ed --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6VPEZDZM.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-6VPEZDZM.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js new file mode 100644 index 00000000..2125f032 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js @@ -0,0 +1,3 @@ +import{a as q}from"./chunk-GSVEIULU.js";import{a as Y,d as K,e as _,f as M,g as C,h as W,i as j}from"./chunk-C5GF5WSP.js";import{c as p,d as w,f as T,l as L}from"./chunk-FHQAE777.js";import{A as Z,H as G,f as te,g as O,i as U,m as V,o as k}from"./chunk-PHFIOWBZ.js";import{a as g,d as ee}from"./chunk-75KFZLU6.js";var y=ee(te());var X={len:16,get:g((s,e)=>{let t=k.get(s,e+8),a=k.get(s,e+12);return{startTime:k.get(s,e),endTime:k.get(s,e+4),startOffset:t===4294967295?void 0:t,endOffset:a===4294967295?void 0:a}},"get")};function F(s){switch(s){case 2:return 6;case 3:case 4:return 10;default:throw J(s)}}g(F,"getFrameHeaderLength");function se(s,e){return e===3?{status:{tag_alter_preservation:p(s,0,7),file_alter_preservation:p(s,0,6),read_only:p(s,0,5)},format:{compression:p(s,1,7),encryption:p(s,1,6),grouping_identity:p(s,1,5),unsynchronisation:!1,data_length_indicator:!1}}:{status:{tag_alter_preservation:p(s,0,6),file_alter_preservation:p(s,0,5),read_only:p(s,0,4)},format:{grouping_identity:p(s,1,6),compression:p(s,1,3),encryption:p(s,1,2),unsynchronisation:p(s,1,1),data_length_indicator:p(s,1,0)}}}g(se,"readFrameFlags");function v(s,e,t){switch(e){case 2:return ne(s,e,t);case 3:case 4:return re(s,e,t);default:throw J(e)}}g(v,"readFrameHeader");function ne(s,e,t){let a={id:O(s.subarray(0,3),"ascii"),length:V.get(s,3)};return a.id.match(/^[A-Z0-9]{3}$/)||t.addWarning(`Invalid ID3v2.${e} frame-header-ID: ${a.id}`),a}g(ne,"parseFrameHeaderV22");function re(s,e,t){let a={id:O(s.subarray(0,4),"ascii"),length:(e===4?K:k).get(s,4),flags:se(s.subarray(8,10),e)};return a.id.match(/^[A-Z0-9]{4}$/)||t.addWarning(`Invalid ID3v2.${e} frame-header-ID: ${a.id}`),a}g(re,"parseFrameHeaderV23V24");function J(s){throw new x(`Unexpected majorVer: ${s}`)}g(J,"makeUnexpectedMajorVersionError");var E=(0,y.default)("music-metadata:id3v2:frame-parser"),b="latin1",R={encoding:b,bom:!1};function ie(s){let e=[],t,a="";for(let r of s)if(typeof t=="string")if(r==="("&&t==="")a+="(",t=void 0;else if(r===")"){a!==""&&(e.push(a),a="");let c=Q(t);c&&e.push(c),t=void 0}else t+=r;else r==="("?t="":a+=r;return a&&(e.length===0&&a.match(/^\d*$/)&&(a=Q(a)),a&&e.push(a)),e}g(ie,"parseGenre");function Q(s){if(s==="RX")return"Remix";if(s==="CR")return"Cover";if(s.match(/^\d*$/))return q[Number.parseInt(s,10)]}g(Q,"parseGenreCode");var B=class s{static{g(this,"FrameParser")}constructor(e,t){this.major=e,this.warningCollector=t}readData(e,t,a){if(e.length===0){this.warningCollector.addWarning(`id3v2.${this.major} header has empty tag type=${t}`);return}let{encoding:r,bom:c}=C.get(e,0),l=e.length,i=0,d=[],f=s.getNullTerminatorLength(r),m;switch(E(`Parsing tag type=${t}, encoding=${r}, bom=${c}`),t!=="TXXX"&&t[0]==="T"?"T*":t){case"T*":case"GRP1":case"GP1":case"IPLS":case"MVIN":case"MVNM":case"PCS":case"PCST":{let n;try{n=s.trimNullPadding(T(e.subarray(1),r))}catch(o){if(o instanceof Error){this.warningCollector.addWarning(`id3v2.${this.major} type=${t} header has invalid string value: ${o.message}`);break}throw o}switch(t){case"TMCL":case"TIPL":case"IPLS":d=s.functionList(this.splitValue(t,n));break;case"TRK":case"TRCK":case"TPOS":case"TIT1":case"TIT2":case"TIT3":d=n;break;case"TCOM":case"TEXT":case"TOLY":case"TOPE":case"TPE1":case"TSRC":d=this.splitValue(t,n);break;case"TCO":case"TCON":d=this.splitValue(t,n).map(o=>ie(o)).reduce((o,h)=>o.concat(h),[]);break;case"PCS":case"PCST":d=this.major>=4?this.splitValue(t,n):[n],d=Array.isArray(d)&&d[0]===""?1:0;break;default:d=this.major>=4?this.splitValue(t,n):[n]}break}case"TXXX":{let n=s.readIdentifierAndData(e.subarray(1),r);d={description:n.id,text:this.splitValue(t,T(n.data,r).replace(/\x00+$/,""))};break}case"PIC":case"APIC":if(a){let n={};switch(e=e.subarray(1),this.major){case 2:n.format=T(e.subarray(0,3),"latin1"),e=e.subarray(3);break;case 3:case 4:m=w(e,b),n.format=T(e.subarray(0,m),b),e=e.subarray(m+1);break;default:throw oe(this.major)}n.format=s.fixPictureMimeType(n.format),n.type=Y[e[0]],e=e.subarray(1),m=w(e,r),n.description=T(e.subarray(0,m),r),e=e.subarray(m+f),n.data=e,d=n}break;case"CNT":case"PCNT":d=L(e);break;case"SYLT":{let n=j.get(e,0);e=e.subarray(j.len);let o={descriptor:"",language:n.language,contentType:n.contentType,timeStampFormat:n.timeStampFormat,syncText:[]},h=!1;for(;e.length>0;){let u=s.readNullTerminatedString(e,n.encoding);if(e=e.subarray(u.len),h){let S=k.get(e,0);e=e.subarray(k.len),o.syncText.push({text:u.text,timestamp:S})}else o.descriptor=u.text,h=!0}d=o;break}case"ULT":case"USLT":case"COM":case"COMM":{let n=W.get(e,i);i+=W.len;let o=s.readNullTerminatedString(e.subarray(i),n.encoding);i+=o.len;let h=s.readNullTerminatedString(e.subarray(i),n.encoding);d={language:n.language,descriptor:o.text,text:h.text};break}case"UFID":{let n=s.readIdentifierAndData(e,b);d={owner_identifier:n.id,identifier:n.data};break}case"PRIV":{let n=s.readIdentifierAndData(e,b);d={owner_identifier:n.id,data:n.data};break}case"POPM":{e=e.subarray(i);let n=s.readNullTerminatedString(e,R),o=n.text;if(e=e.subarray(n.len),e.length===0){this.warningCollector.addWarning(`id3v2.${this.major} type=${t} POPM frame missing rating byte`),d={email:o,rating:0,counter:void 0};break}let h=U.get(e,0),u=e.subarray(U.len);d={email:o,rating:h,counter:u.length>0?L(u):void 0};break}case"GEOB":{let n=C.get(e,0);e=e.subarray(1);let o=s.readNullTerminatedString(e,R),h=o.text;e=e.subarray(o.len);let u=s.readNullTerminatedString(e,n),S=u.text;e=e.subarray(u.len);let N=s.readNullTerminatedString(e,n),D=N.text;e=e.subarray(N.len),d={type:h,filename:S,description:D,data:e};break}case"WCOM":case"WCOP":case"WOAF":case"WOAR":case"WOAS":case"WORS":case"WPAY":case"WPUB":d=s.readNullTerminatedString(e,R).text;break;case"WXXX":{let n=C.get(e,0);e=e.subarray(1);let o=s.readNullTerminatedString(e,n),h=o.text;e=e.subarray(o.len),d={description:h,url:s.trimNullPadding(T(e,b))};break}case"WFD":case"WFED":{let n=C.get(e,0);e=e.subarray(1),d=s.readNullTerminatedString(e,n).text;break}case"MCDI":{d=e.subarray(0,l);break}case"CHAP":{E("Reading CHAP"),m=w(e,b);let n={label:T(e.subarray(0,m),b),info:X.get(e,m+1),frames:new Map};for(i+=m+1+X.len;i=c.length)return{text:T(e,t.encoding),len:r};let i=e.subarray(0,a+l);return{text:T(i,t.encoding),len:a+l+s.getNullTerminatorLength(t.encoding)}}static fixPictureMimeType(e){switch(e=e.toLocaleLowerCase(),e){case"jpg":return"image/jpeg";case"png":return"image/png"}return e}static functionList(e){let t={};for(let a=0;a+11?this.warningCollector.addWarning(`ID3v2.${this.major} ${e} uses non standard null-separator.`):a=t.split(/\//g)):a=t.split(/\x00/g),s.trimArray(a)}static trimArray(e){return e.map(t=>s.trimNullPadding(t).trim())}static trimNullPadding(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===0;)t--;return t===e.length?e:e.slice(0,t)}static readIdentifierAndData(e,t){let a=s.readNullTerminatedString(e,{encoding:t,bom:!1});return{id:a.text,data:e.subarray(a.len)}}static getNullTerminatorLength(e){return e.startsWith("utf-16")?2:1}},x=class extends G("id3v2"){static{g(this,"Id3v2ContentError")}};function oe(s){throw new x(`Unexpected majorVer: ${s}`)}g(oe,"makeUnexpectedMajorVersionError");var A=class s{static{g(this,"ID3v2Parser")}constructor(){this.tokenizer=void 0,this.id3Header=void 0,this.metadata=void 0,this.headerType=void 0,this.options=void 0}static removeUnsyncBytes(e){let t=0,a=0;for(;t0?this.parseExtendedHeaderData(t,e.size):this.parseId3Data(this.id3Header.size-e.size)}async parseExtendedHeaderData(e,t){return await this.tokenizer.ignore(e),this.parseId3Data(this.id3Header.size-t)}async parseId3Data(e){let t=await this.tokenizer.readToken(new Z(e));for(let a of this.parseMetadata(t))a.id==="TXXX"?a.value&&await this.handleTag(a,a.value.text,()=>a.value.description):await(Array.isArray(a.value)?Promise.all(a.value.map(r=>this.addTag(a.id,r))):this.addTag(a.id,a.value))}async handleTag(e,t,a,r=c=>c){await Promise.all(t.map(c=>this.addTag(s.makeDescriptionTagName(e.id,a(c)),r(c))))}async addTag(e,t){await this.metadata.addTag(this.headerType,e,t)}parseMetadata(e){let t=0,a=[];for(;t!==e.length;){let r=F(this.id3Header.version.major);if(t+r>e.length){this.metadata.addWarning("Illegal ID3v2 tag length");break}let c=e.subarray(t,t+r);t+=r;let l=v(c,this.id3Header.version.major,this.metadata),i=e.subarray(t,t+l.length);t+=l.length;let d=s.readFrameData(i,l,this.id3Header.version.major,!this.options.skipCovers,this.metadata);d&&a.push({id:l.id,value:d})}return a}static mapId3v2Chapters(e){if(!e)return;let t=e.filter(f=>f.id==="CHAP");if(!t?.length)return;let r=e.filter(f=>f.id==="CTOC")?.find(f=>f.value.flags?.topLevel),c=new Map;for(let f of t)c.set(f.value.label,f.value);let l=r?.value.childElementIds,i=[],d=l??[...c.keys()];for(let f of d){let m=c.get(f);if(!m)continue;let n=m.frames,o=n.get("TIT2");o&&i.push({id:f,title:o,url:n.get("WXXX"),start:m.info.startTime/1e3,end:m.info.endTime/1e3,image:n.get("APIC")})}return l||i.sort((f,m)=>f.start-m.start),i.length?i:void 0}};function de(s){throw new x(`Unexpected majorVer: ${s}`)}g(de,"makeUnexpectedMajorVersionError");export{A as a}; + +//# sourceMappingURL=./chunk-6XPFWKSW.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js.br new file mode 100644 index 0000000000000000000000000000000000000000..57d3f2985c7766a34112d9fdabd60e61aaf9f104 GIT binary patch literal 3936 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 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js.map new file mode 100644 index 00000000..6ed013aa --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-6XPFWKSW.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/id3v2/FrameParser.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/id3v2/ID3v2ChapterToken.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/id3v2/FrameHeader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/id3v2/ID3v2Parser.js"],"sourcesContent":["import initDebug from 'debug';\nimport * as Token from 'token-types';\nimport * as util from '../common/Util.js';\nimport { AttachedPictureType, SyncTextHeader, TextEncodingToken, TextHeader } from './ID3v2Token.js';\nimport { Genres } from '../id3v1/ID3v1Parser.js';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nimport { decodeUintBE } from '../common/Util.js';\nimport { ChapterInfo } from './ID3v2ChapterToken.js';\nimport { getFrameHeaderLength, readFrameHeader } from './FrameHeader.js';\nconst debug = initDebug('music-metadata:id3v2:frame-parser');\nconst defaultEnc = 'latin1'; // latin1 == iso-8859-1;\nconst urlEnc = { encoding: defaultEnc, bom: false };\nexport function parseGenre(origVal) {\n // match everything inside parentheses\n const genres = [];\n let code;\n let word = '';\n for (const c of origVal) {\n if (typeof code === 'string') {\n if (c === '(' && code === '') {\n word += '(';\n code = undefined;\n }\n else if (c === ')') {\n if (word !== '') {\n genres.push(word);\n word = '';\n }\n const genre = parseGenreCode(code);\n if (genre) {\n genres.push(genre);\n }\n code = undefined;\n }\n else\n code += c;\n }\n else if (c === '(') {\n code = '';\n }\n else {\n word += c;\n }\n }\n if (word) {\n if (genres.length === 0 && word.match(/^\\d*$/)) {\n word = parseGenreCode(word);\n }\n if (word) {\n genres.push(word);\n }\n }\n return genres;\n}\nfunction parseGenreCode(code) {\n if (code === 'RX')\n return 'Remix';\n if (code === 'CR')\n return 'Cover';\n if (code.match(/^\\d*$/)) {\n return Genres[Number.parseInt(code, 10)];\n }\n}\nexport class FrameParser {\n /**\n * Create id3v2 frame parser\n * @param major - Major version, e.g. (4) for id3v2.4\n * @param warningCollector - Used to collect decode issue\n */\n constructor(major, warningCollector) {\n this.major = major;\n this.warningCollector = warningCollector;\n }\n readData(uint8Array, type, includeCovers) {\n if (uint8Array.length === 0) {\n this.warningCollector.addWarning(`id3v2.${this.major} header has empty tag type=${type}`);\n return;\n }\n const { encoding, bom } = TextEncodingToken.get(uint8Array, 0);\n const length = uint8Array.length;\n let offset = 0;\n let output = []; // ToDo\n const nullTerminatorLength = FrameParser.getNullTerminatorLength(encoding);\n let fzero;\n debug(`Parsing tag type=${type}, encoding=${encoding}, bom=${bom}`);\n switch (type !== 'TXXX' && type[0] === 'T' ? 'T*' : type) {\n case 'T*': // 4.2.1. Text information frames - details\n case 'GRP1': // iTunes-specific ID3v2 grouping field\n case 'GP1': // iTunes-specific ID3v2.2 grouping field\n case 'IPLS': // v2.3: Involved people list\n case 'MVIN':\n case 'MVNM':\n case 'PCS':\n case 'PCST': {\n let text;\n try {\n text = FrameParser.trimNullPadding(util.decodeString(uint8Array.subarray(1), encoding));\n }\n catch (error) {\n if (error instanceof Error) {\n this.warningCollector.addWarning(`id3v2.${this.major} type=${type} header has invalid string value: ${error.message}`);\n break;\n }\n throw error;\n }\n switch (type) {\n case 'TMCL': // Musician credits list\n case 'TIPL': // Involved people list\n case 'IPLS': // Involved people list\n output = FrameParser.functionList(this.splitValue(type, text));\n break;\n case 'TRK':\n case 'TRCK':\n case 'TPOS':\n case 'TIT1':\n case 'TIT2':\n case 'TIT3':\n output = text;\n break;\n case 'TCOM':\n case 'TEXT':\n case 'TOLY':\n case 'TOPE':\n case 'TPE1':\n case 'TSRC':\n // id3v2.3 defines that TCOM, TEXT, TOLY, TOPE & TPE1 values are separated by /\n output = this.splitValue(type, text);\n break;\n case 'TCO':\n case 'TCON':\n output = this.splitValue(type, text).map(v => parseGenre(v)).reduce((acc, val) => acc.concat(val), []);\n break;\n case 'PCS':\n case 'PCST':\n // TODO: Why `default` not results `1` but `''`?\n output = this.major >= 4 ? this.splitValue(type, text) : [text];\n output = (Array.isArray(output) && output[0] === '') ? 1 : 0;\n break;\n default:\n output = this.major >= 4 ? this.splitValue(type, text) : [text];\n }\n break;\n }\n case 'TXXX': {\n const idAndData = FrameParser.readIdentifierAndData(uint8Array.subarray(1), encoding);\n output = {\n description: idAndData.id,\n text: this.splitValue(type, util.decodeString(idAndData.data, encoding).replace(/\\x00+$/, ''))\n };\n break;\n }\n case 'PIC':\n case 'APIC':\n if (includeCovers) {\n const pic = {};\n uint8Array = uint8Array.subarray(1);\n switch (this.major) {\n case 2:\n pic.format = util.decodeString(uint8Array.subarray(0, 3), 'latin1'); // 'latin1'; // latin1 == iso-8859-1;\n uint8Array = uint8Array.subarray(3);\n break;\n case 3:\n case 4:\n fzero = util.findZero(uint8Array, defaultEnc);\n pic.format = util.decodeString(uint8Array.subarray(0, fzero), defaultEnc);\n uint8Array = uint8Array.subarray(fzero + 1);\n break;\n default:\n throw makeUnexpectedMajorVersionError(this.major);\n }\n pic.format = FrameParser.fixPictureMimeType(pic.format);\n pic.type = AttachedPictureType[uint8Array[0]];\n uint8Array = uint8Array.subarray(1);\n fzero = util.findZero(uint8Array, encoding);\n pic.description = util.decodeString(uint8Array.subarray(0, fzero), encoding);\n uint8Array = uint8Array.subarray(fzero + nullTerminatorLength);\n pic.data = uint8Array;\n output = pic;\n }\n break;\n case 'CNT':\n case 'PCNT':\n output = decodeUintBE(uint8Array);\n break;\n case 'SYLT': {\n const syltHeader = SyncTextHeader.get(uint8Array, 0);\n uint8Array = uint8Array.subarray(SyncTextHeader.len);\n const result = {\n descriptor: '',\n language: syltHeader.language,\n contentType: syltHeader.contentType,\n timeStampFormat: syltHeader.timeStampFormat,\n syncText: []\n };\n let readSyllables = false;\n while (uint8Array.length > 0) {\n const nullStr = FrameParser.readNullTerminatedString(uint8Array, syltHeader.encoding);\n uint8Array = uint8Array.subarray(nullStr.len);\n if (readSyllables) {\n const timestamp = Token.UINT32_BE.get(uint8Array, 0);\n uint8Array = uint8Array.subarray(Token.UINT32_BE.len);\n result.syncText.push({\n text: nullStr.text,\n timestamp\n });\n }\n else {\n result.descriptor = nullStr.text;\n readSyllables = true;\n }\n }\n output = result;\n break;\n }\n case 'ULT':\n case 'USLT':\n case 'COM':\n case 'COMM': {\n const textHeader = TextHeader.get(uint8Array, offset);\n offset += TextHeader.len;\n const descriptorStr = FrameParser.readNullTerminatedString(uint8Array.subarray(offset), textHeader.encoding);\n offset += descriptorStr.len;\n const textStr = FrameParser.readNullTerminatedString(uint8Array.subarray(offset), textHeader.encoding);\n const comment = {\n language: textHeader.language,\n descriptor: descriptorStr.text,\n text: textStr.text\n };\n output = comment;\n break;\n }\n case 'UFID': {\n const ufid = FrameParser.readIdentifierAndData(uint8Array, defaultEnc);\n output = { owner_identifier: ufid.id, identifier: ufid.data };\n break;\n }\n case 'PRIV': { // private frame\n const priv = FrameParser.readIdentifierAndData(uint8Array, defaultEnc);\n output = { owner_identifier: priv.id, data: priv.data };\n break;\n }\n case 'POPM': { // Popularimeter\n uint8Array = uint8Array.subarray(offset);\n const emailStr = FrameParser.readNullTerminatedString(uint8Array, urlEnc);\n const email = emailStr.text;\n uint8Array = uint8Array.subarray(emailStr.len);\n if (uint8Array.length === 0) {\n this.warningCollector.addWarning(`id3v2.${this.major} type=${type} POPM frame missing rating byte`);\n output = { email, rating: 0, counter: undefined };\n break;\n }\n const rating = Token.UINT8.get(uint8Array, 0);\n const counterBytes = uint8Array.subarray(Token.UINT8.len);\n output = {\n email,\n rating,\n counter: counterBytes.length > 0 ? decodeUintBE(counterBytes) : undefined\n };\n break;\n }\n case 'GEOB': { // General encapsulated object\n // [encoding] 0x00 0x00/0x00 0x00 0x00/0x00 0x00 \n const encoding = TextEncodingToken.get(uint8Array, 0);\n uint8Array = uint8Array.subarray(1);\n const mimeTypeStr = FrameParser.readNullTerminatedString(uint8Array, urlEnc);\n const mimeType = mimeTypeStr.text;\n uint8Array = uint8Array.subarray(mimeTypeStr.len);\n const filenameStr = FrameParser.readNullTerminatedString(uint8Array, encoding);\n const filename = filenameStr.text;\n uint8Array = uint8Array.subarray(filenameStr.len);\n const descriptionStr = FrameParser.readNullTerminatedString(uint8Array, encoding);\n const description = descriptionStr.text;\n uint8Array = uint8Array.subarray(descriptionStr.len);\n const geob = {\n type: mimeType,\n filename,\n description,\n data: uint8Array\n };\n output = geob;\n break;\n }\n // W-Frames:\n case 'WCOM':\n case 'WCOP':\n case 'WOAF':\n case 'WOAR':\n case 'WOAS':\n case 'WORS':\n case 'WPAY':\n case 'WPUB':\n // Decode URL\n output = FrameParser.readNullTerminatedString(uint8Array, urlEnc).text;\n break;\n case 'WXXX': {\n // [encoding] 0x00/0x00 0x00 \n const encoding = TextEncodingToken.get(uint8Array, 0);\n uint8Array = uint8Array.subarray(1);\n const descriptionStr = FrameParser.readNullTerminatedString(uint8Array, encoding);\n const description = descriptionStr.text;\n uint8Array = uint8Array.subarray(descriptionStr.len);\n // URL is always ISO-8859-1\n output = { description, url: FrameParser.trimNullPadding(util.decodeString(uint8Array, defaultEnc)) };\n break;\n }\n case 'WFD':\n case 'WFED': {\n const encoding = TextEncodingToken.get(uint8Array, 0);\n uint8Array = uint8Array.subarray(1);\n output = FrameParser.readNullTerminatedString(uint8Array, encoding).text;\n break;\n }\n case 'MCDI': {\n // Music CD identifier\n output = uint8Array.subarray(0, length);\n break;\n }\n // ID3v2 Chapters 1.0\n // https://mutagen-specs.readthedocs.io/en/latest/id3/id3v2-chapters-1.0.html#chapter-frame\n case 'CHAP': { // // Chapter frame\n debug(\"Reading CHAP\");\n fzero = util.findZero(uint8Array, defaultEnc);\n const chapter = {\n label: util.decodeString(uint8Array.subarray(0, fzero), defaultEnc),\n info: ChapterInfo.get(uint8Array, fzero + 1),\n frames: new Map()\n };\n offset += fzero + 1 + ChapterInfo.len;\n while (offset < length) {\n const subFrame = readFrameHeader(uint8Array.subarray(offset), this.major, this.warningCollector);\n const headerSize = getFrameHeaderLength(this.major);\n offset += headerSize;\n const subOutput = this.readData(uint8Array.subarray(offset, offset + subFrame.length), subFrame.id, includeCovers);\n offset += subFrame.length;\n chapter.frames.set(subFrame.id, subOutput);\n }\n output = chapter;\n break;\n }\n // ID3v2 Chapters 1.0\n // https://mutagen-specs.readthedocs.io/en/latest/id3/id3v2-chapters-1.0.html#table-of-contents-frame\n case 'CTOC': { // Table of contents frame\n debug('Reading CTOC');\n // Element ID (null-terminated latin1)\n const idEnd = util.findZero(uint8Array, defaultEnc);\n const label = util.decodeString(uint8Array.subarray(0, idEnd), defaultEnc);\n offset = idEnd + 1;\n // Flags\n const flags = uint8Array[offset++];\n const topLevel = (flags & 0x02) !== 0;\n const ordered = (flags & 0x01) !== 0;\n // Child element IDs\n const entryCount = uint8Array[offset++];\n const childElementIds = [];\n for (let i = 0; i < entryCount && offset < length; i++) {\n const end = util.findZero(uint8Array.subarray(offset), defaultEnc);\n const childId = util.decodeString(uint8Array.subarray(offset, offset + end), defaultEnc);\n childElementIds.push(childId);\n offset += end + 1;\n }\n const toc = {\n label,\n flags: { topLevel, ordered },\n childElementIds,\n frames: new Map()\n };\n // Optional embedded sub-frames (e.g. TIT2) follow after the child list\n while (offset < length) {\n const subFrame = readFrameHeader(uint8Array.subarray(offset), this.major, this.warningCollector);\n const headerSize = getFrameHeaderLength(this.major);\n offset += headerSize;\n const subOutput = this.readData(uint8Array.subarray(offset, offset + subFrame.length), subFrame.id, includeCovers);\n offset += subFrame.length;\n toc.frames.set(subFrame.id, subOutput);\n }\n output = toc;\n break;\n }\n default:\n debug(`Warning: unsupported id3v2-tag-type: ${type}`);\n break;\n }\n return output;\n }\n static readNullTerminatedString(uint8Array, encoding) {\n const bomSize = encoding.bom ? 2 : 0;\n const originalLen = uint8Array.length;\n const valueArray = uint8Array.subarray(bomSize);\n const zeroIndex = util.findZero(valueArray, encoding.encoding);\n if (zeroIndex >= valueArray.length) {\n // No terminator found, decode full buffer remainder\n return {\n text: util.decodeString(uint8Array, encoding.encoding),\n len: originalLen\n };\n }\n const txt = uint8Array.subarray(0, bomSize + zeroIndex);\n return {\n text: util.decodeString(txt, encoding.encoding),\n len: bomSize + zeroIndex + FrameParser.getNullTerminatorLength(encoding.encoding)\n };\n }\n static fixPictureMimeType(pictureType) {\n pictureType = pictureType.toLocaleLowerCase();\n switch (pictureType) {\n case 'jpg':\n return 'image/jpeg';\n case 'png':\n return 'image/png';\n }\n return pictureType;\n }\n /**\n * Converts TMCL (Musician credits list) or TIPL (Involved people list)\n * @param entries\n */\n static functionList(entries) {\n const res = {};\n for (let i = 0; i + 1 < entries.length; i += 2) {\n const names = entries[i + 1].split(',');\n res[entries[i]] = res[entries[i]] ? res[entries[i]].concat(names) : names;\n }\n return res;\n }\n /**\n * id3v2.4 defines that multiple T* values are separated by 0x00\n * id3v2.3 defines that TCOM, TEXT, TOLY, TOPE & TPE1 values are separated by /\n * @param tag - Tag name\n * @param text - Concatenated tag value\n * @returns Split tag value\n */\n splitValue(tag, text) {\n let values;\n if (this.major < 4) {\n values = text.split(/\\x00/g);\n if (values.length > 1) {\n this.warningCollector.addWarning(`ID3v2.${this.major} ${tag} uses non standard null-separator.`);\n }\n else {\n values = text.split(/\\//g);\n }\n }\n else {\n values = text.split(/\\x00/g);\n }\n return FrameParser.trimArray(values);\n }\n static trimArray(values) {\n return values.map(value => FrameParser.trimNullPadding(value).trim());\n }\n static trimNullPadding(value) {\n let end = value.length;\n while (end > 0 && value.charCodeAt(end - 1) === 0) {\n end--;\n }\n return end === value.length ? value : value.slice(0, end);\n }\n static readIdentifierAndData(uint8Array, encoding) {\n const idStr = FrameParser.readNullTerminatedString(uint8Array, { encoding, bom: false });\n return { id: idStr.text, data: uint8Array.subarray(idStr.len) };\n }\n static getNullTerminatorLength(enc) {\n return enc.startsWith('utf-16') ? 2 : 1;\n }\n}\nexport class Id3v2ContentError extends makeUnexpectedFileContentError('id3v2') {\n}\nfunction makeUnexpectedMajorVersionError(majorVer) {\n throw new Id3v2ContentError(`Unexpected majorVer: ${majorVer}`);\n}\n","import * as Token from 'token-types';\n/**\n * Data portion of `CHAP` sub frame\n */\nexport const ChapterInfo = {\n len: 16,\n get: (buf, off) => {\n const startOffset = Token.UINT32_BE.get(buf, off + 8);\n const endOffset = Token.UINT32_BE.get(buf, off + 12);\n return {\n startTime: Token.UINT32_BE.get(buf, off),\n endTime: Token.UINT32_BE.get(buf, off + 4),\n startOffset: startOffset === 0xFFFFFFFF ? undefined : startOffset,\n endOffset: endOffset === 0xFFFFFFFF ? undefined : endOffset,\n };\n }\n};\n","// lib/id3v2/FrameHeader.ts\nimport * as Token from 'token-types';\nimport * as util from '../common/Util.js';\nimport { UINT32SYNCSAFE } from './ID3v2Token.js';\nimport { textDecode } from '@borewit/text-codec';\nimport { Id3v2ContentError } from './FrameParser.js';\n/**\n * Frame header length (bytes) depending on ID3v2 major version.\n */\nexport function getFrameHeaderLength(majorVer) {\n switch (majorVer) {\n case 2: return 6;\n case 3:\n case 4: return 10;\n default: throw makeUnexpectedMajorVersionError(majorVer);\n }\n}\nfunction readFrameFlags(b, majorVer) {\n // ID3v2.3 and ID3v2.4 use different bit layouts for the frame status and format flags.\n if (majorVer === 3) {\n // ID3v2.3: status `%abc00000`, format `%ijk00000` (https://id3.org/id3v2.3.0)\n return {\n status: {\n tag_alter_preservation: util.getBit(b, 0, 7),\n file_alter_preservation: util.getBit(b, 0, 6),\n read_only: util.getBit(b, 0, 5)\n },\n format: {\n compression: util.getBit(b, 1, 7),\n encryption: util.getBit(b, 1, 6),\n grouping_identity: util.getBit(b, 1, 5),\n // Unsynchronisation and data-length-indicator do not exist as per-frame flags in ID3v2.3.\n unsynchronisation: false,\n data_length_indicator: false\n }\n };\n }\n // ID3v2.4: status `%0abc0000`, format `%0h00kmnp` (https://id3.org/id3v2.4.0-structure)\n return {\n status: {\n tag_alter_preservation: util.getBit(b, 0, 6),\n file_alter_preservation: util.getBit(b, 0, 5),\n read_only: util.getBit(b, 0, 4)\n },\n format: {\n grouping_identity: util.getBit(b, 1, 6),\n compression: util.getBit(b, 1, 3),\n encryption: util.getBit(b, 1, 2),\n unsynchronisation: util.getBit(b, 1, 1),\n data_length_indicator: util.getBit(b, 1, 0)\n }\n };\n}\n/**\n * Factory: parse a frame header from its header bytes (6 for v2.2, 10 for v2.3/v2.4).\n *\n * Note: It only *parses* and does light validation. It does not read payload bytes.\n */\nexport function readFrameHeader(uint8Array, majorVer, warningCollector) {\n switch (majorVer) {\n case 2:\n return parseFrameHeaderV22(uint8Array, majorVer, warningCollector);\n case 3:\n case 4:\n return parseFrameHeaderV23V24(uint8Array, majorVer, warningCollector);\n default:\n throw makeUnexpectedMajorVersionError(majorVer);\n }\n}\nfunction parseFrameHeaderV22(uint8Array, majorVer, warningCollector) {\n const header = {\n id: textDecode(uint8Array.subarray(0, 3), 'ascii'),\n length: Token.UINT24_BE.get(uint8Array, 3)\n };\n if (!header.id.match(/^[A-Z0-9]{3}$/)) {\n warningCollector.addWarning(`Invalid ID3v2.${majorVer} frame-header-ID: ${header.id}`);\n }\n return header;\n}\nfunction parseFrameHeaderV23V24(uint8Array, majorVer, warningCollector) {\n const header = {\n id: textDecode(uint8Array.subarray(0, 4), 'ascii'),\n length: (majorVer === 4 ? UINT32SYNCSAFE : Token.UINT32_BE).get(uint8Array, 4),\n flags: readFrameFlags(uint8Array.subarray(8, 10), majorVer)\n };\n if (!header.id.match(/^[A-Z0-9]{4}$/)) {\n warningCollector.addWarning(`Invalid ID3v2.${majorVer} frame-header-ID: ${header.id}`);\n }\n return header;\n}\nfunction makeUnexpectedMajorVersionError(majorVer) {\n throw new Id3v2ContentError(`Unexpected majorVer: ${majorVer}`);\n}\n","import * as Token from 'token-types';\nimport { FrameParser, Id3v2ContentError } from './FrameParser.js';\nimport { ExtendedHeader, ID3v2Header } from './ID3v2Token.js';\nimport { getFrameHeaderLength, readFrameHeader } from './FrameHeader.js';\nexport class ID3v2Parser {\n constructor() {\n this.tokenizer = undefined;\n this.id3Header = undefined;\n this.metadata = undefined;\n this.headerType = undefined;\n this.options = undefined;\n }\n static removeUnsyncBytes(buffer) {\n let readI = 0;\n let writeI = 0;\n while (readI < buffer.length - 1) {\n if (readI !== writeI) {\n buffer[writeI] = buffer[readI];\n }\n readI += (buffer[readI] === 0xFF && buffer[readI + 1] === 0) ? 2 : 1;\n writeI++;\n }\n if (readI < buffer.length) {\n buffer[writeI++] = buffer[readI];\n }\n return buffer.subarray(0, writeI);\n }\n static readFrameData(uint8Array, frameHeader, majorVer, includeCovers, warningCollector) {\n const frameParser = new FrameParser(majorVer, warningCollector);\n switch (majorVer) {\n case 2:\n return frameParser.readData(uint8Array, frameHeader.id, includeCovers);\n case 3:\n case 4:\n if (frameHeader.flags?.format.unsynchronisation) {\n uint8Array = ID3v2Parser.removeUnsyncBytes(uint8Array);\n }\n if (frameHeader.flags?.format.data_length_indicator) {\n uint8Array = uint8Array.subarray(4, uint8Array.length);\n }\n return frameParser.readData(uint8Array, frameHeader.id, includeCovers);\n default:\n throw makeUnexpectedMajorVersionError(majorVer);\n }\n }\n /**\n * Create a combined tag key, of tag & description\n * @param tag e.g.: COM\n * @param description e.g. iTunPGAP\n * @returns string e.g. COM:iTunPGAP\n */\n static makeDescriptionTagName(tag, description) {\n return tag + (description ? `:${description}` : '');\n }\n async parse(metadata, tokenizer, options) {\n this.tokenizer = tokenizer;\n this.metadata = metadata;\n this.options = options;\n const id3Header = await this.tokenizer.readToken(ID3v2Header);\n if (id3Header.fileIdentifier !== 'ID3') {\n throw new Id3v2ContentError('expected ID3-header file-identifier \\'ID3\\' was not found');\n }\n this.id3Header = id3Header;\n this.headerType = (`ID3v2.${id3Header.version.major}`);\n await (id3Header.flags.isExtendedHeader ? this.parseExtendedHeader() : this.parseId3Data(id3Header.size));\n // Post process\n const chapters = ID3v2Parser.mapId3v2Chapters(this.metadata.native[this.headerType]);\n this.metadata.setFormat('chapters', chapters);\n }\n async parseExtendedHeader() {\n const extendedHeader = await this.tokenizer.readToken(ExtendedHeader);\n const dataRemaining = extendedHeader.size - ExtendedHeader.len;\n return dataRemaining > 0 ? this.parseExtendedHeaderData(dataRemaining, extendedHeader.size) : this.parseId3Data(this.id3Header.size - extendedHeader.size);\n }\n async parseExtendedHeaderData(dataRemaining, extendedHeaderSize) {\n await this.tokenizer.ignore(dataRemaining);\n return this.parseId3Data(this.id3Header.size - extendedHeaderSize);\n }\n async parseId3Data(dataLen) {\n const uint8Array = await this.tokenizer.readToken(new Token.Uint8ArrayType(dataLen));\n for (const tag of this.parseMetadata(uint8Array)) {\n switch (tag.id) {\n case 'TXXX':\n if (tag.value) {\n await this.handleTag(tag, tag.value.text, () => tag.value.description);\n }\n break;\n default:\n await (Array.isArray(tag.value) ? Promise.all(tag.value.map(value => this.addTag(tag.id, value))) : this.addTag(tag.id, tag.value));\n }\n }\n }\n async handleTag(tag, values, descriptor, resolveValue = value => value) {\n await Promise.all(values.map(value => this.addTag(ID3v2Parser.makeDescriptionTagName(tag.id, descriptor(value)), resolveValue(value))));\n }\n async addTag(id, value) {\n await this.metadata.addTag(this.headerType, id, value);\n }\n parseMetadata(data) {\n let offset = 0;\n const tags = [];\n while (true) {\n if (offset === data.length)\n break;\n const frameHeaderLength = getFrameHeaderLength(this.id3Header.version.major);\n if (offset + frameHeaderLength > data.length) {\n this.metadata.addWarning('Illegal ID3v2 tag length');\n break;\n }\n const frameHeaderBytes = data.subarray(offset, offset + frameHeaderLength);\n offset += frameHeaderLength;\n const frameHeader = readFrameHeader(frameHeaderBytes, this.id3Header.version.major, this.metadata);\n const frameDataBytes = data.subarray(offset, offset + frameHeader.length);\n offset += frameHeader.length;\n const values = ID3v2Parser.readFrameData(frameDataBytes, frameHeader, this.id3Header.version.major, !this.options.skipCovers, this.metadata);\n if (values) {\n tags.push({ id: frameHeader.id, value: values });\n }\n }\n return tags;\n }\n /**\n * Convert parsed ID3v2 chapter frames (CHAP / CTOC) to generic `format.chapters`.\n *\n * This function expects the `native` tags already to contain parsed `CHAP` and `CTOC` frame values,\n * as produced by `FrameParser.readData`.\n */\n static mapId3v2Chapters(id3Tags) {\n if (!id3Tags)\n return;\n const chapFrames = id3Tags.filter(t => t.id === 'CHAP');\n if (!chapFrames?.length)\n return;\n const tocFrames = id3Tags.filter(t => t.id === 'CTOC');\n const topLevelToc = tocFrames?.find(t => t.value.flags?.topLevel);\n const chapterById = new Map();\n for (const chap of chapFrames) {\n chapterById.set(chap.value.label, chap.value);\n }\n const orderedIds = topLevelToc?.value.childElementIds;\n const chapters = [];\n const source = orderedIds ?? [...chapterById.keys()];\n for (const id of source) {\n const chap = chapterById.get(id);\n if (!chap)\n continue;\n const frames = chap.frames;\n const title = frames.get('TIT2');\n if (!title)\n continue; // title is required\n chapters.push({\n id,\n title,\n url: frames.get('WXXX'),\n start: chap.info.startTime / 1000,\n end: chap.info.endTime / 1000,\n image: frames.get('APIC')\n });\n }\n // If no ordered CTOC, sort by time\n if (!orderedIds) {\n chapters.sort((a, b) => a.start - b.start);\n }\n return chapters.length ? chapters : undefined;\n }\n}\nfunction makeUnexpectedMajorVersionError(majorVer) {\n throw new Id3v2ContentError(`Unexpected majorVer: ${majorVer}`);\n}\n"],"mappings":"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","names":["import_debug","ChapterInfo","__name","buf","off","startOffset","UINT32_BE","endOffset","getFrameHeaderLength","majorVer","makeUnexpectedMajorVersionError","__name","readFrameFlags","b","getBit","readFrameHeader","uint8Array","warningCollector","parseFrameHeaderV22","parseFrameHeaderV23V24","header","textDecode","UINT24_BE","UINT32SYNCSAFE","UINT32_BE","Id3v2ContentError","debug","initDebug","defaultEnc","urlEnc","parseGenre","origVal","genres","code","word","c","genre","parseGenreCode","__name","Genres","FrameParser","_FrameParser","major","warningCollector","uint8Array","type","includeCovers","encoding","bom","TextEncodingToken","length","offset","output","nullTerminatorLength","fzero","text","decodeString","error","v","acc","val","idAndData","pic","findZero","makeUnexpectedMajorVersionError","AttachedPictureType","decodeUintBE","syltHeader","SyncTextHeader","result","readSyllables","nullStr","timestamp","UINT32_BE","textHeader","TextHeader","descriptorStr","textStr","ufid","priv","emailStr","email","rating","UINT8","counterBytes","mimeTypeStr","mimeType","filenameStr","filename","descriptionStr","description","chapter","ChapterInfo","subFrame","readFrameHeader","headerSize","getFrameHeaderLength","subOutput","idEnd","label","flags","topLevel","ordered","entryCount","childElementIds","i","end","childId","toc","bomSize","originalLen","valueArray","zeroIndex","txt","pictureType","entries","res","names","tag","values","value","idStr","enc","Id3v2ContentError","makeUnexpectedFileContentError","majorVer","ID3v2Parser","_ID3v2Parser","__name","buffer","readI","writeI","uint8Array","frameHeader","majorVer","includeCovers","warningCollector","frameParser","FrameParser","makeUnexpectedMajorVersionError","tag","description","metadata","tokenizer","options","id3Header","ID3v2Header","Id3v2ContentError","chapters","extendedHeader","ExtendedHeader","dataRemaining","extendedHeaderSize","dataLen","Uint8ArrayType","value","values","descriptor","resolveValue","id","data","offset","tags","frameHeaderLength","getFrameHeaderLength","frameHeaderBytes","readFrameHeader","frameDataBytes","id3Tags","chapFrames","t","topLevelToc","chapterById","chap","orderedIds","source","frames","title","a","b"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-6XPFWKSW.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js new file mode 120000 index 00000000..cd046ac4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-75BXHJJB.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js.br new file mode 120000 index 00000000..3e2692bb --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-75BXHJJB.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js.map new file mode 120000 index 00000000..05f91336 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75BXHJJB.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-75BXHJJB.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js new file mode 120000 index 00000000..502180d6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-75KFZLU6.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js.br new file mode 120000 index 00000000..13e85633 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-75KFZLU6.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js.map new file mode 120000 index 00000000..3dc79aa7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-75KFZLU6.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-75KFZLU6.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js new file mode 120000 index 00000000..870c6261 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-76OIFD3C.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js.br new file mode 120000 index 00000000..25b3e937 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-76OIFD3C.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js.map new file mode 120000 index 00000000..5a2854ba --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-76OIFD3C.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-76OIFD3C.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js new file mode 100644 index 00000000..7b7ef46e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js @@ -0,0 +1,3 @@ +import{a as p}from"./chunk-BTSSVB7R.js";import{c as h,d}from"./chunk-ZVWOBRJZ.js";import{e as m}from"./chunk-IA3NIKPO.js";import{j as i,o}from"./chunk-XILA3E7E.js";import{a as l,c as I}from"./chunk-75KFZLU6.js";var E={};I(E,{CLASS:()=>y,NAME:()=>g,default:()=>k});var u="diffuse/transformer/output/refiner/default/playlistItems/ephemeral",f="diffuse/transformer/output/refiner/default/tracks/ephemeral",c=class extends p{static{l(this,"DefaultOutputRefinerTransformer")}constructor(){super();let e=this.base();h(u).then(t=>{t&&this.#t.set(t)}),h(f).then(t=>{t&&this.#e.set(t)});let s={facets:{...e.facets,collection:i(()=>{let t=e.facets.collection();return t.state!=="loaded"?t:{state:"loaded",data:t.data}})},playlistItems:{...e.playlistItems,collection:i(()=>{let t=e.playlistItems.collection();return t.state!=="loaded"?t:{state:"loaded",data:[...t.data,...this.#t.get()]}}),save:l(async t=>{let a=[],n=t.filter(r=>r.ephemeral?(a.push(r),!1):!0);await d(u,a),this.#t.set(a),await e.playlistItems.save(n)},"save")},tracks:{...e.tracks,collection:i(()=>{let t=e.tracks.collection();return t.state!=="loaded"?t:{state:"loaded",data:[...t.data,...this.#e.get()]}}),save:l(async t=>{let a=[],n=t.filter(r=>r.ephemeral?(a.push(r),!1):!0);await d(f,a),this.#e.set(a),await e.tracks.save(n)},"save")},settings:e.settings,ready:e.ready};this.facets=s.facets,this.playlistItems=s.playlistItems,this.settings=s.settings,this.tracks=s.tracks,this.ready=s.ready}#t=o([]);#e=o([]);connectedCallback(){if(this.hasAttribute("group")){let e=this.broadcast(f,{getEphemeralPlaylistItems:{strategy:"leaderOnly",fn:this.#t.get},setEphemeralPlaylistItems:{strategy:"replicate",fn:this.#t.set},getEphemeralTracks:{strategy:"leaderOnly",fn:this.#e.get},setEphemeralTracks:{strategy:"replicate",fn:this.#e.set}});e&&(this.#t.set=e.setEphemeralPlaylistItems,this.#e.set=e.setEphemeralTracks,e.getEphemeralPlaylistItems().then(s=>{this.#t.value=s}),e.getEphemeralTracks().then(s=>{this.#e.value=s}))}super.connectedCallback()}},k=c,y=c,g="dtor-default";m(g,y);export{k as a,y as b,g as c,E as d}; + +//# sourceMappingURL=./chunk-7F2IU4LR.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js.br new file mode 100644 index 0000000000000000000000000000000000000000..80b8c6380af647355760bcbf1b1e4e1081e0a7a9 GIT binary patch literal 746 zcmb1^6gea^3p3w!PWE z90&Wa)9&2Zs66TG^XvDXz5RDI-=JAPCqsUc>wp8vHrL~9jJ`cB3_oTrem=^0>(o-~K5OaEYo7GEU*Nv;ewL$P-@$W4eZ(Gb}RW`iX=eo~R>GlVAuhz@ikMG=SJn+H#)V=d3i2gkm71!j*(Oe_ z_BH*oswty5?m*EjP4`n9W|*kA|LJ(XRqSno(YYg&f)h7HZ2h$5|EXZVd-K{F8r4{= zjqdJSVSjng>k{oflY@306KqwM(thU|yOCOR&DFSp{l-@5Z=5?>!_ zI11`CdWOnNPkgq2;jI5%ot4H@yNxOon@#c?9be72G)dUQR>h;TA|OHG!^4V&ZLZ9% zGwO7m>QA}*#ZCA)<5^4Fsrh?^npNCAx7%n=lebmL66{j-RfxV^cz@|_0qLa`&XZRN zSE^<*l{&0mv~Rz(orUdzyUc3xKUz=w@TO-k%bi@sdLg`WUB;xP8@1Qnd8y!aV4}m9 znG9E~0xaDX)Z;hY?s(JpSoP@bw=+Za)Kp(xd%AevT$ZPMnJjzmP4ZgTZ_q` z6q|^f)N_xg8~PMCzMm{np~jL`;x*ZCvsj*t_DG^q~t+{w{ws M%_DR1l-3kJ0HS|yrT_o{ literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js.map new file mode 100644 index 00000000..252f4f3d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7F2IU4LR.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/transformer/output/refiner/default/element.js"],"sourcesContent":["import * as IDB from \"idb-keyval\";\n\nimport { computed, signal } from \"~/common/signal.js\";\nimport { OutputTransformer } from \"../../base.js\";\nimport { defineElement } from \"~/common/element.js\";\n\nconst IDB_KEY_PLAYLISTS =\n \"diffuse/transformer/output/refiner/default/playlistItems/ephemeral\";\nconst IDB_KEY_TRACKS =\n \"diffuse/transformer/output/refiner/default/tracks/ephemeral\";\n\n/**\n * @import { OutputManagerDeputy } from \"@specs/components/output/types.d.ts\"\n * @import { PlaylistItem, Track } from \"~/definitions/types.d.ts\"\n */\n\n/**\n * @extends {OutputTransformer}\n */\nclass DefaultOutputRefinerTransformer extends OutputTransformer {\n constructor() {\n super();\n\n const base = this.base();\n\n // Restore stored ephemeral items\n IDB.get(IDB_KEY_PLAYLISTS).then((items) => {\n if (items) this.#ephemeralPlaylistItems.set(items);\n });\n\n IDB.get(IDB_KEY_TRACKS).then((items) => {\n if (items) this.#ephemeralTracks.set(items);\n });\n\n /** @type {OutputManagerDeputy} */\n const manager = {\n facets: {\n ...base.facets,\n collection: computed(() => {\n const col = base.facets.collection();\n if (col.state !== \"loaded\") return col;\n return { state: \"loaded\", data: col.data };\n }),\n },\n playlistItems: {\n ...base.playlistItems,\n collection: computed(() => {\n const col = base.playlistItems.collection();\n if (col.state !== \"loaded\") return col;\n return {\n state: \"loaded\",\n data: [...col.data, ...this.#ephemeralPlaylistItems.get()],\n };\n }),\n save: async (newPlaylists) => {\n /** @type {PlaylistItem[]} */\n const ephemeral = [];\n\n const filtered = newPlaylists.filter((p) => {\n if (p.ephemeral) {\n ephemeral.push(p);\n return false;\n } else {\n return true;\n }\n });\n\n await IDB.set(IDB_KEY_PLAYLISTS, ephemeral);\n this.#ephemeralPlaylistItems.set(ephemeral);\n\n await base.playlistItems.save(filtered);\n },\n },\n tracks: {\n ...base.tracks,\n collection: computed(() => {\n const col = base.tracks.collection();\n if (col.state !== \"loaded\") return col;\n return {\n state: \"loaded\",\n data: [...col.data, ...this.#ephemeralTracks.get()],\n };\n }),\n save: async (newTracks) => {\n /** @type {Track[]} */\n const ephemeral = [];\n\n const filtered = newTracks.filter((t) => {\n if (t.ephemeral) {\n ephemeral.push(t);\n return false;\n } else {\n return true;\n }\n });\n\n await IDB.set(IDB_KEY_TRACKS, ephemeral);\n this.#ephemeralTracks.set(ephemeral);\n\n await base.tracks.save(filtered);\n },\n },\n\n settings: base.settings,\n\n // Other\n ready: base.ready,\n };\n\n // Assign manager properties to class\n this.facets = manager.facets;\n this.playlistItems = manager.playlistItems;\n this.settings = manager.settings;\n this.tracks = manager.tracks;\n this.ready = manager.ready;\n }\n\n // SIGNALS\n\n #ephemeralPlaylistItems = signal(/** @type {PlaylistItem[]} */ ([]));\n #ephemeralTracks = signal(/** @type {Track[]} */ ([]));\n\n // LIFECYCLE\n\n /** @override */\n connectedCallback() {\n if (this.hasAttribute(\"group\")) {\n const actions = this.broadcast(IDB_KEY_TRACKS, {\n getEphemeralPlaylistItems: {\n strategy: \"leaderOnly\",\n fn: this.#ephemeralPlaylistItems.get,\n },\n setEphemeralPlaylistItems: {\n strategy: \"replicate\",\n fn: this.#ephemeralPlaylistItems.set,\n },\n getEphemeralTracks: {\n strategy: \"leaderOnly\",\n fn: this.#ephemeralTracks.get,\n },\n setEphemeralTracks: {\n strategy: \"replicate\",\n fn: this.#ephemeralTracks.set,\n },\n });\n\n if (actions) {\n this.#ephemeralPlaylistItems.set = actions.setEphemeralPlaylistItems;\n this.#ephemeralTracks.set = actions.setEphemeralTracks;\n\n actions.getEphemeralPlaylistItems().then((items) => {\n this.#ephemeralPlaylistItems.value = items;\n });\n\n actions.getEphemeralTracks().then((tracks) => {\n this.#ephemeralTracks.value = tracks;\n });\n }\n }\n\n super.connectedCallback();\n }\n}\n\nexport default DefaultOutputRefinerTransformer;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = DefaultOutputRefinerTransformer;\nexport const NAME = \"dtor-default\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"mNAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAMA,IAAMC,EACJ,qEACIC,EACJ,8DAUIC,EAAN,cAA8CC,CAAkB,CAnBhE,MAmBgE,CAAAC,EAAA,wCAC9D,aAAc,CACZ,MAAM,EAEN,IAAMC,EAAO,KAAK,KAAK,EAGnBC,EAAIN,CAAiB,EAAE,KAAMO,GAAU,CACrCA,GAAO,KAAKC,GAAwB,IAAID,CAAK,CACnD,CAAC,EAEGD,EAAIL,CAAc,EAAE,KAAMM,GAAU,CAClCA,GAAO,KAAKE,GAAiB,IAAIF,CAAK,CAC5C,CAAC,EAGD,IAAMG,EAAU,CACd,OAAQ,CACN,GAAGL,EAAK,OACR,WAAYM,EAAS,IAAM,CACzB,IAAMC,EAAMP,EAAK,OAAO,WAAW,EACnC,OAAIO,EAAI,QAAU,SAAiBA,EAC5B,CAAE,MAAO,SAAU,KAAMA,EAAI,IAAK,CAC3C,CAAC,CACH,EACA,cAAe,CACb,GAAGP,EAAK,cACR,WAAYM,EAAS,IAAM,CACzB,IAAMC,EAAMP,EAAK,cAAc,WAAW,EAC1C,OAAIO,EAAI,QAAU,SAAiBA,EAC5B,CACL,MAAO,SACP,KAAM,CAAC,GAAGA,EAAI,KAAM,GAAG,KAAKJ,GAAwB,IAAI,CAAC,CAC3D,CACF,CAAC,EACD,KAAMJ,EAAA,MAAOS,GAAiB,CAE5B,IAAMC,EAAY,CAAC,EAEbC,EAAWF,EAAa,OAAQG,GAChCA,EAAE,WACJF,EAAU,KAAKE,CAAC,EACT,IAEA,EAEV,EAED,MAAUC,EAAIjB,EAAmBc,CAAS,EAC1C,KAAKN,GAAwB,IAAIM,CAAS,EAE1C,MAAMT,EAAK,cAAc,KAAKU,CAAQ,CACxC,EAjBM,OAkBR,EACA,OAAQ,CACN,GAAGV,EAAK,OACR,WAAYM,EAAS,IAAM,CACzB,IAAMC,EAAMP,EAAK,OAAO,WAAW,EACnC,OAAIO,EAAI,QAAU,SAAiBA,EAC5B,CACL,MAAO,SACP,KAAM,CAAC,GAAGA,EAAI,KAAM,GAAG,KAAKH,GAAiB,IAAI,CAAC,CACpD,CACF,CAAC,EACD,KAAML,EAAA,MAAOc,GAAc,CAEzB,IAAMJ,EAAY,CAAC,EAEbC,EAAWG,EAAU,OAAQC,GAC7BA,EAAE,WACJL,EAAU,KAAKK,CAAC,EACT,IAEA,EAEV,EAED,MAAUF,EAAIhB,EAAgBa,CAAS,EACvC,KAAKL,GAAiB,IAAIK,CAAS,EAEnC,MAAMT,EAAK,OAAO,KAAKU,CAAQ,CACjC,EAjBM,OAkBR,EAEA,SAAUV,EAAK,SAGf,MAAOA,EAAK,KACd,EAGA,KAAK,OAASK,EAAQ,OACtB,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,SAAWA,EAAQ,SACxB,KAAK,OAASA,EAAQ,OACtB,KAAK,MAAQA,EAAQ,KACvB,CAIAF,GAA0BY,EAAsC,CAAC,CAAE,EACnEX,GAAmBW,EAA+B,CAAC,CAAE,EAKrD,mBAAoB,CAClB,GAAI,KAAK,aAAa,OAAO,EAAG,CAC9B,IAAMC,EAAU,KAAK,UAAUpB,EAAgB,CAC7C,0BAA2B,CACzB,SAAU,aACV,GAAI,KAAKO,GAAwB,GACnC,EACA,0BAA2B,CACzB,SAAU,YACV,GAAI,KAAKA,GAAwB,GACnC,EACA,mBAAoB,CAClB,SAAU,aACV,GAAI,KAAKC,GAAiB,GAC5B,EACA,mBAAoB,CAClB,SAAU,YACV,GAAI,KAAKA,GAAiB,GAC5B,CACF,CAAC,EAEGY,IACF,KAAKb,GAAwB,IAAMa,EAAQ,0BAC3C,KAAKZ,GAAiB,IAAMY,EAAQ,mBAEpCA,EAAQ,0BAA0B,EAAE,KAAMd,GAAU,CAClD,KAAKC,GAAwB,MAAQD,CACvC,CAAC,EAEDc,EAAQ,mBAAmB,EAAE,KAAMC,GAAW,CAC5C,KAAKb,GAAiB,MAAQa,CAChC,CAAC,EAEL,CAEA,MAAM,kBAAkB,CAC1B,CACF,EAEOC,EAAQrB,EAMFsB,EAAQtB,EACRuB,EAAO,eAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","IDB_KEY_PLAYLISTS","IDB_KEY_TRACKS","DefaultOutputRefinerTransformer","OutputTransformer","__name","base","get","items","#ephemeralPlaylistItems","#ephemeralTracks","manager","computed","col","newPlaylists","ephemeral","filtered","p","set","newTracks","t","signal","actions","tracks","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-7F2IU4LR.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js new file mode 120000 index 00000000..7d385754 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-7GJVHJL3.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js.br new file mode 120000 index 00000000..17390020 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-7GJVHJL3.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js.map new file mode 120000 index 00000000..91406191 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7GJVHJL3.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-7GJVHJL3.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js new file mode 120000 index 00000000..cbc5dbc4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-7NEQFE27.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js.br new file mode 120000 index 00000000..204904d2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-7NEQFE27.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js.map new file mode 120000 index 00000000..3a823779 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NEQFE27.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-7NEQFE27.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NKQO6T3.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NKQO6T3.js new file mode 100644 index 00000000..76efb589 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NKQO6T3.js @@ -0,0 +1,3 @@ +import{a as s,h as g,i as r,k as _,l as S}from"./chunk-2QN2TM5L.js";import{a as c}from"./chunk-6BX44RWC.js";import{a as p,b as d,c as h,d as m,e as f}from"./chunk-QWRQDER6.js";import{a}from"./chunk-75KFZLU6.js";var w={client_id:"https://diffuse.sh/latest/components/output/raw/atproto-passkey/oauth-client-metadata.json",client_name:"Diffuse",client_uri:"https://diffuse.sh",redirect_uris:["https://diffuse.sh/oauth/callback"],scope:"atproto blob:application/octet-stream repo?collection=sh.diffuse.output.facet&collection=sh.diffuse.output.playlistItem&collection=sh.diffuse.output.playlistItemBundle&collection=sh.diffuse.output.setting&collection=sh.diffuse.output.track&collection=sh.diffuse.output.trackBundle",grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"none",application_type:"web",dpop_bound_access_tokens:!0};var o="diffuse/output/raw/atproto-passkey/did",y=w.scope,v="diffuse/output/raw/atproto-passkey/atcute/oauth",I="diffuse/output/raw/atproto-passkey",i=location.origin+location.pathname+location.search,k=i.startsWith("http://127.0.0.1");k||(i=location.origin+"/oauth/callback");var b=k?`http://localhost/?redirect_uri=${encodeURIComponent(i)}&scope=${encodeURIComponent(y)}`:import.meta.env?.ATPROTO_PUBLIC_CLIENT_ID??"https://diffuse.sh/latest/components/output/raw/atproto-passkey/oauth-client-metadata.json",l={metadata:{client_id:b,redirect_uri:i},storageName:v,identityResolver:new p({handleResolver:new f({serviceUrl:"https://public.api.bsky.app"}),didDocumentResolver:new d({methods:{plc:new h,web:new m}})})};s(l);function z(t){return c(async()=>{s(l),localStorage.setItem("oauth/callback/redirect_path",location.pathname+location.search),localStorage.setItem("oauth/pending-client",I);let e=await _({target:{type:"account",identifier:t},scope:y});location.assign(e.toString())})}a(z,"login");function N(){return c(async()=>{s(l);let t=globalThis.location,e=new URLSearchParams(t.hash.slice(1));if(e.has("code")&&localStorage.getItem("oauth/pending-client")===I){let n=await S(e);return localStorage.removeItem("oauth/pending-client"),history.replaceState(null,"",t.pathname+t.search),localStorage.setItem(o,n.session.info.sub),n.session}let u=localStorage.getItem(o);if(u)try{return await g(u)}catch(n){return console.warn(n),A(),null}return null})}a(N,"restoreOrFinalize");function A(){let t=localStorage.getItem(o);t&&r(t),localStorage.removeItem(o)}a(A,"clearStoredSession");async function P(t){let e=localStorage.getItem(o);try{await t.signOut()}catch{e&&r(e)}localStorage.removeItem(o)}a(P,"logout");export{z as a,N as b,A as c,P as d}; + +//# sourceMappingURL=./chunk-7NKQO6T3.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NKQO6T3.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-7NKQO6T3.js.br new file mode 100644 index 0000000000000000000000000000000000000000..b35c0cf3fdacc9981745555eb34e6b406c8793e8 GIT binary patch literal 1055 zcmb1k2c@1LLUna-#_s4Lp8yLIOZl}Su|52`w!|CL|$uc5BXfya5$gS)AB z|KHqP%(rS;NL=%>pWpU%dB-o_>F2Oie4fA0n|r4`ew|3(Ii2~+rH3BNEcot}wbXM) z%$dGb@~hZ7eX)1vrk}rY!PzN&mdv$RQ|B&Ux^(vOyDqIaoy2CG7UH&aH1(}d{P^qR zv#R|6X{izhm#;p(+&q1A^@M~~f@?i?E#LJZpe^9$-_+K3-?P`x&`(yIeq`s|FYa2V z2ahYgm9V~f#KUs^gE`Giqm2_}kgz%&feO{8!0uCw#nr)L5&(@yJE?V{KidxaCO|zd(yL_!< zXZywF$BZtYy4rp}!9K`z+U1Sk9$Kv6+)}vQ?5IRRPMHatgUP~;c`Gi+H889Ddi>5~ zjBadIz4lVF+2ZOCDTjhnw?bbz8hz+%dwRg-#slj^Q(Uo;A6S_&Q$HCtfd@ zl77D7c>80WT{1&f}Ij_HFlcm}5 zXN_u$|NrOwnd!J$bIq01q%A)^IWBbddcStwlc|yUakH$_sz3jpRa`H~?pSs=U$2+R z#m9O6oooZ+yY=zQ&Rkc!y>IufoqKlstbbR2uCM&^-OZ2xcJKaDkzaf{GUeE!+ESzP zfMDbL0=et5zY^xktT34IFkV7JZg1edzWq}kyO{>M-g;pEMfPGjkJZkX_j+sjEB~1r zMrKa?d2!0gRZV?K3%eQYrcBcCxE)<_FYNK3ud{@tr`qnWyi~enaqOd$Gt@4s8Y?UQ zQ(HX8<#v|SQ8(_D0jqv(OHBClKz*9x0-k#_1Q%3fGhaDuIN@68i!GjyLmQ5pNUj#p zRFq!nJY`au&q{&(v)9GM?;iNLt#+*p|J>_qXOx+&bgX~5S59J4#3>PlDe9(^&Ila( zk&a>>`-__fsx-wYFWEoI&(DTa=WdYBR-Z|gvyN@7iWT0! zb?U!=duRM@&_26T;L(h2qJ^`wzfD`wlBQwmCE>RBd%`*MilpY~J8Y67o`U?02?9@K znpl{{TxCAYyP2MOdHb2`lC^VpYpsvzUZ!<=%CA{$=Bd`EYjYg3emUk$ns_33&BwAe z5z2EF+a8%Mj7TkKZ$9t1>CvHSllDEnB%7gpylUB!oEvJHeXG)zbM3FU7Lu}^u{Nh$ z==O}gj6PnX+kO3*e7_u {\n configureOAuth(OAUTH_CONFIG);\n\n localStorage.setItem(\n \"oauth/callback/redirect_path\",\n location.pathname + location.search,\n );\n\n localStorage.setItem(\"oauth/pending-client\", CLIENT_KEY);\n\n const authUrl = await createAuthorizationUrl({\n target: { type: \"account\", identifier: /** @type {any} */ (handle) },\n scope: SCOPE,\n });\n\n location.assign(authUrl.toString());\n });\n}\n\n// SESSION RESTORE / CALLBACK\n// ==========================\n\n/**\n * Attempt to restore an existing session or finalize an OAuth callback.\n * Returns the session if successful, or null if no session is available.\n *\n * @returns {Promise}\n */\nexport function restoreOrFinalize() {\n return withOAuthLock(async () => {\n configureOAuth(OAUTH_CONFIG);\n\n const loc = globalThis.location;\n\n // Check for OAuth callback parameters (the library uses response_mode=fragment,\n // so params arrive in the URL hash, not the query string)\n const params = new URLSearchParams(loc.hash.slice(1));\n\n if (\n params.has(\"code\") &&\n localStorage.getItem(\"oauth/pending-client\") === CLIENT_KEY\n ) {\n // Finalize first; only clear the pending marker once it succeeds. If the\n // page reloads mid-exchange (e.g. a prelude change), the marker survives\n // so the reloaded page can retry instead of silently dropping the login.\n const result = await finalizeAuthorization(params);\n\n localStorage.removeItem(\"oauth/pending-client\");\n\n // Clean up URL (remove fragment containing OAuth params)\n history.replaceState(null, \"\", loc.pathname + loc.search);\n\n // Persist the DID for future session restoration\n localStorage.setItem(STORAGE_KEY, result.session.info.sub);\n\n return result.session;\n }\n\n // Try to restore a previously stored session\n const did = localStorage.getItem(STORAGE_KEY);\n\n if (did) {\n try {\n return await getSession(\n /** @type {`did:${string}:${string}`} */ (did),\n );\n } catch (err) {\n console.warn(err);\n clearStoredSession();\n return null;\n }\n }\n\n return null;\n });\n}\n\n// CLEAR SESSION\n// =============\n\n/**\n * Remove stored session data without contacting the server.\n * Used when the session has already been revoked.\n */\nexport function clearStoredSession() {\n const did = localStorage.getItem(STORAGE_KEY);\n\n if (did) {\n deleteStoredSession(/** @type {`did:${string}:${string}`} */ (did));\n }\n\n localStorage.removeItem(STORAGE_KEY);\n}\n\n// LOGOUT\n// ======\n\n/**\n * Sign out and revoke the current session.\n *\n * @param {OAuthUserAgent} agent\n */\nexport async function logout(agent) {\n const did = localStorage.getItem(STORAGE_KEY);\n\n try {\n await agent.signOut();\n } catch {\n if (did) {\n deleteStoredSession(\n /** @type {`did:${string}:${string}`} */ (did),\n );\n }\n }\n\n localStorage.removeItem(STORAGE_KEY);\n}\n"],"mappings":"mNAAA,IAAAA,EAAA,CACE,UAAa,6FACb,YAAe,UACf,WAAc,qBACd,cAAiB,CAAC,mCAAmC,EACrD,MAAS,2RACT,YAAe,CAAC,qBAAsB,eAAe,EACrD,eAAkB,CAAC,MAAM,EACzB,2BAA8B,OAC9B,iBAAoB,MACpB,yBAA4B,EAC9B,ECmBA,IAAMC,EAAc,yCACdC,EAAQC,EAAS,MACjBC,EAAe,kDACfC,EAAa,qCAKfC,EAAe,SAAS,OAAS,SAAS,SAAW,SAAS,OAE5DC,EAAaD,EAAa,WAAW,kBAAkB,EAExDC,IACHD,EAAe,SAAS,OAAS,mBAGnC,IAAME,EAAYD,EACd,kCAAkC,mBAAmBD,CAAY,CAAC,UAClE,mBAAmBJ,CAAK,CAC1B,GACsB,YAAa,KAAK,0BACtC,6FAEEO,EAAe,CACnB,SAAU,CACR,UAAAD,EACA,aAAAF,CACF,EACA,YAAaF,EACb,iBAAkB,IAAIM,EAAmB,CACvC,eAAgB,IAAIC,EAAmB,CACrC,WAAY,6BACd,CAAC,EACD,oBAAqB,IAAIC,EAA6B,CACpD,QAAS,CACP,IAAK,IAAIC,EACT,IAAK,IAAIC,CACX,CACF,CAAC,CACH,CAAC,CACH,EAEAC,EAAeN,CAAY,EAWpB,SAASO,EAAMC,EAAQ,CAC5B,OAAOC,EAAc,SAAY,CAC/BH,EAAeN,CAAY,EAE3B,aAAa,QACX,+BACA,SAAS,SAAW,SAAS,MAC/B,EAEA,aAAa,QAAQ,uBAAwBJ,CAAU,EAEvD,IAAMc,EAAU,MAAMC,EAAuB,CAC3C,OAAQ,CAAE,KAAM,UAAW,WAAgCH,CAAQ,EACnE,MAAOf,CACT,CAAC,EAED,SAAS,OAAOiB,EAAQ,SAAS,CAAC,CACpC,CAAC,CACH,CAlBgBE,EAAAL,EAAA,SA6BT,SAASM,GAAoB,CAClC,OAAOJ,EAAc,SAAY,CAC/BH,EAAeN,CAAY,EAE3B,IAAMc,EAAM,WAAW,SAIjBC,EAAS,IAAI,gBAAgBD,EAAI,KAAK,MAAM,CAAC,CAAC,EAEpD,GACEC,EAAO,IAAI,MAAM,GACjB,aAAa,QAAQ,sBAAsB,IAAMnB,EACjD,CAIA,IAAMoB,EAAS,MAAMC,EAAsBF,CAAM,EAEjD,oBAAa,WAAW,sBAAsB,EAG9C,QAAQ,aAAa,KAAM,GAAID,EAAI,SAAWA,EAAI,MAAM,EAGxD,aAAa,QAAQtB,EAAawB,EAAO,QAAQ,KAAK,GAAG,EAElDA,EAAO,OAChB,CAGA,IAAME,EAAM,aAAa,QAAQ1B,CAAW,EAE5C,GAAI0B,EACF,GAAI,CACF,OAAO,MAAMC,EAC+BD,CAC5C,CACF,OAASE,EAAK,CACZ,eAAQ,KAAKA,CAAG,EAChBC,EAAmB,EACZ,IACT,CAGF,OAAO,IACT,CAAC,CACH,CA/CgBT,EAAAC,EAAA,qBAwDT,SAASQ,GAAqB,CACnC,IAAMH,EAAM,aAAa,QAAQ1B,CAAW,EAExC0B,GACFI,EAA8DJ,CAAI,EAGpE,aAAa,WAAW1B,CAAW,CACrC,CARgBoB,EAAAS,EAAA,sBAkBhB,eAAsBE,EAAOC,EAAO,CAClC,IAAMN,EAAM,aAAa,QAAQ1B,CAAW,EAE5C,GAAI,CACF,MAAMgC,EAAM,QAAQ,CACtB,MAAQ,CACFN,GACFI,EAC4CJ,CAC5C,CAEJ,CAEA,aAAa,WAAW1B,CAAW,CACrC,CAdsBoB,EAAAW,EAAA","names":["oauth_client_metadata_default","STORAGE_KEY","SCOPE","oauth_client_metadata_default","STORAGE_NAME","CLIENT_KEY","redirect_uri","isLocalDev","client_id","OAUTH_CONFIG","LocalActorResolver","XrpcHandleResolver","CompositeDidDocumentResolver","PlcDidDocumentResolver","WebDidDocumentResolver","configureOAuth","login","handle","withOAuthLock","authUrl","createAuthorizationUrl","__name","restoreOrFinalize","loc","params","result","finalizeAuthorization","did","getSession","err","clearStoredSession","deleteStoredSession","logout","agent"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-7NKQO6T3.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js new file mode 120000 index 00000000..3e2e6af3 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-A565T3Q3.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js.br new file mode 120000 index 00000000..368ec08b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-A565T3Q3.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js.map new file mode 120000 index 00000000..c0da5210 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A565T3Q3.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-A565T3Q3.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js new file mode 100644 index 00000000..a64eb511 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js @@ -0,0 +1,3 @@ +import{a as d}from"./chunk-BTSSVB7R.js";import{g as c,k as l}from"./chunk-U55EMLDH.js";import{e as r}from"./chunk-IA3NIKPO.js";import{j as o}from"./chunk-XILA3E7E.js";import{a as s,c as p}from"./chunk-75KFZLU6.js";var y={};p(y,{CLASS:()=>m,NAME:()=>f,default:()=>u});var n=class extends d{static{s(this,"JsonStringOutputTransformer")}constructor(){super();let a=this.base(),e={facets:{...a.facets,collection:o(()=>{let t=a.facets.collection();return t.state!=="loaded"?t:{state:"loaded",data:c(t.data,"facets")}}),save:s(async t=>{await a.facets.save(await l(t,"facets",null))},"save")},playlistItems:{...a.playlistItems,collection:o(()=>{let t=a.playlistItems.collection();return t.state!=="loaded"?t:{state:"loaded",data:c(t.data,"playlistItems")}}),save:s(async t=>{await a.playlistItems.save(await l(t,"playlistItems",null))},"save")},settings:{...a.settings,collection:o(()=>{let t=a.settings.collection();return t.state!=="loaded"?t:{state:"loaded",data:c(t.data,"settings")}}),save:s(async t=>{await a.settings.save(await l(t,"settings",null))},"save")},tracks:{...a.tracks,collection:o(()=>{let t=a.tracks.collection();return t.state!=="loaded"?t:{state:"loaded",data:c(t.data,"tracks")}}),save:s(async t=>{await a.tracks.save(await l(t,"tracks",null))},"save")},ready:a.ready};this.facets=e.facets,this.playlistItems=e.playlistItems,this.settings=e.settings,this.tracks=e.tracks,this.ready=e.ready}},u=n,m=n,f="dtos-json";r(f,m);export{u as a,m as b,f as c,y as d}; + +//# sourceMappingURL=./chunk-A6BVPHKK.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js.br new file mode 100644 index 0000000000000000000000000000000000000000..2d4fa0b435deeb51e8c85282afa88f8474b3a7d8 GIT binary patch literal 511 zcmb0>#LDnwPS$UI;qxq)TJ>dL2SwekkhWgxtd;an|GB)uC5Ni^GOKHOfj1?Dg-t++!+E4TYSZErqk@&B^8wlj0= z1PjGA_qol~3>L3nAGA7h4b$ESB?qn)$-j+Se4A0b!}iRUYiDYw)OlsB>TCSaU~%Mc zjp?b+&t6DN93&YuZd)TFOJDucvB(^Xe zb6l+56_&k3*h%B#qr@r^o$uB=(^ndvyR%`%6a|;Cnl91IxJ&0dN;Zd2?8`WI>I$#! zQk^&9r%q0YJec7SD;D_9w*9aDI+L6(86~mHez8|CP1@1Hcl^o2w#aI+GKQxX-yNpD z3wrl(L*Vzbmu}3u8eQ=B`3i~OrHdK2-v4aT!Jc9$@Pi@W`GfFgzIMM3H&@>kuFM7x zOJvrhylFJ>ly??blr349*c8Ya+{KotcU;ltox`EG?E;&6(%uDio?pfPOg-$5RaRST z+rNYHO;K$t1?Q$OO55nB!z^psY`P$@^vcEi9}14i<`l9UUOMs4_tok;VO~F-HeLQN Wxi6WY&uCivo&Td1&%2i=*!=-qruj<% literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js.map new file mode 100644 index 00000000..eb78a940 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-A6BVPHKK.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/transformer/output/string/json/element.js"],"sourcesContent":["import { computed } from \"~/common/signal.js\";\nimport { OutputTransformer } from \"../../base.js\";\nimport {\n decodeJsonCollection,\n saveJsonCollection,\n} from \"~/common/lens.js\";\nimport { defineElement } from \"~/common/element.js\";\n\n/**\n * @import { OutputManagerDeputy } from \"@specs/components/output/types.d.ts\"\n * @import { Facet, PlaylistItem, Setting, Track } from \"~/definitions/types.d.ts\"\n * @import { CollectionName } from \"~/common/self-describing.js\"\n */\n\n/**\n * @extends {OutputTransformer}\n */\nclass JsonStringOutputTransformer extends OutputTransformer {\n constructor() {\n super();\n\n const base = this.base();\n\n /** @type {OutputManagerDeputy} */\n const manager = {\n facets: {\n ...base.facets,\n collection: computed(() => {\n const col = base.facets.collection();\n if (col.state !== \"loaded\") return col;\n /** @type {Facet[]} */\n const data = decodeJsonCollection(col.data, \"facets\");\n return { state: \"loaded\", data };\n }),\n save: async (newFacets) => {\n await base.facets.save(\n /** @type {string} */ (\n await saveJsonCollection(newFacets, \"facets\", null)\n ),\n );\n },\n },\n playlistItems: {\n ...base.playlistItems,\n collection: computed(() => {\n const col = base.playlistItems.collection();\n if (col.state !== \"loaded\") return col;\n /** @type {PlaylistItem[]} */\n const data = decodeJsonCollection(col.data, \"playlistItems\");\n return { state: \"loaded\", data };\n }),\n save: async (newPlaylistItems) => {\n await base.playlistItems.save(\n /** @type {string} */ (\n await saveJsonCollection(newPlaylistItems, \"playlistItems\", null)\n ),\n );\n },\n },\n settings: {\n ...base.settings,\n collection: computed(() => {\n const col = base.settings.collection();\n if (col.state !== \"loaded\") return col;\n /** @type {Setting[]} */\n const data = decodeJsonCollection(col.data, \"settings\");\n return { state: \"loaded\", data };\n }),\n save: async (newSettings) => {\n await base.settings.save(\n /** @type {string} */ (\n await saveJsonCollection(newSettings, \"settings\", null)\n ),\n );\n },\n },\n tracks: {\n ...base.tracks,\n collection: computed(() => {\n const col = base.tracks.collection();\n if (col.state !== \"loaded\") return col;\n /** @type {Track[]} */\n const data = decodeJsonCollection(col.data, \"tracks\");\n return { state: \"loaded\", data };\n }),\n save: async (newTracks) => {\n await base.tracks.save(\n /** @type {string} */ (\n await saveJsonCollection(newTracks, \"tracks\", null)\n ),\n );\n },\n },\n\n // Other\n ready: base.ready,\n };\n\n // Assign manager properties to class\n this.facets = manager.facets;\n this.playlistItems = manager.playlistItems;\n this.settings = manager.settings;\n this.tracks = manager.tracks;\n this.ready = manager.ready;\n }\n}\n\nexport default JsonStringOutputTransformer;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = JsonStringOutputTransformer;\nexport const NAME = \"dtos-json\";\n\ndefineElement(NAME, CLASS);"],"mappings":"sNAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAiBA,IAAMC,EAAN,cAA0CC,CAAkB,CAjB5D,MAiB4D,CAAAC,EAAA,oCAC1D,aAAc,CACZ,MAAM,EAEN,IAAMC,EAAO,KAAK,KAAK,EAGjBC,EAAU,CACd,OAAQ,CACN,GAAGD,EAAK,OACR,WAAYE,EAAS,IAAM,CACzB,IAAMC,EAAMH,EAAK,OAAO,WAAW,EACnC,OAAIG,EAAI,QAAU,SAAiBA,EAG5B,CAAE,MAAO,SAAU,KADbC,EAAqBD,EAAI,KAAM,QAAQ,CACrB,CACjC,CAAC,EACD,KAAMJ,EAAA,MAAOM,GAAc,CACzB,MAAML,EAAK,OAAO,KAEd,MAAMM,EAAmBD,EAAW,SAAU,IAAI,CAEtD,CACF,EANM,OAOR,EACA,cAAe,CACb,GAAGL,EAAK,cACR,WAAYE,EAAS,IAAM,CACzB,IAAMC,EAAMH,EAAK,cAAc,WAAW,EAC1C,OAAIG,EAAI,QAAU,SAAiBA,EAG5B,CAAE,MAAO,SAAU,KADbC,EAAqBD,EAAI,KAAM,eAAe,CAC5B,CACjC,CAAC,EACD,KAAMJ,EAAA,MAAOQ,GAAqB,CAChC,MAAMP,EAAK,cAAc,KAErB,MAAMM,EAAmBC,EAAkB,gBAAiB,IAAI,CAEpE,CACF,EANM,OAOR,EACA,SAAU,CACR,GAAGP,EAAK,SACR,WAAYE,EAAS,IAAM,CACzB,IAAMC,EAAMH,EAAK,SAAS,WAAW,EACrC,OAAIG,EAAI,QAAU,SAAiBA,EAG5B,CAAE,MAAO,SAAU,KADbC,EAAqBD,EAAI,KAAM,UAAU,CACvB,CACjC,CAAC,EACD,KAAMJ,EAAA,MAAOS,GAAgB,CAC3B,MAAMR,EAAK,SAAS,KAEhB,MAAMM,EAAmBE,EAAa,WAAY,IAAI,CAE1D,CACF,EANM,OAOR,EACA,OAAQ,CACN,GAAGR,EAAK,OACR,WAAYE,EAAS,IAAM,CACzB,IAAMC,EAAMH,EAAK,OAAO,WAAW,EACnC,OAAIG,EAAI,QAAU,SAAiBA,EAG5B,CAAE,MAAO,SAAU,KADbC,EAAqBD,EAAI,KAAM,QAAQ,CACrB,CACjC,CAAC,EACD,KAAMJ,EAAA,MAAOU,GAAc,CACzB,MAAMT,EAAK,OAAO,KAEd,MAAMM,EAAmBG,EAAW,SAAU,IAAI,CAEtD,CACF,EANM,OAOR,EAGA,MAAOT,EAAK,KACd,EAGA,KAAK,OAASC,EAAQ,OACtB,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,SAAWA,EAAQ,SACxB,KAAK,OAASA,EAAQ,OACtB,KAAK,MAAQA,EAAQ,KACvB,CACF,EAEOS,EAAQb,EAMFc,EAAQd,EACRe,EAAO,YAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","JsonStringOutputTransformer","OutputTransformer","__name","base","manager","computed","col","decodeJsonCollection","newFacets","saveJsonCollection","newPlaylistItems","newSettings","newTracks","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-A6BVPHKK.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js new file mode 100644 index 00000000..2ee94727 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js @@ -0,0 +1,3 @@ +import{c as o,e as h,f as i}from"./chunk-IA3NIKPO.js";import{a as u,c as g}from"./chunk-75KFZLU6.js";var k={};g(k,{CLASS:()=>p,NAME:()=>d,default:()=>E});var a=class extends o{static{u(this,"AutoTracksOrchestrator")}static NAME="diffuse/orchestrator/auto-queue";async connectedCallback(){this.hasAttribute("group")&&this.broadcast(this.identifier,{}),super.connectedCallback();let e=i(this,"queue-engine-selector"),t=i(this,"repeat-shuffle-engine-selector"),f=i(this,"tracks-selector");await customElements.whenDefined(e.localName),await customElements.whenDefined(t.localName),await customElements.whenDefined(f.localName),this.effect(()=>{let l=f.tracks();this.isLeader().then(async s=>{s&&e.supply({trackIds:l.map(n=>n.id)})})});let r=t.shuffle(),c=e.supplyFingerprint();this.effect(()=>{let l=e.now(),s=e.supplyFingerprint(),n=t.shuffle();this.isLeader().then(m=>{m&&((n!==r||s!==c)&&(r=n,c=s,e.clear({keepManual:!0})),e.fill({amount:10,shuffled:t.shuffle()}),l||e.shift())})})}},E=a,p=a,d="do-auto-queue";h(d,p);export{E as a,p as b,d as c,k as d}; + +//# sourceMappingURL=./chunk-ACJPRFDG.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js.br new file mode 100644 index 0000000000000000000000000000000000000000..d3bf444a586a63028bd4ce351096c06537db5e2e GIT binary patch literal 523 zcmb1^WnoAO)%_l?HlMATC8PGG;fzbSmPK6IX)>d1mY?(V&-p(mvTYHq>+wB3Yw|Y* zuf--ZB5sqGS(QItd~w6Zi(6}2I+|`suRfD$Hqj&?c*1OxE3=Qug?}|GJKD|uJU@O< z)&Fzbvb_9HXiD>LNO?c0r1s~lm*=m?uS@W;e_^q#h+p=o`+E7BUnT4l-kZdSCtUg3aEu{Y<$rJE`(ujd8IQ?+F0y#hxATxqd#n4Z z2+uWnsU542W#`}7vGd=#cPfgLZd~|cdt|HGp5iK}kKg{zy->@!(q86>UX9j+KmWbH ow8)-)b7J$y;Dg`)N!gr@I2AAH?BB5X=0Deeq9Io*?WVc|0Dt`rJpcdz literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js.map new file mode 100644 index 00000000..6b6866cb --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ACJPRFDG.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/orchestrator/auto-queue/element.js"],"sourcesContent":["import { BroadcastableDiffuseElement, defineElement, query } from \"~/common/element.js\";\n\n/**\n * @import {DiffuseElement} from \"~/common/element.js\";\n * @import {SignalReader} from \"~/common/signal.d.ts\";\n * @import {Track} from \"~/definitions/types.d.ts\"\n * @import RepeatShuffleEngine from \"~/components/engine/repeat-shuffle/element.js\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * Update the queue pool whenever tracks have been loaded,\n * or the tracks collection changes.\n */\nclass AutoTracksOrchestrator extends BroadcastableDiffuseElement {\n static NAME = \"diffuse/orchestrator/auto-queue\";\n\n // LIFECYCLE\n\n /**\n * @override\n */\n async connectedCallback() {\n // Broadcast if needed\n if (this.hasAttribute(\"group\")) {\n this.broadcast(this.identifier, {});\n }\n\n // Super\n super.connectedCallback();\n\n /** @type {import(\"~/components/engine/queue/element.js\").CLASS} */\n const queue = query(this, \"queue-engine-selector\");\n\n /** @type {RepeatShuffleEngine} */\n const repeatShuffle = query(this, \"repeat-shuffle-engine-selector\");\n\n /** @type {DiffuseElement & { tracks: SignalReader }} */\n const tracksElement = query(this, \"tracks-selector\");\n\n // When defined\n await customElements.whenDefined(queue.localName);\n await customElements.whenDefined(repeatShuffle.localName);\n await customElements.whenDefined(tracksElement.localName);\n\n // Watch tracks\n this.effect(() => {\n const tracks = tracksElement.tracks();\n\n this.isLeader().then(async (isLeader) => {\n if (!isLeader) return;\n queue.supply({ trackIds: tracks.map((t) => t.id) });\n });\n });\n\n // Automatically fill queue\n let lastShuffle = repeatShuffle.shuffle();\n let lastFingerprint = queue.supplyFingerprint();\n\n this.effect(() => {\n const trigger = queue.now();\n const fingerprint = queue.supplyFingerprint();\n const shuffled = repeatShuffle.shuffle();\n\n this.isLeader().then((isLeader) => {\n if (!isLeader) return;\n\n // Clear non-manual items from the queue\n // when 'shuffle' gets turned off or on;\n // or when queue supply changes.\n if (shuffled !== lastShuffle || fingerprint !== lastFingerprint) {\n lastShuffle = shuffled;\n lastFingerprint = fingerprint;\n queue.clear({ keepManual: true });\n }\n\n queue.fill({ amount: 10, shuffled: repeatShuffle.shuffle() });\n\n // Insert now-playing track if there's none\n if (!trigger) queue.shift();\n });\n });\n }\n}\n\nexport default AutoTracksOrchestrator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = AutoTracksOrchestrator;\nexport const NAME = \"do-auto-queue\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"qGAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAiBA,IAAMC,EAAN,cAAqCC,CAA4B,CAjBjE,MAiBiE,CAAAC,EAAA,+BAC/D,OAAO,KAAO,kCAOd,MAAM,mBAAoB,CAEpB,KAAK,aAAa,OAAO,GAC3B,KAAK,UAAU,KAAK,WAAY,CAAC,CAAC,EAIpC,MAAM,kBAAkB,EAGxB,IAAMC,EAAQC,EAAM,KAAM,uBAAuB,EAG3CC,EAAgBD,EAAM,KAAM,gCAAgC,EAG5DE,EAAgBF,EAAM,KAAM,iBAAiB,EAGnD,MAAM,eAAe,YAAYD,EAAM,SAAS,EAChD,MAAM,eAAe,YAAYE,EAAc,SAAS,EACxD,MAAM,eAAe,YAAYC,EAAc,SAAS,EAGxD,KAAK,OAAO,IAAM,CAChB,IAAMC,EAASD,EAAc,OAAO,EAEpC,KAAK,SAAS,EAAE,KAAK,MAAOE,GAAa,CAClCA,GACLL,EAAM,OAAO,CAAE,SAAUI,EAAO,IAAKE,GAAMA,EAAE,EAAE,CAAE,CAAC,CACpD,CAAC,CACH,CAAC,EAGD,IAAIC,EAAcL,EAAc,QAAQ,EACpCM,EAAkBR,EAAM,kBAAkB,EAE9C,KAAK,OAAO,IAAM,CAChB,IAAMS,EAAUT,EAAM,IAAI,EACpBU,EAAcV,EAAM,kBAAkB,EACtCW,EAAWT,EAAc,QAAQ,EAEvC,KAAK,SAAS,EAAE,KAAMG,GAAa,CAC5BA,KAKDM,IAAaJ,GAAeG,IAAgBF,KAC9CD,EAAcI,EACdH,EAAkBE,EAClBV,EAAM,MAAM,CAAE,WAAY,EAAK,CAAC,GAGlCA,EAAM,KAAK,CAAE,OAAQ,GAAI,SAAUE,EAAc,QAAQ,CAAE,CAAC,EAGvDO,GAAST,EAAM,MAAM,EAC5B,CAAC,CACH,CAAC,CACH,CACF,EAEOY,EAAQf,EAMFgB,EAAQhB,EACRiB,EAAO,gBAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","AutoTracksOrchestrator","BroadcastableDiffuseElement","__name","queue","query","repeatShuffle","tracksElement","tracks","isLeader","t","lastShuffle","lastFingerprint","trigger","fingerprint","shuffled","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-ACJPRFDG.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js new file mode 120000 index 00000000..d9ffaf7b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-AHHIFJPO.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js.br new file mode 120000 index 00000000..dc33df18 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-AHHIFJPO.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js.map new file mode 120000 index 00000000..bb813406 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AHHIFJPO.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-AHHIFJPO.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js new file mode 100644 index 00000000..4356d105 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js @@ -0,0 +1,3 @@ +import{b as i,e as n}from"./chunk-IA3NIKPO.js";import{a as s,c as b}from"./chunk-75KFZLU6.js";var u={};b(u,{CLASS:()=>a,NAME:()=>o,default:()=>f});var t=class extends i{static{s(this,"ScrobblesConfigurator")}static NAME="diffuse/configurator/scrobbles";async nowPlaying(r){return await Promise.all(this.#r().map(e=>e.nowPlaying(r)))}async scrobble(r,e,c){return await Promise.all(this.#r().map(l=>l.scrobble(r,e,c)))}scrobblers(){return Array.from(this.root().children).flatMap(r=>"isAuthenticated"in r&&"nowPlaying"in r?[r]:[])}#r(){return this.scrobblers().filter(r=>r.isAuthenticated())}},f=t,a=t,o="dc-scrobbles";n(o,a);export{f as a,a as b,o as c,u as d}; + +//# sourceMappingURL=./chunk-AQ5ACXQC.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js.br new file mode 100644 index 0000000000000000000000000000000000000000..2a066b2b799f961da2ae2d6aa1ddc42c077a1db2 GIT binary patch literal 365 zcmb21!o=_-%J=`@JrY?4n-xu!MX%Z#H(i~%XX$RnycXu!N$354uXxVxdor6 zZ_+!ZqT_v6M3A4~)+Hw>Y0q&P!LR!}7O1K&nOn;ESV{Enjt{YSt?$gSwYJ%3AwG5K zYDIyGtuurKyFVYV_E+D|J#B{hogVio&X4}tou?P6f#IxwSl6xx{m3>b+%uD^~66 zeO7W+?Dvx3cyZo;Q)18cbo&YXIdo|v_u^ZZmNCt4`@LGiw5MCFU1w@@$doCc8(vQI zX_NF&lv`kEs$}=v=8f1fqaEj#8U9dSQeL2w{Jf`ob!yC>vp0ifjFj28Y?*y;Z+?vA zVsGK7vLik|7yi7Bt^Ip*&pMm^pC(K`o+{ik$)lxNCug$Y+wfzR91}d*HDonBC+}GP ceM2(Wg!Rkrt2IfwIk07QCVeOs3Ug-w0EPjtvH$=8 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js.map new file mode 100644 index 00000000..c794ce31 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AQ5ACXQC.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/configurator/scrobbles/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\n\n/**\n * @import {Track} from \"~/definitions/types.d.ts\"\n * @import {ScrobbleActions, ScrobbleElement} from \"@specs/components/supplement/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ScrobbleActions}\n */\nclass ScrobblesConfigurator extends DiffuseElement {\n static NAME = \"diffuse/configurator/scrobbles\";\n\n // SCROBBLE ACTIONS\n\n /**\n * @param {Track} track\n */\n async nowPlaying(track) {\n return await Promise.all(\n this.#activeScrobblers().map((s) => s.nowPlaying(track)),\n );\n }\n\n /**\n * @param {Track} track\n * @param {number} startedAt Unix timestamp in milliseconds\n * @param {{ duration?: number }} [options] duration in milliseconds\n */\n async scrobble(track, startedAt, options) {\n return await Promise.all(\n this.#activeScrobblers().map((s) => s.scrobble(track, startedAt, options)),\n );\n }\n\n // MISC\n\n /**\n * All child scrobble elements, regardless of authentication state.\n *\n * @returns {ScrobbleElement[]}\n */\n scrobblers() {\n return Array.from(this.root().children).flatMap((el) => {\n if (!(\"isAuthenticated\" in el && \"nowPlaying\" in el)) return [];\n return [/** @type {ScrobbleElement} */ (/** @type {unknown} */ (el))];\n });\n }\n\n /**\n * Child scrobble elements that are currently authenticated.\n *\n * @returns {ScrobbleElement[]}\n */\n #activeScrobblers() {\n return this.scrobblers().filter((s) => s.isAuthenticated());\n }\n}\n\nexport default ScrobblesConfigurator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = ScrobblesConfigurator;\nexport const NAME = \"dc-scrobbles\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"8FAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAcA,IAAMC,EAAN,cAAoCC,CAAe,CAdnD,MAcmD,CAAAC,EAAA,8BACjD,OAAO,KAAO,iCAOd,MAAM,WAAWC,EAAO,CACtB,OAAO,MAAM,QAAQ,IACnB,KAAKC,GAAkB,EAAE,IAAKC,GAAMA,EAAE,WAAWF,CAAK,CAAC,CACzD,CACF,CAOA,MAAM,SAASA,EAAOG,EAAWC,EAAS,CACxC,OAAO,MAAM,QAAQ,IACnB,KAAKH,GAAkB,EAAE,IAAKC,GAAMA,EAAE,SAASF,EAAOG,EAAWC,CAAO,CAAC,CAC3E,CACF,CASA,YAAa,CACX,OAAO,MAAM,KAAK,KAAK,KAAK,EAAE,QAAQ,EAAE,QAASC,GACzC,oBAAqBA,GAAM,eAAgBA,EAC1C,CAAyDA,CAAI,EADP,CAAC,CAE/D,CACH,CAOAJ,IAAoB,CAClB,OAAO,KAAK,WAAW,EAAE,OAAQC,GAAMA,EAAE,gBAAgB,CAAC,CAC5D,CACF,EAEOI,EAAQT,EAMFU,EAAQV,EACRW,EAAO,eAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","ScrobblesConfigurator","DiffuseElement","__name","track","#activeScrobblers","s","startedAt","options","el","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-AQ5ACXQC.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ARPMZXXD.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ARPMZXXD.js new file mode 100644 index 00000000..b59c615c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ARPMZXXD.js @@ -0,0 +1,10 @@ +import{a as L,b as R,c as D}from"./chunk-RW73GFJN.js";import{a as C,b as $,c as I,d as U,e as b}from"./chunk-QWRQDER6.js";import{c as w}from"./chunk-VQAZGKWE.js";import{a as g}from"./chunk-BD6UIPEI.js";import{a as x}from"./chunk-TVBOGSPT.js";import{m as H}from"./chunk-XILA3E7E.js";import{a}from"./chunk-75KFZLU6.js";var P=!1;"serviceWorker"in navigator&&navigator.serviceWorker.addEventListener("controllerchange",()=>{P=!0});function N(e){let t=new URL(document.location.href),o=t.searchParams.get("id"),l=t.searchParams.get("cid"),d=t.searchParams.get("name"),p=t.searchParams.get("uri"),c=t.searchParams.get("path"),u=document.querySelector("#container");if(!u)throw new Error("Container not found");let n=u,v=null,s=null;H(()=>{let r;if(c)r={$type:e.$type,id:w(),name:"temporary",uri:`diffuse://${c}`},s="path";else if(p)r={$type:e.$type,id:w(),name:"temporary",uri:p},s="uri";else{let h=e.source().collection();if(h.state==="error")return f(n,`Failed to load ${e.label.toLowerCase()}`);if(h.state!=="loaded")return;let m=h.data;o?(r=m.find(i=>i.id===o),s="id"):l?(r=m.find(i=>i.cid===l),s="cid"):d&&(r=m.find(i=>i.name===d),s="name")}if(s){if(!r)return f(n,`${e.label} not found`)}else return f(n,"No loader specified");k(r).catch(y=>{P||f(n,`Failed to load URI: ${r.uri}`,{context:y,throw:!0})}).then(()=>{r.cid!==v&&(v=r.cid??null,e.render(r))})})}a(N,"createLoader");async function T(e){let t=x(e);switch(t.scheme){case"at":return A(e);case"diffuse":return E(e.replace(/^diffuse:\/\//,""));case"http":case"https":return E(e);default:throw new Error(`Unsupported scheme: ${t.scheme}`)}}a(T,"loadURI");async function k(e){if(!e.html&&e.uri){let t=await T(e.uri),o=await g(85,new TextEncoder().encode(t));e.html=t,e.cid=o}return e}a(k,"ensureHTML");function f(e,t,o){if(document.querySelector("#diffuse-loader")?.classList.add("loaded"),e.classList.add("has-loaded"),e.innerHTML=` + + `,o?.throw)throw o.context??new Error(t)}a(f,"renderError");async function A(e){let t=e.replace(/at:\/\//,"").split("/"),[o,l,d]=t,c=await new C({handleResolver:new b({serviceUrl:"https://public.api.bsky.app"}),didDocumentResolver:new $({methods:{plc:new I,web:new U}})}).resolve(o),u=new R({handler:L({service:c.pds})}),{value:n}=await D(u.get("com.atproto.repo.getRecord",{params:{repo:c.did,collection:l,rkey:d}}));return n.html?n.html:n.uri?T(n.uri):""}a(A,"atprotoLoader");async function E(e){return fetch(e).then(t=>t.text())}a(E,"httpLoader");export{N as a,T as b,k as c,f as d}; + +//# sourceMappingURL=./chunk-ARPMZXXD.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ARPMZXXD.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ARPMZXXD.js.br new file mode 100644 index 0000000000000000000000000000000000000000..5e2809858932e8596a8d3a36bf0fe8732974e26b GIT binary patch literal 1581 zcmb2%&%^NK{IYM~_s;3Kv}ES-#U{}%Wm%=0mPRvLK9g>CKk;_+pRMuD+d8&)b9TP; z`0(xYnRhS6Q{ETY8vB_nl=C!K$zInfrV=Qb)AP*8_kdO8F8S%5_ttJnNxpmdcbsvP zkJWpRzk-hHv-MWbwEZ=UC4Bn!{vYwqmu9r4w^qMl`?T|!@d}>zC0q8?$nKpJ-;=cG z#0I|VC;Iy8_Uqp5i~Df;gW>wGFDw82eD?FvvRS>;w(BqV4_|*i|L5ndb>Ba~efCdf zhew4wN7{Us^6B>P?A4iHb)DXP<71G~joae;u2n5F(bRfvEYZu(eyxN@a_0lJz)4r9 zuKe0{DfKG{jqcQqJu9x<`en0gdF9;1h_sqa+k#bBTO4(L z#6S1XUpnnGoBfo9OHOb$Uz(lvde-OU@S=4b%|~}tuI#QnD;aX{SLNfNjxK5S>qYF@ zz9;iu<)#E``hGZBoqqC6$n|XP-ZxIK3)(hcoe+BUSe9_l1{3WZt&J^H9aL^f=)N>P zYs2AS;yb%1^WwYORi_V$&f2@+#Lrnq9@CF-&Z*yaEhwK;r}W_QO2e5t(nn>}*Pq>0 z$lmMGF-c1##%0$6FYy$G`5zd)%m0OFW)a>FclB}V=_BDihre8@sZx3 zs0#6jCr%x+IQd1B!{XQ$-Q2a{NNKwHJb9TpitewTZ8~v1Ms?O5QQ=z~wyn5adg{oM zB_&65Bsc5bUfvdZBKgwoDcg=+YDuwNYP?Fa@2|%;-t=?z|2Mrpc7CyR-rKEG(|5f% zb|K78daGd#_td@**N$1W6`a4Syl8S)Sxy)`dx>hylZPAjX>wiMF*)m)l2yqhJ0{8G z)_bRSOxjSABf0TsSe5j>fTKYT+k%>#-_KbcG5e&OU?zvZi6v*J?T;$WUyHamrU%cp zS3LJ{|D5o~xV6_lymrnxA^svifvel4H?N!gg;(pU z)O>gI&a?9!4PRe%Vc68nJoUBHFZQQVVrtGC+PStqe!%|LRpI0k^R0&Bq57svG@VnW zm$hx2k~H05LDqt(a?MTQbC(z^WO0=2UCCm6aS1oi6{DkVPBm(;-rTzCd_zFpM2JD^ z!Yz;6{2Tfo?5@?4wr*LG`%dxLd>!xqf?SjM#5PA=Z z7j0Z4PaU+HuAuZgg(ljSvM;q7>bdj+Z+W!pZ7e|fjpfR$Nh=Ty*GxM%@GF_1{&yo*oXWe|fz5x#|N~JGV}sBg?9dT5jxr|NR30 zf%3`i`{q1Jx}$$sqWOZEC&RSzm9emt1g*uPicnf=$~ca;-mciiAMUUX>l=Gbb- zCQpaXTQfgKpFgUhA^fI&n|wn5MP9{Y^JJ6u^Cb$&!(fMKE!CJn=51ZSBKHWd$z-E2mQkC27cAZSY>whz3a>)#xYNPRV1Tg_qB${dPSXk8PqDh`nkqg{iZe<#jX7I z3+@>)y^R+?D0T1M=8rs|mDsO74vK4 {\n swControllerChanging = true;\n });\n}\n\n/**\n * @import {SignalReader} from \"~/common/signal.d.ts\"\n */\n\n/**\n * @typedef {{ html?: string; uri?: string; cid?: string; id: string; name: string; $type: string }} LoadableItem\n */\n\n/**\n * @typedef {object} LoaderConfig\n * @property {string} $type - The atproto $type\n * @property {string} label - Human-readable label for error messages (e.g. \"Facet\", \"Theme\")\n * @property {() => { collection: SignalReader<{ state: \"loading\" } | { state: \"loaded\"; data: LoadableItem[] } | { state: \"error\" }> }} source - The collection source\n * @property {(item: LoadableItem) => void} render - Renders the loaded item\n */\n\n/**\n * Sets up the full loader effect: reads URL params, resolves the item\n * from the collection or creates a temporary one, ensures HTML is loaded,\n * and calls the render callback.\n *\n * @param {LoaderConfig} config\n */\nexport function createLoader(config) {\n const docUrl = new URL(document.location.href);\n\n const id = docUrl.searchParams.get(\"id\");\n const cid = docUrl.searchParams.get(\"cid\");\n const name = docUrl.searchParams.get(\"name\");\n const uri = docUrl.searchParams.get(\"uri\");\n const path = docUrl.searchParams.get(\"path\");\n\n const containerNull = document.querySelector(\"#container\");\n if (!containerNull) throw new Error(\"Container not found\");\n\n const container = /** @type {HTMLDivElement} */ (containerNull);\n\n /** @type {string | null} */\n let loadedCid = null;\n\n /** @type {string | null} */\n let loader = null;\n\n effect(() => {\n /** @type {LoadableItem | undefined} */\n let item = undefined;\n\n if (path) {\n item = {\n $type: config.$type,\n id: TID.now(),\n name: \"temporary\",\n uri: `diffuse://${path}`,\n };\n\n loader = \"path\";\n } else if (uri) {\n item = {\n $type: config.$type,\n id: TID.now(),\n name: \"temporary\",\n uri,\n };\n\n loader = \"uri\";\n } else {\n const source = config.source();\n const col = source.collection();\n if (col.state === \"error\") {\n return renderError(container, `Failed to load ${config.label.toLowerCase()}`);\n }\n if (col.state !== \"loaded\") return;\n const collection = col.data;\n\n if (id) {\n item = collection.find((c) => c.id === id);\n loader = \"id\";\n } else if (cid) {\n item = collection.find((c) => c.cid === cid);\n loader = \"cid\";\n } else if (name) {\n item = collection.find((c) => c.name === name);\n loader = \"name\";\n }\n }\n\n if (!loader) {\n return renderError(container, \"No loader specified\");\n } else if (!item) {\n return renderError(container, `${config.label} not found`);\n }\n\n // Make sure HTML is loaded when a URI is specified\n ensureHTML(item).catch((err) => {\n if (swControllerChanging) return;\n renderError(container, `Failed to load URI: ${item.uri}`, {\n context: err,\n throw: true,\n });\n }).then(() => {\n if (item.cid === loadedCid) return;\n loadedCid = item.cid ?? null;\n config.render(item);\n })\n });\n}\n\n/**\n * @param {string} uri\n */\nexport async function loadURI(uri) {\n const u = URI.parse(uri);\n\n switch (u.scheme) {\n case \"at\":\n return atprotoLoader(uri);\n case \"diffuse\":\n return httpLoader(uri.replace(/^diffuse:\\/\\//, \"\"));\n case \"http\":\n case \"https\":\n return httpLoader(uri);\n default:\n throw new Error(`Unsupported scheme: ${u.scheme}`);\n }\n}\n\n/**\n * Ensures the item has HTML loaded. If it has a URI but no HTML,\n * fetches the HTML and computes the CID.\n *\n * @template {{ html?: string; uri?: string; cid?: string }} T\n * @param {T} item\n * @returns {Promise}\n */\nexport async function ensureHTML(item) {\n if (!item.html && item.uri) {\n const html = await loadURI(item.uri);\n const cid = await CID.create(0x55, new TextEncoder().encode(html));\n\n item.html = html;\n item.cid = cid;\n }\n\n return item;\n}\n\n/**\n * @param {HTMLElement} container\n * @param {string} error\n * @param {{ context?: Error; throw?: boolean }} [options]\n */\nexport function renderError(container, error, options) {\n document.querySelector(\"#diffuse-loader\")?.classList.add(\"loaded\");\n container.classList.add(\"has-loaded\");\n container.innerHTML = `\n \n `;\n\n if (options?.throw) {\n throw options.context ?? new Error(error);\n }\n}\n\n////////////////////////////////////////////\n// 🛠️ | LOADERS\n////////////////////////////////////////////\n\n/**\n * @param {string} uri\n * @returns {Promise}\n */\nasync function atprotoLoader(uri) {\n const parts = uri.replace(/at:\\/\\//, \"\").split(\"/\");\n const [repo, collection, rkey] = parts;\n\n const resolver = new LocalActorResolver({\n handleResolver: new XrpcHandleResolver({\n serviceUrl: \"https://public.api.bsky.app\",\n }),\n didDocumentResolver: new CompositeDidDocumentResolver({\n methods: {\n plc: new PlcDidDocumentResolver(),\n web: new WebDidDocumentResolver(),\n },\n }),\n });\n\n const identity = await resolver.resolve(\n /** @type {import(\"@atcute/lexicons/syntax\").ActorIdentifier} */ (repo),\n );\n\n const rpc = new Client({\n handler: simpleFetchHandler({ service: identity.pds }),\n });\n\n /** @type {any} */\n const { value } = await ok(\n /** @type {any} */ (rpc).get(\"com.atproto.repo.getRecord\", {\n params: { repo: identity.did, collection, rkey },\n }),\n );\n\n if (value.html) {\n return value.html;\n }\n\n if (value.uri) {\n return loadURI(value.uri);\n }\n\n return \"\";\n}\n\n/**\n * @param {string} url\n * @returns {Promise}\n */\nasync function httpLoader(url) {\n return fetch(url).then((res) => res.text());\n}\n"],"mappings":"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","names":["swControllerChanging","createLoader","config","docUrl","id","cid","name","uri","path","containerNull","container","loadedCid","loader","effect","item","now","col","renderError","collection","c","ensureHTML","err","__name","loadURI","u","parse","atprotoLoader","httpLoader","html","create","error","options","parts","repo","rkey","identity","LocalActorResolver","XrpcHandleResolver","CompositeDidDocumentResolver","PlcDidDocumentResolver","WebDidDocumentResolver","rpc","Client","simpleFetchHandler","value","ok","url","res"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-ARPMZXXD.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js new file mode 100644 index 00000000..9f5111cb --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js @@ -0,0 +1,3 @@ +import{b as s,e as c}from"./chunk-IA3NIKPO.js";import{a as o,c as d}from"./chunk-75KFZLU6.js";var a={};d(a,{CLASS:()=>n,NAME:()=>u,default:()=>i});var t=class extends s{static{o(this,"UploadConfigurator")}static NAME="diffuse/configurator/upload";static WORKER_URL="components/configurator/upload/worker.js";constructor(){super();let e=this.workerProxy();this.consult=e.consult,this.upload=e.upload,this.delete=e.delete,this.createSource=e.createSource}dependencies(){return this.uploaders()}uploaders(){return Object.fromEntries(Array.from(this.children).map(e=>{let r=e;return[r.SCHEME,r]}))}},i=t,n=t,u="dc-upload";c(u,n);export{i as a,n as b,u as c,a as d}; + +//# sourceMappingURL=./chunk-AS4LJDUA.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js.br new file mode 100644 index 0000000000000000000000000000000000000000..48643327dbaa2b18066643f13129ecbdf43c53e7 GIT binary patch literal 382 zcmb21%Ea&_=Ip<}dpPtxmhD#eTc*Bh%FgcAsrdj?`(UekSi7 z7EwoT&az&2a;c)A!$av#ZvICm<()h#4RWir%;J`Wu4OyfbNl%1Zt>&G!>3=>2w2GE zb)v~BBVqOFfHw|%6MXO=D&}3Ynq$jEHAb|Qn3DW zpZbrJ%$$}UQQL0rXRWe-ZM`P?GFPI`;;&Q0EvMc1FP>@q=4;S}txEg)7C5$k*?j!; z?8|>=pZ`7Ec*!Y0@5$?CNnC0B+W$5At$*1suIfbF$CfvPj~#V!UsTv$qiVnV)3@*a zg$LcfzB1`tkuIb2kdNnza1CR-RD-ae%X>DNvn!S=duu(l+$#0zKwOLWqbKXWHGV9b zTx7B3hF15jeVXee*|xpi`{(heGd~|6EVxvWTVXoYc-h9u{?b)fT3zh-|9VySJ>!3k u{GaNFdqgCXSegZeF1c+zY!|N6_|WP9A`TfRp`P2VUsh-~gxwOk$OHgQa=$D9 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js.map new file mode 100644 index 00000000..6ade75cf --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-AS4LJDUA.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/configurator/upload/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\n\n/**\n * @import {ProxiedActions, Tunnel} from \"~/common/worker.d.ts\"\n * @import {UploadElement} from \"@specs/components/upload/types.d.ts\"\n * @import {Actions} from \"@specs/components/configurator/upload/types.d.ts\"\n */\n\n/**\n * @typedef {{ element: UploadElement, tunnel: Tunnel, worker: Worker | SharedWorker }} Upload\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n */\nclass UploadConfigurator extends DiffuseElement {\n static NAME = \"diffuse/configurator/upload\";\n static WORKER_URL = \"components/configurator/upload/worker.js\";\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n const proxy = this.workerProxy();\n\n this.consult = proxy.consult;\n this.upload = proxy.upload;\n this.delete = proxy.delete;\n this.createSource = proxy.createSource;\n }\n\n // WORKERS\n\n /**\n * @override\n */\n dependencies() {\n return this.uploaders();\n }\n\n uploaders() {\n return Object.fromEntries(\n Array.from(this.children).map((element) => {\n const upload = /** @type {UploadElement} */ (element);\n return [upload.SCHEME, upload];\n }),\n );\n }\n}\n\nexport default UploadConfigurator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = UploadConfigurator;\nexport const NAME = \"dc-upload\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"8FAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAmBA,IAAMC,EAAN,cAAiCC,CAAe,CAnBhD,MAmBgD,CAAAC,EAAA,2BAC9C,OAAO,KAAO,8BACd,OAAO,WAAa,2CAEpB,aAAc,CACZ,MAAM,EAGN,IAAMC,EAAQ,KAAK,YAAY,EAE/B,KAAK,QAAUA,EAAM,QACrB,KAAK,OAASA,EAAM,OACpB,KAAK,OAASA,EAAM,OACpB,KAAK,aAAeA,EAAM,YAC5B,CAOA,cAAe,CACb,OAAO,KAAK,UAAU,CACxB,CAEA,WAAY,CACV,OAAO,OAAO,YACZ,MAAM,KAAK,KAAK,QAAQ,EAAE,IAAKC,GAAY,CACzC,IAAMC,EAAuCD,EAC7C,MAAO,CAACC,EAAO,OAAQA,CAAM,CAC/B,CAAC,CACH,CACF,CACF,EAEOC,EAAQN,EAMFO,EAAQP,EACRQ,EAAO,YAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","UploadConfigurator","DiffuseElement","__name","proxy","element","upload","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-AS4LJDUA.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js new file mode 100644 index 00000000..01915a87 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js @@ -0,0 +1,3 @@ +import{b as s,e as r}from"./chunk-IA3NIKPO.js";import{a as e,c as n}from"./chunk-75KFZLU6.js";var m={};n(m,{CLASS:()=>a,NAME:()=>o,default:()=>c});var t=class extends s{static{e(this,"MusicBrainzArtwork")}static NAME="diffuse/artwork/musicbrainz";static WORKER_URL="components/artwork/musicbrainz/worker.js";constructor(){super();let i=this.workerProxy();this.get=i.get}},c=t,a=t,o="da-musicbrainz";r(o,t);export{c as a,a as b,o as c,m as d}; + +//# sourceMappingURL=./chunk-BBP5KHWD.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js.br new file mode 100644 index 0000000000000000000000000000000000000000..0cbc76591b36e98abb23bd390ab49ca47219bd4e GIT binary patch literal 283 zcmb2%#mMkvj(z=mBSAHfb<3XIstc@4DtmK=nMdQpfuJ{ww5z`F-O?!PTe0kBg~^ha zX8n5c6E%x}i7j#Qk)G+n>FHoBU2Yn8>0p4N@%@+aGCukG>)yR*D|2$?nz(|k>%jAA zpI2W#|9X0>$miyEU-g=2j>RRlAHHl!l-VwHNAAv?IRXsA2J1_@#e)7ko2&SHv${&A zOHr>`E!!70?+*n>mi|)k>sBb!cwgZ0YWjp#)7GVTnoUutx?%O^b3kxoUDfXDJyw-} zsw?-ntzx-%bxE|n@1+8XlBhd3pNf7n?vTuHn`@*OqpK=rWWroiCeNOFbO(og+q6Yb r|Gu{hFks~j=9sW5XnwTZW`-cWEkRiqZg?)Rn5vi|`r%IKTNi!+ZqI}V literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js.map new file mode 100644 index 00000000..58f80ce5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BBP5KHWD.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/artwork/musicbrainz/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\n\n/**\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {Actions} from \"@specs/components/artwork/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n */\nclass MusicBrainzArtwork extends DiffuseElement {\n static NAME = \"diffuse/artwork/musicbrainz\";\n static WORKER_URL = \"components/artwork/musicbrainz/worker.js\";\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n const p = this.workerProxy();\n\n this.get = p.get;\n }\n}\n\nexport default MusicBrainzArtwork;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = MusicBrainzArtwork;\nexport const NAME = \"da-musicbrainz\";\n\ndefineElement(NAME, MusicBrainzArtwork);\n"],"mappings":"8FAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAcA,IAAMC,EAAN,cAAiCC,CAAe,CAdhD,MAcgD,CAAAC,EAAA,2BAC9C,OAAO,KAAO,8BACd,OAAO,WAAa,2CAEpB,aAAc,CACZ,MAAM,EAGN,IAAMC,EAAI,KAAK,YAAY,EAE3B,KAAK,IAAMA,EAAE,GACf,CACF,EAEOC,EAAQJ,EAMFK,EAAQL,EACRM,EAAO,iBAEpBC,EAAcD,EAAMN,CAAkB","names":["element_exports","__export","CLASS","NAME","element_default","MusicBrainzArtwork","DiffuseElement","__name","p","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-BBP5KHWD.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js new file mode 120000 index 00000000..ad9f487a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-BD6UIPEI.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js.br new file mode 120000 index 00000000..5dff98e9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-BD6UIPEI.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js.map new file mode 120000 index 00000000..ca02af41 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BD6UIPEI.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-BD6UIPEI.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js new file mode 100644 index 00000000..a6c36ad7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js @@ -0,0 +1,3 @@ +import{a as n}from"./chunk-6XPFWKSW.js";import{b as o}from"./chunk-GSVEIULU.js";import{e as t}from"./chunk-C5GF5WSP.js";import{I as a,a as s,f}from"./chunk-PHFIOWBZ.js";import{a as i,d as h}from"./chunk-75KFZLU6.js";var p=h(f());var r=(0,p.default)("music-metadata:parser:ID3"),d=class extends a{static{i(this,"AbstractID3Parser")}constructor(){super(...arguments),this.id3parser=new n}static async startsWithID3v2Header(e){return(await e.peekToken(t)).fileIdentifier==="ID3"}async parse(){try{await this.parseID3v2()}catch(e){if(e instanceof s)r("End-of-stream");else throw e}}finalize(){}async parseID3v2(){await this.tryReadId3v2Headers(),r("End of ID3v2 header, go to MPEG-parser: pos=%s",this.tokenizer.position),await this.postId3v2Parse(),this.options.skipPostHeaders&&this.metadata.hasAny()?this.finalize():(await new o(this.metadata,this.tokenizer,this.options).parse(),this.finalize())}async tryReadId3v2Headers(){if((await this.tokenizer.peekToken(t)).fileIdentifier==="ID3")return r("Found ID3v2 header, pos=%s",this.tokenizer.position),await this.id3parser.parse(this.metadata,this.tokenizer,this.options),this.tryReadId3v2Headers()}};export{d as a}; + +//# sourceMappingURL=./chunk-BF2A4D4Q.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js.br new file mode 100644 index 0000000000000000000000000000000000000000..6d71e895ed60e272a064e500d23c4c95c0eee942 GIT binary patch literal 518 zcmb2{W?^^|rT72up0X8h&k1BzJv069>fy}V6k@D%E_3@T$?Aprcb2TqJ(tPfBG&PA z-8!2ItY>#Va!Q)>aNo8UEo{6B+e|f=$d#D|%?3~q?KE401xP)xj9*b)szV8$A z4eKm--%mFQyS|poTjk}oU1E8kqNd0yrUWExGGi6{{NQ8Dj>moJhh^RNWV|)%Z?4%a zcd1R;fANvVb&L}|Lb09KX%rdw{@$anq!P$=&R~q z{3|b;hAg#EYus3#bs;Y%X|bZEVxCvZiRB7c)D|D+h;-y=@0u6NI47i-k?&?dt3>;U gI}c1&UyC?3C+q&C;`q*wF8}Hq)$ literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js.map new file mode 100644 index 00000000..f46ee849 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BF2A4D4Q.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js"],"sourcesContent":["import { EndOfStreamError } from 'strtok3';\nimport initDebug from 'debug';\nimport { ID3v2Header } from './ID3v2Token.js';\nimport { ID3v2Parser } from './ID3v2Parser.js';\nimport { ID3v1Parser } from '../id3v1/ID3v1Parser.js';\nimport { BasicParser } from '../common/BasicParser.js';\nconst debug = initDebug('music-metadata:parser:ID3');\n/**\n * Abstract parser which tries take ID3v2 and ID3v1 headers.\n */\nexport class AbstractID3Parser extends BasicParser {\n constructor() {\n super(...arguments);\n this.id3parser = new ID3v2Parser();\n }\n static async startsWithID3v2Header(tokenizer) {\n return (await tokenizer.peekToken(ID3v2Header)).fileIdentifier === 'ID3';\n }\n async parse() {\n try {\n await this.parseID3v2();\n }\n catch (err) {\n if (err instanceof EndOfStreamError) {\n debug(\"End-of-stream\");\n }\n else {\n throw err;\n }\n }\n }\n finalize() {\n return;\n }\n async parseID3v2() {\n await this.tryReadId3v2Headers();\n debug('End of ID3v2 header, go to MPEG-parser: pos=%s', this.tokenizer.position);\n await this.postId3v2Parse();\n if (this.options.skipPostHeaders && this.metadata.hasAny()) {\n this.finalize();\n }\n else {\n const id3v1parser = new ID3v1Parser(this.metadata, this.tokenizer, this.options);\n await id3v1parser.parse();\n this.finalize();\n }\n }\n async tryReadId3v2Headers() {\n const id3Header = await this.tokenizer.peekToken(ID3v2Header);\n if (id3Header.fileIdentifier === 'ID3') {\n debug('Found ID3v2 header, pos=%s', this.tokenizer.position);\n await this.id3parser.parse(this.metadata, this.tokenizer, this.options);\n return this.tryReadId3v2Headers();\n }\n }\n}\n"],"mappings":"wNACA,IAAAA,EAAsB,OAKtB,IAAMC,KAAQ,EAAAC,SAAU,2BAA2B,EAItCC,EAAN,cAAgCC,CAAY,CAVnD,MAUmD,CAAAC,EAAA,0BAC/C,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,UAAY,IAAIC,CACzB,CACA,aAAa,sBAAsBC,EAAW,CAC1C,OAAQ,MAAMA,EAAU,UAAUC,CAAW,GAAG,iBAAmB,KACvE,CACA,MAAM,OAAQ,CACV,GAAI,CACA,MAAM,KAAK,WAAW,CAC1B,OACOC,EAAK,CACR,GAAIA,aAAeC,EACfT,EAAM,eAAe,MAGrB,OAAMQ,CAEd,CACJ,CACA,UAAW,CAEX,CACA,MAAM,YAAa,CACf,MAAM,KAAK,oBAAoB,EAC/BR,EAAM,iDAAkD,KAAK,UAAU,QAAQ,EAC/E,MAAM,KAAK,eAAe,EACtB,KAAK,QAAQ,iBAAmB,KAAK,SAAS,OAAO,EACrD,KAAK,SAAS,GAId,MADoB,IAAIU,EAAY,KAAK,SAAU,KAAK,UAAW,KAAK,OAAO,EAC7D,MAAM,EACxB,KAAK,SAAS,EAEtB,CACA,MAAM,qBAAsB,CAExB,IADkB,MAAM,KAAK,UAAU,UAAUH,CAAW,GAC9C,iBAAmB,MAC7B,OAAAP,EAAM,6BAA8B,KAAK,UAAU,QAAQ,EAC3D,MAAM,KAAK,UAAU,MAAM,KAAK,SAAU,KAAK,UAAW,KAAK,OAAO,EAC/D,KAAK,oBAAoB,CAExC,CACJ","names":["import_debug","debug","initDebug","AbstractID3Parser","BasicParser","__name","ID3v2Parser","tokenizer","ID3v2Header","err","EndOfStreamError","ID3v1Parser"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-BF2A4D4Q.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BGNSH7PO.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BGNSH7PO.js new file mode 100644 index 00000000..2341dfa5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BGNSH7PO.js @@ -0,0 +1,3 @@ +var a=[{url:"facets/playback/auto-queue/prelude/index.html",title:"Automatic Queue",kind:"prelude",category:"Playback",featured:!0,desc:"Automatically put tracks into the queue. **Always on.** These tracks will always be located after the ones you've added manually."},{url:"facets/playback/auto-queue/index.html",title:"Automatic Queue",category:"Playback",desc:"Automatically put tracks into the queue when this interface is opened. Also allows for controlling shuffle, repeat, search, sorting and playlist selection."},{url:"facets/themes/blur/facet/index.html",title:"Blur",category:"Themes",featured:!0,author:"A theme by [@tokono.ma](https://bsky.app/profile/tokono.ma)",desc:"A combination of the classic Diffuse browser and the Apple Music iOS playback screen."},{url:"facets/themes/blur/artwork-controller/facet/index.html",title:"Blur / Artwork Controller",category:"Playback",featured:!0,desc:"Audio playback controller with an artwork display. Play audio from the queue, add tracks to your favourites, control the queue and volume."},{url:"facets/themes/blur/browser/facet/index.html",title:"Blur / Browser",category:"Browsing",desc:"Collection browser and search with favourite toggling, date grouping, and virtual scrolling."},{url:"facets/themes/blur-classic/facet/index.html",title:"Blur Classic",category:"Themes",featured:!0,author:"A theme by [@tokono.ma](https://bsky.app/profile/tokono.ma)",desc:"A recreation of the Diffuse v3 theme with the browser of the newer Blur theme."},{url:"facets/themes/blur-pocket/facet/index.html",title:"Blur Pocket",category:"Themes",author:"A theme by [@tokono.ma](https://bsky.app/profile/tokono.ma)",featured:!0,desc:"A mobile-optimised and minimalised version of the Blur theme. Does not include the background images and has a slightly different color palette."},{url:"facets/data/cache-tracks/index.html",title:"Cache Tracks",kind:"prelude",category:"Data",featured:!0,desc:"Store tracks locally for offline usage automatically after they've been playing for a little while."},{url:"facets/themes/catalogue-one/facet/index.html",title:"Catalogue One",category:"Themes",author:"A theme by [@tokono.ma](https://bsky.app/profile/tokono.ma)",desc:"A visual, cover-art-first browsing experience. Browse your collection as grids of albums and artists, manage the queue, and control playback."},{url:"facets/misc/command/index.html",title:"Command Menu",category:"Miscellaneous",desc:"A command palette for various actions."},{url:"facets/connect/index.html",title:"Connect",category:"Data",featured:!0,desc:"A listing of some of the options available to use as an audio source, or as a user-data storage method."},{url:"facets/connect/atproto-passkey/index.html",title:"Connect / Atmosphere (Public)",category:"Data",desc:"Use your AT Protocol account for user-data storage. Your data will be stored as public records, but sensitive data can be encrypted using a passkey."},{url:"facets/connect/atproto-space/index.html",title:"Connect / Atmosphere (Space)",category:"Data",incomplete:!0,desc:"Use your AT Protocol account for user-data storage. Your data is stored in your own repo and is not broadcast publicly."},{url:"facets/connect/dropbox/index.html",title:"Connect / Dropbox",category:"Data",desc:"Add Dropbox as an audio source or use it as user-data storage."},{url:"facets/connect/https/index.html",title:"Connect / HTTPS",category:"Data",desc:"Add HTTPS URLs as audio sources."},{url:"facets/connect/https-json/index.html",title:"Connect / HTTPS + JSON",category:"Data",desc:"Add an HTTPS server with JSON directory listing support as an audio source."},{url:"facets/connect/icecast/index.html",title:"Connect / Icecast",category:"Data",desc:"Add an Icecast stream as an audio source."},{url:"facets/connect/local/index.html",title:"Connect / Local",category:"Data",desc:"Add local directories or files as audio sources."},{url:"facets/connect/opensubsonic/index.html",title:"Connect / OpenSubsonic",category:"Data",desc:"Add an OpenSubsonic server as an audio source."},{url:"facets/connect/s3/index.html",title:"Connect / S3",category:"Data",desc:"Connect to an S3-compatible storage for audio input or user-data storage."},{url:"facets/connect/webdav/index.html",title:"Connect / WebDAV",category:"Data",desc:"Add a WebDAV server as an audio source."},{url:"facets/data/artwork-bundle/index.html",title:"Default Artwork Bundle",kind:"prelude",category:"Data",tags:["base"],desc:"The default setup for track artwork retrieval. Adds support for: embedded audio metadata, Last.fm, and MusicBrainz."},{url:"facets/data/input-bundle/index.html",title:"Default Input Bundle",kind:"prelude",category:"Data",tags:["base"],desc:"The default setup for audio input sources. Adds support for: Dropbox, HTTPS, Icecast, the local filesystem, OpenSubsonic, S3-compatible storage, and WebDAV."},{url:"facets/data/metadata-bundle/index.html",title:"Default Metadata Bundle",kind:"prelude",category:"Data",tags:["base"],desc:"The default setup for track metadata lookups. Reads tags and audio stats from audio files."},{url:"facets/data/output-bundle/index.html",title:"Default Output Bundle",kind:"prelude",category:"Data",tags:["base"],desc:"The default setup for user-data storage output. Adds support for: AT Protocol, Dropbox, and S3-compatible storage. For these a custom local-first syncing algorithm is used."},{url:"facets/data/upload-bundle/index.html",title:"Default Upload Bundle",kind:"prelude",category:"Data",tags:["base"],desc:"The default setup for uploading audio files to cloud storage. Adds support for: Dropbox."},{url:"facets/data/export-import/index.html",title:"Export & Import",category:"Data",desc:"Export all data as a JSON snapshot, or restore from a previously exported file."},{url:"facets/data/file-manager/index.html",title:"File Manager",category:"Data",featured:!0,desc:"Upload audio files to play them and optionally sync them with your cloud storage. These are automatically added as inputs (aka. sources)."},{url:"facets/themes/ipod/facet/index.html",title:"iPod",category:"Themes",author:"A theme by [@tokono.ma](https://bsky.app/profile/tokono.ma)",desc:"A recreation of the click-wheel iPod UI. Spin the wheel to scroll, tap the ring for menu / prev / next / play, and press the centre button to select. Alternatively, use your keyboard arrow keys."},{url:"facets/data/playlists/index.html",title:"Playlists",category:"Data",featured:!0,desc:"Manage your playlists."},{url:"facets/playback/preload/prelude/index.html",title:"Preload Tracks",kind:"prelude",category:"Playback",tags:["base"],desc:"Automatically preload the next track in the queue."},{url:"facets/data/process-tracks/prelude/index.html",title:"Process Tracks",kind:"prelude",category:"Data",desc:"Process all your audio inputs into tracks automatically when opening any interface. Only happens once every 10 minutes, if the processing was completed."},{url:"facets/data/process-tracks/index.html",title:"Process Tracks",category:"Data",desc:"Process all your audio sources into tracks. Shows a progress bar when processing is occuring."},{url:"facets/playback/queue/index.html",title:"Queue",category:"Playback",featured:!0,desc:"Manage your playback queue. Reorder upcoming tracks, clear the queue, and view playback history."},{url:"facets/misc/scrobble/index.html",title:"Scrobble",kind:"prelude",category:"Miscellaneous",desc:"Enable scrobbling, keep track of what you're listening to. Adds support for these scrobblers: Last.fm, ListenBrainz, Rocksky"},{url:"facets/misc/scrobble/last.fm/index.html",title:"Scrobble / Last.fm",category:"Miscellaneous",desc:"Connect to Last.fm to setup the Last.fm scrobbler."},{url:"facets/misc/scrobble/listenbrainz/index.html",title:"Scrobble / ListenBrainz",category:"Miscellaneous",desc:"Connect to ListenBrainz to setup the ListenBrainz scrobbler."},{url:"facets/misc/scrobble/rocksky/index.html",title:"Scrobble / Rocksky",category:"Miscellaneous",desc:"Connect to Rocksky to setup the Rocksky scrobbler."},{url:"facets/setup/index.html",title:"Setup",category:"Miscellaneous",desc:"An interactive getting-started guide. Shows contextual next steps based on your current progress."},{url:"facets/data/sources/index.html",title:"Sources",category:"Data",featured:!0,desc:"An overview of all audio inputs. Disable a source to hide its tracks without removing them."},{url:"facets/data/spectrogram/index.html",title:"Spectrogram Analysis",kind:"prelude",category:"Data",featured:!0,desc:"Analyse the spectrogram of tracks as they play and store the data on their stats. Only runs for tracks that don't already have these stats."},{url:"facets/misc/split-view/index.html",title:"Split View",category:"Miscellaneous",desc:"Arrange multiple facets side-by-side in a resizable split-panel layout."},{url:"facets/themes/tidal/facet/index.html",title:"Tidal",category:"Themes",incomplete:!0,desc:"A Tidal-inspired browser. Pick a playlist from the sidebar, browse albums and artists, and play tracks."},{url:"facets/themes/tidal/browser/facet/index.html",title:"Tidal / Browser",category:"Browsing",incomplete:!0,desc:"Tidal-style collection browser and search with a playlist sidebar and album / artist grids."},{url:"facets/themes/tidal/player/facet/index.html",title:"Tidal / Player",category:"Playback",incomplete:!0,desc:"Tidal-style now-playing bar with playback controls, progress and volume."},{url:"facets/data/v3-import/index.html",title:"V3.x Import",category:"Data",desc:"Import data from Diffuse v3."},{url:"facets/misc/webmcp/index.html",title:"WebMCP",category:"Miscellaneous",incomplete:!0,desc:"WebMCP experiment to interact with facets (create, edit, etc)."},{url:"facets/themes/winamp/facet/index.html",title:"Winamp",category:"Themes",featured:!0,author:"A theme by [@tokono.ma](https://bsky.app/profile/tokono.ma) and [@captbaritone](https://github.com/captbaritone)",desc:"Windows 98 inspired theme with a classic Winamp skin for the audio player. The Winamp playlist is a combination of the queue's history, the track that's currently playing and the future queue items."},{url:"facets/themes/winamp/browser/facet/index.html",title:"Winamp / Browser",category:"Browsing",desc:"Collection browser and search."},{url:"facets/data/userdata/index.html",title:"Your data",category:"Data",featured:!0,desc:"Manage where your user-data is stored. See which storage method is active, switch between methods, and migrate data between them."}];export{a}; + +//# sourceMappingURL=./chunk-BGNSH7PO.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BGNSH7PO.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BGNSH7PO.js.br new file mode 100644 index 0000000000000000000000000000000000000000..6b706738dd4f83051a316d8cf8e73abbdcde6d78 GIT binary patch literal 2714 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 n=d(o.uri);if(!n)return;let r=u(n.server);t[r]||(t[r]=n.server)}),t}c(T,"serversFromTracks");function U(e){let t={};return e.forEach(o=>{let n=d(o.uri);if(!n)return;let r=u(n.server);t[r]?t[r].tracks.push(o):t[r]={server:n.server,tracks:[o]}}),t}c(U,"groupTracksByServer");function C(e){let t={};return e.forEach(o=>{let n=d(o);if(!n)return;let r=u(n.server);t[r]?t[r].uris.push(o):t[r]={server:n.server,uris:[o]}}),t}c(C,"groupUrisByServer");async function $(e){let t=x(e,e.dir),o=new AbortController,n=setTimeout(()=>o.abort(),5e3);try{let r=await fetch(t,{headers:{Accept:"application/json"},signal:o.signal});return clearTimeout(n),r.ok?"yes":"no"}catch{return clearTimeout(n),"unsure"}}c($,"checkAccess");var R=w($,u);async function S(e){let t=[],o=new Set(e.exclude??[]),n;try{n=await h(e,e.dir)}catch{return null}return await g(e,e.dir,n,t,o),t}c(S,"listFiles");async function h(e,t){let o=x(e,t),n=new AbortController,r=setTimeout(()=>n.abort(),1e4),i;try{i=await fetch(o,{headers:{Accept:"application/json"},signal:n.signal})}finally{clearTimeout(r)}if(!i.ok)throw new Error(`dir fetch failed: ${i.status}`);let s=await i.json();if(!Array.isArray(s))throw new Error("dir listing is not an array");return s}c(h,"fetchDirEntries");async function g(e,t,o,n,r){let i=t.endsWith("/")?t:t+"/";for(let s of o){if(!s||typeof s.name!="string"||!s.type)continue;let y=encodeURIComponent(s.name),a=i+y;if(s.type==="directory"){if(r.has(s.name))continue;try{let l=await h(e,a);await g(e,a,l,n,r)}catch{}}else s.type==="file"&&n.push(a)}}c(g,"walkEntries");async function j(e,t){let o=[];try{let n=await h(e,t);for(let r of n)!r||typeof r.name!="string"||r.type!=="file"||o.push(r.name)}catch{return null}return o}c(j,"listImageFilesInDir");export{u as a,k as b,d as c,x as d,T as e,U as f,C as g,R as h,S as i,j}; + +//# sourceMappingURL=./chunk-BL5737XC.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BL5737XC.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BL5737XC.js.br new file mode 100644 index 0000000000000000000000000000000000000000..130cfc22a5510c0b4a91c68f5f90dffae09acd32 GIT binary patch literal 1246 zcmb1c;AVJIzJJaCzdtwWr!mdkzT>#(VXNbnC$z$r@tHK_s-LbZrW{PnE7s_u+(Z^S>?5VEw3CFPHO1uY@BiNw9Bs)LF;mkh%mFcGwbYZ|9+@fp#kw;x#B-6gz=Jcg|$F`V%44f-odFypV0fYBK zO|Old*TsL|;Zk%7&lh;_a+E1DA^gw8wQf#l+7d-_*h>tq=&TkslWV`GXu=xVD)8X;iASsl4NmO+ z{q=VKx7OOkc*Skyg{cz&PPg6>pm@h<3 zQgzx;t$1c#?C%RjM|CUZ9e=3=uGy9sJ&kwcqxmk|1VuNlDV|k(*{v3BQ)j@g1z58xN;lSo-IqFaiZl!kDywkCn@$DMN>C-c}@>}l;t=l$%kwtOy$7#I5w_g>T zu6b=97=M+&E9zs}U(>p6_vgrG=ce4Q`|=`NruR#ohq3k2g@t7kU;H|*u{qLTB07k3?^}Hg~eT&+kunj$FPP%+P2UH`{YjZIQap zQnj198Z1Gszau8GIr6@rR(AW@nH5(Zmir`KSmen5mpzJQna|Vw(hLrk-|o!(t0x@X zv8`{#IbWgqE#IVG|20T)>P~limiFklF^}^3Y3Y|Q&065Q{LQrb4(;>ZyY}6Cez^xtaav!e&{(Tz$#i>b&enI#Y`hlNJnk<~dE1h_ZJW(p#g{X>qB_^kw8(Yb zGi$@N6pb%Fo6I624HZ38_{dxJqi2h&(qbd6FP~@8g`H zTIFX35k9-ZmVdq(G0FVBQ~9CAdTBS!qpg&@t`;rVTzc7Kj@Zlp8y8LAu_V00HN3)i Uec@!ggWOfk(*>pOKl&jI0O!470RR91 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BL5737XC.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BL5737XC.js.map new file mode 100644 index 00000000..5ca4a72a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BL5737XC.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/input/https-json/common.js"],"sourcesContent":["import * as URI from \"fast-uri\";\nimport QS from \"query-string\";\n\nimport { cachedConsult } from \"~/components/input/common.js\";\nimport { SCHEME } from \"./constants.js\";\n\n/**\n * @import {Track} from \"~/definitions/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// 🛠️\n////////////////////////////////////////////\n\n/**\n * @typedef {{ host: string; dir: string; exclude?: string[] }} Server\n */\n\n/**\n * @param {Server} server\n * @returns {string}\n */\nexport function serverId(server) {\n return `${server.host}${server.dir}`;\n}\n\n/**\n * Build a https-json:// URI.\n * Protocol can be embedded in host (eg. http://localhost:8080) and is stored\n * as a query param so the URI authority stays valid.\n *\n * @param {Server} server\n * @param {string} [path]\n * @returns {string}\n */\nexport function buildURI(server, path = \"\") {\n let host = server.host;\n let protocol;\n\n if (host.includes(\"://\")) {\n [protocol, host] = host.split(\"://\");\n }\n\n const exclude = server.exclude?.length ? server.exclude.join(\",\") : undefined;\n const query = QS.stringify({ dir: server.dir, exclude, protocol });\n return `${SCHEME}://${host}${path}${query ? `?${query}` : \"\"}`;\n}\n\n/**\n * @param {string} uriString\n * @returns {{ server: Server; path: string } | undefined}\n */\nexport function parseURI(uriString) {\n const uri = URI.parse(uriString);\n if (uri.scheme !== SCHEME) return undefined;\n if (!uri.host) return undefined;\n\n const qs = QS.parse(uri.query || \"\");\n const dir = typeof qs.dir === \"string\" ? qs.dir : \"/\";\n const protocol = typeof qs.protocol === \"string\" ? qs.protocol : undefined;\n const exclude = typeof qs.exclude === \"string\"\n ? qs.exclude.split(\",\").filter(Boolean)\n : undefined;\n\n const rawHost = uri.port ? `${uri.host}:${uri.port}` : uri.host;\n const host = protocol ? `${protocol}://${rawHost}` : rawHost;\n const server = { host, dir, exclude };\n const path = uri.path || \"\";\n\n return { server, path };\n}\n\n/**\n * @param {Server} server\n * @param {string} [path]\n * @returns {string}\n */\nexport function toHttpUrl(server, path = \"\") {\n const base = server.host.includes(\"://\")\n ? server.host\n : `${\n server.host.split(\":\")[0] === \"localhost\" ||\n server.host.split(\":\")[0] === \"127.0.0.1\"\n ? \"http\"\n : \"https\"\n }://${server.host}`;\n\n return base.replace(/\\/$/, \"\") + (path ? \"/\" + path.replace(/^\\//, \"\") : \"\");\n}\n\n/**\n * @param {Track[]} tracks\n * @returns {Record}\n */\nexport function serversFromTracks(tracks) {\n /** @type {Record} */\n const acc = {};\n\n tracks.forEach((track) => {\n const parsed = parseURI(track.uri);\n if (!parsed) return;\n\n const id = serverId(parsed.server);\n if (!acc[id]) acc[id] = parsed.server;\n });\n\n return acc;\n}\n\n/**\n * @param {Track[]} tracks\n * @returns {Record}\n */\nexport function groupTracksByServer(tracks) {\n /** @type {Record} */\n const acc = {};\n\n tracks.forEach((track) => {\n const parsed = parseURI(track.uri);\n if (!parsed) return;\n\n const id = serverId(parsed.server);\n\n if (acc[id]) {\n acc[id].tracks.push(track);\n } else {\n acc[id] = { server: parsed.server, tracks: [track] };\n }\n });\n\n return acc;\n}\n\n/**\n * @param {string[]} uris\n * @returns {Record}\n */\nexport function groupUrisByServer(uris) {\n /** @type {Record} */\n const acc = {};\n\n uris.forEach((uri) => {\n const parsed = parseURI(uri);\n if (!parsed) return;\n\n const id = serverId(parsed.server);\n\n if (acc[id]) {\n acc[id].uris.push(uri);\n } else {\n acc[id] = { server: parsed.server, uris: [uri] };\n }\n });\n\n return acc;\n}\n\n/**\n * @param {Server} server\n * @returns {Promise}\n */\nasync function checkAccess(server) {\n const url = toHttpUrl(server, server.dir);\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 5000);\n\n try {\n const response = await fetch(url, {\n headers: { \"Accept\": \"application/json\" },\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n return response.ok ? \"yes\" : \"no\";\n } catch {\n // Network error or timeout: inconclusive — let `cachedConsult` fall\n // back to the last known availability instead of caching a sticky\n // \"no\" for the full TTL (which would hide every track from this\n // server for 5 minutes after a laptop wake).\n clearTimeout(timeoutId);\n return \"unsure\";\n }\n}\n\nexport const checkAccessCached = cachedConsult(checkAccess, serverId);\n\n/**\n * List all files on the server under server.dir using JSON directory listing.\n * Fetches each directory with `Accept: application/json` and recurses into subdirs.\n *\n * Returns `null` if the root directory listing could not be fetched at all\n * (network error, non-2xx, or non-JSON response) — this signals a transient\n * outage rather than \"directory is genuinely empty\" so the caller can\n * preserve previously-cached tracks instead of wiping them with a placeholder.\n *\n * @param {Server} server\n * @returns {Promise}\n */\nexport async function listFiles(server) {\n const paths = /** @type {string[]} */ ([]);\n const exclude = new Set(server.exclude ?? []);\n\n let rootEntries;\n try {\n rootEntries = await fetchDirEntries(server, server.dir);\n } catch {\n // Root fetch failed — server unreachable or not a JSON listing.\n // The caller can use this to preserve cached tracks rather than\n // replacing them with a placeholder.\n return null;\n }\n\n await walkEntries(server, server.dir, rootEntries, paths, exclude);\n return paths;\n}\n\n/**\n * @param {Server} server\n * @param {string} dir\n * @returns {Promise}\n */\nasync function fetchDirEntries(server, dir) {\n const url = toHttpUrl(server, dir);\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000);\n\n let response;\n try {\n response = await fetch(url, {\n headers: { \"Accept\": \"application/json\" },\n signal: controller.signal,\n });\n } finally {\n clearTimeout(timeoutId);\n }\n\n if (!response.ok) throw new Error(`dir fetch failed: ${response.status}`);\n\n /** @type {unknown} */\n const data = await response.json();\n if (!Array.isArray(data)) throw new Error(\"dir listing is not an array\");\n return /** @type {unknown[]} */ (data);\n}\n\n/**\n * @param {Server} server\n * @param {string} dir\n * @param {unknown[]} entries\n * @param {string[]} paths\n * @param {Set} exclude\n */\nasync function walkEntries(server, dir, entries, paths, exclude) {\n const basePath = dir.endsWith(\"/\") ? dir : dir + \"/\";\n\n for (const entry of entries) {\n if (!entry || typeof /** @type {any} */ (entry).name !== \"string\" ||\n !/** @type {any} */ (entry).type) {\n continue;\n }\n\n // Encode each path segment so URIs stay valid for non-ASCII filenames.\n const encodedName = encodeURIComponent(/** @type {any} */ (entry).name);\n const entryPath = basePath + encodedName;\n\n if (/** @type {any} */ (entry).type === \"directory\") {\n if (exclude.has(/** @type {any} */ (entry).name)) continue;\n // A failing subdir shouldn't fail the whole walk — skip it and\n // keep going, matching the previous tolerant behaviour.\n try {\n const subEntries = await fetchDirEntries(server, entryPath);\n await walkEntries(server, entryPath, subEntries, paths, exclude);\n } catch {\n // Subdir unavailable: skip.\n }\n } else if (/** @type {any} */ (entry).type === \"file\") {\n paths.push(entryPath);\n }\n }\n}\n\n/**\n * List the names of the file entries in a single directory's JSON listing.\n * Only the immediate directory is fetched (no recursion); subdirectories are\n * ignored. Intended for locating sibling artwork next to an audio file.\n *\n * Returns the plain (raw) filenames of all `type === \"file\"` entries, or `null`\n * if the directory listing could not be fetched or is not an array.\n *\n * @param {Server} server\n * @param {string} dir\n * @returns {Promise}\n */\nexport async function listImageFilesInDir(server, dir) {\n /** @type {string[]} */\n const fileNames = [];\n\n try {\n const entries = await fetchDirEntries(server, dir);\n for (const entry of entries) {\n if (!entry || typeof /** @type {any} */ (entry).name !== \"string\" ||\n /** @type {any} */ (entry).type !== \"file\") {\n continue;\n }\n fileNames.push(/** @type {any} */ (entry).name);\n }\n } catch {\n // Directory listing unavailable (network error, timeout, non-2xx, or\n // non-JSON response) — treat as \"no sibling artwork found\".\n return null;\n }\n\n return fileNames;\n}\n"],"mappings":"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","names":["serverId","server","__name","buildURI","path","host","protocol","exclude","query","query_string_default","SCHEME","parseURI","uriString","uri","parse","qs","dir","rawHost","toHttpUrl","serversFromTracks","tracks","acc","track","parsed","id","groupTracksByServer","groupUrisByServer","uris","checkAccess","url","controller","timeoutId","response","checkAccessCached","cachedConsult","listFiles","paths","rootEntries","fetchDirEntries","walkEntries","data","entries","basePath","entry","encodedName","entryPath","subEntries","listImageFilesInDir","fileNames"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-BL5737XC.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BMDRJICQ.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BMDRJICQ.js new file mode 100644 index 00000000..edc24626 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BMDRJICQ.js @@ -0,0 +1,3 @@ +import{a as bt,b as xt,c as At,d as Ct}from"./chunk-7NKQO6T3.js";import{e as it,m as yt}from"./chunk-2QN2TM5L.js";import{f as ft,g as J}from"./chunk-MO4SFPUT.js";import{a as St,b as gt}from"./chunk-QAEP7ICV.js";import{e as ht}from"./chunk-IA3NIKPO.js";import{a as F}from"./chunk-GEJ7GEJO.js";import{b as lt,c as B,d as ut}from"./chunk-RW73GFJN.js";import{c as g,d as l,e as h,f as u,g as r,h as w,i as s,j as _,k as M,l as Y,m as at,n as K,o as Z,p as e,q as v,r as V,s as t,t as E,u as nt}from"./chunk-MJSTYRUI.js";import{j as dt,o as W}from"./chunk-XILA3E7E.js";import{a as k,c as vt}from"./chunk-75KFZLU6.js";var Be={};vt(Be,{CLASS:()=>$e,NAME:()=>Pt,default:()=>qe});var rt={};vt(rt,{accountSchema:()=>It,commitSchema:()=>qt,identitySchema:()=>$t,infoSchema:()=>Bt,mainSchema:()=>Ce,repoOpSchema:()=>Ut,syncSchema:()=>Mt});var Se=t({$type:e(l("com.atproto.sync.subscribeRepos#account")),active:h(),did:s(),seq:u(),status:e(r()),time:w()}),ge=t({$type:e(l("com.atproto.sync.subscribeRepos#commit")),blobs:v(K()),blocks:g(Y(),[at(0,2e6)]),commit:K(),get ops(){return g(v(Ut),[V(0,200)])},prevData:e(K()),rebase:h(),repo:s(),rev:M(),seq:u(),since:Z(M()),time:w(),tooBig:h()}),fe=t({$type:e(l("com.atproto.sync.subscribeRepos#identity")),did:s(),handle:e(_()),seq:u(),time:w()}),ye=t({$type:e(l("com.atproto.sync.subscribeRepos#info")),message:e(r()),name:r()}),be=nt("com.atproto.sync.subscribeRepos",{params:t({cursor:e(u())}),get message(){return E([It,qt,$t,Bt,Mt])}}),xe=t({$type:e(l("com.atproto.sync.subscribeRepos#repoOp")),action:r(),cid:Z(K()),path:r(),prev:e(K())}),Ae=t({$type:e(l("com.atproto.sync.subscribeRepos#sync")),blocks:g(Y(),[at(0,1e4)]),did:s(),rev:r(),seq:u(),time:w()}),It=Se,qt=ge,$t=fe,Bt=ye,Ce=be,Ut=xe,Mt=Ae;var Ie=new Set(["sh.diffuse.output.facet","sh.diffuse.output.playlistItemBundle","sh.diffuse.output.setting","sh.diffuse.output.trackBundle"]),X=class extends St{static{k(this,"ATProtoPasskeyOutput")}static NAME="diffuse/output/raw/atproto-passkey";#r;#l=Promise.withResolvers();#u=Promise.withResolvers();#t=null;#i=null;#c=null;constructor(){super(),this.#r=gt({init:k(async()=>(await this.#u.promise,!0),"init"),facets:this.#A("sh.diffuse.output.facet"),playlistItems:this.#C("sh.diffuse.output.playlistItemBundle",{groupBy:"playlist"}),settings:this.#A("sh.diffuse.output.setting"),tracks:this.#C("sh.diffuse.output.trackBundle",{groupBy:"scheme",keyOf:k(a=>{let i=String(a.uri??""),c=i.indexOf(":");return c>0?i.substring(0,c):void 0},"keyOf")})}),this.facets=this.#r.facets,this.playlistItems=this.#r.playlistItems,this.settings=this.#r.settings,this.tracks=this.#r.tracks}#o=W(null);#p=W(null);#d=W(navigator.onLine);#e=W(null);#f=W(null);#h=null;#y=0;#s=0;#S=[];#g=!1;#m=new Map;did=this.#o.get;handle=this.#p.get;rev=this.#e.get;firehoseRev=this.#f.get;ready=dt(()=>this.#o.value!==null&&!!this.#t&&this.#d.value);connectedCallback(){this.replicateSavedData(this.#r),super.connectedCallback(),this.#R(),globalThis.addEventListener("online",this.#x),globalThis.addEventListener("offline",this.#b)}disconnectedCallback(){this.#v(),globalThis.removeEventListener("online",this.#x),globalThis.removeEventListener("offline",this.#b)}#b=k(()=>this.#d.set(!1),"#offline");#x=k(()=>this.#d.set(!0),"#online");async login(a){await bt(a)}whenRestored(){return this.#u.promise}async logout(){this.#i&&(this.#v(),await Ct(this.#i),this.#i=null,this.#l=Promise.withResolvers(),this.#o.value=null,this.#p.value=null,this.#c=null,this.#t=null)}#a(){this.#v(),this.#i=null,this.#l=Promise.withResolvers(),this.#o.value=null,this.#p.value=null,this.#c=null,this.#t=null,At()}#n(a){return a instanceof it||a instanceof ut&&a.status===401?!0:a&&typeof a=="object"&&"cause"in a?this.#n(a.cause):!1}async#R(){await this.whenConnected();try{let a=await xt();a&&this.#w(a)}catch(a){if(this.#n(a))this.#a();else throw a}finally{this.#u.resolve()}}#w(a){let i=new yt(a),c=i.getSession.bind(i);i.getSession=((...d)=>{let j=c(...d);return j.catch(R=>{R instanceof it&&this.#a()}),j}),this.#i=i,this.#t=new lt({handler:i}),this.#o.value=a.info.sub,this.#c=a.info.aud,this.#l.resolve(),this.#k(a.info.sub),this.#_()}#v(){let a=this.#h;this.#h=null,a?.return?.()}async#_(){this.#v();let a=++this.#y,i=this.#c;if(!i)return;let c=i.replace(/^https?:\/\//,C=>C==="https://"?"wss://":"ws://"),{FirehoseSubscription:d}=await import("./dist-SVFK62JF.js");if(this.#y!==a)return;let R=new d({service:c,nsid:rt.mainSchema,validateEvents:!1})[Symbol.asyncIterator]();this.#h=R;try{for await(let C of R)this.#D(C)}catch{}}#D(a){if(a.$type!=="com.atproto.sync.subscribeRepos#commit")return;let i=a;if(i.repo!==this.#o.value||i.rev===this.#e.value||this.#s>0)return;let c=new Set((i.ops??[]).map(d=>d.path?.split("/")[0]).filter(d=>Ie.has(d)));c.size!==0&&(this.#f.value={rev:i.rev,collections:c})}async#k(a){let i=this.#t;if(i)try{let c=await B(i.get("com.atproto.repo.describeRepo",{params:{repo:a}}));this.#o.value===a&&(this.#p.value=c?.handle??null)}catch{}}#A(a){let i=null;return{empty:k(()=>[],"empty"),get:k(async()=>{let c=await this.listRecords(a);return i=new Map(c.map(d=>[String(d.id),d])),c},"get"),put:k(async c=>{let d=a,j=new Map(c.map(S=>[S.id,{$type:d,...S}])),R=i??new Map,C=[];for(let[S,b]of j){let m=R.get(S);m&&JSON.stringify(m)===JSON.stringify(b)||C.push([S,b])}let $=[];for(let S of R.keys())j.has(S)||$.push({$type:"com.atproto.repo.applyWrites#delete",collection:d,rkey:S});if(C.length===0&&$.length===0)return;let D=new Map(R);for(let[S,b]of C)D.set(S,b);for(let{rkey:S}of $)D.delete(S);let L=this.#m.get(a);L&&(L.cancelled=!0);let I={cancelled:!1};this.#m.set(a,I),await this.#j(async()=>{if(I.cancelled)return;let S=this.#t,b=this.#o.value;if(!(!S||!b)){this.#s++;try{for(let[m,x]of C){let y=await B(S.post("com.atproto.repo.putRecord",{input:{repo:b,collection:d,rkey:m,record:x}}));y?.commit?.rev&&(this.#e.value=y.commit.rev)}for(let m=0;m<$.length;m+=100){let x=await B(S.post("com.atproto.repo.applyWrites",{input:{repo:b,writes:$.slice(m,m+100)}}));x?.commit?.rev&&(this.#e.value=x.commit.rev)}i=D}catch(m){if(this.#n(m)){this.#a();return}throw m}finally{this.#s--,this.#m.get(a)===I&&this.#m.delete(a)}}})},"put")}}#C(a,{groupBy:i,keyOf:c}={}){let d=new Map,j=new Map;return{empty:k(()=>[],"empty"),get:k(async()=>{let R=await this.listRecords(a),C=[],$=new Map,D=new Map;for(let L of R){if(!L.data?.ref?.$link)continue;let I=L[i];if(typeof I!="string")continue;let S=await this.#I(L.data.ref.$link),b=ft(S);Array.isArray(b)&&(C.push(...b),$.set(I,F(J(b)).toString(16)),D.set(I,L.data))}return d=$,j=D,C},"get"),put:k(async R=>{let C=a,$=c??(m=>m[i]),D=new Map;for(let m of R){let x=$(m);if(typeof x!="string")continue;let y=D.get(x)??[];D.has(x)||D.set(x,y),y.push(m)}let L=new Map(d),I=new Map(j),S=[];for(let[m,x]of D){let y=J(x),O=F(y).toString(16);if(d.get(m)===O&&j.has(m))continue;let H=await this.#L(y);if(!H)continue;let mt=F(J(m)).toString(16),Tt={$type:C,id:mt,[i]:m,data:H};S.push({rkey:mt,value:Tt}),L.set(m,O),I.set(m,H)}let b=[];for(let m of d.keys())if(!D.has(m)){let x=F(J(m)).toString(16);b.push({$type:"com.atproto.repo.applyWrites#delete",collection:C,rkey:x}),L.delete(m),I.delete(m)}S.length===0&&b.length===0||(await this.#j(async()=>{let m=this.#t,x=this.#o.value;if(!(!m||!x)){this.#s++;try{for(let{rkey:y,value:O}of S){let H=await B(m.post("com.atproto.repo.putRecord",{input:{repo:x,collection:C,rkey:y,record:O}}));H?.commit?.rev&&(this.#e.value=H.commit.rev)}for(let y=0;yR.value)),d=j.cursor}while(d);return c}catch(c){if(this.#n(c))return this.#a(),[];throw c}}#j(a){return new Promise((i,c)=>{this.#S.push({fn:a,resolve:i,reject:c}),this.#q()})}async#q(){if(!this.#g){for(this.#g=!0;this.#S.length>0;){let{fn:a,resolve:i,reject:c}=this.#S.shift();try{await a(),i()}catch(d){c(d)}}this.#g=!1}}},qe=X,$e=X,Pt="dor-atproto-passkey";ht(Pt,X);export{qe as a,$e as b,Pt as c,Be as d}; + +//# sourceMappingURL=./chunk-BMDRJICQ.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BMDRJICQ.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BMDRJICQ.js.br new file mode 100644 index 0000000000000000000000000000000000000000..1cdfb984fc656fc1516e525bc8901027127c3557 GIT binary patch literal 3339 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 */\nconst WATCHED_COLLECTIONS = new Set([\n \"sh.diffuse.output.facet\",\n \"sh.diffuse.output.playlistItemBundle\",\n \"sh.diffuse.output.setting\",\n \"sh.diffuse.output.trackBundle\",\n]);\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ATProtoPasskeyOutputElement}\n */\nclass ATProtoPasskeyOutput extends BroadcastedOutputElement {\n static NAME = \"diffuse/output/raw/atproto-passkey\";\n\n #manager;\n\n /** @type {PromiseWithResolvers} */\n #authenticated = Promise.withResolvers();\n\n /** @type {PromiseWithResolvers} */\n #restoreSettled = Promise.withResolvers();\n\n /** @type {Client | null} */\n #rpc = null;\n\n /** @type {OAuthUserAgent | null} */\n #agent = null;\n\n /** @type {string | null} */\n #pdsUrl = null;\n\n constructor() {\n super();\n\n /** @type {OutputManager} */\n this.#manager = outputManager({\n init: async () => {\n await this.#restoreSettled.promise;\n return true;\n },\n facets: this.#recordCollection(\"sh.diffuse.output.facet\"),\n playlistItems: this.#blobCollection(\n \"sh.diffuse.output.playlistItemBundle\",\n { groupBy: \"playlist\" },\n ),\n settings: this.#recordCollection(\"sh.diffuse.output.setting\"),\n tracks: this.#blobCollection(\"sh.diffuse.output.trackBundle\", {\n groupBy: \"scheme\",\n keyOf: (item) => {\n const uri = String(\n /** @type {Record} */ (item)[\"uri\"] ?? \"\",\n );\n const colon = uri.indexOf(\":\");\n return colon > 0 ? uri.substring(0, colon) : undefined;\n },\n }),\n });\n\n this.facets = this.#manager.facets;\n this.playlistItems = this.#manager.playlistItems;\n this.settings = this.#manager.settings;\n this.tracks = this.#manager.tracks;\n }\n\n // SIGNALS\n\n #did = signal(/** @type {`did:${string}:${string}` | null} */ (null));\n #handle = signal(/** @type {string | null} */ (null));\n #isOnline = signal(navigator.onLine);\n #rev = signal(/** @type {string | null} */ (null));\n #firehoseRev = signal(/** @type {{ rev: string, collections: ReadonlySet } | null} */ (null));\n\n /** @type {AsyncIterator | null} */\n #firehoseIterator = null;\n #firehoseGen = 0;\n #writing = 0;\n\n /** @type {Array<{ fn: () => Promise, resolve: () => void, reject: (err: unknown) => void }>} */\n #writeQueue = [];\n #writeDraining = false;\n /** @type {Map} */\n #writeCancels = new Map();\n\n did = this.#did.get;\n handle = this.#handle.get;\n rev = this.#rev.get;\n firehoseRev = this.#firehoseRev.get;\n\n ready = computed(() => {\n return this.#did.value !== null && !!this.#rpc && this.#isOnline.value;\n });\n\n // LIFECYCLE\n\n /** @override */\n connectedCallback() {\n this.replicateSavedData(this.#manager);\n\n super.connectedCallback();\n\n this.#tryRestore();\n\n globalThis.addEventListener(\"online\", this.#online);\n globalThis.addEventListener(\"offline\", this.#offline);\n }\n\n /** @override */\n disconnectedCallback() {\n this.#stopFirehose();\n globalThis.removeEventListener(\"online\", this.#online);\n globalThis.removeEventListener(\"offline\", this.#offline);\n }\n\n #offline = () => this.#isOnline.set(false);\n #online = () => this.#isOnline.set(true);\n\n // AUTH\n\n /**\n * Initiate the OAuth flow.\n * Navigates the browser to the authorization server.\n *\n * @param {string} handle\n */\n async login(handle) {\n await login(handle);\n }\n\n /**\n * @returns {Promise}\n */\n whenRestored() {\n return this.#restoreSettled.promise;\n }\n\n /**\n * Sign out and revoke the current session.\n */\n async logout() {\n if (this.#agent) {\n this.#stopFirehose();\n await logout(this.#agent);\n this.#agent = null;\n this.#authenticated = Promise.withResolvers();\n this.#did.value = null;\n this.#handle.value = null;\n this.#pdsUrl = null;\n this.#rpc = null;\n }\n }\n\n /**\n * Clear session state without contacting the server.\n * Used when the session has already been revoked.\n */\n #clearSession() {\n this.#stopFirehose();\n this.#agent = null;\n this.#authenticated = Promise.withResolvers();\n this.#did.value = null;\n this.#handle.value = null;\n this.#pdsUrl = null;\n this.#rpc = null;\n\n clearStoredSession();\n }\n\n /**\n * @param {unknown} err\n * @returns {boolean}\n */\n #isSessionError(err) {\n if (err instanceof TokenRefreshError) return true;\n // OAuthUserAgent.handle() swallows TokenRefreshError and returns the\n // original 401 response, which ok() wraps as a ClientResponseError.\n if (err instanceof ClientResponseError && err.status === 401) return true;\n if (err && typeof err === \"object\" && \"cause\" in err) {\n return this.#isSessionError(\n (/** @type {{ cause: unknown }} */ (err)).cause,\n );\n }\n return false;\n }\n\n async #tryRestore() {\n await this.whenConnected();\n\n try {\n const session = await restoreOrFinalize();\n\n if (session) {\n this.#setSession(session);\n }\n } catch (err) {\n if (this.#isSessionError(err)) {\n this.#clearSession();\n } else {\n throw err;\n }\n } finally {\n this.#restoreSettled.resolve();\n }\n }\n\n /**\n * @param {import(\"@atcute/oauth-browser-client\").Session} session\n */\n #setSession(session) {\n const agent = new OAuthUserAgent(session);\n\n // Intercept token refresh to detect session revocation proactively.\n // OAuthUserAgent.handle() swallows TokenRefreshError silently,\n // so we hook into getSession to clear state as soon as refresh fails.\n const originalGetSession = agent.getSession.bind(agent);\n agent.getSession = /** @type {typeof originalGetSession} */ ((...args) => {\n const promise = originalGetSession(...args);\n\n promise.catch((err) => {\n if (err instanceof TokenRefreshError) {\n this.#clearSession();\n }\n });\n\n return promise;\n });\n\n this.#agent = agent;\n this.#rpc = new Client({ handler: agent });\n this.#did.value = session.info.sub;\n this.#pdsUrl = session.info.aud;\n this.#authenticated.resolve();\n this.#fetchHandle(session.info.sub);\n this.#startFirehose();\n }\n\n // FIREHOSE\n\n #stopFirehose() {\n const iter = this.#firehoseIterator;\n this.#firehoseIterator = null;\n iter?.return?.();\n }\n\n async #startFirehose() {\n this.#stopFirehose();\n\n const gen = ++this.#firehoseGen;\n const pdsUrl = this.#pdsUrl;\n if (!pdsUrl) return;\n\n const wssUrl = pdsUrl.replace(\n /^https?:\\/\\//,\n (m) => m === \"https://\" ? \"wss://\" : \"ws://\",\n );\n\n const { FirehoseSubscription } = await import(\"@atcute/firehose\");\n\n if (this.#firehoseGen !== gen) return;\n\n const subscription = new FirehoseSubscription({\n service: wssUrl,\n nsid: ComAtprotoSyncSubscribeRepos.mainSchema,\n validateEvents: false,\n });\n\n const iter = subscription[Symbol.asyncIterator]();\n this.#firehoseIterator = iter;\n\n try {\n for await (const message of iter) {\n this.#handleFirehoseCommit(message);\n }\n } catch {\n // Non-fatal; partysocket handles reconnection automatically\n }\n }\n\n /**\n * @param {MessageOf} message\n */\n #handleFirehoseCommit(message) {\n if (message.$type !== \"com.atproto.sync.subscribeRepos#commit\") return;\n\n const commit =\n /** @type {{ repo: string, rev: string, ops?: Array<{ path: string }> }} */ (message);\n\n if (commit.repo !== this.#did.value) return;\n if (commit.rev === this.#rev.value) return;\n if (this.#writing > 0) return;\n\n const touched = new Set(\n (commit.ops ?? [])\n .map((op) => op.path?.split(\"/\")[0])\n .filter((c) => WATCHED_COLLECTIONS.has(c)),\n );\n\n if (touched.size === 0) return;\n\n this.#firehoseRev.value = { rev: commit.rev, collections: touched };\n }\n\n /**\n * @param {string} did\n */\n async #fetchHandle(did) {\n const rpc = this.#rpc;\n if (!rpc) return;\n try {\n const result = await ok(rpc.get(\"com.atproto.repo.describeRepo\", {\n params: {\n repo: /** @type {import(\"@atcute/lexicons\").ActorIdentifier} */ (did),\n },\n }));\n if (this.#did.value === did) {\n this.#handle.value = result?.handle ?? null;\n }\n } catch {\n // Non-fatal; handle stays null\n }\n }\n\n // RECORDS\n\n /**\n * Returns `{ empty, get, put }` for a small record collection (facets, settings).\n *\n * Tracks last-known remote state in closure so `put()` skips the `listRecords`\n * round-trip on every write. Uses `putRecord` (upsert) to avoid create/update\n * ambiguity; batches deletes via `applyWrites`.\n *\n * @param {string} nsid\n */\n #recordCollection(nsid) {\n /** @type {Map> | null} */\n let lastKnown = null;\n\n return {\n empty: () => [],\n get: async () => {\n const records = await this.listRecords(nsid);\n lastKnown = new Map(\n /** @type {Array>} */ (records).map((r) => [\n String(r[\"id\"]),\n r,\n ]),\n );\n return records;\n },\n put: async (/** @type {unknown[]} */ data) => {\n const nsidTyped = /** @type {`${string}.${string}.${string}`} */ (nsid);\n\n /** @type {Map>} */\n const desired = new Map(\n /** @type {Array<{ id: string }>} */ (data).map((r) => [\n r.id,\n /** @type {Record} */ ({ $type: nsidTyped, ...r }),\n ]),\n );\n\n const known = lastKnown ?? new Map();\n\n /** @type {Array<[string, Record]>} */\n const upserts = [];\n for (const [id, record] of desired) {\n const existing = known.get(id);\n if (existing && JSON.stringify(existing) === JSON.stringify(record)) {\n continue;\n }\n upserts.push([id, record]);\n }\n\n /** @type {WriteOp[]} */\n const deletes = [];\n for (const id of known.keys()) {\n if (!desired.has(id)) {\n deletes.push({\n $type: \"com.atproto.repo.applyWrites#delete\",\n collection: nsidTyped,\n rkey: id,\n });\n }\n }\n\n if (upserts.length === 0 && deletes.length === 0) return;\n\n const newKnown = new Map(known);\n for (const [id, record] of upserts) newKnown.set(id, record);\n for (const { rkey } of deletes) newKnown.delete(rkey);\n\n const prior = this.#writeCancels.get(nsid);\n if (prior) prior.cancelled = true;\n const token = { cancelled: false };\n this.#writeCancels.set(nsid, token);\n\n await this.#enqueueWrite(async () => {\n if (token.cancelled) return;\n const rpc = this.#rpc;\n const did = this.#did.value;\n if (!rpc || !did) return;\n this.#writing++;\n try {\n for (const [rkey, record] of upserts) {\n const result = await ok(rpc.post(\"com.atproto.repo.putRecord\", {\n input: { repo: did, collection: nsidTyped, rkey, record },\n }));\n if (result?.commit?.rev) this.#rev.value = result.commit.rev;\n }\n for (let i = 0; i < deletes.length; i += 100) {\n const result = await ok(rpc.post(\"com.atproto.repo.applyWrites\", {\n input: { repo: did, writes: deletes.slice(i, i + 100) },\n }));\n if (result?.commit?.rev) this.#rev.value = result.commit.rev;\n }\n lastKnown = newKnown;\n } catch (err) {\n if (this.#isSessionError(err)) { this.#clearSession(); return; }\n throw err;\n } finally {\n this.#writing--;\n if (this.#writeCancels.get(nsid) === token) {\n this.#writeCancels.delete(nsid);\n }\n }\n });\n },\n };\n }\n\n /**\n * Returns `{ empty, get, put }` for a collection stored as CBOR blobs.\n * Each distinct group key gets its own bundle record.\n *\n * `groupBy` is the field name stored on the bundle record (used by `get()`\n * to reconstruct the key). `keyOf` extracts the group key from each item;\n * defaults to `item[groupBy]` when omitted.\n *\n * @param {string} nsid\n * @param {{ groupBy: string, keyOf?: (item: unknown) => string | undefined }} options\n */\n #blobCollection(nsid, { groupBy, keyOf } = /** @type {any} */ ({})) {\n /** @type {Map} groupKey → content hash */\n let lastHashes = new Map();\n /** @type {Map} groupKey → blob ref */\n let lastBlobs = new Map();\n\n return {\n empty: () => /** @type {unknown[]} */ ([]),\n get: async () => {\n const bundles = await this.listRecords(nsid);\n /** @type {unknown[]} */\n const items = [];\n /** @type {Map} */\n const newHashes = new Map();\n /** @type {Map} */\n const newBlobs = new Map();\n\n for (const bundle of bundles) {\n if (!bundle.data?.ref?.$link) continue;\n\n const key =\n /** @type {Record} */ (bundle)[groupBy];\n if (typeof key !== \"string\") continue;\n\n const bytes = await this.#fetchBlob(bundle.data.ref.$link);\n const groupItems = /** @type {unknown[]} */ (decode(bytes));\n if (!Array.isArray(groupItems)) continue;\n\n items.push(...groupItems);\n // Hash the re-encoded form so put() compares apples to apples.\n // Raw PDS bytes may not equal encode(decode(bytes)) if field order\n // or numeric encoding differs, causing spurious re-uploads.\n newHashes.set(key, xxh32r(encode(groupItems)).toString(16));\n newBlobs.set(key, bundle.data);\n }\n\n // Assign atomically after all fetches complete so a concurrent put()\n // never sees a partially-populated lastHashes and generates wrong #create ops.\n lastHashes = newHashes;\n lastBlobs = newBlobs;\n return items;\n },\n put: async (/** @type {unknown[]} */ data) => {\n const nsidTyped =\n /** @type {`${string}.${string}.${string}`} */ (nsid);\n\n const extractKey = keyOf ??\n ((/** @type {unknown} */ item) =>\n /** @type {string | undefined} */ (\n /** @type {Record} */ (item)[groupBy]\n ));\n\n /** @type {Map} */\n const groups = new Map();\n for (const item of data) {\n const key = extractKey(item);\n if (typeof key !== \"string\") continue;\n const group = groups.get(key) ?? [];\n if (!groups.has(key)) groups.set(key, group);\n group.push(item);\n }\n\n // Snapshot state so we only commit on success\n const newHashes = new Map(lastHashes);\n const newBlobs = new Map(lastBlobs);\n\n // Upload blobs for changed groups (outside write queue — not a mutation)\n /** @type {Array<{ rkey: string, value: unknown }>} */\n const upserts = [];\n\n for (const [key, groupItems] of groups) {\n const bytes = encode(groupItems);\n const hash = xxh32r(bytes).toString(16);\n\n if (lastHashes.get(key) === hash && lastBlobs.has(key)) continue;\n\n const blob = await this.#uploadBlob(bytes);\n if (!blob) continue;\n\n const rkey = xxh32r(encode(key)).toString(16);\n const value = {\n $type: nsidTyped,\n id: rkey,\n [groupBy]: key,\n data: blob,\n };\n upserts.push({ rkey, value });\n newHashes.set(key, hash);\n newBlobs.set(key, blob);\n }\n\n /** @type {WriteOp[]} */\n const deletes = [];\n for (const key of lastHashes.keys()) {\n if (!groups.has(key)) {\n const rkey = xxh32r(encode(key)).toString(16);\n deletes.push({\n $type: \"com.atproto.repo.applyWrites#delete\",\n collection: nsidTyped,\n rkey,\n });\n newHashes.delete(key);\n newBlobs.delete(key);\n }\n }\n\n if (upserts.length === 0 && deletes.length === 0) return;\n\n await this.#enqueueWrite(async () => {\n const rpc = this.#rpc;\n const did = this.#did.value;\n if (!rpc || !did) return;\n this.#writing++;\n try {\n // putRecord is a true upsert — no need to track create vs update\n for (const { rkey, value } of upserts) {\n const result = await ok(rpc.post(\"com.atproto.repo.putRecord\", {\n input: {\n repo: did,\n collection: nsidTyped,\n rkey,\n record: /** @type {Record} */ (value),\n },\n }));\n if (result?.commit?.rev) this.#rev.value = result.commit.rev;\n }\n for (let i = 0; i < deletes.length; i += 100) {\n const result = await ok(\n rpc.post(\"com.atproto.repo.applyWrites\", {\n input: { repo: did, writes: deletes.slice(i, i + 100) },\n }),\n );\n if (result?.commit?.rev) this.#rev.value = result.commit.rev;\n }\n } catch (err) {\n if (this.#isSessionError(err)) {\n this.#clearSession();\n return;\n }\n throw err;\n } finally {\n this.#writing--;\n }\n });\n\n lastHashes = newHashes;\n lastBlobs = newBlobs;\n },\n };\n }\n\n /**\n * Fetch the latest commit rev for this repo.\n * Returns `null` if not authenticated or on error.\n *\n * @returns {Promise}\n */\n async getLatestCommit() {\n const did = this.#did.value;\n\n const rpc = this.#rpc;\n if (!rpc || !did) return null;\n\n try {\n const result = await ok(rpc.get(\n \"com.atproto.sync.getLatestCommit\",\n { params: { did } },\n ));\n\n this.#rev.value = result?.rev;\n return result?.rev;\n } catch (err) {\n if (this.#isSessionError(err)) {\n this.#clearSession();\n return null;\n }\n\n throw err;\n }\n }\n\n /** @param {Uint8Array} bytes */\n async #uploadBlob(bytes) {\n const rpc = this.#rpc;\n if (!rpc) return;\n const result = await ok(rpc.post(\"com.atproto.repo.uploadBlob\", {\n input: bytes,\n headers: { \"content-type\": \"application/octet-stream\" },\n }));\n return result?.blob;\n }\n\n /**\n * @param {string} cid\n * @returns {Promise}\n */\n async #fetchBlob(cid) {\n const rpc = this.#rpc;\n const did = this.#did.value;\n if (!rpc || !did) return new Uint8Array();\n return await ok(rpc.get(\"com.atproto.sync.getBlob\", {\n params: { did, cid },\n as: \"bytes\",\n }));\n }\n\n /**\n * @template T\n * @param {string} collection\n * @param {string} [did]\n * @returns {Promise}\n */\n async listRecords(collection, did) {\n did ??= this.#did.value ?? undefined;\n\n if (!this.#rpc || !did) return [];\n\n try {\n const records = [];\n /** @type {string | undefined} */\n let cursor;\n do {\n const page =\n /** @type {{ records: { value: unknown }[], cursor?: string }} */ (\n await ok(this.#rpc.get(\"com.atproto.repo.listRecords\", {\n params: {\n repo:\n /** @type {import(\"@atcute/lexicons\").ActorIdentifier} */ (did),\n collection:\n /** @type {`${string}.${string}.${string}`} */ (collection),\n limit: 100,\n cursor,\n },\n }))\n );\n records.push(...page.records.map((r) => /** @type {T} */ (r.value)));\n cursor = page.cursor;\n } while (cursor);\n return records;\n } catch (err) {\n if (this.#isSessionError(err)) {\n this.#clearSession();\n return [];\n }\n\n throw err;\n }\n }\n\n // WRITE QUEUE\n\n /**\n * @param {() => Promise} fn\n * @returns {Promise}\n */\n #enqueueWrite(fn) {\n return new Promise((resolve, reject) => {\n this.#writeQueue.push({ fn, resolve, reject });\n this.#drainWrites();\n });\n }\n\n async #drainWrites() {\n if (this.#writeDraining) return;\n this.#writeDraining = true;\n\n while (this.#writeQueue.length > 0) {\n const { fn, resolve, reject } =\n /** @type {{ fn: () => Promise, resolve: () => void, reject: (err: unknown) => void }} */ (\n this.#writeQueue.shift()\n );\n try {\n await fn();\n resolve();\n } catch (err) {\n reject(err);\n }\n }\n\n this.#writeDraining = false;\n }\n\n}\n\nexport default ATProtoPasskeyOutput;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = ATProtoPasskeyOutput;\nexport const NAME = \"dor-atproto-passkey\";\n\ndefineElement(NAME, ATProtoPasskeyOutput);\n","import * as v from '@atcute/lexicons/validations';\nconst _accountSchema = /*#__PURE__*/ v.object({\n $type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.literal('com.atproto.sync.subscribeRepos#account')),\n /** Indicates that the account has a repository which can be fetched from the host that emitted this event. */\n active: /*#__PURE__*/ v.boolean(),\n did: /*#__PURE__*/ v.didString(),\n seq: /*#__PURE__*/ v.integer(),\n /** If active=false, this optional field indicates a reason for why the account is not active. */\n status: /*#__PURE__*/ v.optional(\n /*#__PURE__*/ v.string()),\n time: /*#__PURE__*/ v.datetimeString(),\n});\nconst _commitSchema = /*#__PURE__*/ v.object({\n $type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.literal('com.atproto.sync.subscribeRepos#commit')),\n blobs: /*#__PURE__*/ v.array(/*#__PURE__*/ v.cidLink()),\n /**\n * CAR file containing relevant blocks, as a diff since the previous repo state. The commit must be included\n * as a block, and the commit block CID must be the first entry in the CAR header 'roots' list.\n *\n * @maxLength 2000000\n */\n blocks: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.bytes(), [/*#__PURE__*/ v.bytesSize(0, 2000000)]),\n /** Repo commit object CID. */\n commit: /*#__PURE__*/ v.cidLink(),\n /** @maxLength 200 */\n get ops() {\n return /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.array(repoOpSchema), [\n /*#__PURE__*/ v.arrayLength(0, 200),\n ]);\n },\n /**\n * The root CID of the MST tree for the previous commit from this repo (indicated by the 'since' revision\n * field in this message). Corresponds to the 'data' field in the repo commit object. NOTE: this field is\n * effectively required for the 'inductive' version of firehose.\n */\n prevData: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.cidLink()),\n /** DEPRECATED -- unused */\n rebase: /*#__PURE__*/ v.boolean(),\n /** The repo this event comes from. Note that all other message types name this field 'did'. */\n repo: /*#__PURE__*/ v.didString(),\n /**\n * The rev of the emitted commit. Note that this information is also in the commit object included in\n * blocks, unless this is a tooBig event.\n */\n rev: /*#__PURE__*/ v.tidString(),\n /** The stream sequence number of this message. */\n seq: /*#__PURE__*/ v.integer(),\n /** The rev of the last emitted commit from this repo (if any). */\n since: /*#__PURE__*/ v.nullable(/*#__PURE__*/ v.tidString()),\n /** Timestamp of when this message was originally broadcast. */\n time: /*#__PURE__*/ v.datetimeString(),\n /**\n * DEPRECATED -- replaced by #sync event and data limits. Indicates that this commit contained too many ops,\n * or data size was too large. Consumers will need to make a separate request to get missing data.\n */\n tooBig: /*#__PURE__*/ v.boolean(),\n});\nconst _identitySchema = /*#__PURE__*/ v.object({\n $type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.literal('com.atproto.sync.subscribeRepos#identity')),\n did: /*#__PURE__*/ v.didString(),\n /**\n * The current handle for the account, or 'handle.invalid' if validation fails. This field is optional,\n * might have been validated or passed-through from an upstream source. Semantics and behaviors for PDS vs\n * Relay may evolve in the future; see atproto specs for more details.\n */\n handle: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.handleString()),\n seq: /*#__PURE__*/ v.integer(),\n time: /*#__PURE__*/ v.datetimeString(),\n});\nconst _infoSchema = /*#__PURE__*/ v.object({\n $type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.literal('com.atproto.sync.subscribeRepos#info')),\n message: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),\n name: /*#__PURE__*/ v.string(),\n});\nconst _mainSchema = /*#__PURE__*/ v.subscription('com.atproto.sync.subscribeRepos', {\n params: /*#__PURE__*/ v.object({\n /** The last known event seq number to backfill from. */\n cursor: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()),\n }),\n get message() {\n return /*#__PURE__*/ v.variant([accountSchema, commitSchema, identitySchema, infoSchema, syncSchema]);\n },\n});\nconst _repoOpSchema = /*#__PURE__*/ v.object({\n $type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.literal('com.atproto.sync.subscribeRepos#repoOp')),\n action: /*#__PURE__*/ v.string(),\n /** For creates and updates, the new record CID. For deletions, null. */\n cid: /*#__PURE__*/ v.nullable(/*#__PURE__*/ v.cidLink()),\n path: /*#__PURE__*/ v.string(),\n /**\n * For updates and deletes, the previous record CID (required for inductive firehose). For creations, field\n * should not be defined.\n */\n prev: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.cidLink()),\n});\nconst _syncSchema = /*#__PURE__*/ v.object({\n $type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.literal('com.atproto.sync.subscribeRepos#sync')),\n /**\n * CAR file containing the commit, as a block. The CAR header must include the commit block CID as the first\n * 'root'.\n *\n * @maxLength 10000\n */\n blocks: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.bytes(), [/*#__PURE__*/ v.bytesSize(0, 10000)]),\n /** The account this repo event corresponds to. Must match that in the commit object. */\n did: /*#__PURE__*/ v.didString(),\n /** The rev of the commit. This value must match that in the commit object. */\n rev: /*#__PURE__*/ v.string(),\n /** The stream sequence number of this message. */\n seq: /*#__PURE__*/ v.integer(),\n /** Timestamp of when this message was originally broadcast. */\n time: /*#__PURE__*/ v.datetimeString(),\n});\nexport const accountSchema = _accountSchema;\nexport const commitSchema = _commitSchema;\nexport const identitySchema = _identitySchema;\nexport const infoSchema = _infoSchema;\nexport const mainSchema = _mainSchema;\nexport const repoOpSchema = _repoOpSchema;\nexport const syncSchema = _syncSchema;\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","subscribeRepos_exports","__export","accountSchema","commitSchema","identitySchema","infoSchema","mainSchema","repoOpSchema","syncSchema","_accountSchema","object","optional","literal","boolean","didString","integer","string","datetimeString","_commitSchema","array","cidLink","constrain","bytes","bytesSize","repoOpSchema","arrayLength","tidString","nullable","_identitySchema","handleString","_infoSchema","_mainSchema","subscription","variant","accountSchema","commitSchema","identitySchema","infoSchema","syncSchema","_repoOpSchema","_syncSchema","mainSchema","WATCHED_COLLECTIONS","ATProtoPasskeyOutput","BroadcastedOutputElement","__name","#manager","#authenticated","#restoreSettled","#rpc","#agent","#pdsUrl","outputManager","#recordCollection","#blobCollection","item","uri","colon","#did","signal","#handle","#isOnline","#rev","#firehoseRev","#firehoseIterator","#firehoseGen","#writing","#writeQueue","#writeDraining","#writeCancels","computed","#tryRestore","#online","#offline","#stopFirehose","handle","login","logout","#clearSession","clearStoredSession","#isSessionError","err","TokenRefreshError","ClientResponseError","session","restoreOrFinalize","#setSession","agent","OAuthUserAgent","originalGetSession","args","promise","Client","#fetchHandle","#startFirehose","iter","gen","pdsUrl","wssUrl","m","FirehoseSubscription","subscribeRepos_exports","message","#handleFirehoseCommit","commit","touched","op","c","did","rpc","result","ok","nsid","lastKnown","records","r","data","nsidTyped","desired","known","upserts","id","record","existing","deletes","newKnown","rkey","prior","token","#enqueueWrite","i","groupBy","keyOf","lastHashes","lastBlobs","bundles","items","newHashes","newBlobs","bundle","key","bytes","#fetchBlob","groupItems","decode","xxh32r","encode","extractKey","groups","group","hash","blob","#uploadBlob","value","cid","collection","cursor","page","fn","resolve","reject","#drainWrites","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-BMDRJICQ.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js new file mode 120000 index 00000000..3c206edc --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-BNDDYKYA.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js.br new file mode 120000 index 00000000..aff5026a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-BNDDYKYA.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js.map new file mode 120000 index 00000000..6b1362f2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BNDDYKYA.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-BNDDYKYA.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js new file mode 120000 index 00000000..ebd309f1 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-BR5FNG6K.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js.br new file mode 120000 index 00000000..a8fac68a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-BR5FNG6K.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js.map new file mode 120000 index 00000000..cf1430b9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BR5FNG6K.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-BR5FNG6K.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js new file mode 100644 index 00000000..dc075db9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js @@ -0,0 +1,3 @@ +import{c as o,f as l}from"./chunk-IA3NIKPO.js";import{j as s,o as i}from"./chunk-XILA3E7E.js";import{a as t}from"./chunk-75KFZLU6.js";var n=class extends o{static{t(this,"OutputTransformer")}#t=i(void 0);#e=Promise.withResolvers();output={whenDefined:this.#e.promise,signal:this.#t.get};connectedCallback(){super.connectedCallback();let a=l(this,"output-selector");customElements.whenDefined(a.localName).then(()=>{this.#t.value=a,this.#e.resolve(null)})}base(){return{facets:{collection:s(()=>this.output.signal()?.facets?.collection()??{state:"loading"}),reload:t(()=>this.output.signal()?.facets?.reload()??Promise.resolve(),"reload"),save:t(async e=>{await this.output.whenDefined,await this.output.signal()?.facets.save(e)},"save")},playlistItems:{collection:s(()=>this.output.signal()?.playlistItems?.collection()??{state:"loading"}),reload:t(()=>this.output.signal()?.playlistItems?.reload()??Promise.resolve(),"reload"),save:t(async e=>{await this.output.whenDefined,await this.output.signal()?.playlistItems.save(e)},"save")},settings:{collection:s(()=>this.output.signal()?.settings?.collection()??{state:"loading"}),reload:t(()=>this.output.signal()?.settings?.reload()??Promise.resolve(),"reload"),save:t(async e=>{await this.output.whenDefined,await this.output.signal()?.settings.save(e)},"save")},tracks:{collection:s(()=>this.output.signal()?.tracks?.collection()??{state:"loading"}),reload:t(()=>this.output.signal()?.tracks?.reload()??Promise.resolve(),"reload"),save:t(async e=>{await this.output.whenDefined,await this.output.signal()?.tracks.save(e)},"save")},ready:s(()=>this.output.signal()?.ready()??!1)}}};export{n as a}; + +//# sourceMappingURL=./chunk-BTSSVB7R.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js.br new file mode 100644 index 0000000000000000000000000000000000000000..2052bec8f13e80d1fad595a71839aaf800bc201e GIT binary patch literal 470 zcmb2nV`E5}JF|LPX94%LisdC9nYGUK=bn2VjTij?fA44ZADm&0t}~Z?zxQmB=?ec| z+Y{DuFU+`Ao_xRJd$X_cf%&y#vqJW!c&Kb^TUZch@@sv|sg92ej!b>{e}^8Mxw>?} zdHH$&8P%Dw5qgz(XPnTfxqoMVPRyGagY8YZy=B|p>D9lt-`4mgqqbm^b-%~VJ>tF( zRAnMQ%#O0_-6{K-Q?zjLx$-OC9h~whS(j2)MzGGlaIpA($V_#Wm+!QHE}IkZUNmB_ z6T4&o1xwXJ4bu}=YAtKyw|=|1qU`DNtYd&Blo5#?x5hV8M29f2QN-!;WRRO{K=?E&i%U7G3DX| zn@%QiTk}QTGvus#A9!Yi)V%#1Ru(*YuZ+Y#G`p<5D5fl3u9(%S)DgAsuPSHY_NB9@ z&wMVutZRCrKi>;UR&6ow!-hS|r_GAbw5iV)W*6aA=sMcB_GjUd2PSrl+hZ(NnAvR9 iGPPTG=+Wk%bC|a@72KYFUEx?p<~EKER<9SuG64WS|Ksrh literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js.map new file mode 100644 index 00000000..05fe18d2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-BTSSVB7R.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/transformer/output/base.js"],"sourcesContent":["import { BroadcastableDiffuseElement, query } from \"~/common/element.js\";\nimport { computed, signal } from \"~/common/signal.js\";\n\n/**\n * @import { OutputElement, OutputManagerDeputy } from \"@specs/components/output/types.d.ts\"\n */\n\n/**\n * @template [T=null]\n */\nexport class OutputTransformer extends BroadcastableDiffuseElement {\n // SIGNALS\n\n #output = signal(/** @type {OutputElement | undefined} */ (undefined));\n #outputWhenDefined = Promise.withResolvers();\n\n output = {\n whenDefined: this.#outputWhenDefined.promise,\n signal: this.#output.get,\n };\n\n // LIFECYCLE\n\n /**\n * @override\n */\n connectedCallback() {\n super.connectedCallback();\n\n /** @type {OutputElement} */\n const output = query(this, \"output-selector\");\n\n // When defined\n customElements.whenDefined(output.localName).then(() => {\n this.#output.value = output;\n this.#outputWhenDefined.resolve(null);\n });\n }\n\n // MANAGER\n\n base() {\n /** @type {OutputManagerDeputy} */\n const m = {\n facets: {\n collection: computed(() => {\n return this.output.signal()?.facets?.collection() ??\n { state: \"loading\" };\n }),\n reload: () => {\n return this.output.signal()?.facets?.reload() ??\n Promise.resolve();\n },\n save: async (newFacets) => {\n await this.output.whenDefined;\n await this.output.signal()?.facets.save(newFacets);\n },\n },\n playlistItems: {\n collection: computed(() => {\n return this.output.signal()?.playlistItems?.collection() ??\n { state: \"loading\" };\n }),\n reload: () => {\n return this.output.signal()?.playlistItems?.reload() ??\n Promise.resolve();\n },\n save: async (newPlaylistItems) => {\n await this.output.whenDefined;\n await this.output.signal()?.playlistItems.save(newPlaylistItems);\n },\n },\n settings: {\n collection: computed(() => {\n return this.output.signal()?.settings?.collection() ??\n { state: \"loading\" };\n }),\n reload: () => {\n return this.output.signal()?.settings?.reload() ??\n Promise.resolve();\n },\n save: async (newSettings) => {\n await this.output.whenDefined;\n await this.output.signal()?.settings.save(newSettings);\n },\n },\n tracks: {\n collection: computed(() => {\n return this.output.signal()?.tracks?.collection() ??\n { state: \"loading\" };\n }),\n reload: () => {\n return this.output.signal()?.tracks?.reload() ?? Promise.resolve();\n },\n save: async (newTracks) => {\n await this.output.whenDefined;\n await this.output.signal()?.tracks.save(newTracks);\n },\n },\n\n // Other non-data related state\n ready: computed(() => this.output.signal()?.ready() ?? false),\n };\n\n return m;\n }\n}\n"],"mappings":"sIAUO,IAAMA,EAAN,cAAgCC,CAA4B,CAVnE,MAUmE,CAAAC,EAAA,0BAGjEC,GAAUC,EAAoD,MAAU,EACxEC,GAAqB,QAAQ,cAAc,EAE3C,OAAS,CACP,YAAa,KAAKA,GAAmB,QACrC,OAAQ,KAAKF,GAAQ,GACvB,EAOA,mBAAoB,CAClB,MAAM,kBAAkB,EAGxB,IAAMG,EAASC,EAAM,KAAM,iBAAiB,EAG5C,eAAe,YAAYD,EAAO,SAAS,EAAE,KAAK,IAAM,CACtD,KAAKH,GAAQ,MAAQG,EACrB,KAAKD,GAAmB,QAAQ,IAAI,CACtC,CAAC,CACH,CAIA,MAAO,CA+DL,MA7DU,CACR,OAAQ,CACN,WAAYG,EAAS,IACZ,KAAK,OAAO,OAAO,GAAG,QAAQ,WAAW,GAC9C,CAAE,MAAO,SAAU,CACtB,EACD,OAAQN,EAAA,IACC,KAAK,OAAO,OAAO,GAAG,QAAQ,OAAO,GAC1C,QAAQ,QAAQ,EAFZ,UAIR,KAAMA,EAAA,MAAOO,GAAc,CACzB,MAAM,KAAK,OAAO,YAClB,MAAM,KAAK,OAAO,OAAO,GAAG,OAAO,KAAKA,CAAS,CACnD,EAHM,OAIR,EACA,cAAe,CACb,WAAYD,EAAS,IACZ,KAAK,OAAO,OAAO,GAAG,eAAe,WAAW,GACrD,CAAE,MAAO,SAAU,CACtB,EACD,OAAQN,EAAA,IACC,KAAK,OAAO,OAAO,GAAG,eAAe,OAAO,GACjD,QAAQ,QAAQ,EAFZ,UAIR,KAAMA,EAAA,MAAOQ,GAAqB,CAChC,MAAM,KAAK,OAAO,YAClB,MAAM,KAAK,OAAO,OAAO,GAAG,cAAc,KAAKA,CAAgB,CACjE,EAHM,OAIR,EACA,SAAU,CACR,WAAYF,EAAS,IACZ,KAAK,OAAO,OAAO,GAAG,UAAU,WAAW,GAChD,CAAE,MAAO,SAAU,CACtB,EACD,OAAQN,EAAA,IACC,KAAK,OAAO,OAAO,GAAG,UAAU,OAAO,GAC5C,QAAQ,QAAQ,EAFZ,UAIR,KAAMA,EAAA,MAAOS,GAAgB,CAC3B,MAAM,KAAK,OAAO,YAClB,MAAM,KAAK,OAAO,OAAO,GAAG,SAAS,KAAKA,CAAW,CACvD,EAHM,OAIR,EACA,OAAQ,CACN,WAAYH,EAAS,IACZ,KAAK,OAAO,OAAO,GAAG,QAAQ,WAAW,GAC9C,CAAE,MAAO,SAAU,CACtB,EACD,OAAQN,EAAA,IACC,KAAK,OAAO,OAAO,GAAG,QAAQ,OAAO,GAAK,QAAQ,QAAQ,EAD3D,UAGR,KAAMA,EAAA,MAAOU,GAAc,CACzB,MAAM,KAAK,OAAO,YAClB,MAAM,KAAK,OAAO,OAAO,GAAG,OAAO,KAAKA,CAAS,CACnD,EAHM,OAIR,EAGA,MAAOJ,EAAS,IAAM,KAAK,OAAO,OAAO,GAAG,MAAM,GAAK,EAAK,CAC9D,CAGF,CACF","names":["OutputTransformer","BroadcastableDiffuseElement","__name","#output","signal","#outputWhenDefined","output","query","computed","newFacets","newPlaylistItems","newSettings","newTracks"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-BTSSVB7R.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js new file mode 100644 index 00000000..5b72d821 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js @@ -0,0 +1,3 @@ +import{c as r}from"./chunk-FHQAE777.js";import{B as g,i as o,k as c,o as i,p as a}from"./chunk-PHFIOWBZ.js";import{a as n}from"./chunk-75KFZLU6.js";var m={0:"Other",1:"32x32 pixels 'file icon' (PNG only)",2:"Other file icon",3:"Cover (front)",4:"Cover (back)",5:"Leaflet page",6:"Media (e.g. label side of CD)",7:"Lead artist/lead performer/soloist",8:"Artist/performer",9:"Conductor",10:"Band/Orchestra",11:"Composer",12:"Lyricist/text writer",13:"Recording Location",14:"During recording",15:"During performance",16:"Movie/video screen capture",17:"A bright coloured fish",18:"Illustration",19:"Band/artist logotype",20:"Publisher/Studio logotype"},u={other:0,lyrics:1,text:2,movement_part:3,events:4,chord:5,trivia_pop:6},h={notSynchronized:0,mpegFrameNumber:1,milliseconds:2},l={get:n((e,t)=>e[t+3]&127|e[t+2]<<7|e[t+1]<<14|e[t]<<21,"get"),len:4},k={len:10,get:n((e,t)=>({fileIdentifier:new g(3,"ascii").get(e,t),version:{major:a.get(e,t+3),revision:a.get(e,t+4)},flags:{unsynchronisation:r(e,t+5,7),isExtendedHeader:r(e,t+5,6),expIndicator:r(e,t+5,5),footer:r(e,t+5,4)},size:l.get(e,t+6)}),"get")},I={len:10,get:n((e,t)=>({size:i.get(e,t),extendedFlags:c.get(e,t+4),sizeOfPadding:i.get(e,t+6),crcDataPresent:r(e,t+4,31)}),"get")},d={len:1,get:n((e,t)=>{switch(e[t]){case 0:return{encoding:"latin1"};case 1:return{encoding:"utf-16le",bom:!0};case 2:return{encoding:"utf-16be",bom:!1};case 3:return{encoding:"utf8",bom:!1};default:return{encoding:"utf8",bom:!1}}},"get")},p={len:4,get:n((e,t)=>({encoding:d.get(e,t),language:new g(3,"latin1").get(e,t+1)}),"get")},y={len:6,get:n((e,t)=>{let s=p.get(e,t);return{encoding:s.encoding,language:s.language,timeStampFormat:o.get(e,t+4),contentType:o.get(e,t+5)}},"get")};export{m as a,u as b,h as c,l as d,k as e,I as f,d as g,p as h,y as i}; + +//# sourceMappingURL=./chunk-C5GF5WSP.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js.br new file mode 100644 index 0000000000000000000000000000000000000000..378c338c753b63489dfee65ac37a9d7ff0577b9a GIT binary patch literal 869 zcmb3C%f^sm9Q*hC=T9%CBwY$$t!vQUD(%h^{HP~4OYd{Nef;}-kAA4iMl9g5e)R65 ziBQggi}u|Q^`DvU%+w)c^i^kl*Lw72(i{duu*DzWRJlZqu5#Yh;CG4n8t% zn559z@2MkI{G?ZWyZHeD?zcKARu+XU5H5 zp_r{789z*VU^j)~08hnH=cw3sB^y4?l^3=ND7CD5{bf>ZK~{)2=d+t;*RmJrs8y5} zxjpV;v15DK@+NG;2fpc#%u7}0lqfIo;XJ1q_Rb+9{K`x3eW= zhu5wPt2nLMnYm8a8kS3U-gwety4qWCZ8XDE)q|hUrX9EL-}lB#ZC#a8QnL1L%TT@q z8?_xByJp01l8(J4o#dz_`z~$m{pidd&0{`7uG@lp>S8`_57Y~2lKaQvulZ_escNdk zoSV|7^EUH7mDNkn%{_cP*!E7rHnViS%%0nAtLGfyO_2876JnO9^Y2FRorh`H!emyw z`zqmVviq>Tv;EIn?_)>*&%gKMd&w?=B~i;Bd)NCf-{`W!!l6Zao#xvD+w9|omTo<- z;$F}E|6|V+s~N3{?xylCSG@(MTt9X|)xPLKs>C6wtjiPUg{YYitfHIX#w_?{1uS`igo6du2oa+0V*63fp*7?)=gJG2M6Ff!W5F z+n6VuR?Gk#e9|1VEpkb&p2&BeaOtg4m14hFalf~lySwp>IgiEm z=v`)QX&TGUoSanG6yx+ss91mX!q+KkraM;NV%Px# literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js.map new file mode 100644 index 00000000..31fb7721 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-C5GF5WSP.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/id3v2/ID3v2Token.js"],"sourcesContent":["import * as Token from 'token-types';\nimport * as util from '../common/Util.js';\n/**\n * The picture type according to the ID3v2 APIC frame\n * Ref: http://id3.org/id3v2.3.0#Attached_picture\n */\nexport const AttachedPictureType = {\n 0: 'Other',\n 1: \"32x32 pixels 'file icon' (PNG only)\",\n 2: 'Other file icon',\n 3: 'Cover (front)',\n 4: 'Cover (back)',\n 5: 'Leaflet page',\n 6: 'Media (e.g. label side of CD)',\n 7: 'Lead artist/lead performer/soloist',\n 8: 'Artist/performer',\n 9: 'Conductor',\n 10: 'Band/Orchestra',\n 11: 'Composer',\n 12: 'Lyricist/text writer',\n 13: 'Recording Location',\n 14: 'During recording',\n 15: 'During performance',\n 16: 'Movie/video screen capture',\n 17: 'A bright coloured fish',\n 18: 'Illustration',\n 19: 'Band/artist logotype',\n 20: 'Publisher/Studio logotype'\n};\n/**\n * https://id3.org/id3v2.3.0#Synchronised_lyrics.2Ftext\n */\nexport const LyricsContentType = {\n other: 0,\n lyrics: 1,\n text: 2,\n movement_part: 3,\n events: 4,\n chord: 5,\n trivia_pop: 6,\n};\nexport const TimestampFormat = {\n notSynchronized: 0,\n mpegFrameNumber: 1,\n milliseconds: 2\n};\n/**\n * 28 bits (representing up to 256MB) integer, the msb is 0 to avoid 'false syncsignals'.\n * 4 * %0xxxxxxx\n */\nexport const UINT32SYNCSAFE = {\n get: (buf, off) => {\n return buf[off + 3] & 0x7f | ((buf[off + 2]) << 7) |\n ((buf[off + 1]) << 14) | ((buf[off]) << 21);\n },\n len: 4\n};\n/**\n * ID3v2 header\n * Ref: http://id3.org/id3v2.3.0#ID3v2_header\n * ToDo\n */\nexport const ID3v2Header = {\n len: 10,\n get: (buf, off) => {\n return {\n // ID3v2/file identifier \"ID3\"\n fileIdentifier: new Token.StringType(3, 'ascii').get(buf, off),\n // ID3v2 versionIndex\n version: {\n major: Token.INT8.get(buf, off + 3),\n revision: Token.INT8.get(buf, off + 4)\n },\n // ID3v2 flags\n flags: {\n // Unsynchronisation\n unsynchronisation: util.getBit(buf, off + 5, 7),\n // Extended header\n isExtendedHeader: util.getBit(buf, off + 5, 6),\n // Experimental indicator\n expIndicator: util.getBit(buf, off + 5, 5),\n footer: util.getBit(buf, off + 5, 4)\n },\n size: UINT32SYNCSAFE.get(buf, off + 6)\n };\n }\n};\nexport const ExtendedHeader = {\n len: 10,\n get: (buf, off) => {\n return {\n // Extended header size\n size: Token.UINT32_BE.get(buf, off),\n // Extended Flags\n extendedFlags: Token.UINT16_BE.get(buf, off + 4),\n // Size of padding\n sizeOfPadding: Token.UINT32_BE.get(buf, off + 6),\n // CRC data present\n crcDataPresent: util.getBit(buf, off + 4, 31)\n };\n }\n};\nexport const TextEncodingToken = {\n len: 1,\n get: (uint8Array, off) => {\n switch (uint8Array[off]) {\n case 0x00:\n return { encoding: 'latin1' }; // binary\n case 0x01:\n return { encoding: 'utf-16le', bom: true };\n case 0x02:\n return { encoding: 'utf-16be', bom: false };\n case 0x03:\n return { encoding: 'utf8', bom: false };\n default:\n return { encoding: 'utf8', bom: false };\n }\n }\n};\n/**\n * Used to read first portion of `SYLT` frame\n */\nexport const TextHeader = {\n len: 4,\n get: (uint8Array, off) => {\n return {\n encoding: TextEncodingToken.get(uint8Array, off),\n language: new Token.StringType(3, 'latin1').get(uint8Array, off + 1)\n };\n }\n};\n/**\n * Used to read first portion of `SYLT` frame\n */\nexport const SyncTextHeader = {\n len: 6,\n get: (uint8Array, off) => {\n const text = TextHeader.get(uint8Array, off);\n return {\n encoding: text.encoding,\n language: text.language,\n timeStampFormat: Token.UINT8.get(uint8Array, off + 4),\n contentType: Token.UINT8.get(uint8Array, off + 5)\n };\n }\n};\n"],"mappings":"oJAMO,IAAMA,EAAsB,CAC/B,EAAG,QACH,EAAG,sCACH,EAAG,kBACH,EAAG,gBACH,EAAG,eACH,EAAG,eACH,EAAG,gCACH,EAAG,qCACH,EAAG,mBACH,EAAG,YACH,GAAI,iBACJ,GAAI,WACJ,GAAI,uBACJ,GAAI,qBACJ,GAAI,mBACJ,GAAI,qBACJ,GAAI,6BACJ,GAAI,yBACJ,GAAI,eACJ,GAAI,uBACJ,GAAI,2BACR,EAIaC,EAAoB,CAC7B,MAAO,EACP,OAAQ,EACR,KAAM,EACN,cAAe,EACf,OAAQ,EACR,MAAO,EACP,WAAY,CAChB,EACaC,EAAkB,CAC3B,gBAAiB,EACjB,gBAAiB,EACjB,aAAc,CAClB,EAKaC,EAAiB,CAC1B,IAAKC,EAAA,CAACC,EAAKC,IACAD,EAAIC,EAAM,CAAC,EAAI,IAASD,EAAIC,EAAM,CAAC,GAAM,EAC1CD,EAAIC,EAAM,CAAC,GAAM,GAAQD,EAAIC,CAAG,GAAM,GAF3C,OAIL,IAAK,CACT,EAMaC,EAAc,CACvB,IAAK,GACL,IAAKH,EAAA,CAACC,EAAKC,KACA,CAEH,eAAgB,IAAUE,EAAW,EAAG,OAAO,EAAE,IAAIH,EAAKC,CAAG,EAE7D,QAAS,CACL,MAAaG,EAAK,IAAIJ,EAAKC,EAAM,CAAC,EAClC,SAAgBG,EAAK,IAAIJ,EAAKC,EAAM,CAAC,CACzC,EAEA,MAAO,CAEH,kBAAwBI,EAAOL,EAAKC,EAAM,EAAG,CAAC,EAE9C,iBAAuBI,EAAOL,EAAKC,EAAM,EAAG,CAAC,EAE7C,aAAmBI,EAAOL,EAAKC,EAAM,EAAG,CAAC,EACzC,OAAaI,EAAOL,EAAKC,EAAM,EAAG,CAAC,CACvC,EACA,KAAMH,EAAe,IAAIE,EAAKC,EAAM,CAAC,CACzC,GApBC,MAsBT,EACaK,EAAiB,CAC1B,IAAK,GACL,IAAKP,EAAA,CAACC,EAAKC,KACA,CAEH,KAAYM,EAAU,IAAIP,EAAKC,CAAG,EAElC,cAAqBO,EAAU,IAAIR,EAAKC,EAAM,CAAC,EAE/C,cAAqBM,EAAU,IAAIP,EAAKC,EAAM,CAAC,EAE/C,eAAqBI,EAAOL,EAAKC,EAAM,EAAG,EAAE,CAChD,GAVC,MAYT,EACaQ,EAAoB,CAC7B,IAAK,EACL,IAAKV,EAAA,CAACW,EAAYT,IAAQ,CACtB,OAAQS,EAAWT,CAAG,EAAG,CACrB,IAAK,GACD,MAAO,CAAE,SAAU,QAAS,EAChC,IAAK,GACD,MAAO,CAAE,SAAU,WAAY,IAAK,EAAK,EAC7C,IAAK,GACD,MAAO,CAAE,SAAU,WAAY,IAAK,EAAM,EAC9C,IAAK,GACD,MAAO,CAAE,SAAU,OAAQ,IAAK,EAAM,EAC1C,QACI,MAAO,CAAE,SAAU,OAAQ,IAAK,EAAM,CAC9C,CACJ,EAbK,MAcT,EAIaU,EAAa,CACtB,IAAK,EACL,IAAKZ,EAAA,CAACW,EAAYT,KACP,CACH,SAAUQ,EAAkB,IAAIC,EAAYT,CAAG,EAC/C,SAAU,IAAUE,EAAW,EAAG,QAAQ,EAAE,IAAIO,EAAYT,EAAM,CAAC,CACvE,GAJC,MAMT,EAIaW,EAAiB,CAC1B,IAAK,EACL,IAAKb,EAAA,CAACW,EAAYT,IAAQ,CACtB,IAAMY,EAAOF,EAAW,IAAID,EAAYT,CAAG,EAC3C,MAAO,CACH,SAAUY,EAAK,SACf,SAAUA,EAAK,SACf,gBAAuBC,EAAM,IAAIJ,EAAYT,EAAM,CAAC,EACpD,YAAmBa,EAAM,IAAIJ,EAAYT,EAAM,CAAC,CACpD,CACJ,EARK,MAST","names":["AttachedPictureType","LyricsContentType","TimestampFormat","UINT32SYNCSAFE","__name","buf","off","ID3v2Header","StringType","INT8","getBit","ExtendedHeader","UINT32_BE","UINT16_BE","TextEncodingToken","uint8Array","TextHeader","SyncTextHeader","text","UINT8"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-C5GF5WSP.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CF75KXQM.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CF75KXQM.js new file mode 100644 index 00000000..b2b26abb --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CF75KXQM.js @@ -0,0 +1,3 @@ +import{b as p,e as h}from"./chunk-IA3NIKPO.js";import{h as s}from"./chunk-NYGD7JS5.js";import{o as t}from"./chunk-XILA3E7E.js";import{a as r,c as o}from"./chunk-75KFZLU6.js";var f={};o(f,{CLASS:()=>l,NAME:()=>n,default:()=>u});var e=class extends p{static{r(this,"QueueEngine")}static NAME="diffuse/engine/queue";static WORKER_URL="components/engine/queue/worker.js";constructor(){super(),this.proxy=this.workerProxy(),this.add=this.proxy.add,this.clear=this.proxy.clear,this.expel=this.proxy.expel,this.fill=this.proxy.fill,this.move=this.proxy.move,this.shift=this.proxy.shift,this.supply=this.proxy.supply,this.unshift=this.proxy.unshift}#t=t([]);#s=t(null);#e=t([]);#i=t(void 0);future=this.#t.get;now=this.#s.get;past=this.#e.get;supplyFingerprint=this.#i.get;connectedCallback(){super.connectedCallback();let i=this.workerLink();s("future",this.#t.set,i),s("now",this.#s.set,i),s("past",this.#e.set,i),s("supplyFingerprint",this.#i.set,i),this.proxy.future().then(this.#t.set),this.proxy.now().then(this.#s.set),this.proxy.past().then(this.#e.set),this.proxy.supplyFingerprint().then(this.#i.set)}},u=e,l=e,n="de-queue";h(n,e);export{u as a,l as b,n as c,f as d}; + +//# sourceMappingURL=./chunk-CF75KXQM.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CF75KXQM.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CF75KXQM.js.br new file mode 100644 index 0000000000000000000000000000000000000000..7192abc8a0b83b8b5e6b7f3711531adc7f574e7d GIT binary patch literal 508 zcmb21$ina>B>lI3@DsglC8}Fu94gMRa+Q6stlz)$)IPseD$?JBja^<<^OqI%-2Ai5 z@N$-!PuT3Xb)CkuLNxQ;3eVLoafta-ef?g|S;jZUVJXM@RVMz~;8fYoFLm=}g2{Z< zb#@Q6CY2tWzIBFN)!Rn}Q>Tk4Z@9sKtT$)*jfwZPu>a&00kyzs>M=T*=Fxptr>CDS(mByyb?1)A^hW*j>iegZ zJD(S><}aA9)xT+fNzg)`IS18c{A>Sr1P5_Fb8&z4&i8t&#)OXciTkcAO?+nZr|d(Y z<Ihi6Afyva@W6SubZJP}xz?JaEk=Z4Ux+~yLtuh(w> z<>OS3(^K7{|3jAfY@bTQeVNod%a2sDGHrdZ{a{*v*^*zc&e&O8lRR5-<80r8wD(7) zZ^bOsDJ-;F_U*m*y$P>YC;xu1h*?>hfA_nFNjdfXN*t_*Vii0bOL~~oZY~m}\n */\nclass QueueEngine extends DiffuseElement {\n static NAME = \"diffuse/engine/queue\";\n static WORKER_URL = \"components/engine/queue/worker.js\";\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n this.proxy = this.workerProxy();\n\n this.add = this.proxy.add;\n this.clear = this.proxy.clear;\n this.expel = this.proxy.expel;\n this.fill = this.proxy.fill;\n this.move = this.proxy.move;\n this.shift = this.proxy.shift;\n this.supply = this.proxy.supply;\n this.unshift = this.proxy.unshift;\n }\n\n // SIGNALS\n\n #future = signal(/** @type {Array} */ ([]));\n #now = signal(/** @type {Item | null} */ (null));\n #past = signal(/** @type {Array} */ ([]));\n #supplyFingerprint = signal(/** @type {string | undefined} */ (undefined));\n\n // STATE\n\n future = this.#future.get;\n now = this.#now.get;\n past = this.#past.get;\n supplyFingerprint = this.#supplyFingerprint.get;\n\n // LIFECYCLE\n\n /**\n * @override\n */\n connectedCallback() {\n super.connectedCallback();\n\n // Sync data with worker\n const link = this.workerLink();\n\n // Listen for remote data changes\n listen(\"future\", this.#future.set, link);\n listen(\"now\", this.#now.set, link);\n listen(\"past\", this.#past.set, link);\n listen(\"supplyFingerprint\", this.#supplyFingerprint.set, link);\n\n // Fetch current data state\n this.proxy.future().then(this.#future.set);\n this.proxy.now().then(this.#now.set);\n this.proxy.past().then(this.#past.set);\n this.proxy.supplyFingerprint().then(this.#supplyFingerprint.set);\n }\n}\n\nexport default QueueEngine;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = QueueEngine;\nexport const NAME = \"de-queue\";\n\ndefineElement(NAME, QueueEngine);\n"],"mappings":"8KAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAgBA,IAAMC,EAAN,cAA0BC,CAAe,CAhBzC,MAgByC,CAAAC,EAAA,oBACvC,OAAO,KAAO,uBACd,OAAO,WAAa,oCAEpB,aAAc,CACZ,MAAM,EAGN,KAAK,MAAQ,KAAK,YAAY,EAE9B,KAAK,IAAM,KAAK,MAAM,IACtB,KAAK,MAAQ,KAAK,MAAM,MACxB,KAAK,MAAQ,KAAK,MAAM,MACxB,KAAK,KAAO,KAAK,MAAM,KACvB,KAAK,KAAO,KAAK,MAAM,KACvB,KAAK,MAAQ,KAAK,MAAM,MACxB,KAAK,OAAS,KAAK,MAAM,OACzB,KAAK,QAAU,KAAK,MAAM,OAC5B,CAIAC,GAAUC,EAAmC,CAAC,CAAE,EAChDC,GAAOD,EAAmC,IAAK,EAC/CE,GAAQF,EAAmC,CAAC,CAAE,EAC9CG,GAAqBH,EAA0C,MAAU,EAIzE,OAAS,KAAKD,GAAQ,IACtB,IAAM,KAAKE,GAAK,IAChB,KAAO,KAAKC,GAAM,IAClB,kBAAoB,KAAKC,GAAmB,IAO5C,mBAAoB,CAClB,MAAM,kBAAkB,EAGxB,IAAMC,EAAO,KAAK,WAAW,EAG7BC,EAAO,SAAU,KAAKN,GAAQ,IAAKK,CAAI,EACvCC,EAAO,MAAO,KAAKJ,GAAK,IAAKG,CAAI,EACjCC,EAAO,OAAQ,KAAKH,GAAM,IAAKE,CAAI,EACnCC,EAAO,oBAAqB,KAAKF,GAAmB,IAAKC,CAAI,EAG7D,KAAK,MAAM,OAAO,EAAE,KAAK,KAAKL,GAAQ,GAAG,EACzC,KAAK,MAAM,IAAI,EAAE,KAAK,KAAKE,GAAK,GAAG,EACnC,KAAK,MAAM,KAAK,EAAE,KAAK,KAAKC,GAAM,GAAG,EACrC,KAAK,MAAM,kBAAkB,EAAE,KAAK,KAAKC,GAAmB,GAAG,CACjE,CACF,EAEOG,EAAQV,EAMFW,EAAQX,EACRY,EAAO,WAEpBC,EAAcD,EAAMZ,CAAW","names":["element_exports","__export","CLASS","NAME","element_default","QueueEngine","DiffuseElement","__name","#future","signal","#now","#past","#supplyFingerprint","link","listen","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-CF75KXQM.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js new file mode 100644 index 00000000..5056575c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js @@ -0,0 +1,3 @@ +import{a as n}from"./chunk-75KFZLU6.js";var o=new Map;function f(e){o.set(u(e.source,e.target),e)}n(f,"register");function l(e,t,i={}){let r=o.get(u(e,t));return r||(i.history?.find(s=>s.from===e&&s.to===t)?.lens??null)}n(l,"resolve");function u(e,t){return`${e}@${t}`}n(u,"key");export{f as a,l as b}; + +//# sourceMappingURL=./chunk-CR6GBUUD.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js.br new file mode 100644 index 0000000000000000000000000000000000000000..36a3ab2fe3d3a8de6d111422c50ff987f831db19 GIT binary patch literal 217 zcmb2vV`NAP+&=&Ltjrxp4(&MNx4$iA#*)Kc*XP!;AAQem8Mn`N!#0(LF2dfcb`(iF zXRPT9TjzH~Ev#ti+KAm+pO!KnJ!`jr-XpKf8ZRTh#9*s6U(d;jHew z|NF}uI!zjP8uf2Hdf|hl;K@RXBfNsG^BFEpo&3bAb=BjYk8l5UJ?NUUvcg~2b5*YA d!l2TxpH5g@y#7J@%SSfjXxHZ^*H#5G005p-Y^eYM literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js.map new file mode 100644 index 00000000..71548cde --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-CR6GBUUD.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/common/lens-registry.js"],"sourcesContent":["/**\n * Lens registry: authored lens documents that migrate diffuse data from one\n * lexicon NSID to another.\n *\n * Lens documents are deliberately authored (per schema change) and schema\n * independent: each is an object carrying `id`, `source`, `target`, and `steps`,\n * which `@panproto/core`'s `compileLensDocument` accepts. A build's bundled\n * registry resolves an `(sourceNsid, targetNsid)` transition to a lens document.\n * When a payload's `$schemaHistory` embeds its own lens for a segment the reader\n * doesn't know, the embedded document takes precedence for that segment (so old\n * apps can read newer data).\n *\n * In keeping with atproto's lexicon model, the NSID is the schema identity, so\n * `source`/`target` are NSIDs. Compatible evolution keeps the same NSID (new\n * optional fields, no lens needed); breaking changes use a NEW NSID and an\n * authored lens from the old NSID to the new one.\n */\n\n/**\n * A lens document that maps one lexicon NSID to another.\n *\n * @typedef {{\n * id: string;\n * source: string;\n * target: string;\n * steps: unknown[];\n * }} LensDocument\n */\n\n/** @type {Map} */\nconst registry = new Map();\n\n/**\n * Register an authored lens document.\n *\n * @param {LensDocument} doc\n *\n * @example Registers and looks up a lens by its transition\n * ```js\n * import { register, resolve } from \"~/common/lens-registry.js\";\n *\n * register({ id: \"track-v1-to-v2\", source: \"sh.diffuse.output.track\", target: \"sh.diffuse.output.track2\", steps: [] });\n * const doc = resolve(\"sh.diffuse.output.track\", \"sh.diffuse.output.track2\");\n * if (doc?.id !== \"track-v1-to-v2\") throw new Error(\"expected registered lens\");\n * ```\n */\nexport function register(doc) {\n registry.set(key(doc.source, doc.target), doc);\n}\n\n/**\n * Resolve a lens document for a transition. The bundled registry is consulted\n * first; then the `history` supplied with the payload (embedded lenses), which\n * lets an older app traverse segments it doesn't have in its own registry.\n *\n * @param {string} from - The source lexicon NSID\n * @param {string} to - The target lexicon NSID\n * @param {{ history?: import(\"./self-describing.js\").HistoryEntry[] }} [options]\n * @returns {LensDocument | null}\n *\n * @example Finds a bundled-registry lens before any embedded one\n * ```js\n * import { register, resolve } from \"~/common/lens-registry.js\";\n *\n * register({ id: \"a-to-b\", source: \"s\", target: \"t\", steps: [] });\n * const doc = resolve(\"s\", \"t\");\n * if (!doc) throw new Error(\"expected a lens\");\n * ```\n *\n * @example Falls back to an embedded lens for a segment not in the registry\n * ```js\n * import { resolve } from \"~/common/lens-registry.js\";\n *\n * const embedded = { id: \"old-segment\", source: \"s\", target: \"t\", steps: [{ rename_field: { old: \"a\", new: \"b\" } }] };\n * const doc = resolve(\"s\", \"t\", {\n * history: [{\n * from: \"s\", to: \"t\", lens: embedded, complement: null,\n * }],\n * });\n * if (doc?.id !== \"old-segment\") throw new Error(\"expected embedded lens\");\n * ```\n */\nexport function resolve(from, to, options = {}) {\n const bundled = registry.get(key(from, to));\n if (bundled) return bundled;\n\n const entry = options.history?.find(\n (h) => h.from === from && h.to === to,\n );\n return entry?.lens ?? null;\n}\n\n/**\n * @param {string} source\n * @param {string} target\n */\nfunction key(source, target) {\n return `${source}@${target}`;\n}"],"mappings":"wCA8BA,IAAMA,EAAW,IAAI,IAgBd,SAASC,EAASC,EAAK,CAC5BF,EAAS,IAAIG,EAAID,EAAI,OAAQA,EAAI,MAAM,EAAGA,CAAG,CAC/C,CAFgBE,EAAAH,EAAA,YAoCT,SAASI,EAAQC,EAAMC,EAAIC,EAAU,CAAC,EAAG,CAC9C,IAAMC,EAAUT,EAAS,IAAIG,EAAIG,EAAMC,CAAE,CAAC,EAC1C,OAAIE,IAEUD,EAAQ,SAAS,KAC5BE,GAAMA,EAAE,OAASJ,GAAQI,EAAE,KAAOH,CACrC,GACc,MAAQ,KACxB,CARgBH,EAAAC,EAAA,WAchB,SAASF,EAAIQ,EAAQC,EAAQ,CAC3B,MAAO,GAAGD,CAAM,IAAIC,CAAM,EAC5B,CAFSR,EAAAD,EAAA","names":["registry","register","doc","key","__name","resolve","from","to","options","bundled","h","source","target"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-CR6GBUUD.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-E2G3ZJP4.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-E2G3ZJP4.js new file mode 100644 index 00000000..6568ede4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-E2G3ZJP4.js @@ -0,0 +1,12 @@ +import{b as X,c as V,d as oe}from"./chunk-IUBFNQRH.js";import{a as ae}from"./chunk-OO43XB75.js";import{c as re,d as ne}from"./chunk-ZVWOBRJZ.js";import{k as se}from"./chunk-J3G2CW6Q.js";import{a as H}from"./chunk-7NEQFE27.js";import{a as ee,b as te}from"./chunk-TVBOGSPT.js";import{a as c}from"./chunk-75KFZLU6.js";var j=class extends TransformStream{static{c(this,"TransformChunkSizes")}outChunkSize;constructor(t){let r=new Uint8Array(t),n=0;super({transform(s,o){let i=0;for(;i0&&s.enqueue(r.subarray(0,n))}}),this.outChunkSize=t}};function E(e){return e=e.trim(),e=e.replace(//g,""),t();function t(){return{declaration:r(),root:n()}}c(t,"document");function r(){if(!d(/^<\?xml\s*/))return;let f={attributes:{}};for(;!(u()||m("?>"));){let l=o();if(!l)return f;f.attributes[l.name]=l.value}return d(/\?>\s*/),f}c(r,"declaration");function n(){let h=d(/^<([\w-:.]+)\s*/);if(!h)return;let f={name:h[1],attributes:{},children:[]};for(;!(u()||m(">")||m("?>")||m("/>"));){let p=o();if(!p)return f;f.attributes[p.name]=p.value}if(d(/^\s*\/>\s*/))return f;d(/\??>\s*/),f.content=s();let l;for(;l=n();)f.children.push(l);return d(/^<\/[\w-:.]+>\s*/),f}c(n,"tag");function s(){let h=d(/^([^<]*)/);return h?a(h[1]):""}c(s,"content");function o(){let h=d(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);if(h)return{name:h[1],value:a(i(h[2]))}}c(o,"attribute");function i(h){return h.replace(/^['"]|['"]$/g,"")}c(i,"strip");function a(h){return h.replaceAll("<","<").replaceAll(">",">").replaceAll("&","&")}c(a,"entities");function d(h){let f=e.match(h);if(f)return e=e.slice(f[0].length),f}c(d,"match");function u(){return e.length===0}c(u,"eos");function m(h){return e.startsWith(h)}c(m,"is")}c(E,"parse");var w=class extends Error{static{c(this,"S3Error")}};var g=class extends w{static{c(this,"InvalidArgumentError")}},U=class extends w{static{c(this,"InvalidEndpointError")}},O=class extends w{static{c(this,"InvalidBucketNameError")}bucketName;constructor(t){super(`Invalid bucket name: ${t}`),this.bucketName=t}},x=class extends w{static{c(this,"InvalidObjectNameError")}objectName;constructor(t){super(`Invalid object name: ${t}`),this.objectName=t}},z=class extends w{static{c(this,"AccessKeyRequiredError")}constructor(){super("accessKey is required")}},T=class extends w{static{c(this,"SecretKeyRequiredError")}constructor(){super("secretKey is required")}},K=class extends w{static{c(this,"InvalidExpiryError")}constructor(){super("expirySeconds cannot be less than 1 second or more than 7 days")}},k=class extends w{static{c(this,"ServerError")}statusCode;code;key;bucketName;resource;region;constructor(t,r,n,s={}){super(n),this.statusCode=t,this.code=r,this.key=s.key,this.bucketName=s.bucketName,this.resource=s.resource,this.region=s.region}};async function ie(e){try{let r=E(await e.text()).root;if(r?.name!=="Error")throw new Error("Invalid root, expected ");let n=r.children.find(u=>u.name==="Code")?.content??"UnknownErrorCode",s=r.children.find(u=>u.name==="Message")?.content??"The error message could not be determined.",o=r.children.find(u=>u.name==="Key")?.content,i=r.children.find(u=>u.name==="BucketName")?.content,a=r.children.find(u=>u.name==="Resource")?.content,d=r.children.find(u=>u.name==="Region")?.content;return new k(e.status,n,s,{key:o,bucketName:i,resource:a,region:d})}catch{return new k(e.status,"UnrecognizedError",`Error: Unexpected response code ${e.status} ${e.statusText}. Unable to parse response as XML.`)}}c(ie,"parseServerError");function ce(e){return typeof e!="number"||isNaN(e)?!1:e>=1&&e<=65535}c(ce,"isValidPort");function de(e){return typeof e!="string"||e.length>255||e.includes("..")?!1:!!e.match(/^[a-zA-Z0-9][a-zA-Z0-9.-]+[a-zA-Z0-9]$/)}c(de,"isValidBucketName");function A(e){return!(!ye(e)||e.length===0)}c(A,"isValidObjectName");function ye(e){return!(typeof e!="string"||e.length>1024)}c(ye,"isValidPrefix");function P(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}c(P,"bin2hex");function v(e=""){let t={'"':"",""":"",""":"",""":"",""":""};return e.replace(/^("|"|")|("|"|")$/g,r=>t[r])}c(v,"sanitizeETag");function _(e){return e.get("x-amz-version-id")??null}c(_,"getVersionId");function I(e){let t=e.toISOString();return t.slice(0,4)+t.slice(5,7)+t.slice(8,13)+t.slice(14,16)+t.slice(17,19)+"Z"}c(I,"makeDateLong");function G(e){return I(e).slice(0,8)}c(G,"makeDateShort");function Z(e,t){return`${G(t)}/${e}/s3/aws4_request`}c(Z,"getScope");async function L(e){return e instanceof Uint8Array||(e=new TextEncoder().encode(e)),P(new Uint8Array(await crypto.subtle.digest("SHA-256",e)))}c(L,"sha256digestHex");var we=["x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5"],M=class extends WritableStream{static{c(this,"ObjectUploader")}getResult;constructor({client:t,bucketName:r,objectName:n,partSize:s,metadata:o}){let i,a=1,d,u=[],m,h=[];super({start(){},async write(f,l){let S=a++;try{if(S==1&&f.length{let C=y.headers.get("etag")??"";return C&&(C=C.replace(/^"/,"").replace(/"$/,"")),u.push({part:S,etag:C}),y});h.push(ge.catch(y=>{m||(m=y)}))}catch(b){throw b}},async close(){if(!i)if(d){if(await Promise.all(h),m)throw m;u.sort((f,l)=>f.part>l.part?1:-1),i=await be({client:t,bucketName:r,objectName:n,uploadId:d,etags:u})}else throw new Error("Stream was closed without uploading any data.")}}),this.getResult=()=>{if(i===void 0)throw new Error("Result is not ready. await the stream first.");return i}}};async function xe(e){let t="POST",r=new Headers(e.metadata),o=await(await e.client.makeRequest({method:t,bucketName:e.bucketName,objectName:e.objectName,query:"uploads",headers:r,returnBody:!0})).text(),i=E(o).root;if(!i||i.name!=="InitiateMultipartUploadResult")throw new Error(`Unexpected response: ${o}`);let a=i.children.find(d=>d.name==="UploadId")?.content;if(!a)throw new Error(`Unable to get UploadId from response: ${o}`);return{uploadId:a}}c(xe,"initiateNewMultipartUpload");async function be({client:e,bucketName:t,objectName:r,uploadId:n,etags:s}){let o=` + + ${s.map(h=>` ${h.part}${h.etag}`).join(` +`)} + + `,i=await e.makeRequest({method:"POST",bucketName:t,objectName:r,query:`uploadId=${encodeURIComponent(n)}`,payload:new TextEncoder().encode(o),returnBody:!0}),a=await i.text(),d=E(a).root;if(!d||d.name!=="CompleteMultipartUploadResult")throw new Error(`Unexpected response: ${a}`);let u=d.children.find(h=>h.name==="ETag")?.content;if(!u)throw new Error(`Unable to get ETag from response: ${a}`);let m=_(i.headers);return{etag:v(u),versionId:m}}c(be,"completeMultipartUpload");var N="AWS4-HMAC-SHA256";async function ue(e){if(!e.accessKey)throw new z;if(!e.secretKey)throw new T;let t=e.headers.get("x-amz-content-sha256");if(t===null)throw new Error("Internal S3 client error - expected x-amz-content-sha256 header, but it's missing.");let r=he(e.headers),n=fe(e.method,e.path,e.headers,r,t),s=await me(n,e.date,e.region),o=await Y(e.date,e.region,e.secretKey),i=q(e.accessKey,e.region,e.date),a=P(await R(o,s)).toLowerCase();return`${N} Credential=${i}, SignedHeaders=${r.join(";").toLowerCase()}, Signature=${a}`}c(ue,"signV4");async function le(e){if(!e.accessKey)throw new z;if(!e.secretKey)throw new T;if(e.expirySeconds<1||e.expirySeconds>604800)throw new K;if(!e.headers.has("Host"))throw new Error("Internal error: host header missing");let t=e.path.split("?")[0],r=e.path.split("?")[1],n=I(e.date),s=he(e.headers),o=q(e.accessKey,e.region,e.date),i="UNSIGNED-PAYLOAD",a=new URLSearchParams(r);a.set("X-Amz-Algorithm",N),a.set("X-Amz-Credential",o),a.set("X-Amz-Date",n),a.set("X-Amz-Expires",e.expirySeconds.toString()),a.set("X-Amz-SignedHeaders",s.join(";").toLowerCase()),e.sessionToken&&a.set("X-Amz-Security-Token",e.sessionToken);let d=a.toString().replace("+","%20"),u=t+"?"+d,m=t.split("/").map(b=>encodeURIComponent(b)).join("/"),h=fe(e.method,u,e.headers,s,i),f=await me(h,e.date,e.region),l=await Y(e.date,e.region,e.secretKey),p=P(await R(l,f)).toLowerCase();return`${e.protocol}//${e.headers.get("Host")}${m}?${d}&X-Amz-Signature=${p}`}c(le,"presignV4");function he(e){let t=["authorization","content-length","content-type","user-agent"],r=[];for(let n of e.keys())t.includes(n.toLowerCase())||r.push(n);return r.sort(),r}c(he,"getHeadersToSign");var $={A:65,Z:90,a:97,z:122,0:48,9:57,"/":47},ke="-._~".split("").map(e=>e.charCodeAt(0));function Q(e,t=!1){let r=new TextEncoder().encode(e),n="";for(let s of r)s>=$.A&&s<=$.Z||s>=$.a&&s<=$.z||s>=$[0]&&s<=$[9]||ke.includes(s)||s==$["/"]&&t?n+=String.fromCharCode(s):n+="%"+s.toString(16).padStart(2,"0").toUpperCase();return n}c(Q,"awsUriEncode");function fe(e,t,r,n,s){let o=n.reduce((d,u)=>{let m=`${r.get(u)}`.replace(/ +/g," ");return d.push(`${u.toLowerCase()}:${m}`),d},[]),i=t.split("?")[0],a=t.split("?")[1];return a?a=a.split("&").map(d=>{let[u,m]=d.split("=",2);return Q(decodeURIComponent(u))+"="+Q(decodeURIComponent(m||""))}).sort().join("&"):a="",[e.toUpperCase(),Q(i,!0),a,o.join(` +`)+` +`,n.join(";").toLowerCase(),s].join(` +`)}c(fe,"getCanonicalRequest");async function me(e,t,r){let n=await L(e),s=Z(r,t);return[N,I(t),s,n].join(` +`)}c(me,"getStringToSign");async function Y(e,t,r){let n=G(e),s=await R("AWS4"+r,n),o=await R(s,t),i=await R(o,"s3");return await R(i,"aws4_request")}c(Y,"getSigningKey");function q(e,t,r){return`${e}/${Z(t,r)}`}c(q,"getCredential");async function R(e,t){let r=new TextEncoder,n=await crypto.subtle.importKey("raw",e instanceof Uint8Array?e:r.encode(e),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]),s=await crypto.subtle.sign("HMAC",n,t instanceof Uint8Array?t:r.encode(t));return new Uint8Array(s)}c(R,"sha256hmac");async function pe(e){if(!e.accessKey)throw new z;if(!e.secretKey)throw new T;if(e.expirySeconds<1||e.expirySeconds>604800)throw new K;let t=new Date(e.date);t.setSeconds(t.getSeconds()+e.expirySeconds);let r=q(e.accessKey,e.region,e.date),n=I(e.date),s={"X-Amz-Algorithm":N,"X-Amz-Credential":r,"X-Amz-Date":n,key:e.objectKey,...e.fields},o=[{bucket:e.bucket},{key:e.objectKey},{"X-Amz-Algorithm":N},{"X-Amz-Credential":r},{"X-Amz-Date":n}];e.conditions&&o.push(...e.conditions);for(let[l,p]of Object.entries(e.fields||{}))["key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date"].includes(l)||o.push({[l]:p});let i={expiration:t.toISOString(),conditions:o},a=new TextEncoder().encode(JSON.stringify(i)),d=btoa(String.fromCharCode(...a));s.policy=d;let u=d,m=await Y(e.date,e.region,e.secretKey),h=P(await R(m,u)).toLowerCase();return s["X-Amz-Signature"]=h,{url:`${e.protocol}//${e.host}/${e.bucket}`,fields:s}}c(pe,"presignPostV4");var Se=["Content-Type","Cache-Control","Content-Disposition","Content-Encoding","Content-Language","Expires","x-amz-checksum-sha256","x-amz-grant-full-control","x-amz-grant-read","x-amz-grant-read-acp","x-amz-grant-write-acp","x-amz-server-side-encryption","x-amz-storage-class","x-amz-website-redirect-location","x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5","x-amz-server-side-encryption-aws-kms-key-id","x-amz-server-side-encryption-context","x-amz-server-side-encryption-bucket-key-enabled","x-amz-request-payer","x-amz-tagging","x-amz-object-lock-mode","x-amz-object-lock-retain-until-date","x-amz-object-lock-legal-hold","x-amz-expected-bucket-owner"],Ee=5*1024*1024,ze=5*1024*1024*1024,F=5*1024*1024*1024*1024,B=class{static{c(this,"Client")}host;port;protocol;accessKey;#e;sessionToken;defaultBucket;region;userAgent="s3-lite-client";pathStyle;pathPrefix;constructor({endPoint:t,useSSL:r,port:n,pathPrefix:s,...o}){if(/^https?:\/\//i.test(t)){if(r!==void 0||n!==void 0||s!==void 0)throw new g("useSSL/port/pathPrefix cannot be specified if endPoint is a URL.");try{let a=new URL(t);t=a.hostname,r=a.protocol==="https:",n=a.port?parseInt(a.port,10):r?443:80,a.pathname&&a.pathname!=="/"&&(s=a.pathname.endsWith("/")?a.pathname.slice(0,-1):a.pathname)}catch{throw new U(`Invalid endPoint URL: ${t}`)}}if(typeof t!="string"||t.length===0)throw new U(`Invalid endPoint: ${t}`);if(r===void 0&&(r=!0),n!==void 0&&!ce(n))throw new g(`Invalid port: ${n}`);if(o.accessKey&&!o.secretKey)throw new g("If specifying access key, secret key must also be provided.");if(o.accessKey&&o.accessKey.startsWith("ASIA")&&!o.sessionToken)throw new g("If specifying temporary access key, session token must also be provided.");let i=r?443:80;if(this.port=n??i,this.host=t.toLowerCase()+(this.port!==i?`:${this.port}`:""),this.protocol=r?"https:":"http:",this.accessKey=o.accessKey,this.#e=o.secretKey??"",this.sessionToken=o.sessionToken,this.pathStyle=o.pathStyle??!0,this.pathPrefix=s??"",this.defaultBucket=o.bucket,this.region=o.region,this.pathPrefix){if(!this.pathStyle)throw new g("pathPrefix is incompatible with pathStyle=false");if(!this.pathPrefix.startsWith("/"))throw new g("pathPrefix should start with /");if(this.pathPrefix.endsWith("/"))throw new g("pathPrefix should not end with /")}}getBucketName(t){let r=t?.bucketName??this.defaultBucket;if(r===void 0||!de(r))throw new O(r??"");return r}buildRequestOptions(t){let r=this.getBucketName(t),n=this.pathStyle?this.host:`${r}.${this.host}`,s=t.headers??new Headers;s.set("host",n);let o=typeof t.query=="object"?new URLSearchParams(t.query).toString().replace("+","%20"):t.query,i=this.pathStyle?`${this.pathPrefix}/${r}/${t.objectName}`:`/${t.objectName}`,a=o?`?${o}`:"",d=i+a,u=i.split("/").map(m=>encodeURIComponent(m)).join("/")+a;return{headers:s,host:n,path:d,encodedPath:u}}async makeRequest({method:t,payload:r,...n}){let s=new Date,{headers:o,host:i,path:a,encodedPath:d}=this.buildRequestOptions(n),u=n.statusCode??200;if(t==="POST"||t==="PUT"||t==="DELETE")r===void 0?r=new Uint8Array:typeof r=="string"&&(r=new TextEncoder().encode(r)),o.set("Content-Length",String(r.length));else if(r)throw new Error(`Unexpected payload on ${t} request.`);let m=await L(r??new Uint8Array);o.set("x-amz-date",I(s)),o.set("x-amz-content-sha256",m),this.accessKey&&(this.sessionToken&&o.set("x-amz-security-token",this.sessionToken),o.set("authorization",await ue({headers:o,method:t,path:a,accessKey:this.accessKey,secretKey:this.#e,region:this.region,date:s})));let h=`${this.protocol}//${i}${d}`,f=await fetch(h,{method:t,headers:o,body:r});if(f.status!==u)throw f.status>=400?await ie(f):f.status===301?new k(f.status,"UnexpectedRedirect",'The server unexpectedly returned a redirect response. With AWS S3, this usually means you need to use a region-specific endpoint like "s3.us-west-2.amazonaws.com" instead of "s3.amazonaws.com"'):new k(f.status,"UnexpectedStatusCode",`Unexpected response code from the server (expected ${u}, got ${f.status} ${f.statusText}).`);return n.returnBody||await f.body?.getReader().read(),f}async deleteObject(t,r={}){let n=this.getBucketName(r);if(!A(t))throw new x(t);let s=r.versionId?{versionId:r.versionId}:{},o=new Headers;r.governanceBypass&&o.set("X-Amz-Bypass-Governance-Retention","true"),await this.makeRequest({method:"DELETE",bucketName:n,objectName:t,headers:o,query:s,statusCode:204})}async exists(t,r){try{return await this.statObject(t,r),!0}catch(n){if(n instanceof k&&n.statusCode===404)return!1;throw n}}getObject(t,r){return this.getPartialObject(t,{...r,offset:0,length:0})}async getPartialObject(t,{offset:r,length:n,...s}){let o=this.getBucketName(s);if(!A(t))throw new x(t);let i=new Headers(Object.entries(s.metadata??{})),a=200;if(r||n){let u="";r?u=`bytes=${+r}-`:(u="bytes=0-",r=0),n&&(u+=`${+n+r-1}`),i.set("Range",u),a=206}let d={...s.responseParams,...s.versionId?{versionId:s.versionId}:{}};return await this.makeRequest({method:"GET",bucketName:o,objectName:t,headers:i,query:d,statusCode:a,returnBody:!0})}getPresignedUrl(t,r,n={}){if(!this.accessKey)throw new z;if(!A(r))throw new x(r);let{headers:s,path:o}=this.buildRequestOptions({objectName:r,bucketName:n.bucketName,query:n.parameters}),i=n.requestDate??new Date,a=n.expirySeconds??1440*60*7;return le({protocol:this.protocol,headers:s,method:t,path:o,accessKey:this.accessKey,secretKey:this.#e,sessionToken:this.sessionToken,region:this.region,date:i,expirySeconds:a})}presignedGetObject(t,r={}){let{versionId:n,responseParams:s,...o}=r,i={...s,...n?{versionId:n}:{}};return this.getPresignedUrl("GET",t,{parameters:i,...o})}async*listObjects(t={}){for await(let r of this.listObjectsGrouped({...t,delimiter:""}))if(r.type==="Object")yield r;else throw new Error(`Unexpected result from listObjectsGrouped(): ${r}`)}async*listObjectsGrouped(t){let r=this.getBucketName(t),n=t.continuationToken??"",s=t.pageSize??1e3;if(s<1||s>1e3)throw new g("pageSize must be between 1 and 1,000.");let o=0;for(;;){let i=t.maxResults?Math.min(s,t.maxResults-o):s;if(i===0)return;let d=await(await this.makeRequest({method:"GET",bucketName:r,objectName:"",query:{"list-type":"2",prefix:t.prefix??"",delimiter:t.delimiter??"","max-keys":String(i),...n?{"continuation-token":n}:{}},returnBody:!0})).text(),u=E(d).root;if(!u||u.name!=="ListBucketResult")throw new Error(`Unexpected response: ${d}`);let m=u.children.filter(l=>l.name==="CommonPrefixes").flatMap(l=>l.children),h=[];for(let l of m)h.push({type:"CommonPrefix",prefix:l.content??""}),o++;for(let l of u.children.filter(p=>p.name==="Contents"))h.push({type:"Object",key:l.children.find(p=>p.name==="Key")?.content??"",etag:v(l.children.find(p=>p.name==="ETag")?.content??""),size:parseInt(l.children.find(p=>p.name==="Size")?.content??"",10),lastModified:new Date(l.children.find(p=>p.name==="LastModified")?.content??"invalid")}),o++;h.sort((l,p)=>{let S=l.type==="Object"?l.key:l.prefix,b=p.type==="Object"?p.key:p.prefix;return S>b?1:Sl.name==="IsTruncated")?.content==="true"){let l=u.children.find(p=>p.name==="NextContinuationToken")?.content;if(!l)throw new Error("Unexpectedly missing continuation token, but server said there are more results.");if(n=l,t.maxResults&&o>=t.maxResults)return n}else return}}async putObject(t,r,n){let s=this.getBucketName(n);if(!A(t))throw new x(t);let o,i;if(typeof r=="string"){let m=new TextEncoder().encode(r);typeof ReadableStream.from<"u"?i=ReadableStream.from([m]):i=new ReadableStream({start(h){h.enqueue(m),h.close()}}),o=m.length}else if(r instanceof Uint8Array)typeof ReadableStream.from<"u"?i=ReadableStream.from([r]):i=new ReadableStream({start(m){m.enqueue(r),m.close()}}),o=r.byteLength;else if(r instanceof ReadableStream)i=r;else throw new g("Invalid stream/data type provided.");if(n?.size!==void 0){if(o!==void 0&&n?.size!==o)throw new g(`size was specified (${n.size}) but doesn't match auto-detected size (${o}).`);if(typeof n.size!="number"||n.size<0||isNaN(n.size))throw new g(`invalid size specified: ${n.size}`);o=n.size}let a=n?.partSize??this.calculatePartSize(o);if(aze)throw new g("Part size should be less than 6MB");let d=new j(a),u=new M({client:this,bucketName:s,objectName:t,partSize:a,metadata:n?.metadata??{}});return await i.pipeThrough(d).pipeTo(u),u.getResult()}calculatePartSize(t){if(t===void 0&&(t=F),t>F)throw new TypeError(`size should not be more than ${F}`);let r=64*1024*1024;for(;;){if(r*1e4>t)return r;r+=16*1024*1024}}async statObject(t,r){let n=this.getBucketName(r);if(!A(t))throw new x(t);let s={};r?.versionId&&(s.versionId=r.versionId);let o=await this.makeRequest({method:"HEAD",bucketName:n,objectName:t,query:s,headers:new Headers(r?.headers)}),i={};for(let a of Se)o.headers.has(a)&&(i[a]=o.headers.get(a));return o.headers.forEach((a,d)=>{d.startsWith("x-amz-meta-")&&(i[d]=o.headers.get(d))}),{type:"Object",key:t,size:parseInt(o.headers.get("content-length")??"",10),metadata:i,lastModified:new Date(o.headers.get("Last-Modified")??"error: missing last modified"),versionId:o.headers.get("x-amz-version-id")||null,etag:v(o.headers.get("ETag")??"")}}async copyObject(t,r,n){let s=this.getBucketName(n),o=t.sourceBucketName??s;if(!A(r))throw new x(r);let i=`${o}/${t.sourceKey.split("/").map(l=>encodeURIComponent(l)).join("/")}`;t.sourceVersionId&&(i+=`?versionId=${t.sourceVersionId}`);let a=new Headers(n?.metadata);n?.metadata!==void 0&&a.set("x-amz-metadata-directive","REPLACE"),a.set("x-amz-copy-source",i);let d=await this.makeRequest({method:"PUT",bucketName:s,objectName:r,headers:a,returnBody:!0}),u=await d.text(),m=E(u).root;if(!m||m.name!=="CopyObjectResult")throw new Error(`Unexpected response: ${u}`);let h=m.children.find(l=>l.name==="ETag")?.content??"",f=m.children.find(l=>l.name==="LastModified")?.content;if(f===void 0)throw new Error("Unable to find ... from the server.");return{copySourceVersionId:d.headers.get("x-amz-copy-source-version-id")||null,etag:v(h),lastModified:new Date(f),versionId:d.headers.get("x-amz-version-id")||null}}async bucketExists(t){try{return await this.listObjects({bucketName:t}).next(),!0}catch(r){if(r instanceof k&&r.statusCode===404)return!1;throw r}}async makeBucket(t){await this.makeRequest({method:"PUT",bucketName:this.getBucketName({bucketName:t}),objectName:"",statusCode:200})}async removeBucket(t){await this.makeRequest({method:"DELETE",bucketName:this.getBucketName({bucketName:t}),objectName:"",statusCode:204})}presignedPostObject(t,r={}){if(!A(t))throw new x(t);let n=this.getBucketName(r);if(!n)throw new Error("Bucket name is required for presignedPost, but none was provided either to this method nor to the client constructor");let s=r.requestDate||new Date,o=r.expirySeconds??3600;return pe({protocol:this.protocol,host:this.host,bucket:n,objectKey:t,accessKey:this.accessKey||"",secretKey:this.#e||"",region:this.region,date:s,expirySeconds:o,conditions:r.conditions,fields:r.fields})}};function st(e){let t={};return e.forEach(r=>{let n=J(r.uri);if(!n)return;let s=D(n.bucket);t[s]||(t[s]=n.bucket)}),t}c(st,"bucketsFromTracks");function D(e){return`${e.accessKey}:${e.secretKey}@${e.host}`}c(D,"bucketId");function ot(e,t){return te({scheme:V,userinfo:`${e.accessKey}:${e.secretKey}`,host:e.host.replace(/^\w+:\/\//,""),path:t,query:H.stringify({bucketName:e.bucketName,bucketPath:e.path,region:e.region})})}c(ot,"buildURI");async function Ae(e){let t=Ce(e);try{return await t.bucketExists(e.bucketName)?"yes":"no"}catch{return"unsure"}}c(Ae,"consultBucket");var at=ae(Ae,D);function Ce(e){return new B({bucket:e.bucketName,endPoint:`http${e.host.startsWith("localhost")?"":"s"}://${e.host}`,region:e.region,pathStyle:!1,accessKey:e.accessKey,secretKey:e.secretKey})}c(Ce,"createClient");function it(e){return encodeURIComponent(e).replace(/(\+|!|"|#|\$|&|'|\(|\)|\*|\+|,|:|;|=|\?|@)/gim,t=>oe[t]??t)}c(it,"encodeAwsUriComponent");function ct(e){let t={};return e.forEach(r=>{let n=J(r.uri);if(!n)return t;let s=D(n.bucket);t[s]?t[s].tracks.push(r):t[s]={bucket:n.bucket,tracks:[r]}}),t}c(ct,"groupTracksByBucket");function dt(e){let t={};return e.forEach(r=>{let n=J(r);if(!n)return t;let s=D(n.bucket);t[s]?t[s].uris.push(r):t[s]={bucket:n.bucket,uris:[r]}}),t}c(dt,"groupUrisByBucket");async function ut(){let e=await re(X);return e||{}}c(ut,"loadBuckets");function J(e){let t=ee(e);if(t.scheme!==V||!t.host)return;let[r,n]=t.userinfo?.split(":")??[];if(!r||!n)return;let s=H.parse(t.query||""),o={accessKey:r,bucketName:typeof s.bucketName=="string"?s.bucketName:"",host:t.host,path:s.bucketPath==="string"?s.bucketPath:"/",region:typeof s.region=="string"?s.region:"",secretKey:n},i=(o.path.replace(/\/$/,"")+se(t.path||"")).replace(/^\//,"");return{bucket:o,path:i}}c(J,"parseURI");async function lt(e){await ne(X,e)}c(lt,"saveBuckets");export{st as a,D as b,ot as c,Ae as d,at as e,Ce as f,it as g,ct as h,dt as i,ut as j,J as k,lt as l}; + +//# sourceMappingURL=./chunk-E2G3ZJP4.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-E2G3ZJP4.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-E2G3ZJP4.js.br new file mode 100644 index 0000000000000000000000000000000000000000..68d39c46835b7ccc91655fedfabffe9487439484 GIT binary patch literal 8391 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 QzpwxMf$`Kwqh {\n constructor(private readonly outChunkSize: number) {\n // We'll keep one internal buffer of size outChunkSize,\n // plus a current \"offset\" telling us how many bytes are in it.\n let buffer = new Uint8Array(outChunkSize);\n let offset = 0;\n\n super({\n transform(chunk, controller) {\n let pos = 0;\n while (pos < chunk.length) {\n // How many bytes remain to fill the buffer?\n const needed = outChunkSize - offset;\n // How many bytes we can copy from the incoming chunk this iteration\n const toCopy = Math.min(needed, chunk.length - pos);\n\n // Copy from chunk into our internal buffer\n buffer.set(chunk.subarray(pos, pos + toCopy), offset);\n pos += toCopy;\n offset += toCopy;\n\n // If we've filled a chunk, push it to the output, then reset\n if (offset === outChunkSize) {\n controller.enqueue(buffer);\n // We must not reuse that buffer, because it's still being read by the controller.\n buffer = new Uint8Array(outChunkSize);\n offset = 0;\n }\n }\n },\n flush(controller) {\n // If anything remains in the buffer at the end, enqueue it.\n if (offset > 0) {\n controller.enqueue(buffer.subarray(0, offset));\n }\n },\n });\n }\n}\n","/**\n * Basic XML parser for Deno\n * https://github.com/nekobato/deno-xml-parser\n * By Hayato Koriyama, MIT licensed\n * Based on https://github.com/segmentio/xml-parser (MIT licensed)\n * \"Simple non-compliant XML parser because we just need to parse some basic responses\"\n */\n\ninterface Document {\n declaration: {\n attributes: Record;\n };\n root: Xml | undefined;\n}\n\ninterface Xml {\n name: string;\n attributes: Record;\n content?: string;\n children: Xml[];\n}\n\n/**\n * Parse the given string of `xml`.\n */\nexport function parse(xml: string): Document {\n xml = xml.trim();\n\n // strip comments\n xml = xml.replace(//g, \"\");\n\n return document();\n\n /**\n * XML document.\n */\n function document(): Document {\n return {\n declaration: declaration(),\n root: tag(),\n };\n }\n\n /**\n * Declaration.\n */\n function declaration() {\n const m = match(/^<\\?xml\\s*/);\n if (!m) return;\n\n // tag.\n // deno-lint-ignore no-explicit-any\n const node: any = {\n attributes: {},\n };\n\n // attributes\n while (!(eos() || is(\"?>\"))) {\n const attr = attribute();\n if (!attr) return node;\n node.attributes[attr.name] = attr.value;\n }\n\n match(/\\?>\\s*/);\n\n return node;\n }\n\n /**\n * Tag.\n */\n function tag() {\n const m = match(/^<([\\w-:.]+)\\s*/);\n if (!m) return;\n\n // name\n const node: Xml = {\n name: m[1],\n attributes: {},\n children: [],\n };\n\n // attributes\n while (!(eos() || is(\">\") || is(\"?>\") || is(\"/>\"))) {\n const attr = attribute();\n if (!attr) return node;\n node.attributes[attr.name] = attr.value;\n }\n\n // self closing tag\n if (match(/^\\s*\\/>\\s*/)) {\n return node;\n }\n\n match(/\\??>\\s*/);\n\n // content\n node.content = content();\n\n // children\n let child;\n while ((child = tag())) {\n node.children.push(child);\n }\n\n // closing\n match(/^<\\/[\\w-:.]+>\\s*/);\n\n return node;\n }\n\n /**\n * Text content.\n */\n function content() {\n const m = match(/^([^<]*)/);\n if (m) return entities(m[1]);\n return \"\";\n }\n\n /**\n * Attribute.\n */\n function attribute() {\n const m = match(/([\\w:-]+)\\s*=\\s*(\"[^\"]*\"|'[^']*'|\\w+)\\s*/);\n if (!m) return;\n return { name: m[1], value: entities(strip(m[2])) };\n }\n\n /**\n * Strip quotes from `val`.\n */\n function strip(val: string) {\n return val.replace(/^['\"]|['\"]$/g, \"\");\n }\n\n /** Basic handling of entities: & < > */\n function entities(val: string) {\n return val.replaceAll(\"<\", \"<\").replaceAll(\">\", \">\").replaceAll(\"&\", \"&\");\n }\n\n /**\n * Match `re` and advance the string.\n */\n function match(re: RegExp) {\n const m = xml.match(re);\n if (!m) return;\n xml = xml.slice(m[0].length);\n return m;\n }\n\n /**\n * End-of-source.\n */\n function eos() {\n return xml.length === 0;\n }\n\n /**\n * Check for `prefix`.\n */\n function is(prefix: string) {\n return xml.startsWith(prefix);\n }\n}\n","/**\n * @module\n * All the errors which can be thrown by this S3 client.\n * Every error is a subclass of S3Error.\n */\n\nimport { parse as parseXML } from \"./xml-parser.ts\";\n\n/**\n * Base class for all errors raised by this S3 client.\n */\nexport class S3Error extends Error {}\n\n// Preserve API compatibility with the old name:\n/** @deprecated Use `S3Error` instead. */\nexport const DenoS3LiteClientError = S3Error;\n\n/**\n * An argument or configuration parameter was invalid.\n */\nexport class InvalidArgumentError extends S3Error {}\n\n/**\n * InvalidEndpointError is generated when an invalid end point value is\n * provided which does not follow domain standards.\n */\nexport class InvalidEndpointError extends S3Error {}\n\n/**\n * InvalidBucketNameError is generated when an invalid bucket name is\n * provided which does not follow AWS S3 specifications.\n * http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html\n */\nexport class InvalidBucketNameError extends S3Error {\n constructor(public readonly bucketName: string) {\n super(`Invalid bucket name: ${bucketName}`);\n }\n}\n\n/**\n * InvalidObjectNameError is generated when an invalid object name is\n * provided which does not follow AWS S3 specifications.\n * http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html\n */\nexport class InvalidObjectNameError extends S3Error {\n constructor(public readonly objectName: string) {\n super(`Invalid object name: ${objectName}`);\n }\n}\n\n/** The request cannot be made without an access key to authenticate it */\nexport class AccessKeyRequiredError extends S3Error {\n constructor() {\n super(\"accessKey is required\");\n }\n}\n\n/** The request cannot be made without a secret key to authenticate it */\nexport class SecretKeyRequiredError extends S3Error {\n constructor() {\n super(\"secretKey is required\");\n }\n}\n\n/** The expiration time for the request is invalid */\nexport class InvalidExpiryError extends S3Error {\n constructor() {\n super(\"expirySeconds cannot be less than 1 second or more than 7 days\");\n }\n}\n\n/** Any error thrown by the server */\nexport class ServerError extends S3Error {\n readonly key: string | undefined;\n readonly bucketName: string | undefined;\n readonly resource: string | undefined;\n readonly region: string | undefined;\n\n constructor(\n public readonly statusCode: number,\n public readonly code: string,\n message: string,\n otherData: { key?: string; bucketName?: string; resource?: string; region?: string } = {},\n ) {\n super(message);\n this.key = otherData.key;\n this.bucketName = otherData.bucketName;\n this.resource = otherData.resource;\n this.region = otherData.region;\n }\n}\n\n/** Helper function to parse an error returned by the S3 server. */\nexport async function parseServerError(response: Response): Promise {\n try {\n const xmlParsed = parseXML(await response.text());\n const errorRoot = xmlParsed.root;\n if (errorRoot?.name !== \"Error\") {\n throw new Error(\"Invalid root, expected \");\n }\n const code = errorRoot.children.find((c) => c.name === \"Code\")?.content ?? \"UnknownErrorCode\";\n const message = errorRoot.children.find((c) => c.name === \"Message\")?.content ??\n \"The error message could not be determined.\";\n const key = errorRoot.children.find((c) => c.name === \"Key\")?.content;\n const bucketName = errorRoot.children.find((c) => c.name === \"BucketName\")?.content;\n const resource = errorRoot.children.find((c) => c.name === \"Resource\")?.content; // e.g. the object key\n const region = errorRoot.children.find((c) => c.name === \"Region\")?.content;\n return new ServerError(response.status, code, message, { key, bucketName, resource, region });\n } catch {\n return new ServerError(\n response.status,\n \"UnrecognizedError\",\n `Error: Unexpected response code ${response.status} ${response.statusText}. Unable to parse response as XML.`,\n );\n }\n}\n","/**\n * For TypeScript 5.7+ we have to write `Uint8Array` instead of\n * `Uint8Array` or we'll get type errors in various places where arrays based\n * on SharedArrayBuffer are not allowed. This type alias will work both pre-\n * and post- TypeScript 5.7. Yes this is annoying.\n */\nexport type Uint8Array_ = ReturnType;\n\nexport function isValidPort(port: number) {\n // verify if port is a number.\n if (typeof port !== \"number\" || isNaN(port)) {\n return false;\n }\n // Verify if port is in range.\n return port >= 1 && port <= 65535;\n}\n\n/**\n * Validate a bucket name.\n *\n * This is pretty minimal, general validation. We let the remote\n * S3 server do detailed validation.\n *\n * https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html\n */\nexport function isValidBucketName(bucket: string): boolean {\n if (typeof bucket !== \"string\") {\n return false;\n }\n // Generally the bucket name length limit is 63, but\n // \"Before March 1, 2018, buckets created in the US East (N. Virginia)\n // Region could have names that were up to 255 characters long\"\n if (bucket.length > 255) {\n return false;\n }\n // \"Bucket names must not contain two adjacent periods.\"\n if (bucket.includes(\"..\")) {\n return false;\n }\n // \"Bucket names must begin and end with a letter or number.\"\n // \"Bucket names can consist only of lowercase letters, numbers,\n // periods (.), and hyphens (-).\"\n // -> Most S3 servers require lowercase bucket names but some allow\n // uppercase (Backblaze, AWS us-east buckets created before 2018)\n return Boolean(bucket.match(/^[a-zA-Z0-9][a-zA-Z0-9.-]+[a-zA-Z0-9]$/));\n}\n\n/**\n * check if objectName is a valid object name\n * http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html\n */\nexport function isValidObjectName(objectName: string) {\n if (!isValidPrefix(objectName)) return false;\n if (objectName.length === 0) return false;\n return true;\n}\n\n// check if prefix is valid\nexport function isValidPrefix(prefix: string) {\n if (typeof prefix !== \"string\") return false;\n if (prefix.length > 1024) return false;\n return true;\n}\n\n/**\n * Convert some binary data to a hex string\n */\nexport function bin2hex(binary: Uint8Array) {\n return Array.from(binary).map((b) => b.toString(16).padStart(2, \"0\")).join(\n \"\",\n );\n}\n\nexport function sanitizeETag(etag = \"\") {\n const replaceChars: Record = {\n '\"': \"\",\n \""\": \"\",\n \""\": \"\",\n \""\": \"\",\n \""\": \"\",\n };\n return etag.replace(\n /^(\"|"|")|(\"|"|")$/g,\n (m) => replaceChars[m],\n );\n}\n\nexport function getVersionId(headers: Headers): string | null {\n return headers.get(\"x-amz-version-id\") ?? null;\n}\n\n/** Create a Date string with format: 'YYYYMMDDTHHmmss' + Z */\nexport function makeDateLong(date: Date) {\n // Gives format like: '2017-08-07T16:28:59.889Z'\n const dateStr = date.toISOString();\n\n return dateStr.slice(0, 4) +\n dateStr.slice(5, 7) +\n dateStr.slice(8, 13) +\n dateStr.slice(14, 16) +\n dateStr.slice(17, 19) + \"Z\";\n}\n\n/** Create a Date string with format: 'YYYYMMDD' */\nexport function makeDateShort(date: Date) {\n return makeDateLong(date).slice(0, 8);\n}\n\nexport function getScope(region: string, date: Date) {\n return `${makeDateShort(date)}/${region}/s3/aws4_request`;\n}\n\nexport async function sha256digestHex(data: Uint8Array_ | string) {\n if (!(data instanceof Uint8Array)) {\n data = new TextEncoder().encode(data);\n }\n return bin2hex(new Uint8Array(await crypto.subtle.digest(\"SHA-256\", data)));\n}\n","import type { Client, ObjectMetadata, UploadedObjectInfo } from \"./client.ts\";\nimport { getVersionId, sanitizeETag, type Uint8Array_ } from \"./helpers.ts\";\nimport { parse as parseXML } from \"./xml-parser.ts\";\n\n// Metadata headers that must be included in each part of a multi-part upload\nconst multipartTagAlongMetadataKeys = [\n \"x-amz-server-side-encryption-customer-algorithm\",\n \"x-amz-server-side-encryption-customer-key\",\n \"x-amz-server-side-encryption-customer-key-MD5\",\n];\n\n/**\n * Stream a file to S3\n *\n * We assume that TransformChunkSizes has been used first, so that this stream\n * will always receive chunks of exactly size \"partSize\", except for the final\n * chunk.\n *\n * Note that the total size of the upload doesn't have to be known in advance,\n * as long as TransformChunkSizes was used first. Then this ObjectUploader\n * will decide based on the size of the first chunk whether it is doing a\n * single-request upload or a multi-part upload.\n */\nexport class ObjectUploader extends WritableStream {\n public readonly getResult: () => UploadedObjectInfo;\n\n constructor({ client, bucketName, objectName, partSize, metadata }: {\n client: Client;\n bucketName: string;\n objectName: string;\n partSize: number;\n metadata: Record;\n }) {\n let result: UploadedObjectInfo;\n let nextPartNumber = 1;\n let uploadId: string;\n const etags: { part: number; etag: string }[] = [];\n /** If an error occurs during multi-part uploads, we temporarily store it here. */\n let multiUploadError: Error | undefined;\n /** If doing multi-part upload, this holds a promise for each part so we can upload them in parallel */\n const partsPromises: Promise[] = [];\n\n super({\n start() {}, // required\n async write(chunk, _controller) {\n const method = \"PUT\";\n const partNumber = nextPartNumber++;\n\n try {\n // We are going to upload this file in a single part, because it's small enough\n if (partNumber == 1 && chunk.length < partSize) {\n // PUT the chunk in a single request — use an empty query.\n const response = await client.makeRequest({\n method,\n headers: new Headers({\n // Set user metadata as this is not a multipart upload\n ...metadata,\n \"Content-Length\": String(chunk.length),\n }),\n bucketName,\n objectName,\n payload: chunk,\n });\n result = {\n etag: sanitizeETag(response.headers.get(\"etag\") ?? undefined),\n versionId: getVersionId(response.headers),\n };\n return;\n }\n\n /// If we get here, this is a streaming upload in multiple parts.\n if (partNumber === 1) {\n uploadId = (await initiateNewMultipartUpload({\n client,\n bucketName,\n objectName,\n metadata,\n })).uploadId;\n }\n // Upload the next part\n const partHeaders: Record = {\n \"Content-Length\": String(chunk.length),\n };\n for (const key of multipartTagAlongMetadataKeys) {\n const value = metadata[key];\n if (value) {\n partHeaders[key] = value;\n }\n }\n const partPromise = client.makeRequest({\n method,\n query: { partNumber: partNumber.toString(), uploadId },\n headers: new Headers(partHeaders),\n bucketName: bucketName,\n objectName: objectName,\n payload: chunk,\n }).then((response) => {\n // In order to aggregate the parts together, we need to collect the etags.\n let etag = response.headers.get(\"etag\") ?? \"\";\n if (etag) {\n etag = etag.replace(/^\"/, \"\").replace(/\"$/, \"\");\n }\n etags.push({ part: partNumber, etag });\n return response;\n });\n // We can't `await partPromise` now, because that will cause the uploads to\n // happen in series instead of parallel. But we don't want to let the promise\n // throw an exception when we haven't awaited it, because that can cause the\n // process to crash. So use .catch() to watch for errors and store them in\n // `multiUploadError` if they occur.\n partsPromises.push(partPromise.catch((err) => {\n // An error occurred when uploading this one part:\n if (!multiUploadError) {\n multiUploadError = err;\n }\n }));\n } catch (err) {\n // Throwing an error will make future writes to this sink fail.\n throw err;\n }\n },\n async close() {\n if (result) {\n // This was already completed, in a single upload. Nothing more to do.\n } else if (uploadId) {\n // Wait for all parts to finish uploading (or fail)\n await Promise.all(partsPromises);\n if (multiUploadError) {\n // One or more parts failed to upload:\n throw multiUploadError;\n }\n // Sort the etags (required)\n etags.sort((a, b) => a.part > b.part ? 1 : -1);\n // Complete the multi-part upload\n result = await completeMultipartUpload({ client, bucketName, objectName, uploadId, etags });\n } else {\n throw new Error(\"Stream was closed without uploading any data.\");\n }\n },\n });\n this.getResult = () => {\n if (result === undefined) {\n throw new Error(\"Result is not ready. await the stream first.\");\n }\n return result;\n };\n }\n}\n\n/** Initiate a new multipart upload request. */\nasync function initiateNewMultipartUpload(\n options: {\n client: Client;\n bucketName: string;\n objectName: string;\n metadata?: ObjectMetadata;\n },\n): Promise<{ uploadId: string }> {\n const method = \"POST\";\n const headers = new Headers(options.metadata);\n const query = \"uploads\";\n const response = await options.client.makeRequest({\n method,\n bucketName: options.bucketName,\n objectName: options.objectName,\n query,\n headers,\n returnBody: true,\n });\n // Response is like:\n // \n // dev-bucket\n // test-32m.dat\n // 422f976b-35e0-4a55-aca7-bf2d46277f93\n // \n const responseText = await response.text();\n const root = parseXML(responseText).root;\n if (!root || root.name !== \"InitiateMultipartUploadResult\") {\n throw new Error(`Unexpected response: ${responseText}`);\n }\n const uploadId = root.children.find((c) => c.name === \"UploadId\")?.content;\n if (!uploadId) {\n throw new Error(`Unable to get UploadId from response: ${responseText}`);\n }\n return { uploadId };\n}\n\nasync function completeMultipartUpload(\n { client, bucketName, objectName, uploadId, etags }: {\n client: Client;\n bucketName: string;\n objectName: string;\n uploadId: string;\n etags: { part: number; etag: string }[];\n },\n): Promise {\n const payload = `\n \n ${etags.map((et) => ` ${et.part}${et.etag}`).join(\"\\n\")}\n \n `;\n const response = await client.makeRequest({\n method: \"POST\",\n bucketName,\n objectName,\n query: `uploadId=${encodeURIComponent(uploadId)}`,\n payload: new TextEncoder().encode(payload),\n returnBody: true,\n });\n const responseText = await response.text();\n // Example response:\n // \n // \n // http://localhost:9000/dev-bucket/test-32m.dat\n // dev-bucket\n // test-32m.dat\n // "4581589392ae60eafdb031f441858c7a-7"\n // \n const root = parseXML(responseText).root;\n if (!root || root.name !== \"CompleteMultipartUploadResult\") {\n throw new Error(`Unexpected response: ${responseText}`);\n }\n const etagRaw = root.children.find((c) => c.name === \"ETag\")?.content;\n if (!etagRaw) throw new Error(`Unable to get ETag from response: ${responseText}`);\n const versionId = getVersionId(response.headers);\n return {\n etag: sanitizeETag(etagRaw),\n versionId,\n };\n}\n","import * as errors from \"./errors.ts\";\nimport { bin2hex, getScope, makeDateLong, makeDateShort, sha256digestHex, type Uint8Array_ } from \"./helpers.ts\";\n\nconst signV4Algorithm = \"AWS4-HMAC-SHA256\";\n\n/**\n * Generate the Authorization header required to authenticate an S3/AWS request.\n */\nexport async function signV4(request: {\n headers: Headers;\n method: string;\n path: string;\n accessKey: string;\n secretKey: string;\n region: string;\n date: Date;\n}): Promise {\n if (!request.accessKey) {\n throw new errors.AccessKeyRequiredError();\n }\n if (!request.secretKey) {\n throw new errors.SecretKeyRequiredError();\n }\n\n const sha256sum = request.headers.get(\"x-amz-content-sha256\");\n if (sha256sum === null) {\n throw new Error(\n \"Internal S3 client error - expected x-amz-content-sha256 header, but it's missing.\",\n );\n }\n\n const signedHeaders = getHeadersToSign(request.headers);\n const canonicalRequest = getCanonicalRequest(\n request.method,\n request.path,\n request.headers,\n signedHeaders,\n sha256sum,\n );\n const stringToSign = await getStringToSign(\n canonicalRequest,\n request.date,\n request.region,\n );\n const signingKey = await getSigningKey(\n request.date,\n request.region,\n request.secretKey,\n );\n const credential = getCredential(\n request.accessKey,\n request.region,\n request.date,\n );\n const signature = bin2hex(await sha256hmac(signingKey, stringToSign))\n .toLowerCase();\n\n return `${signV4Algorithm} Credential=${credential}, SignedHeaders=${\n signedHeaders.join(\";\").toLowerCase()\n }, Signature=${signature}`;\n}\n\n/**\n * Generate a pre-signed URL\n */\nexport async function presignV4(request: {\n protocol: \"http:\" | \"https:\";\n headers: Headers;\n method: string;\n path: string;\n accessKey: string;\n secretKey: string;\n sessionToken?: string;\n region: string;\n date: Date;\n expirySeconds: number;\n}): Promise {\n if (!request.accessKey) {\n throw new errors.AccessKeyRequiredError();\n }\n if (!request.secretKey) {\n throw new errors.SecretKeyRequiredError();\n }\n if (request.expirySeconds < 1 || request.expirySeconds > 604800) {\n throw new errors.InvalidExpiryError();\n }\n if (!request.headers.has(\"Host\")) {\n throw new Error(\"Internal error: host header missing\");\n }\n\n // Information about the future request that we're going to sign:\n const resource = request.path.split(\"?\")[0];\n const queryString = request.path.split(\"?\")[1];\n const iso8601Date = makeDateLong(request.date);\n const signedHeaders = getHeadersToSign(request.headers);\n const credential = getCredential(request.accessKey, request.region, request.date);\n const hashedPayload = \"UNSIGNED-PAYLOAD\";\n\n // Build the query string for our new signed URL:\n const newQuery = new URLSearchParams(queryString);\n newQuery.set(\"X-Amz-Algorithm\", signV4Algorithm);\n newQuery.set(\"X-Amz-Credential\", credential);\n newQuery.set(\"X-Amz-Date\", iso8601Date);\n newQuery.set(\"X-Amz-Expires\", request.expirySeconds.toString());\n newQuery.set(\"X-Amz-SignedHeaders\", signedHeaders.join(\";\").toLowerCase());\n if (request.sessionToken) {\n newQuery.set(\"X-Amz-Security-Token\", request.sessionToken);\n }\n const newQueryString = newQuery.toString().replace(\"+\", \"%20\"); // Signing requires spaces become %20, never +\n const signingPath = resource + \"?\" + newQueryString;\n const encodedPath = resource.split(\"/\").map((part) => encodeURIComponent(part)).join(\"/\");\n\n const canonicalRequest = getCanonicalRequest(\n request.method,\n signingPath,\n request.headers,\n signedHeaders,\n hashedPayload,\n );\n const stringToSign = await getStringToSign(canonicalRequest, request.date, request.region);\n const signingKey = await getSigningKey(request.date, request.region, request.secretKey);\n const signature = bin2hex(await sha256hmac(signingKey, stringToSign)).toLowerCase();\n // deno-fmt-ignore\n const presignedUrl = `${request.protocol}//${request.headers.get(\"Host\")}${encodedPath}?${newQueryString}&X-Amz-Signature=${signature}`;\n return presignedUrl;\n}\n\n/**\n * Given the set of HTTP headers that we'll be sending with an S3/AWS request, determine which\n * headers will be signed, and in what order.\n */\nfunction getHeadersToSign(headers: Headers): string[] {\n // Excerpts from @lsegal - https://github.com/aws/aws-sdk-js/issues/659#issuecomment-120477258\n //\n // User-Agent:\n //\n // This is ignored from signing because signing this causes problems with generating pre-signed URLs\n // (that are executed by other agents) or when customers pass requests through proxies, which may\n // modify the user-agent.\n //\n // Content-Length:\n //\n // This is ignored from signing because generating a pre-signed URL should not provide a content-length\n // constraint, specifically when vending a S3 pre-signed PUT URL. The corollary to this is that when\n // sending regular requests (non-pre-signed), the signature contains a checksum of the body, which\n // implicitly validates the payload length (since changing the number of bytes would change the checksum)\n // and therefore this header is not valuable in the signature.\n //\n // Content-Type:\n //\n // Signing this header causes quite a number of problems in browser environments, where browsers\n // like to modify and normalize the content-type header in different ways. There is more information\n // on this in https://github.com/aws/aws-sdk-js/issues/244. Avoiding this field simplifies logic\n // and reduces the possibility of future bugs\n //\n // Authorization:\n //\n // Is skipped for obvious reasons\n\n const ignoredHeaders = [\n \"authorization\",\n \"content-length\",\n \"content-type\",\n \"user-agent\",\n ];\n const headersToSign = [];\n for (const key of headers.keys()) {\n if (ignoredHeaders.includes(key.toLowerCase())) {\n continue; // Ignore this header\n }\n headersToSign.push(key);\n }\n headersToSign.sort();\n return headersToSign;\n}\n\nconst CODES = {\n A: \"A\".charCodeAt(0),\n Z: \"Z\".charCodeAt(0),\n a: \"a\".charCodeAt(0),\n z: \"z\".charCodeAt(0),\n \"0\": \"0\".charCodeAt(0),\n \"9\": \"9\".charCodeAt(0),\n \"/\": \"/\".charCodeAt(0),\n};\nconst ALLOWED_BYTES = \"-._~\".split(\"\").map((s) => s.charCodeAt(0));\n\n/**\n * Canonical URI encoding for signing, per AWS documentation:\n * 1. URI encode every byte except the unreserved characters:\n * 'A'-'Z', 'a'-'z', '0'-'9', '-', '.', '_', and '~'.\n * 2. The space character must be encoded as \"%20\" (and not as \"+\").\n * 3. Each URI encoded byte is formed by a '%' and the\n * two-digit uppercase hexadecimal value of the byte. e.g. \"%1A\".\n * 4. Encode the forward slash character, '/', everywhere except\n * in the object key name. For example, if the object key name\n * is photos/Jan/sample.jpg, the forward slash in the key name\n * is not encoded.\n *\n * See https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html\n *\n * @param string the string to encode.\n */\nfunction awsUriEncode(string: string, allowSlashes = false) {\n const bytes: Uint8Array = new TextEncoder().encode(string);\n let encoded = \"\";\n for (const byte of bytes) {\n if (\n (byte >= CODES.A && byte <= CODES.Z) ||\n (byte >= CODES.a && byte <= CODES.z) ||\n (byte >= CODES[\"0\"] && byte <= CODES[\"9\"]) ||\n (ALLOWED_BYTES.includes(byte)) ||\n (byte == CODES[\"/\"] && allowSlashes)\n ) {\n encoded += String.fromCharCode(byte);\n } else {\n encoded += \"%\" + byte.toString(16).padStart(2, \"0\").toUpperCase();\n }\n }\n return encoded;\n}\n\n/**\n * getCanonicalRequest generate a canonical request of style.\n *\n * canonicalRequest =\n * \\n\n * \\n\n * \\n\n * \\n\n * \\n\n * \n */\nfunction getCanonicalRequest(\n method: string,\n path: string,\n headers: Headers,\n headersToSign: string[],\n payloadHash: string,\n): string {\n const headersArray = headersToSign.reduce((acc, headerKey) => {\n // Trim spaces from the value (required by V4 spec)\n const val = `${headers.get(headerKey)}`.replace(/ +/g, \" \");\n acc.push(`${headerKey.toLowerCase()}:${val}`);\n return acc;\n }, []);\n\n const requestResource = path.split(\"?\")[0];\n let requestQuery = path.split(\"?\")[1];\n if (requestQuery) {\n requestQuery = requestQuery\n .split(\"&\")\n .map((element) => {\n const [key, val] = element.split(\"=\", 2);\n // The input is assumed to be encoded, so we need to decode it first.\n return awsUriEncode(decodeURIComponent(key)) + \"=\" + awsUriEncode(decodeURIComponent(val || \"\"));\n })\n .sort() // sort after encoding\n .join(\"&\");\n } else {\n requestQuery = \"\";\n }\n\n // construct the canonical string from these parts:\n return [\n method.toUpperCase(),\n awsUriEncode(requestResource, true),\n requestQuery,\n headersArray.join(\"\\n\") + \"\\n\",\n headersToSign.join(\";\").toLowerCase(),\n payloadHash,\n ].join(\"\\n\");\n}\n\n// returns the string that needs to be signed\nasync function getStringToSign(\n canonicalRequest: string,\n requestDate: Date,\n region: string,\n): Promise {\n const hash = await sha256digestHex(canonicalRequest);\n const scope = getScope(region, requestDate);\n return [\n signV4Algorithm,\n makeDateLong(requestDate),\n scope,\n hash,\n ].join(\"\\n\");\n}\n\n/** returns the key used for calculating signature */\nasync function getSigningKey(\n date: Date,\n region: string,\n secretKey: string,\n): Promise {\n const dateLine = makeDateShort(date);\n const hmac1 = await sha256hmac(\"AWS4\" + secretKey, dateLine);\n const hmac2 = await sha256hmac(hmac1, region);\n const hmac3 = await sha256hmac(hmac2, \"s3\");\n return await sha256hmac(hmac3, \"aws4_request\");\n}\n\n/** generate a credential string */\nfunction getCredential(accessKey: string, region: string, requestDate: Date) {\n return `${accessKey}/${getScope(region, requestDate)}`;\n}\n\n/**\n * Given a secret key and some data, generate a HMAC of the data using SHA-256.\n */\nasync function sha256hmac(\n secretKey: Uint8Array_ | string,\n data: Uint8Array_ | string,\n): Promise {\n const enc = new TextEncoder();\n const keyObject = await crypto.subtle.importKey(\n \"raw\", // raw format of the key - should be Uint8Array\n secretKey instanceof Uint8Array ? secretKey : enc.encode(secretKey),\n { name: \"HMAC\", hash: { name: \"SHA-256\" } }, // algorithm\n false, // export = false\n [\"sign\", \"verify\"], // what this key can do\n );\n const signature = await crypto.subtle.sign(\n \"HMAC\",\n keyObject,\n data instanceof Uint8Array ? data : enc.encode(data),\n );\n return new Uint8Array(signature);\n}\n\n/**\n * Type for S3 Post Policy conditions\n * S3 allows conditions to have different shapes\n */\ntype PolicyCondition = Record | string[];\n\n/**\n * Generate a presigned POST policy that can be used to allow direct uploads to S3.\n * This is equivalent to AWS SDK's presignedPost functionality.\n */\nexport async function presignPostV4(request: {\n host: string;\n protocol: \"http:\" | \"https:\";\n bucket: string;\n objectKey: string;\n accessKey: string;\n secretKey: string;\n region: string;\n date: Date;\n expirySeconds: number;\n conditions?: PolicyCondition[];\n fields?: Record;\n}): Promise<{\n url: string;\n fields: Record;\n}> {\n if (!request.accessKey) {\n throw new errors.AccessKeyRequiredError();\n }\n if (!request.secretKey) {\n throw new errors.SecretKeyRequiredError();\n }\n if (request.expirySeconds < 1 || request.expirySeconds > 604800) {\n throw new errors.InvalidExpiryError();\n }\n\n const expiration = new Date(request.date);\n expiration.setSeconds(expiration.getSeconds() + request.expirySeconds);\n const credential = getCredential(request.accessKey, request.region, request.date);\n const iso8601Date = makeDateLong(request.date);\n\n // Default required policy fields\n const fields: Record = {\n \"X-Amz-Algorithm\": signV4Algorithm,\n \"X-Amz-Credential\": credential,\n \"X-Amz-Date\": iso8601Date,\n \"key\": request.objectKey,\n ...request.fields,\n };\n\n // Build policy document\n const conditions: PolicyCondition[] = [\n { bucket: request.bucket },\n { key: request.objectKey },\n { \"X-Amz-Algorithm\": signV4Algorithm },\n { \"X-Amz-Credential\": credential },\n { \"X-Amz-Date\": iso8601Date },\n ];\n\n // Add any additional conditions provided by the user\n if (request.conditions) {\n conditions.push(...request.conditions);\n }\n\n // Add additional fields as conditions\n for (const [key, value] of Object.entries(request.fields || {})) {\n // Skip fields that we've already added to conditions\n if ([\"key\", \"X-Amz-Algorithm\", \"X-Amz-Credential\", \"X-Amz-Date\"].includes(key)) continue;\n conditions.push({ [key]: value });\n }\n\n const policy = {\n expiration: expiration.toISOString(),\n conditions,\n };\n\n // Convert policy to base64\n const policyBytes = new TextEncoder().encode(JSON.stringify(policy));\n const base64Policy = btoa(String.fromCharCode(...policyBytes));\n fields[\"policy\"] = base64Policy;\n\n // Calculate signature\n const stringToSign = base64Policy;\n const signingKey = await getSigningKey(request.date, request.region, request.secretKey);\n const signature = bin2hex(await sha256hmac(signingKey, stringToSign)).toLowerCase();\n fields[\"X-Amz-Signature\"] = signature;\n\n // Construct the URL\n const url = `${request.protocol}//${request.host}/${request.bucket}`;\n\n return { url, fields };\n}\n\n// Export for testing purposes only\nexport const _internalMethods = {\n awsUriEncode,\n getHeadersToSign,\n getCanonicalRequest,\n getStringToSign,\n getSigningKey,\n getCredential,\n sha256hmac,\n};\n","import { TransformChunkSizes } from \"./transform-chunk-sizes.ts\";\nimport * as errors from \"./errors.ts\";\nimport {\n isValidBucketName,\n isValidObjectName,\n isValidPort,\n makeDateLong,\n sanitizeETag,\n sha256digestHex,\n type Uint8Array_,\n} from \"./helpers.ts\";\nimport { ObjectUploader } from \"./object-uploader.ts\";\nimport { presignPostV4, presignV4, signV4 } from \"./signing.ts\";\nimport { parse as parseXML } from \"./xml-parser.ts\";\n\nexport interface ClientOptions {\n /**\n * The full URL of the S3 endpoint. Can also be just the hostname (deprecated).\n * Examples: \"https://s3.eu-west-1.amazonaws.com\", \"http://localhost:9000\"\n */\n endPoint: string;\n accessKey?: string;\n secretKey?: string;\n /** If using temporary credentials, a session token is required. Otherwise you don't need this. */\n sessionToken?: string;\n /** Default bucket name, if not specified on individual requests */\n bucket?: string;\n /** Region to use, e.g. \"us-east-1\" */\n region: string;\n /** Use path-style requests, e.g. https://endpoint/bucket/object-key instead of https://bucket/object-key (default: true) */\n pathStyle?: boolean | undefined;\n /**\n * Whether to use HTTPS. Defaults to true unless http:// is explicitly specified in endPoint.\n * @deprecated Pass in a complete URL to `endPoint` instead, including 'https://' or 'http://'\n */\n useSSL?: boolean | undefined;\n /**\n * Port to use. Will be extracted from URL if provided, otherwise defaults to 80/443 based on protocol.\n * @deprecated Pass in a complete URL to `endPoint` instead, including a port number if needed.\n */\n port?: number | undefined;\n /**\n * Path prefix. Usually not required, but some API servers like Supabase S3 need this.\n * e.g. If docs say \"S3 Storage URL: http://127.0.0.1:54321/storage/v1/s3\" then pathPrefix is \"/storage/v1/s3\"\n *\n * @deprecated Pass in a complete URL to `endPoint` instead.\n */\n pathPrefix?: string;\n}\n\n/**\n * Standard Metadata (headers) that can be set when interacting with an object.\n * See https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\n */\nconst metadataKeys = [\n \"Content-Type\",\n \"Cache-Control\",\n \"Content-Disposition\",\n \"Content-Encoding\",\n \"Content-Language\",\n \"Expires\",\n \"x-amz-checksum-sha256\",\n \"x-amz-grant-full-control\",\n \"x-amz-grant-read\",\n \"x-amz-grant-read-acp\",\n \"x-amz-grant-write-acp\",\n \"x-amz-server-side-encryption\",\n \"x-amz-storage-class\",\n \"x-amz-website-redirect-location\",\n \"x-amz-server-side-encryption-customer-algorithm\",\n \"x-amz-server-side-encryption-customer-key\",\n \"x-amz-server-side-encryption-customer-key-MD5\",\n \"x-amz-server-side-encryption-aws-kms-key-id\",\n \"x-amz-server-side-encryption-context\",\n \"x-amz-server-side-encryption-bucket-key-enabled\",\n \"x-amz-request-payer\",\n \"x-amz-tagging\",\n \"x-amz-object-lock-mode\",\n \"x-amz-object-lock-retain-until-date\",\n \"x-amz-object-lock-legal-hold\",\n \"x-amz-expected-bucket-owner\",\n] as const;\n\n/**\n * Metadata (standard and custom) that can be set when uploading an object.\n *\n * Custom keys should be like \"x-amz-meta-...\"\n */\nexport type ObjectMetadata =\n & {\n \"x-amz-acl\"?:\n | \"private\"\n | \"public-read\"\n | \"public-read-write\"\n | \"authenticated-read\"\n | \"aws-exec-read\"\n | \"bucket-owner-read\"\n | \"bucket-owner-full-control\";\n }\n & { [K in typeof metadataKeys[number]]?: string }\n & { [customMetadata: `x-amz-meta-${string}`]: string };\n\n/** Response Header Overrides\n * These parameters can be used with an authenticated or presigned get object request, to\n * override certain headers that will be sent with the response. These cannot be used with\n * anonymous requests (although some servers like MinIO do seem to allow it).\n * See https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\n */\nexport interface ResponseOverrideParams {\n \"response-content-type\"?: string;\n \"response-content-language\"?: string;\n \"response-expires\"?: string;\n \"response-cache-control\"?: string;\n \"response-content-disposition\"?: string;\n \"response-content-encoding\"?: string;\n}\n\nexport interface UploadedObjectInfo {\n etag: string;\n versionId: string | null;\n}\n\nexport interface CopiedObjectInfo extends UploadedObjectInfo {\n lastModified: Date;\n copySourceVersionId: string | null;\n}\n\n/** Details about an object as returned by a \"list objects\" operation */\nexport interface S3Object {\n type: \"Object\";\n key: string;\n lastModified: Date;\n etag: string;\n size: number;\n}\n/**\n * When listing objects and returning a delimited result (e.g. grouped by folders),\n * this represents a group of keys with a common prefix.\n * See https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html\n */\nexport interface CommonPrefix {\n type: \"CommonPrefix\";\n prefix: string;\n}\n\n/**\n * Additional properties provided by `statObject` compared to `listObjects`.\n */\nexport interface ObjectStatus extends S3Object {\n versionId: string | null;\n metadata: ObjectMetadata;\n}\n\n/** The minimum allowed part size for multi-part uploads. https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html */\nconst minimumPartSize = 5 * 1024 * 1024;\n/** The maximum allowed part size for multi-part uploads. https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html */\nconst maximumPartSize = 5 * 1024 * 1024 * 1024;\n/** The maximum allowed object size for multi-part uploads. https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html */\nconst maxObjectSize = 5 * 1024 * 1024 * 1024 * 1024;\n\n/**\n * Interface for presigned POST policy conditions\n */\nexport type PolicyCondition = Record | string[];\n\n/**\n * Interface for the result of a presigned POST request\n */\nexport interface PresignedPostResult {\n /**\n * The URL to POST the form to\n */\n url: string;\n /**\n * The fields to include in the form\n */\n fields: Record;\n}\n\n/**\n * Client for connecting to S3-compatible object storage services.\n */\nexport class Client {\n readonly host: string;\n readonly port: number;\n readonly protocol: \"https:\" | \"http:\";\n readonly accessKey?: string;\n readonly #secretKey: string;\n readonly sessionToken?: string;\n readonly defaultBucket: string | undefined;\n readonly region: string;\n readonly userAgent = \"s3-lite-client\";\n /** Use path-style requests, e.g. https://endpoint/bucket/object-key instead of https://bucket/object-key */\n readonly pathStyle: boolean;\n readonly pathPrefix?: string;\n\n constructor({ endPoint, useSSL, port, pathPrefix, ...params }: Readonly) {\n // Check if endpoint is a URL (starts with http:// or https://)\n if (/^https?:\\/\\//i.test(endPoint)) {\n if (useSSL !== undefined || port !== undefined || pathPrefix !== undefined) {\n throw new errors.InvalidArgumentError(`useSSL/port/pathPrefix cannot be specified if endPoint is a URL.`);\n }\n try {\n const url = new URL(endPoint);\n endPoint = url.hostname; // Now this is just the hostname\n useSSL = url.protocol === \"https:\";\n port = url.port ? parseInt(url.port, 10) : (useSSL ? 443 : 80);\n if (url.pathname && url.pathname !== \"/\") {\n pathPrefix = url.pathname.endsWith(\"/\") ? url.pathname.slice(0, -1) : url.pathname;\n }\n } catch {\n throw new errors.InvalidEndpointError(`Invalid endPoint URL: ${endPoint}`);\n }\n }\n\n // Now validate the extracted hostname\n if (typeof endPoint !== \"string\" || endPoint.length === 0) {\n throw new errors.InvalidEndpointError(`Invalid endPoint: ${endPoint}`);\n }\n\n // Default values if not specified.\n if (useSSL === undefined) {\n useSSL = true;\n }\n\n // Validate port\n if (port !== undefined && !isValidPort(port)) {\n throw new errors.InvalidArgumentError(`Invalid port: ${port}`);\n }\n\n // Validate credentials\n if (params.accessKey && !params.secretKey) {\n throw new errors.InvalidArgumentError(`If specifying access key, secret key must also be provided.`);\n }\n if (params.accessKey && params.accessKey.startsWith(\"ASIA\") && !params.sessionToken) {\n throw new errors.InvalidArgumentError(`If specifying temporary access key, session token must also be provided.`);\n }\n\n const defaultPort = useSSL ? 443 : 80;\n this.port = port ?? defaultPort;\n this.host = endPoint.toLowerCase() + (this.port !== defaultPort ? `:${this.port}` : \"\");\n this.protocol = useSSL ? \"https:\" : \"http:\";\n this.accessKey = params.accessKey;\n this.#secretKey = params.secretKey ?? \"\";\n this.sessionToken = params.sessionToken;\n this.pathStyle = params.pathStyle ?? true; // Default path style is true\n this.pathPrefix = pathPrefix ?? \"\";\n this.defaultBucket = params.bucket;\n this.region = params.region;\n\n if (this.pathPrefix) {\n if (!this.pathStyle) {\n throw new errors.InvalidArgumentError(`pathPrefix is incompatible with pathStyle=false`);\n }\n if (!this.pathPrefix.startsWith(\"/\")) {\n throw new errors.InvalidArgumentError(`pathPrefix should start with /`);\n }\n if (this.pathPrefix.endsWith(\"/\")) {\n throw new errors.InvalidArgumentError(`pathPrefix should not end with /`);\n }\n }\n }\n\n /** Internal helper method to figure out which bucket name to use for a request */\n protected getBucketName(options: undefined | { bucketName?: string }): string {\n const bucketName = options?.bucketName ?? this.defaultBucket;\n if (bucketName === undefined || !isValidBucketName(bucketName)) {\n throw new errors.InvalidBucketNameError(bucketName ?? \"\");\n }\n return bucketName;\n }\n\n /**\n * Common code used for both \"normal\" requests and presigned URL requests\n */\n private buildRequestOptions(options: {\n objectName: string;\n bucketName?: string;\n headers?: Headers;\n query?: string | Record;\n }): {\n headers: Headers;\n host: string;\n path: string;\n encodedPath: string;\n } {\n const bucketName = this.getBucketName(options);\n const host = this.pathStyle ? this.host : `${bucketName}.${this.host}`;\n const headers = options.headers ?? new Headers();\n headers.set(\"host\", host);\n const queryAsString = typeof options.query === \"object\"\n ? new URLSearchParams(options.query).toString().replace(\"+\", \"%20\") // Signing requires spaces become %20, never +\n : (options.query);\n\n const basePath = this.pathStyle\n ? `${this.pathPrefix}/${bucketName}/${options.objectName}`\n : `/${options.objectName}`;\n const querySuffix = queryAsString ? `?${queryAsString}` : \"\";\n const path = basePath + querySuffix;\n // For signing, we have to use the path as-is, but for making the request we have to be sure to\n // escape the '+' and '%' characters, or we'll get signing errors, at least with some S3 servers.\n const encodedPath = basePath.split(\"/\").map((part) => encodeURIComponent(part)).join(\"/\") + querySuffix;\n return { headers, host, path, encodedPath };\n }\n\n /**\n * Make a single request to S3\n */\n public async makeRequest({ method, payload, ...options }: {\n method: \"POST\" | \"GET\" | \"PUT\" | \"DELETE\" | string;\n headers?: Headers;\n query?: string | Record;\n objectName: string;\n bucketName?: string;\n /** The status code we expect the server to return */\n statusCode?: number;\n /** The request body */\n payload?: Uint8Array_ | string;\n /**\n * returnBody: We have to read the request body to avoid leaking resources.\n * So by default this method will read and ignore the body. If you actually\n * need it, set returnBody: true and this function won't touch it so that\n * the caller can read it.\n */\n returnBody?: boolean;\n }): Promise {\n const date = new Date();\n const { headers, host, path, encodedPath } = this.buildRequestOptions(options);\n const statusCode = options.statusCode ?? 200;\n\n if (\n method === \"POST\" || method === \"PUT\" || method === \"DELETE\"\n ) {\n if (payload === undefined) {\n payload = new Uint8Array();\n } else if (typeof payload === \"string\") {\n payload = new TextEncoder().encode(payload);\n }\n headers.set(\"Content-Length\", String(payload.length));\n } else if (payload) {\n throw new Error(`Unexpected payload on ${method} request.`);\n }\n const sha256sum = await sha256digestHex(payload ?? new Uint8Array());\n headers.set(\"x-amz-date\", makeDateLong(date));\n headers.set(\"x-amz-content-sha256\", sha256sum);\n if (this.accessKey) {\n if (this.sessionToken) {\n headers.set(\"x-amz-security-token\", this.sessionToken);\n }\n headers.set(\n \"authorization\",\n await signV4({\n headers,\n method,\n path,\n accessKey: this.accessKey,\n secretKey: this.#secretKey,\n region: this.region,\n date,\n }),\n );\n }\n\n const fullUrl = `${this.protocol}//${host}${encodedPath}`;\n\n const response = await fetch(fullUrl, {\n method,\n headers,\n body: payload,\n });\n\n if (response.status !== statusCode) {\n if (response.status >= 400) {\n const error = await errors.parseServerError(response);\n throw error;\n } else if (response.status === 301) {\n // Unfortunately we are not allowed to access the Location header to know what the new location is.\n throw new errors.ServerError(\n response.status,\n \"UnexpectedRedirect\",\n `The server unexpectedly returned a redirect response. With AWS S3, this usually means you need to use a ` +\n `region-specific endpoint like \"s3.us-west-2.amazonaws.com\" instead of \"s3.amazonaws.com\"`,\n );\n }\n throw new errors.ServerError(\n response.status,\n \"UnexpectedStatusCode\",\n `Unexpected response code from the server (expected ${statusCode}, got ${response.status} ${response.statusText}).`,\n );\n }\n if (!options.returnBody) {\n // Just read the body and ignore its contents, to avoid leaking resources.\n await response.body?.getReader().read();\n }\n return response;\n }\n\n /**\n * Delete a single object.\n *\n * You can also pass a versionId to delete a specific version of an object.\n */\n async deleteObject(\n objectName: string,\n options: { bucketName?: string; versionId?: string; governanceBypass?: boolean } = {},\n ) {\n const bucketName = this.getBucketName(options);\n if (!isValidObjectName(objectName)) {\n throw new errors.InvalidObjectNameError(objectName);\n }\n\n const query: Record = options.versionId ? { versionId: options.versionId } : {};\n const headers = new Headers();\n if (options.governanceBypass) {\n headers.set(\"X-Amz-Bypass-Governance-Retention\", \"true\");\n }\n\n await this.makeRequest({\n method: \"DELETE\",\n bucketName,\n objectName,\n headers,\n query,\n statusCode: 204,\n });\n }\n\n /**\n * Check if an object with the specified key exists.\n */\n public async exists(\n objectName: string,\n options?: { bucketName?: string; versionId?: string; headers?: Record },\n ): Promise {\n try {\n await this.statObject(objectName, options);\n return true;\n } catch (err: unknown) {\n if (err instanceof errors.ServerError && err.statusCode === 404) {\n return false;\n }\n throw err;\n }\n }\n\n /**\n * Get an object.\n *\n * Returns a standard HTTP Response object, which has many ways of consuming the response including\n * `.text()`, `.json()`, `.body` (ReadableStream), `.arrayBuffer()`, and `.blob()`.\n */\n public getObject(\n objectName: string,\n options?: {\n metadata?: ObjectMetadata;\n bucketName?: string;\n versionId?: string;\n responseParams?: ResponseOverrideParams;\n },\n ): Promise {\n return this.getPartialObject(objectName, { ...options, offset: 0, length: 0 });\n }\n\n /**\n * Stream a partial object, starting from the specified offset in bytes, up to the specified length in bytes.\n * A length of zero will return the rest of the object from the specified offset.\n * Pass a version UUID as \"versionId\" to download a specific version.\n *\n * Returns a standard HTTP Response object.\n */\n public async getPartialObject(\n objectName: string,\n { offset, length, ...options }: {\n offset: number;\n length: number;\n metadata?: ObjectMetadata;\n bucketName?: string;\n versionId?: string;\n responseParams?: ResponseOverrideParams;\n },\n ): Promise {\n const bucketName = this.getBucketName(options);\n if (!isValidObjectName(objectName)) {\n throw new errors.InvalidObjectNameError(objectName);\n }\n\n const headers = new Headers(Object.entries(options.metadata ?? {}));\n let statusCode = 200; // Expected status code\n if (offset || length) {\n let range = \"\";\n if (offset) {\n range = `bytes=${+offset}-`;\n } else {\n range = \"bytes=0-\";\n offset = 0;\n }\n if (length) {\n range += `${(+length + offset) - 1}`;\n }\n headers.set(\"Range\", range);\n statusCode = 206; // HTTP 206 \"Partial Content\"\n }\n\n // Create query string options\n const query: Record = {\n ...options.responseParams,\n ...(options.versionId ? { versionId: options.versionId } : {}),\n };\n return await this.makeRequest({\n method: \"GET\",\n bucketName,\n objectName,\n headers,\n query,\n statusCode,\n returnBody: true,\n });\n }\n\n /**\n * Low-level method to generate a pre-signed URL.\n * @param method The HTTP method to use for the request\n * @param objectName The object name, e.g. \"path/to/file.txt\"\n * @param options Detailed options, such as expiry time for the pre-signed URL. Use expirySeconds to specify the expiry time; default is seven days.\n */\n getPresignedUrl(\n method: \"GET\" | \"PUT\" | \"HEAD\" | \"DELETE\",\n objectName: string,\n options: { bucketName?: string; parameters?: Record; expirySeconds?: number; requestDate?: Date } =\n {},\n ): Promise {\n if (!this.accessKey) {\n throw new errors.AccessKeyRequiredError();\n }\n if (!isValidObjectName(objectName)) {\n throw new errors.InvalidObjectNameError(objectName);\n }\n const { headers, path } = this.buildRequestOptions({\n objectName,\n bucketName: options.bucketName,\n query: options.parameters,\n });\n const requestDate = options.requestDate ?? new Date();\n const expirySeconds = options.expirySeconds ?? 24 * 60 * 60 * 7; // default expiration is 7 days in seconds.\n\n return presignV4({\n protocol: this.protocol,\n headers,\n method,\n path,\n accessKey: this.accessKey,\n secretKey: this.#secretKey,\n sessionToken: this.sessionToken,\n region: this.region,\n date: requestDate,\n expirySeconds,\n });\n }\n\n /**\n * Generate a pre-signed GET request URL.\n *\n * Use options.expirySeconds to override the expiration time (default is 7 days)\n */\n presignedGetObject(\n objectName: string,\n options: {\n bucketName?: string;\n versionId?: string;\n responseParams?: ResponseOverrideParams;\n expirySeconds?: number;\n requestDate?: Date;\n } = {},\n ): Promise {\n const { versionId, responseParams, ...otherOptions } = options;\n const parameters: Record = {\n ...responseParams,\n ...(versionId ? { versionId } : {}),\n };\n return this.getPresignedUrl(\"GET\", objectName, { parameters, ...otherOptions });\n }\n\n /**\n * List objects in the bucket, optionally filtered by the given key prefix.\n *\n * This returns a flat list; use `listObjectsGrouped()` for more advanced behavior,\n * such as grouping or pagination.\n */\n public async *listObjects(\n options: {\n prefix?: string;\n bucketName?: string;\n /** Don't return more than this many results in total. Default: unlimited. */\n maxResults?: number;\n /**\n * How many keys to retrieve per HTTP request (default: 1000)\n * This is a maximum; sometimes fewer keys will be returned.\n * This will not affect the shape of the result, just its efficiency.\n */\n pageSize?: number;\n } = {},\n ): AsyncGenerator {\n for await (const result of this.listObjectsGrouped({ ...options, delimiter: \"\" })) {\n // Since we didn't specify a delimiter, listObjectsGrouped() should only return\n // actual object keys, not any CommonPrefix groupings.\n if (result.type === \"Object\") {\n yield result;\n } else {\n throw new Error(`Unexpected result from listObjectsGrouped(): ${result}`);\n }\n }\n }\n\n /**\n * List objects in the bucket, optionally grouped based on the specified \"delimiter\".\n *\n * See https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html for\n * details on using a delimiter.\n *\n * To retrieve results page by page with this generator, you cannot use `for await`.\n * Instead, call this with a helper function like the following:\n * ```\n * async function retrievePage(continuationToken?: string) {\n * const pageSize = 10;\n * const iterator = client.listObjectsGrouped({ continuationToken, pageSize, maxResults: pageSize });\n * const page: S3Object[] = [];\n * let r: IteratorResult;\n * while (!(r = await iterator.next()).done) { if (r.value.type === \"Object\") page.push(r.value); }\n * // Once the iterator is 'done', r.value will have the continuation token.\n * return { page, continuationToken: r.value };\n * }\n * ```\n */\n public async *listObjectsGrouped(\n options: {\n delimiter?: string;\n prefix?: string;\n bucketName?: string;\n /** Don't return more than this many results in total. Default: unlimited. */\n maxResults?: number;\n /**\n * How many keys to retrieve per HTTP request (default: 1000)\n * This is a maximum; sometimes fewer keys will be returned.\n */\n pageSize?: number;\n /** Retrieve results from later pages using this continuation token. */\n continuationToken?: string;\n },\n ): AsyncGenerator {\n const bucketName = this.getBucketName(options);\n let continuationToken = options.continuationToken ?? \"\";\n const pageSize = options.pageSize ?? 1_000;\n if (pageSize < 1 || pageSize > 1_000) {\n throw new errors.InvalidArgumentError(\"pageSize must be between 1 and 1,000.\");\n }\n let resultCount = 0; // Count the total number of results\n\n while (true) {\n // How many results to fetch in the next request:\n const maxKeys = options.maxResults ? Math.min(pageSize, options.maxResults - resultCount) : pageSize;\n if (maxKeys === 0) {\n return;\n }\n // Fetch the next page of results:\n const pageResponse = await this.makeRequest({\n method: \"GET\",\n bucketName,\n objectName: \"\",\n query: {\n \"list-type\": \"2\",\n prefix: options.prefix ?? \"\",\n delimiter: options.delimiter ?? \"\",\n \"max-keys\": String(maxKeys),\n ...(continuationToken ? { \"continuation-token\": continuationToken } : {}),\n },\n returnBody: true,\n });\n const responseText = await pageResponse.text();\n // Parse the response XML.\n // See https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html#API_ListObjectsV2_ResponseSyntax\n const root = parseXML(responseText).root;\n if (!root || root.name !== \"ListBucketResult\") {\n throw new Error(`Unexpected response: ${responseText}`);\n }\n // If a delimiter was specified, first return any common prefixes from this page of results:\n const prefixElements = root.children\n .filter((c) => c.name === \"CommonPrefixes\")\n .flatMap((c) => c.children);\n const toYield: Array = [];\n for (const prefixElement of prefixElements) {\n toYield.push({\n type: \"CommonPrefix\",\n prefix: prefixElement.content ?? \"\",\n });\n resultCount++;\n }\n // Now return all regular object keys found in the result:\n for (const objectElement of root.children.filter((c) => c.name === \"Contents\")) {\n toYield.push({\n type: \"Object\",\n key: objectElement.children.find((c) => c.name === \"Key\")?.content ?? \"\",\n etag: sanitizeETag(objectElement.children.find((c) => c.name === \"ETag\")?.content ?? \"\"),\n size: parseInt(objectElement.children.find((c) => c.name === \"Size\")?.content ?? \"\", 10),\n lastModified: new Date(objectElement.children.find((c) => c.name === \"LastModified\")?.content ?? \"invalid\"),\n });\n resultCount++;\n }\n // Now, interlace the commonprefixes and regular objects, so that the overall result stays sorted\n // in alphabetical order, instead of mixed by common prefixes first then other entries later.\n // This way guarantees consistent behavior regardless of page size.\n toYield.sort((a, b) => {\n const aStr = a.type === \"Object\" ? a.key : a.prefix;\n const bStr = b.type === \"Object\" ? b.key : b.prefix;\n return aStr > bStr ? 1 : aStr < bStr ? -1 : 0;\n });\n for (const entry of toYield) {\n yield entry;\n }\n const isTruncated = root.children.find((c) => c.name === \"IsTruncated\")?.content === \"true\";\n if (isTruncated) {\n // There are more results.\n const nextContinuationToken = root.children.find((c) => c.name === \"NextContinuationToken\")?.content;\n if (!nextContinuationToken) {\n throw new Error(\"Unexpectedly missing continuation token, but server said there are more results.\");\n }\n continuationToken = nextContinuationToken;\n if (options.maxResults && resultCount >= options.maxResults) {\n // We returned the maximum number of results.\n // Don't retrieve any more results for now; stop iteration and return the continuationToken.\n return continuationToken;\n }\n } else {\n // That's it, no more results.\n return;\n }\n }\n }\n\n /**\n * Upload an object\n */\n async putObject(\n objectName: string,\n streamOrData: ReadableStream | Uint8Array | string,\n options?: {\n metadata?: ObjectMetadata;\n size?: number;\n bucketName?: string;\n /**\n * For large uploads, split them into parts of this size.\n * Default: 64MB if object size is known, 500MB if total object size is unknown.\n * This is a minimum; larger part sizes may be required for large uploads or if the total size is unknown.\n */\n partSize?: number;\n },\n ): Promise {\n const bucketName = this.getBucketName(options);\n if (!isValidObjectName(objectName)) {\n throw new errors.InvalidObjectNameError(objectName);\n }\n\n // Prepare a readable stream for the upload:\n let size: number | undefined;\n let stream: ReadableStream;\n if (typeof streamOrData === \"string\") {\n // Convert to binary using UTF-8\n const binaryData = new TextEncoder().encode(streamOrData);\n if (typeof ReadableStream.from !== \"undefined\") {\n stream = ReadableStream.from([binaryData]);\n } else {\n // ReadableStream.from is not yet supported by some runtimes :/\n // https://github.com/oven-sh/bun/issues/3700\n // https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/from_static#browser_compatibility\n // deno-fmt-ignore\n stream = new ReadableStream({ start(c) { c.enqueue(binaryData); c.close(); } });\n }\n size = binaryData.length;\n } else if (streamOrData instanceof Uint8Array) {\n if (typeof ReadableStream.from !== \"undefined\") {\n stream = ReadableStream.from([streamOrData]);\n } else {\n // deno-fmt-ignore\n stream = new ReadableStream({ start(c) { c.enqueue(streamOrData); c.close(); } });\n }\n size = streamOrData.byteLength;\n } else if (streamOrData instanceof ReadableStream) {\n stream = streamOrData;\n } else {\n throw new errors.InvalidArgumentError(\n `Invalid stream/data type provided.`,\n );\n }\n\n // Validate the size parameter\n if (options?.size !== undefined) {\n if (size !== undefined && options?.size !== size) {\n throw new errors.InvalidArgumentError(\n `size was specified (${options.size}) but doesn't match auto-detected size (${size}).`,\n );\n }\n if (typeof options.size !== \"number\" || options.size < 0 || isNaN(options.size)) {\n throw new errors.InvalidArgumentError(\n `invalid size specified: ${options.size}`,\n );\n } else {\n size = options.size;\n }\n }\n\n // Determine the part size, if we may need to do a multi-part upload.\n const partSize = options?.partSize ?? this.calculatePartSize(size);\n if (partSize < minimumPartSize) {\n throw new errors.InvalidArgumentError(`Part size should be greater than 5MB`);\n } else if (partSize > maximumPartSize) {\n throw new errors.InvalidArgumentError(`Part size should be less than 6MB`);\n }\n\n // s3 requires that all non-end chunks be at least `this.partSize`,\n // so we chunk the stream until we hit either that size or the end before\n // we flush it to s3.\n const chunker = new TransformChunkSizes(partSize);\n\n // This is a Writable stream that can be written to in order to upload\n // to the specified bucket and object automatically.\n const uploader = new ObjectUploader({\n client: this,\n bucketName,\n objectName,\n partSize,\n metadata: options?.metadata ?? {},\n });\n // stream => chunker => uploader\n await stream.pipeThrough(chunker).pipeTo(uploader);\n return uploader.getResult();\n }\n\n /**\n * Calculate part size given the object size. Part size will be at least this.partSize.\n *\n * Per https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html we have to\n * stick to the following rules:\n * - part size between 5MB (this.maximumPartSize) and 5GB (this.maxObjectSize)\n * (the final part can be smaller than 5MB however)\n * - maximum of 10,000 parts per upload\n * - maximum object size of 5TB\n */\n protected calculatePartSize(size: number | undefined): number {\n if (size === undefined) {\n // If we don't know the total size (e.g. we're streaming data), assume it's\n // the largest allowed object size, so we can guarantee the upload works\n // regardless of the total size.\n size = maxObjectSize;\n }\n if (size > maxObjectSize) {\n throw new TypeError(`size should not be more than ${maxObjectSize}`);\n }\n let partSize = 64 * 1024 * 1024; // Start with 64MB\n while (true) {\n // If partSize is big enough to accomodate the object size, then use it.\n if ((partSize * 10_000) > size) {\n return partSize;\n }\n // Try part sizes as 64MB, 80MB, 96MB etc.\n partSize += 16 * 1024 * 1024;\n }\n }\n\n /**\n * Get detailed information about an object.\n */\n public async statObject(\n objectName: string,\n options?: {\n bucketName?: string;\n versionId?: string;\n /**\n * Additional headers to include in the request\n */\n headers?: Record;\n },\n ): Promise {\n const bucketName = this.getBucketName(options);\n if (!isValidObjectName(objectName)) {\n throw new errors.InvalidObjectNameError(objectName);\n }\n const query: Record = {};\n if (options?.versionId) {\n query.versionId = options.versionId;\n }\n\n const response = await this.makeRequest({\n method: \"HEAD\",\n bucketName,\n objectName,\n query,\n // Add custom headers if provided\n headers: new Headers(options?.headers),\n });\n\n const metadata: ObjectMetadata = {};\n for (const header of metadataKeys) {\n if (response.headers.has(header)) {\n metadata[header] = response.headers.get(header) as string;\n }\n }\n // Also add in custom metadata\n response.headers.forEach((_value, key) => {\n if (key.startsWith(\"x-amz-meta-\")) {\n metadata[key as `x-amz-meta-${string}`] = response.headers.get(key) as string;\n }\n });\n\n return {\n type: \"Object\",\n key: objectName,\n size: parseInt(response.headers.get(\"content-length\") ?? \"\", 10),\n metadata,\n lastModified: new Date(response.headers.get(\"Last-Modified\") ?? \"error: missing last modified\"),\n versionId: response.headers.get(\"x-amz-version-id\") || null,\n etag: sanitizeETag(response.headers.get(\"ETag\") ?? \"\"),\n };\n }\n\n /**\n * Copy an object into this bucket\n */\n public async copyObject(\n source: { sourceBucketName?: string; sourceKey: string; sourceVersionId?: string },\n objectName: string,\n options?: {\n bucketName?: string;\n /** Metadata for the new object. If not specified, metadata will be copied from the source. */\n metadata?: ObjectMetadata;\n },\n ): Promise {\n const bucketName = this.getBucketName(options);\n const sourceBucketName = source.sourceBucketName ?? bucketName;\n if (!isValidObjectName(objectName)) {\n throw new errors.InvalidObjectNameError(objectName);\n }\n\n // The \"x-amz-copy-source\" header is like \"bucket/objectkey\" with an optional version ID.\n // e.g. \"awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893\"\n let xAmzCopySource = `${sourceBucketName}/${\n source.sourceKey.split(\"/\").map((part) => encodeURIComponent(part)).join(\"/\")\n }`;\n if (source.sourceVersionId) xAmzCopySource += `?versionId=${source.sourceVersionId}`;\n\n const headers = new Headers(options?.metadata);\n if (options?.metadata !== undefined) {\n headers.set(\"x-amz-metadata-directive\", \"REPLACE\");\n }\n headers.set(\"x-amz-copy-source\", xAmzCopySource);\n\n const response = await this.makeRequest({ method: \"PUT\", bucketName, objectName, headers, returnBody: true });\n\n const responseText = await response.text();\n // Parse the response XML.\n // See https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html#API_CopyObject_ResponseSyntax\n const root = parseXML(responseText).root;\n if (!root || root.name !== \"CopyObjectResult\") {\n throw new Error(`Unexpected response: ${responseText}`);\n }\n const etagString = root.children.find((c) => c.name === \"ETag\")?.content ?? \"\";\n const lastModifiedString = root.children.find((c) => c.name === \"LastModified\")?.content;\n if (lastModifiedString === undefined) {\n throw new Error(\"Unable to find ... from the server.\");\n }\n\n return {\n copySourceVersionId: response.headers.get(\"x-amz-copy-source-version-id\") || null,\n etag: sanitizeETag(etagString),\n lastModified: new Date(lastModifiedString),\n versionId: response.headers.get(\"x-amz-version-id\") || null,\n };\n }\n\n /** Check if a bucket exists */\n public async bucketExists(bucketName: string): Promise {\n try {\n const objects = this.listObjects({ bucketName });\n // We don't need to fully list the objects, just check if we can start listing\n await objects.next();\n return true;\n } catch (err: unknown) {\n if (err instanceof errors.ServerError && err.statusCode === 404) {\n return false;\n }\n throw err;\n }\n }\n\n /** Create a new bucket */\n public async makeBucket(bucketName: string): Promise {\n await this.makeRequest({\n method: \"PUT\",\n bucketName: this.getBucketName({ bucketName }),\n objectName: \"\",\n statusCode: 200,\n });\n }\n\n /** Delete a bucket (must be empty) */\n public async removeBucket(bucketName: string): Promise {\n await this.makeRequest({\n method: \"DELETE\",\n bucketName: this.getBucketName({ bucketName }),\n objectName: \"\",\n statusCode: 204,\n });\n }\n\n /**\n * Creates a presigned POST policy that can be used to allow browser/client uploads directly to S3.\n * This is equivalent to AWS SDK's createPresignedPost functionality.\n *\n * @param objectName - Object name for which the presigned URL is generated\n * @param options - Additional options\n * @returns An object with url and fields that can be used to construct a form for direct uploads\n */\n presignedPostObject(\n objectName: string,\n options: {\n /**\n * Bucket name to use for this operation. If not specified, the default bucket name will be used.\n */\n bucketName?: string;\n /**\n * Expiry time in seconds for the presigned URL. Default is 1 hour (3600 seconds).\n */\n expirySeconds?: number;\n /**\n * Date when the presigned URL becomes valid. Default is now.\n */\n requestDate?: Date;\n /**\n * Additional policy conditions to apply.\n * See: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html\n */\n conditions?: PolicyCondition[];\n /**\n * Additional form fields to include in the policy and the result.\n */\n fields?: Record;\n } = {},\n ): Promise {\n if (!isValidObjectName(objectName)) {\n throw new errors.InvalidObjectNameError(objectName);\n }\n\n const bucketName = this.getBucketName(options);\n if (!bucketName) {\n throw new Error(\n \"Bucket name is required for presignedPost, but none was provided either to this method nor to the client constructor\",\n );\n }\n\n // Build request options\n const requestDate = options.requestDate || new Date();\n const expirySeconds = options.expirySeconds ?? 3600; // Default 1 hour\n\n return presignPostV4({\n protocol: this.protocol,\n host: this.host,\n bucket: bucketName,\n objectKey: objectName,\n accessKey: this.accessKey || \"\",\n secretKey: this.#secretKey || \"\",\n region: this.region,\n date: requestDate,\n expirySeconds,\n conditions: options.conditions,\n fields: options.fields,\n });\n }\n}\n","import { S3Client } from \"@bradenmacdonald/s3-lite-client\";\nimport * as IDB from \"idb-keyval\";\nimport * as URI from \"fast-uri\";\nimport QS from \"query-string\";\n\nimport { cachedConsult } from \"~/components/input/common.js\";\nimport { safeDecodeURIComponent } from \"~/common/utils.js\";\nimport { ENCODINGS, IDB_BUCKETS, SCHEME } from \"./constants.js\";\n\n/**\n * @import { Track } from \"~/definitions/types.d.ts\";\n * @import { Bucket } from \"@specs/components/input/s3/types.d.ts\";\n */\n\n////////////////////////////////////////////\n// 🛠️\n////////////////////////////////////////////\n\n/**\n * @param {Track[]} tracks\n */\nexport function bucketsFromTracks(tracks) {\n /** @type {Record} */\n const acc = {};\n\n tracks.forEach((track) => {\n const parsed = parseURI(track.uri);\n if (!parsed) return;\n\n const id = bucketId(parsed.bucket);\n if (acc[id]) return;\n\n acc[id] = parsed.bucket;\n });\n\n return acc;\n}\n\n/**\n * @param {Bucket} bucket\n */\nexport function bucketId(bucket) {\n return `${bucket.accessKey}:${bucket.secretKey}@${bucket.host}`;\n}\n\n/**\n * @param {Bucket} bucket\n * @param {string} [path]\n */\nexport function buildURI(bucket, path) {\n return URI.serialize({\n scheme: SCHEME,\n userinfo: `${bucket.accessKey}:${bucket.secretKey}`,\n host: bucket.host.replace(/^\\w+:\\/\\//, \"\"),\n path: path,\n query: QS.stringify({\n bucketName: bucket.bucketName,\n bucketPath: bucket.path,\n region: bucket.region,\n }),\n });\n}\n\n/**\n * @param {Bucket} bucket\n * @returns {Promise}\n */\nexport async function consultBucket(bucket) {\n const client = createClient(bucket);\n try {\n const exists = await client.bucketExists(bucket.bucketName);\n return exists ? \"yes\" : \"no\";\n } catch {\n // Network/credentials/transport error: inconclusive — don't let a\n // transient blip flip this bucket to \"no\" for the full consult TTL.\n return \"unsure\";\n }\n}\n\nexport const consultBucketCached = cachedConsult(consultBucket, bucketId);\n\n/**\n * @param {Bucket} bucket\n */\nexport function createClient(bucket) {\n return new S3Client({\n bucket: bucket.bucketName,\n endPoint: `http${\n bucket.host.startsWith(\"localhost\") ? \"\" : \"s\"\n }://${bucket.host}`,\n region: bucket.region,\n pathStyle: false,\n accessKey: bucket.accessKey,\n secretKey: bucket.secretKey,\n });\n}\n\n/**\n * @param {string} a\n */\nexport function encodeAwsUriComponent(a) {\n return encodeURIComponent(a).replace(\n /(\\+|!|\"|#|\\$|&|'|\\(|\\)|\\*|\\+|,|:|;|=|\\?|@)/gim,\n (match) => /** @type {any} */ (ENCODINGS)[match] ?? match,\n );\n}\n\n/**\n * @param {Track[]} tracks\n */\nexport function groupTracksByBucket(tracks) {\n /** @type {Record} */\n const acc = {};\n\n tracks.forEach((track) => {\n const parsed = parseURI(track.uri);\n if (!parsed) return acc;\n\n const id = bucketId(parsed.bucket);\n\n if (acc[id]) {\n acc[id].tracks.push(track);\n } else {\n acc[id] = { bucket: parsed.bucket, tracks: [track] };\n }\n });\n\n return acc;\n}\n\n/**\n * @param {string[]} uris\n */\nexport function groupUrisByBucket(uris) {\n /** @type {Record} */\n const acc = {};\n\n uris.forEach((uri) => {\n const parsed = parseURI(uri);\n if (!parsed) return acc;\n\n const id = bucketId(parsed.bucket);\n\n if (acc[id]) {\n acc[id].uris.push(uri);\n } else {\n acc[id] = { bucket: parsed.bucket, uris: [uri] };\n }\n });\n\n return acc;\n}\n\n/**\n * @returns {Promise>}\n */\nexport async function loadBuckets() {\n const i = await IDB.get(IDB_BUCKETS);\n return i ? i : {};\n}\n\n/**\n * @param {string} uriString\n * @returns {{ bucket: Bucket; path: string } | undefined}\n */\nexport function parseURI(uriString) {\n const uri = URI.parse(uriString);\n if (uri.scheme !== SCHEME) return undefined;\n if (!uri.host) return undefined;\n\n const [accessKey, secretKey] = uri.userinfo?.split(\":\") ?? [];\n if (!accessKey || !secretKey) return undefined;\n\n const qs = QS.parse(uri.query || \"\");\n\n const bucket = {\n accessKey,\n bucketName: typeof qs.bucketName === \"string\" ? qs.bucketName : \"\",\n host: uri.host,\n path: qs.bucketPath === \"string\" ? qs.bucketPath : \"/\",\n region: typeof qs.region === \"string\" ? qs.region : \"\",\n secretKey,\n };\n\n const path =\n (bucket.path.replace(/\\/$/, \"\") + safeDecodeURIComponent(uri.path || \"\"))\n .replace(\n /^\\//,\n \"\",\n );\n\n return { bucket, path };\n}\n\n/**\n * @param {Record} items\n */\nexport async function saveBuckets(items) {\n await IDB.set(IDB_BUCKETS, items);\n}\n"],"mappings":"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","names":["TransformChunkSizes","__name","outChunkSize","buffer","offset","chunk","controller","pos","needed","toCopy","parse","xml","document","declaration","tag","__name","match","node","eos","is","attr","attribute","m","content","child","entities","strip","val","re","prefix","S3Error","__name","InvalidArgumentError","S3Error","__name","InvalidEndpointError","InvalidBucketNameError","bucketName","InvalidObjectNameError","objectName","AccessKeyRequiredError","SecretKeyRequiredError","InvalidExpiryError","ServerError","statusCode","code","message","otherData","parseServerError","response","errorRoot","parse","c","key","resource","region","isValidPort","port","__name","isValidBucketName","bucket","isValidObjectName","objectName","isValidPrefix","prefix","bin2hex","binary","b","sanitizeETag","etag","replaceChars","m","getVersionId","headers","makeDateLong","date","dateStr","makeDateShort","getScope","region","sha256digestHex","data","multipartTagAlongMetadataKeys","ObjectUploader","__name","client","bucketName","objectName","partSize","metadata","result","nextPartNumber","uploadId","etags","multiUploadError","partsPromises","chunk","_controller","partNumber","response","sanitizeETag","getVersionId","initiateNewMultipartUpload","partHeaders","key","value","partPromise","etag","err","a","b","completeMultipartUpload","options","method","headers","responseText","root","parse","c","payload","et","etagRaw","versionId","signV4Algorithm","signV4","request","AccessKeyRequiredError","SecretKeyRequiredError","sha256sum","signedHeaders","getHeadersToSign","canonicalRequest","getCanonicalRequest","stringToSign","getStringToSign","signingKey","getSigningKey","credential","getCredential","signature","bin2hex","sha256hmac","__name","presignV4","InvalidExpiryError","resource","queryString","iso8601Date","makeDateLong","hashedPayload","newQuery","newQueryString","signingPath","encodedPath","part","headers","ignoredHeaders","headersToSign","key","CODES","ALLOWED_BYTES","s","awsUriEncode","string","allowSlashes","bytes","encoded","byte","method","path","payloadHash","headersArray","acc","headerKey","val","requestResource","requestQuery","element","requestDate","region","hash","sha256digestHex","scope","getScope","date","secretKey","dateLine","makeDateShort","hmac1","hmac2","hmac3","accessKey","data","enc","keyObject","presignPostV4","expiration","fields","conditions","value","policy","policyBytes","base64Policy","metadataKeys","minimumPartSize","maximumPartSize","maxObjectSize","Client","__name","#secretKey","endPoint","useSSL","port","pathPrefix","params","InvalidArgumentError","url","InvalidEndpointError","isValidPort","defaultPort","options","bucketName","isValidBucketName","InvalidBucketNameError","host","headers","queryAsString","basePath","querySuffix","path","encodedPath","part","method","payload","date","statusCode","sha256sum","sha256digestHex","makeDateLong","signV4","fullUrl","response","parseServerError","ServerError","objectName","isValidObjectName","InvalidObjectNameError","query","err","offset","length","range","AccessKeyRequiredError","requestDate","expirySeconds","presignV4","versionId","responseParams","otherOptions","parameters","result","continuationToken","pageSize","resultCount","maxKeys","responseText","root","parse","prefixElements","c","toYield","prefixElement","objectElement","sanitizeETag","a","b","aStr","bStr","entry","nextContinuationToken","streamOrData","size","stream","binaryData","partSize","chunker","TransformChunkSizes","uploader","ObjectUploader","metadata","header","_value","key","source","sourceBucketName","xAmzCopySource","etagString","lastModifiedString","presignPostV4","bucketsFromTracks","tracks","acc","track","parsed","parseURI","id","bucketId","__name","bucket","buildURI","path","serialize","SCHEME","query_string_default","consultBucket","client","createClient","consultBucketCached","cachedConsult","Client","encodeAwsUriComponent","a","match","ENCODINGS","groupTracksByBucket","groupUrisByBucket","uris","uri","loadBuckets","i","get","IDB_BUCKETS","uriString","parse","accessKey","secretKey","qs","safeDecodeURIComponent","saveBuckets","items","set"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-E2G3ZJP4.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js new file mode 100644 index 00000000..13b6d045 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js @@ -0,0 +1,3 @@ +import{a}from"./chunk-TI4M42VH.js";import{c as r}from"./chunk-4AUG55HO.js";import{m as o}from"./chunk-XILA3E7E.js";import{a as l}from"./chunk-75KFZLU6.js";var n=document.createElement("div");n.id="elements-container";document.body.appendChild(n);var u=!1,c=!1;o(()=>{let e=r.signals.orchestrator.output();if(!e)return;let t=e.facets.collection();t.state==="loaded"&&u===!1&&(u=!0,a(t.data,n).then(()=>{c=!0}))});async function h(){let e=await r.orchestrator.output();return e.hasSelected()&&!e.selected()&&!c&&await new Promise(t=>{let s=!1,d=o(()=>{if(s){d();return}e.selected()&&(s=!0,t(null))})}),e}l(h,"output");export{h as a}; + +//# sourceMappingURL=./chunk-EDKAGOM6.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js.br new file mode 100644 index 0000000000000000000000000000000000000000..103e22f66cfa18ca5e08cc01056142ce7caf54a2 GIT binary patch literal 341 zcmb0xXJSa1n^`@rGudInqkPt%-r3Ui7B3a%dRhgWZ>_#^Ku%Y>x_PVaTOrOZ+&K(v zB7x_8tCarTIOS`tx~ucyrKfwQ3tc<)&VnaOe*5kI+q2`%FQjK4=9_Y898-73Pfna=I}vbWR3tbyakD)DpdXP>?M zzj%JQF1v2M>9M56kx3g97hhxRpXThZ|gx zGIf5!XDN4m!}V)9)BZJ0t(miOr;2uFut4WOwb^P<7rrx7HE@YCQI;$5o}SAK0C|+1 A?*IS* literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js.map new file mode 100644 index 00000000..6f7db9bd --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDKAGOM6.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/common/pages/output.js"],"sourcesContent":["import { effect } from \"~/common/signal.js\";\nimport { insertPreludes } from \"~/common/facets/prelude.js\";\nimport foundation from \"~/common/foundation.js\";\n\nconst elements = document.createElement(\"div\");\nelements.id = \"elements-container\";\ndocument.body.appendChild(elements);\n\nlet preludeInserted = false;\nlet preludeLoaded = false;\n\neffect(() => {\n const out = foundation.signals.orchestrator.output();\n if (!out) return;\n\n const col = out.facets.collection();\n if (col.state !== \"loaded\") return;\n\n if (preludeInserted === false) {\n preludeInserted = true;\n insertPreludes(col.data, elements).then(() => {\n preludeLoaded = true;\n });\n }\n});\n\nexport async function output() {\n const out = await foundation.orchestrator.output();\n\n if (out.hasSelected() && !out.selected() && !preludeLoaded) {\n await new Promise((resolve) => {\n let resolved = false;\n\n const stop = effect(() => {\n if (resolved) {\n stop();\n return;\n }\n\n const s = out.selected();\n\n if (s) {\n resolved = true;\n resolve(null);\n }\n });\n });\n }\n\n return out;\n}\n"],"mappings":"2JAIA,IAAMA,EAAW,SAAS,cAAc,KAAK,EAC7CA,EAAS,GAAK,qBACd,SAAS,KAAK,YAAYA,CAAQ,EAElC,IAAIC,EAAkB,GAClBC,EAAgB,GAEpBC,EAAO,IAAM,CACX,IAAMC,EAAMC,EAAW,QAAQ,aAAa,OAAO,EACnD,GAAI,CAACD,EAAK,OAEV,IAAME,EAAMF,EAAI,OAAO,WAAW,EAC9BE,EAAI,QAAU,UAEdL,IAAoB,KACtBA,EAAkB,GAClBM,EAAeD,EAAI,KAAMN,CAAQ,EAAE,KAAK,IAAM,CAC5CE,EAAgB,EAClB,CAAC,EAEL,CAAC,EAED,eAAsBM,GAAS,CAC7B,IAAMJ,EAAM,MAAMC,EAAW,aAAa,OAAO,EAEjD,OAAID,EAAI,YAAY,GAAK,CAACA,EAAI,SAAS,GAAK,CAACF,GAC3C,MAAM,IAAI,QAASO,GAAY,CAC7B,IAAIC,EAAW,GAETC,EAAOR,EAAO,IAAM,CACxB,GAAIO,EAAU,CACZC,EAAK,EACL,MACF,CAEUP,EAAI,SAAS,IAGrBM,EAAW,GACXD,EAAQ,IAAI,EAEhB,CAAC,CACH,CAAC,EAGIL,CACT,CAxBsBQ,EAAAJ,EAAA","names":["elements","preludeInserted","preludeLoaded","effect","out","foundation_default","col","insertPreludes","output","resolve","resolved","stop","__name"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-EDKAGOM6.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js new file mode 100644 index 00000000..669be2fa --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js @@ -0,0 +1,3 @@ +import{e as c}from"./chunk-PXOGRNGV.js";import{a as s}from"./chunk-ZCBN4C3I.js";import{b as e,e as i}from"./chunk-IA3NIKPO.js";import{a as r,c as u}from"./chunk-75KFZLU6.js";var a={};u(a,{CLASS:()=>p,NAME:()=>h,default:()=>l});var t=class extends e{static{r(this,"IcecastInput")}static NAME="diffuse/input/icecast";static WORKER_URL="components/input/icecast/worker.js";SCHEME=s;constructor(){super(),this.proxy=this.workerProxy(),this.artwork=this.proxy.artwork,this.consult=this.proxy.consult,this.detach=this.proxy.detach,this.groupConsult=this.proxy.groupConsult,this.list=this.proxy.list,this.resolve=this.proxy.resolve}sources(n){return Object.values(c(n)).map(o=>({label:o,uri:`${s}://${o}`}))}},l=t,p=t,h="di-icecast";i(h,p);export{l as a,p as b,h as c,a as d}; + +//# sourceMappingURL=./chunk-EDMPL3NH.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js.br new file mode 100644 index 0000000000000000000000000000000000000000..4ab535176f8c2ef4d10aed19af299fae471613b1 GIT binary patch literal 412 zcmb1UWM)W-ivIil^CzkFh`kx@y*X=~0@h1B`=9oYQJGg~%OS&UUl*0|MLVd9Mciew zwz8hPOQ80{jg5|qe6Ln^rU+)=nN*-9sr2KtwyWtK8$PbbUsssQZkyIMKQ1$(K`>}a z?pmvwmA2&#c@YMtP3=2_E9J_n9#1^Kz%cftbHe-ed!KFFUvYT$XJ)sU49f!(uK${P z^9}cj6*CSbre27M(z_$MFioQ)JN3o(k1n14fm)G!Ua+O-bUh3`zCq*4t0SKCVox$1 z^qx6?f%fIiZ*8_-nKWxv`?hr^caCP6yft06{OA__M#n|hXY)PMxw_<+b40?%+9~N< z%aSiRtW@**(^@vwK+qz+M&WR@mlmh;{`w40x6jGSy&nuu+ZeMfXYV{X`TZvY;a3Vz zk8Cl@*`c1Ps^6q7z12imzVlvtT-Tx8CEt4@H97a|E4)xp=rX5OhnvxP%0ZUY3vZ_cW%yra*7Hd@ X`zuv~Ly<=~zWv=51BJIv!5QKJ{OH6N literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js.map new file mode 100644 index 00000000..ab4e948b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDMPL3NH.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/input/icecast/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\nimport { hostsFromTracks } from \"./common.js\";\nimport { SCHEME } from \"./constants.js\";\n\n/**\n * @import {InputActions, InputSchemeProvider} from \"@specs/components/input/types.d.ts\"\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {Track} from \"~/definitions/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n * @implements {InputSchemeProvider}\n */\nclass IcecastInput extends DiffuseElement {\n static NAME = \"diffuse/input/icecast\";\n static WORKER_URL = \"components/input/icecast/worker.js\";\n\n SCHEME = SCHEME;\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n this.proxy = this.workerProxy();\n\n this.artwork = this.proxy.artwork;\n this.consult = this.proxy.consult;\n this.detach = this.proxy.detach;\n this.groupConsult = this.proxy.groupConsult;\n this.list = this.proxy.list;\n this.resolve = this.proxy.resolve;\n }\n\n // 🛠️\n\n /** @param {Track[]} tracks */\n sources(tracks) {\n const hosts = Object.values(hostsFromTracks(tracks));\n\n return hosts.map((host) => ({\n label: host,\n uri: `${SCHEME}://${host}`,\n }));\n }\n}\n\nexport default IcecastInput;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = IcecastInput;\nexport const NAME = \"di-icecast\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"8KAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAkBA,IAAMC,EAAN,cAA2BC,CAAe,CAlB1C,MAkB0C,CAAAC,EAAA,qBACxC,OAAO,KAAO,wBACd,OAAO,WAAa,qCAEpB,OAASC,EAET,aAAc,CACZ,MAAM,EAGN,KAAK,MAAQ,KAAK,YAAY,EAE9B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,OAAS,KAAK,MAAM,OACzB,KAAK,aAAe,KAAK,MAAM,aAC/B,KAAK,KAAO,KAAK,MAAM,KACvB,KAAK,QAAU,KAAK,MAAM,OAC5B,CAKA,QAAQC,EAAQ,CAGd,OAFc,OAAO,OAAOC,EAAgBD,CAAM,CAAC,EAEtC,IAAKE,IAAU,CAC1B,MAAOA,EACP,IAAK,GAAGH,CAAM,MAAMG,CAAI,EAC1B,EAAE,CACJ,CACF,EAEOC,EAAQP,EAMFQ,EAAQR,EACRS,EAAO,aAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","IcecastInput","DiffuseElement","__name","SCHEME","tracks","hostsFromTracks","host","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-EDMPL3NH.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js new file mode 120000 index 00000000..b5db37aa --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-EDOHDIY7.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js.br new file mode 120000 index 00000000..63abc47d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-EDOHDIY7.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js.map new file mode 120000 index 00000000..633f5852 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EDOHDIY7.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-EDOHDIY7.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js new file mode 120000 index 00000000..6fb4fcfa --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-EIUJL2DK.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js.br new file mode 120000 index 00000000..0bb7291f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-EIUJL2DK.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js.map new file mode 120000 index 00000000..398100f5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EIUJL2DK.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-EIUJL2DK.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ELB3AQIW.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ELB3AQIW.js new file mode 100644 index 00000000..af78d83b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ELB3AQIW.js @@ -0,0 +1,3 @@ +import{a as r}from"./chunk-75KFZLU6.js";function i(t,{schema:s,history:e=[]}){return{$schema:s,$schemaHistory:e,data:t}}r(i,"wrap");function a(t,{$schema:s}){if(o(t)){let e=t;return{data:e.data,envelope:e}}return{data:t,envelope:null}}r(a,"unwrap");function o(t){return!!(t&&typeof t=="object"&&!Array.isArray(t)&&typeof t.$schema=="string"&&Array.isArray(t.$schemaHistory)&&Array.isArray(t.data))}r(o,"isSelfDescribing");var n={facets:"sh.diffuse.output.facet",playlistItems:"sh.diffuse.output.playlistItem",settings:"sh.diffuse.output.setting",tracks:"sh.diffuse.output.track"};function c(t){return n[t]}r(c,"collectionSchema");export{i as a,a as b,o as c,c as d}; + +//# sourceMappingURL=./chunk-ELB3AQIW.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ELB3AQIW.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-ELB3AQIW.js.br new file mode 100644 index 0000000000000000000000000000000000000000..447a903fa767a73a881258058f3dfd3e05dad40b GIT binary patch literal 336 zcmb21#l(5uA+W`%jvZq{wDt^fM*!yUtw%?lUX1omXF z`oY}Zn8j@M=g%~4gX^~?{;1q>h|HPuQhvh;7gdh?4r?<1FHn`OQK_2SvMOlJS1a{z zFDA4*2KaMHel%ZFI#P{s=S-{>BFMT zliJD^)qa&b)Gle4F&Au#kv>pOa%k9^b(Zk#K@rVyT%7qgy8sM3rl xHeKOq3+wqkpC<25UBuMlK3^^LXGAB@mkDBLn1!z@G0v@D[];\n * data: T;\n * }} SelfDescribing\n */\n\n/**\n * Wrap a collection into a self-describing envelope.\n *\n * @template {unknown[]} T\n * @template {unknown} L\n * @param {T} data\n * @param {{ schema: string; history?: HistoryEntry[] }} opts\n * @returns {SelfDescribing}\n *\n * @example Wraps records with the lexicon that produced them\n * ```js\n * import { wrap } from \"~/common/self-describing.js\";\n *\n * const envelope = wrap([{ id: \"a\" }], { schema: \"sh.diffuse.output.facet\" });\n * if (envelope.$schema !== \"sh.diffuse.output.facet\") throw new Error(\"expected schema\");\n * if (envelope.data[0].id !== \"a\") throw new Error(\"expected data\");\n * ```\n *\n * @example Stores the supplied history entries\n * ```js\n * import { wrap } from \"~/common/self-describing.js\";\n *\n * const envelope = wrap([], {\n * schema: \"sh.diffuse.output.track2\",\n * history: [{\n * from: \"sh.diffuse.output.track\",\n * to: \"sh.diffuse.output.track2\",\n * lens: { steps: [] },\n * complement: null,\n * }],\n * });\n * if (envelope.$schemaHistory.length !== 1) throw new Error(\"expected 1 history entry\");\n * ```\n */\nexport function wrap(data, { schema, history = [] }) {\n return {\n $schema: schema,\n $schemaHistory: history,\n data,\n };\n}\n\n/**\n * Read the collection out of a stored value, tolerating legacy payloads.\n *\n * Legacy payloads — a bare array, or an object that is not an envelope — are\n * treated as `data` written against the supplied schema (a `v0` with no recorded\n * migration). This keeps existing users unbroken when the envelope is introduced.\n *\n * @template {unknown[]} T\n * @template {unknown} L\n * @param {unknown} value\n * @param {{ $schema: string }} opts\n * @returns {{ data: T; envelope: SelfDescribing | null }}\n *\n * @example Reads a self-describing envelope\n * ```ts\n * import { wrap, unwrap } from \"~/common/self-describing.js\";\n *\n * const wrapped = wrap([{ id: \"a\" }], { schema: \"sh.diffuse.output.facet\" });\n * const out = unwrap(wrapped, {\n * $schema: \"sh.diffuse.output.facet\",\n * }) as { data: Array<{ id: string }>; envelope: { $schema: string } | null };\n * if (out.data[0].id !== \"a\") throw new Error(\"expected data\");\n * if (out.envelope === null) throw new Error(\"expected envelope\");\n * ```\n *\n * @example Tolerates a legacy bare array\n * ```ts\n * import { unwrap } from \"~/common/self-describing.js\";\n *\n * const out = unwrap([{ id: \"a\" }], {\n * $schema: \"sh.diffuse.output.facet\",\n * }) as { data: Array<{ id: string }>; envelope: unknown };\n * if (out.data[0].id !== \"a\") throw new Error(\"expected data\");\n * if (out.envelope !== null) throw new Error(\"expected no envelope for legacy data\");\n * ```\n */\nexport function unwrap(value, { $schema }) {\n void $schema;\n if (isSelfDescribing(value)) {\n const envelope = /** @type {SelfDescribing} */ (value);\n return { data: /** @type {T} */ (envelope.data), envelope };\n }\n return { data: /** @type {T} */ (value), envelope: null };\n}\n\n/**\n * Whether a stored value is a self-describing envelope.\n *\n * @template {unknown} T\n * @param {unknown} value\n * @returns {value is SelfDescribing}\n *\n * @example Identifies enveloped data\n * ```js\n * import { isSelfDescribing } from \"~/common/self-describing.js\";\n *\n * if (isSelfDescribing({ $schema: \"s\", $schemaHistory: [], data: [] })) {\n * // is a self-describing envelope\n * } else {\n * throw new Error(\"expected to be self-describing\");\n * }\n * ```\n *\n * @example Rejects a bare array\n * ```js\n * import { isSelfDescribing } from \"~/common/self-describing.js\";\n *\n * if (isSelfDescribing([1, 2, 3])) throw new Error(\"bare array is not an envelope\");\n * ```\n */\nexport function isSelfDescribing(value) {\n return Boolean(\n value &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n typeof /** @type {any} */ (value).$schema === \"string\" &&\n Array.isArray(/** @type {any} */ (value).$schemaHistory) &&\n Array.isArray(/** @type {any} */ (value).data),\n );\n}\n\n/**\n * The name of one of the collections an output persists.\n *\n * @typedef {\"facets\" | \"playlistItems\" | \"settings\" | \"tracks\"} CollectionName\n */\n\n/** @type {Record} */\nconst COLLECTION_SCHEMAS = {\n facets: \"sh.diffuse.output.facet\",\n playlistItems: \"sh.diffuse.output.playlistItem\",\n settings: \"sh.diffuse.output.setting\",\n tracks: \"sh.diffuse.output.track\",\n};\n\n/**\n * The current lexicon NSID for a collection.\n *\n * @param {CollectionName} name\n * @returns {string}\n *\n * @example Returns the schema for tracks\n * ```js\n * import { collectionSchema } from \"~/common/self-describing.js\";\n *\n * const s = collectionSchema(\"tracks\");\n * if (s !== \"sh.diffuse.output.track\") throw new Error(\"expected track schema\");\n * ```\n */\nexport function collectionSchema(name) {\n return COLLECTION_SCHEMAS[name];\n}"],"mappings":"wCA2FO,SAASA,EAAKC,EAAM,CAAE,OAAAC,EAAQ,QAAAC,EAAU,CAAC,CAAE,EAAG,CACnD,MAAO,CACL,QAASD,EACT,eAAgBC,EAChB,KAAAF,CACF,CACF,CANgBG,EAAAJ,EAAA,QA4CT,SAASK,EAAOC,EAAO,CAAE,QAAAC,CAAQ,EAAG,CAEzC,GAAIC,EAAiBF,CAAK,EAAG,CAC3B,IAAMG,EAAgDH,EACtD,MAAO,CAAE,KAAwBG,EAAS,KAAO,SAAAA,CAAS,CAC5D,CACA,MAAO,CAAE,KAAwBH,EAAQ,SAAU,IAAK,CAC1D,CAPgBF,EAAAC,EAAA,UAkCT,SAASG,EAAiBF,EAAO,CACtC,MAAO,GACLA,GACE,OAAOA,GAAU,UACjB,CAAC,MAAM,QAAQA,CAAK,GACpB,OAA2BA,EAAO,SAAY,UAC9C,MAAM,QAA4BA,EAAO,cAAc,GACvD,MAAM,QAA4BA,EAAO,IAAI,EAEnD,CATgBF,EAAAI,EAAA,oBAkBhB,IAAME,EAAqB,CACzB,OAAQ,0BACR,cAAe,iCACf,SAAU,4BACV,OAAQ,yBACV,EAgBO,SAASC,EAAiBC,EAAM,CACrC,OAAOF,EAAmBE,CAAI,CAChC,CAFgBR,EAAAO,EAAA","names":["wrap","data","schema","history","__name","unwrap","value","$schema","isSelfDescribing","envelope","COLLECTION_SCHEMAS","collectionSchema","name"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-ELB3AQIW.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js new file mode 120000 index 00000000..da44afe5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-EPAUM665.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js.br new file mode 120000 index 00000000..642125b3 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-EPAUM665.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js.map new file mode 120000 index 00000000..dec1ebc3 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EPAUM665.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-EPAUM665.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EQQMOAG3.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EQQMOAG3.js new file mode 100644 index 00000000..3919b6e4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EQQMOAG3.js @@ -0,0 +1,3 @@ +import{c as p,g as h}from"./chunk-WHKNBNKF.js";import{a as e}from"./chunk-O2AMATPK.js";import{b as r,e as i}from"./chunk-IA3NIKPO.js";import{a as o,c as n}from"./chunk-75KFZLU6.js";var x={};n(x,{CLASS:()=>u,NAME:()=>l,default:()=>a});var t=class extends r{static{o(this,"WebdavInput")}static NAME="diffuse/input/webdav";static WORKER_URL="components/input/webdav/worker.js";SCHEME=e;constructor(){super(),this.proxy=this.workerProxy(),this.artwork=this.proxy.artwork,this.consult=this.proxy.consult,this.detach=this.proxy.detach,this.groupConsult=this.proxy.groupConsult,this.list=this.proxy.list,this.resolve=this.proxy.resolve}sources(c){return Object.values(h(c)).map(s=>({label:`${s.host}${s.dir}`,uri:p(s)}))}},a=t,u=t,l="di-webdav";i(l,u);export{a,u as b,l as c,x as d}; + +//# sourceMappingURL=./chunk-EQQMOAG3.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EQQMOAG3.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EQQMOAG3.js.br new file mode 100644 index 0000000000000000000000000000000000000000..8feb0e30b1d2774ea381e50567cda6273ff9c5c2 GIT binary patch literal 420 zcmb2c9DC24!BIEhRmpS@VWrvKlL1ujzV z1&y8yXG-(@Yv{Vfw5@pUq|CPunK(^-PsVpI-hW(JG|J6qq37FPmdURa_srfgEqPwn z@rV!Bp-dI3A6ZMDx6D(Yv0D7vh4Tro&o#*USp9WdxnJ_@Y@r)JKJ*D!Jn?z_OY-tu zZ}C7GkyT5>ICr*b9ACd>^^C3wAC9qW&GC=v*4!5}(X;Q_Za=Aqv!}SLarl)BHLJ59 zna5o^VbjAMceXT7{xV7Y;Pk0ZvjTfuntxANSRgNXcah%V-;-BQ`Q4Wi5pX;8KwXAw z>!T*O!2ZSs@j+XgC7IhUDLnkUbN^fCLt7Y(^?L8mnQ%&1#N}\n * @implements {InputSchemeProvider}\n */\nclass WebdavInput extends DiffuseElement {\n static NAME = \"diffuse/input/webdav\";\n static WORKER_URL = \"components/input/webdav/worker.js\";\n\n SCHEME = SCHEME;\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n this.proxy = this.workerProxy();\n\n this.artwork = this.proxy.artwork;\n this.consult = this.proxy.consult;\n this.detach = this.proxy.detach;\n this.groupConsult = this.proxy.groupConsult;\n this.list = this.proxy.list;\n this.resolve = this.proxy.resolve;\n }\n\n // 🛠️\n\n /** @param {Track[]} tracks */\n sources(tracks) {\n return Object.values(serversFromTracks(tracks)).map((server) => ({\n label: `${server.host}${server.dir}`,\n uri: buildURI(server),\n }));\n }\n}\n\nexport default WebdavInput;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = WebdavInput;\nexport const NAME = \"di-webdav\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"qLAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAkBA,IAAMC,EAAN,cAA0BC,CAAe,CAlBzC,MAkByC,CAAAC,EAAA,oBACvC,OAAO,KAAO,uBACd,OAAO,WAAa,oCAEpB,OAASC,EAET,aAAc,CACZ,MAAM,EAGN,KAAK,MAAQ,KAAK,YAAY,EAE9B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,OAAS,KAAK,MAAM,OACzB,KAAK,aAAe,KAAK,MAAM,aAC/B,KAAK,KAAO,KAAK,MAAM,KACvB,KAAK,QAAU,KAAK,MAAM,OAC5B,CAKA,QAAQC,EAAQ,CACd,OAAO,OAAO,OAAOC,EAAkBD,CAAM,CAAC,EAAE,IAAKE,IAAY,CAC/D,MAAO,GAAGA,EAAO,IAAI,GAAGA,EAAO,GAAG,GAClC,IAAKC,EAASD,CAAM,CACtB,EAAE,CACJ,CACF,EAEOE,EAAQR,EAMFS,EAAQT,EACRU,EAAO,YAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","WebdavInput","DiffuseElement","__name","SCHEME","tracks","serversFromTracks","server","buildURI","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-EQQMOAG3.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EWGIE3HP.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EWGIE3HP.js new file mode 100644 index 00000000..704fb0be --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EWGIE3HP.js @@ -0,0 +1,3 @@ +import{b as a,e as r,f as o,i as c}from"./chunk-IA3NIKPO.js";import{j as n,o as i}from"./chunk-XILA3E7E.js";import{a as d,c as h}from"./chunk-75KFZLU6.js";var $={};h($,{CLASS:()=>l,NAME:()=>f,default:()=>p});var s=class extends a{static{d(this,"ControllerOrchestrator")}static NAME="diffuse/orchestrator/controller";$audio=i(void 0);$output=i(void 0);$queue=i(void 0);audio=n(()=>{let e=this.$queue.value?.now();return e?this.$audio.value?.state(e.id):void 0});currentTrack=n(()=>{let e=this.$queue.value?.now();if(!e)return;let t=this.$output.value?.tracks.collection();if(!(!t||t.state!=="loaded"))return t.data.find(u=>u.id===e.id)});isPlaying=n(()=>this.$audio.value?.isPlaying());connectedCallback(){super.connectedCallback();let e=o(this,"audio-engine-selector"),t=o(this,"output-selector"),u=o(this,"queue-engine-selector");c({audio:e,output:t,queue:u}).then(()=>{this.$audio.value=e,this.$output.value=t,this.$queue.value=u})}},p=s,l=s,f="do-controller";r(f,l);export{p as a,l as b,f as c,$ as d}; + +//# sourceMappingURL=./chunk-EWGIE3HP.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EWGIE3HP.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-EWGIE3HP.js.br new file mode 100644 index 0000000000000000000000000000000000000000..47a9598e1da9d3f4c935f834c954393065925e83 GIT binary patch literal 476 zcmb1s%gpd3O7H*QJr-F8n-{8`2|H64bK{2K#;Crgvu3KNOZ<>h0ZHcg$n9g?-P=%$ba@E;z8LE}3|t`p<;bOATIjdlppgC@Zi0 zTd;o9v~2bmHr6TSLBhTLr)MADdUb`QeXe zAAVMbd)z55D6gollI&ODeY5e@W|Mo5>>vG<_?e|^e3;Lj-FvRxgX5_eH)c1^`mN@( zqW1TSaI=`IHHWYL5Z&p!ctw8Z$|I`Noj&VaFHWuRUim{W`1G`;^A;aH7klN&H^;Pz zPDk$8TfCA;jIm=a3++|=78>}EqwHvgeCso}>_# zdzP{1MxfO(2eaeROYhf2i9K^py5hS$)@7cu%R8^+lSMC0Pg{LmHf8Y%387l)H=$XA zh9&;`rMK)XK2H}bJkVZbnpmp1R4i2fX7Xd1*3C|QQPoS*3>VuZMwWkh!!7cbe_!XJ zb1Eeor>fH9-W7i5t61?WfahHCZWiU;w;A_szFoaiPAa7H@6EjqO?&J5WJO-v->80R o8*-!Ru$a=5Z9Fq}-00w#bLES+!8#`9bLL{kEe7Em {\n const curr = this.$queue.value?.now();\n return curr ? this.$audio.value?.state(curr.id) : undefined;\n });\n\n currentTrack = computed(() => {\n const item = this.$queue.value?.now();\n if (!item) return undefined;\n const col = this.$output.value?.tracks.collection();\n if (!col || col.state !== \"loaded\") return undefined;\n return col.data.find((t) => t.id === item.id);\n });\n\n isPlaying = computed(() => {\n return this.$audio.value?.isPlaying();\n });\n\n // LIFECYCLE\n\n /**\n * @override\n */\n connectedCallback() {\n super.connectedCallback();\n\n /** @type {AudioEngine} */\n const audio = query(this, \"audio-engine-selector\");\n\n /** @type {OutputElement} */\n const output = query(this, \"output-selector\");\n\n /** @type {QueueEngine} */\n const queue = query(this, \"queue-engine-selector\");\n\n whenElementsDefined({ audio, output, queue }).then(() => {\n this.$audio.value = audio;\n this.$output.value = output;\n this.$queue.value = queue;\n });\n }\n}\n\nexport default ControllerOrchestrator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = ControllerOrchestrator;\nexport const NAME = \"do-controller\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"2JAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAiBA,IAAMC,EAAN,cAAqCC,CAAe,CAjBpD,MAiBoD,CAAAC,EAAA,+BAClD,OAAO,KAAO,kCAId,OAASC,EAA+C,MAAU,EAClE,QAAUA,EAAiD,MAAU,EACrE,OAASA,EAA+C,MAAU,EAIlE,MAAQC,EAAS,IAAM,CACrB,IAAMC,EAAO,KAAK,OAAO,OAAO,IAAI,EACpC,OAAOA,EAAO,KAAK,OAAO,OAAO,MAAMA,EAAK,EAAE,EAAI,MACpD,CAAC,EAED,aAAeD,EAAS,IAAM,CAC5B,IAAME,EAAO,KAAK,OAAO,OAAO,IAAI,EACpC,GAAI,CAACA,EAAM,OACX,IAAMC,EAAM,KAAK,QAAQ,OAAO,OAAO,WAAW,EAClD,GAAI,GAACA,GAAOA,EAAI,QAAU,UAC1B,OAAOA,EAAI,KAAK,KAAMC,GAAMA,EAAE,KAAOF,EAAK,EAAE,CAC9C,CAAC,EAED,UAAYF,EAAS,IACZ,KAAK,OAAO,OAAO,UAAU,CACrC,EAOD,mBAAoB,CAClB,MAAM,kBAAkB,EAGxB,IAAMK,EAAQC,EAAM,KAAM,uBAAuB,EAG3CC,EAASD,EAAM,KAAM,iBAAiB,EAGtCE,EAAQF,EAAM,KAAM,uBAAuB,EAEjDG,EAAoB,CAAE,MAAAJ,EAAO,OAAAE,EAAQ,MAAAC,CAAM,CAAC,EAAE,KAAK,IAAM,CACvD,KAAK,OAAO,MAAQH,EACpB,KAAK,QAAQ,MAAQE,EACrB,KAAK,OAAO,MAAQC,CACtB,CAAC,CACH,CACF,EAEOE,EAAQd,EAMFe,EAAQf,EACRgB,EAAO,gBAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","ControllerOrchestrator","DiffuseElement","__name","signal","computed","curr","item","col","t","audio","query","output","queue","whenElementsDefined","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-EWGIE3HP.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-F5IZ46CN.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-F5IZ46CN.js new file mode 100644 index 00000000..ffe7c2a5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-F5IZ46CN.js @@ -0,0 +1,3 @@ +import{a as f,b as A,c as O,d as g,e as E}from"./chunk-LRSJBPOP.js";import{h as d,m as h}from"./chunk-2QN2TM5L.js";import{a as k,b as S,c as u}from"./chunk-RQUYKOSL.js";import{c as b,e as m}from"./chunk-IA3NIKPO.js";import{c as w}from"./chunk-VQAZGKWE.js";import{o as n}from"./chunk-XILA3E7E.js";import{a as p,c as I}from"./chunk-75KFZLU6.js";var D={};I(D,{CLASS:()=>N,NAME:()=>v,default:()=>U});var a="diffuse/supplement/rocksky/session",o=class extends b{static{p(this,"RockskyScrobbler")}static NAME="diffuse/supplement/rocksky";#e=n(null);#t=n(!1);#s=n(!1);handle=this.#e.get;isAuthenticated=this.#t.get;isAuthenticating=this.#s.get;connectedCallback(){if(this.hasAttribute("group")){let t=this.broadcast(this.identifier,{nowPlaying:{strategy:"leaderOnly",fn:this.nowPlaying},scrobble:{strategy:"leaderOnly",fn:this.scrobble},setHandle:{strategy:"replicate",fn:this.#e.set},setConnected:{strategy:"replicate",fn:this.#t.set}});t&&(this.nowPlaying=t.nowPlaying,this.scrobble=t.scrobble,this.#e.set=t.setHandle,this.#t.set=t.setConnected)}super.connectedCallback(),this.#i()}async#i(){await this.whenConnected();try{let e=await O();if(e){let i=e.info.sub;await this.isLeader()?(this.#t.set(!0),this.#e.set(i)):(this.#t.value=!0,this.#e.value=i),await S(this,a,JSON.stringify({did:i}));return}}catch(e){console.warn("Rocksky: Failed to restore/finalize session",e)}let t=await k(this,a);if(t)try{let{did:e}=JSON.parse(t);await this.isLeader()?(this.#t.set(!0),this.#e.set(e)):(this.#t.value=!0,this.#e.value=e)}catch{await u(this,a)}}async signIn(t){this.#s.set(!0);try{await A(t)}finally{this.#s.set(!1)}}async signOut(){let t=localStorage.getItem(f);t?d(t).then(e=>E(new h(e))).catch(()=>g()):g(),this.#t.set(!1),this.#e.set(null),await u(this,a)}async nowPlaying(t){}async scrobble(t,e,{duration:i}={}){if(!this.#t.value)return;let r=localStorage.getItem(f);if(!r)return;let C=await d(r),P=new h(C),s=t.tags??{},y=t.stats?.duration??i;if(y==null)return;let c={$type:"app.rocksky.scrobble",createdAt:new Date(e).toISOString(),title:s.title||"Unknown",artist:s.artist||"Unknown",album:s.album||"Unknown",albumArtist:s.albumartist||s.artist||"Unknown",duration:y};s.track?.no!=null&&(c.trackNumber=s.track.no),s.disc?.no!=null&&(c.discNumber=s.disc.no);let l=await P.handle("/xrpc/com.atproto.repo.putRecord",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repo:r,collection:"app.rocksky.scrobble",rkey:w(),record:c,validate:!1})});if(!l.ok){let x=await l.json().catch(()=>({}));throw new Error(`rocksky: scrobble failed ${l.status}: ${x.message??""}`)}}},U=o,N=o,v="ds-rocksky-scrobbler";m(v,N);export{U as a,N as b,v as c,D as d}; + +//# sourceMappingURL=./chunk-F5IZ46CN.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-F5IZ46CN.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-F5IZ46CN.js.br new file mode 100644 index 0000000000000000000000000000000000000000..7409a367decf90e1e327bf81ef4bb3909a1b6e7b GIT binary patch literal 1167 zcmb2nqtK?#)Fq8qe~KKc`MuMM_v!Lo7uK*o zdUUsTX3fl12VY-1al|!7XzhoHmfRA(Px1@o3YE>==DwV;H6nMTQ1%-c>72%68>Vyo zpU}zwwWwtE+R3Y5FMiwonfs&phBry$`Fij3r_(q8{CFgjdN6I-lXshHtSt837yc4-=N|v($)8T&>$g4l z(lJT1xKsXq-}m``dHWA*{5ra>OLP9`*dA;3r(d@|Sx`6sVPxg5^6P(k^cg_qO2-{zREJyC9)9l25kfZ4_Zs^5pW_ym+^s%4C^Exmz`ay=A?;!j#h)@0?;tO4m?!3Q2q5 z@r0x5edgMa60!StzW9=I*Xfvn?$s2r$tj-dmG5?SCcaML-(sC;a3i8ZB`5Gu!ix)P zwHc22ZRezHcQ3l`#^S79=Kg-;Ij3C_O>^$;ef;U2R#k!=>t-#hGfMS8L^MC>7#*Cy zn8nyBYxgwH_X0B&<%~Ey-?*G1z%fMtW zw?hS^S$8NmpMv;7_ZbeS)USl-y4)?8SapeImHR1A6%S)|6N%Xuugke!QWFj4HnBI> z;Jvu;o|P z-{aXU;U<-R=BUB7Ft?Ll(PHe2dD$f+8JFE$^?XZC*R59#Z|}Cxs_~z;;ni%hz@Jum4ml6TD&9rn1@mqwAGcdws5Bm*hP(AFh4%(dX-r qH4(zwR&0#!*0w!;{g32%1#^AYNe{#>S3Fzs;ip>I logout(new OAuthUserAgent(session)))\n .catch(() => clearStoredSession());\n } else {\n clearStoredSession();\n }\n\n this.#connected.set(false);\n this.#handle.set(null);\n await clearSession(this, STORAGE_KEY);\n }\n\n // SCROBBLE ACTIONS\n\n /**\n * @param {Track} _track\n */\n // deno-lint-ignore no-unused-vars\n async nowPlaying(_track) {\n // Rocksky has no now-playing PDS record type; scrobbles are the source of truth.\n }\n\n /**\n * @param {Track} track\n * @param {number} startedAt Unix timestamp in milliseconds\n * @param {{ duration?: number }} [options] duration in milliseconds\n */\n async scrobble(track, startedAt, { duration: durationMs } = {}) {\n if (!this.#connected.value) return;\n\n const did = localStorage.getItem(DID_STORAGE_KEY);\n if (!did) return;\n\n const session = await getSession(/** @type {`did:${string}:${string}`} */ (did));\n const agent = new OAuthUserAgent(session);\n\n const tags = track.tags ?? {};\n const duration = track.stats?.duration ?? durationMs;\n\n // duration has no meaningful fallback value; skip rather than create an invalid record\n if (duration == null) return;\n\n /** @type {Record} */\n const record = {\n $type: \"app.rocksky.scrobble\",\n createdAt: new Date(startedAt).toISOString(),\n title: tags.title || \"Unknown\",\n artist: tags.artist || \"Unknown\",\n album: tags.album || \"Unknown\",\n albumArtist: tags.albumartist || tags.artist || \"Unknown\",\n duration,\n };\n\n if (tags.track?.no != null) record.trackNumber = tags.track.no;\n if (tags.disc?.no != null) record.discNumber = tags.disc.no;\n\n const response = await agent.handle(\"/xrpc/com.atproto.repo.putRecord\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n repo: did,\n collection: \"app.rocksky.scrobble\",\n rkey: tidNow(),\n record,\n validate: false,\n }),\n });\n\n if (!response.ok) {\n const error = await response.json().catch(() => ({}));\n throw new Error(`rocksky: scrobble failed ${response.status}: ${error.message ?? \"\"}`);\n }\n }\n}\n\nexport default RockskyScrobbler;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = RockskyScrobbler;\nexport const NAME = \"ds-rocksky-scrobbler\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","STORAGE_KEY","RockskyScrobbler","BroadcastableDiffuseElement","__name","#handle","signal","#connected","#isAuthenticating","actions","#tryRestore","session","restoreOrFinalize","did","saveSession","err","stored","readSession","clearSession","handle","login","DID_STORAGE_KEY","getSession","logout","OAuthUserAgent","clearStoredSession","_track","track","startedAt","durationMs","agent","tags","duration","record","response","now","error","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-F5IZ46CN.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js new file mode 100644 index 00000000..8e932dca --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js @@ -0,0 +1,3 @@ +import{a as E}from"./chunk-EDKAGOM6.js";import{b as q}from"./chunk-ZGMMU2IC.js";import{b as L}from"./chunk-SIM5AC6S.js";import{m as S}from"./chunk-XILA3E7E.js";import{a as b}from"./chunk-75KFZLU6.js";function R(){let g=document.querySelectorAll(".grid-filter button[data-filter]"),o=document.querySelectorAll(".grid-item"),n=document.querySelector(".grid-filter--categories"),l=[...new Set([...o].map(a=>a.dataset.category).filter(Boolean))].sort(),r=null,t=null;if(n&&l.length>1){r=document.createElement("span"),r.textContent="All";let a=document.createElement("button");a.className="button--border button--tiny button--transparent",a.setAttribute("popovertarget","grid-category-menu");let s=document.createElement("span");s.className="with-icon",s.appendChild(r);let d=document.createElement("i");d.className="ph-bold ph-caret-down",s.appendChild(d),a.appendChild(s),t=document.createElement("div"),t.id="grid-category-menu",t.className="dropdown",t.setAttribute("popover","");for(let u of["all",...l]){let y=document.createElement("button");y.dataset.category=u,y.textContent=u==="all"?"All":u,y.addEventListener("click",()=>{i=u;let A=new URL(location.href);u==="all"?A.searchParams.delete("category"):A.searchParams.set("category",u),history.replaceState(null,"",A),t?.hidePopover(),p(c,i)}),t.appendChild(y)}n.appendChild(a),n.appendChild(t)}let h="diffuse/dashboard/filter",c="all",i="all";function p(a,s){g.forEach(d=>{let u=d.dataset.filter!==a;d.classList.contains("button--transparent")!==u&&d.classList.toggle("button--transparent",u)}),r&&(r.textContent=s==="all"?"All":s),o.forEach(d=>{let u=(d.dataset.tags??"").split(",").includes("base");if(a==="base")d.hidden=!u;else{let y=a==="all"||d.dataset.kind===a,A=s==="all"||d.dataset.category===s;d.hidden=!(y&&A&&!u)}})}b(p,"applyFilter"),g.forEach(a=>{a.addEventListener("click",()=>{c=a.dataset.filter??"all",localStorage.setItem(h,c);let s=new URL(location.href);s.searchParams.delete("filter"),history.replaceState(null,"",s),p(c,i)})});let m=new URL(location.href),f=m.searchParams.get("filter"),e=localStorage.getItem(h);c=f==="prelude"||f==="interface"||f==="base"||f==="all"?f:e==="prelude"||e==="interface"||e==="base"?e:"all",i=m.searchParams.get("category")??"all",p(c,i)}b(R,"setupFilter");function k(){let g=document.querySelectorAll(".grid li");for(let o of g){let n=o.querySelector("button[data-action='toggle']");n&&n.addEventListener("click",async()=>{let l=o.getAttribute("data-uri"),r=o.getAttribute("data-name"),t=o.getAttribute("data-kind")??void 0,h=o.getAttribute("data-description")??void 0,c=o.getAttribute("data-tags"),i=c?c.split(",").filter(Boolean):void 0;if(!l||!r)return;let p=await E(),m=await q(p.facets);if(m.some(e=>e.uri===l&&e.html===void 0))p.facets.save(m.filter(e=>e.uri!==l));else{let e=await L({description:h,kind:t,name:r,tags:i,uri:l},{fetchHTML:!1});p.facets.save([...m,e])}})}}b(k,"insertToggleButtons");var v;async function B(){v&&v();let g=await E();v=S(()=>{let o=document.querySelectorAll(".grid li"),n=g.facets.collection(),l=n.state==="loaded"?n.data:[],r=new Map(l.map(t=>[t.uri,t]));for(let t of o){let h=t.getAttribute("data-uri"),c=t.querySelector(".grid-item__menu"),i=t.querySelector("button[data-action='toggle']"),p=i?.querySelector("i");if(!c||!i||!p||!h)continue;let m=r.get(h),f=m&&m.html===void 0,e=t.dataset.kind==="prelude";c.classList.toggle("grid-item__menu--active",f??!1),i.style.opacity="revert-layer",i.title=f?e?"Remove feature":"Unpin interface":e?"Add feature":"Pin interface",p.className=f?e?"ph-bold ph-check":"ph-fill ph-push-pin":e?"ph-bold ph-plus":"ph-bold ph-push-pin",p.style.transform=f&&!e?"rotate(-45deg)":""}})}b(B,"monitorToggleButtonStates");var w;async function M(){w&&w();let g=document.querySelector(".grid-filter");if(!g)return;let o=await E(),n=g.querySelector(".grid-filter--output");if(!n)return;let l=g.querySelector(".grid-filter--label-output");l&&(setTimeout(()=>{n.style.opacity="1",l.style.opacity="0.4"},250),w=S(()=>{let r=o.selected(),t=r?.label??r?.getAttribute?.("label")??"Local storage";n.textContent=t}))}b(M,"setupOutputIndicator");export{R as a,k as b,B as c,M as d}; + +//# sourceMappingURL=./chunk-FALXUBWD.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js.br new file mode 100644 index 0000000000000000000000000000000000000000..71506957512e7d58144ddda4d0cddbca33510338 GIT binary patch literal 1585 zcmb2v6JU6q`nh7w0i#E@=FI#eys7{_SKfYv20!kKEj<9X9=0KV{SP-x+J0fBczz z*sUx}q>F#bljRp*E3}8&EK>R6S!lx(wpy-Gxpzmbf~A?OoZXx$v!lLvCLO+|%)b8P z%|efD^&ftkzA;(+it(i9YsHMH_%`KiMe#?Mt|aJe@jDQ6viT!(^VOds+P>yenmw}) z^jqXf&3U!gQifs4mQ6y(5`||Jo-(y!Xk=I^vgHaJkHfoZkEd_d`|h8hAC;B)yK&Dq zZg<1#tI2Ez>)$=Ov8--|j@0dL^Kz>tS2w8F?sE$2?TU|@k?xaP)*!M(|8w*gD=wP= zeg^fQr{4=ZFwD5#EWG;nV-eo3`xmTXofLGdw@~M^;O$oVsUK|ozpT*yDr`LYdF!=| zNO}M8WR8Mq^BILsu%B;JpE+G_ zg~EX~*W=b7jurOx2t4ug{rPXv?4nyXOtWXWAQ+^PlCAaEw`{(E$6}3>51QJ!4}9+5 z@uk;NLq)P6^49yPwo_NWKKXju>*uxmUDKyUGltmBPO&SiSQFjrH1YUzw` zb`D-MB?M*!1)o_HBD7@9Y33uVjrOviKYS#v-SG1imF9v8oCU#Nmw)LOcq-K#a*}&} z+UC-M4>E~3ohs>T*`DvtX;(=_(|d9$ddsUosTuIU&~I_4dGcc^SR}} zNB6#n8f#l6UAWr5GM91w`IDXZ-E7oO22MI6tjDbvZ7B3dZ2r#*zROZ7G9g=KmR@9^ zy2ik$n<@Rm8^bbLw&hZ5=LD~7dgtQ3^gmY;qxXlZ_=wFCF)N=}$cmkgx%pCW!K~fU zYd6Y&+Z6X%DrvUa8SizjdhW|F>a( z%^E7_tL&9pSR?XM=*)tsaIE7@nB_pqd$IZ#s=Qkea-7z7lt~O9hU^7PChNdi9kz#blMgg!W!ns1lAnzx{id z&HCsx-IHEvjVx00cg|jMEWJ%F-DvlP;Soz_9aJF z89VD6`QG$?uY2IsvD=QJyP6i2#~J-DpKRZE`FF-rx5Ur>s#E?+w^XzpVq2>yw5VNq zo6MI|ZPn!mC+N<$uU}R;d%{b}Lks44D9=usVbJ&_ywLLe#+lD6<~-kVbjOX1U!K1m z-_@|^+umpNytMLC>k>;Bv1hByPM?18a;x0DPru{Kq*my4{V<($v&NUFbmP$ik=bq@ zulKPjD3_;6A1+LeE-KQAMt{a(7n&qUE(^(SYoUH=Ud Py^nLMu6?yi^*=8F){qe^ literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js.map new file mode 100644 index 00000000..dd173a4d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FALXUBWD.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/common/pages/grid.js"],"sourcesContent":["import * as Output from \"~/common/output.js\";\nimport { facetFromURI } from \"~/common/facets/utils.js\";\nimport { effect } from \"~/common/signal.js\";\n\nimport { output } from \"./output.js\";\n\n////////////////////////////////////////////\n// FILTER\n////////////////////////////////////////////\n\nexport function setupFilter() {\n /** @type {NodeListOf} */\n const kindButtons = document.querySelectorAll(\n \".grid-filter button[data-filter]\",\n );\n\n /** @type {NodeListOf} */\n const items = document.querySelectorAll(\".grid-item\");\n\n // Build category buttons from the categories present in the current grid\n const categoriesEl = document.querySelector(\".grid-filter--categories\");\n const categories = /** @type {string[]} */ (\n [...new Set([...items].map((i) => i.dataset.category).filter(Boolean))]\n .sort()\n );\n\n /** @type {HTMLElement | null} */\n let categoryLabelEl = null;\n /** @type {HTMLElement | null} */\n let categoryMenuEl = null;\n\n if (categoriesEl && categories.length > 1) {\n categoryLabelEl = document.createElement(\"span\");\n categoryLabelEl.textContent = \"All\";\n\n const triggerBtn = document.createElement(\"button\");\n triggerBtn.className = \"button--border button--tiny button--transparent\";\n triggerBtn.setAttribute(\"popovertarget\", \"grid-category-menu\");\n const span = document.createElement(\"span\");\n span.className = \"with-icon\";\n span.appendChild(categoryLabelEl);\n const caret = document.createElement(\"i\");\n caret.className = \"ph-bold ph-caret-down\";\n span.appendChild(caret);\n triggerBtn.appendChild(span);\n\n categoryMenuEl = document.createElement(\"div\");\n categoryMenuEl.id = \"grid-category-menu\";\n categoryMenuEl.className = \"dropdown\";\n categoryMenuEl.setAttribute(\"popover\", \"\");\n\n for (const cat of [\"all\", ...categories]) {\n const item = document.createElement(\"button\");\n item.dataset.category = cat;\n item.textContent = cat === \"all\" ? \"All\" : cat;\n item.addEventListener(\"click\", () => {\n activeCategory = cat;\n const url = new URL(location.href);\n if (cat === \"all\") url.searchParams.delete(\"category\");\n else url.searchParams.set(\"category\", cat);\n history.replaceState(null, \"\", url);\n categoryMenuEl?.hidePopover();\n applyFilter(activeKind, activeCategory);\n });\n categoryMenuEl.appendChild(item);\n }\n\n categoriesEl.appendChild(triggerBtn);\n categoriesEl.appendChild(categoryMenuEl);\n }\n\n const FILTER_KIND_STORAGE_KEY = \"diffuse/dashboard/filter\";\n\n let activeKind = \"all\";\n let activeCategory = \"all\";\n\n /**\n * @param {string} kind\n * @param {string} category\n */\n function applyFilter(kind, category) {\n kindButtons.forEach((b) => {\n const transparent = b.dataset.filter !== kind;\n if (b.classList.contains(\"button--transparent\") !== transparent) {\n b.classList.toggle(\"button--transparent\", transparent);\n }\n });\n if (categoryLabelEl) {\n categoryLabelEl.textContent = category === \"all\" ? \"All\" : category;\n }\n items.forEach((item) => {\n const isBase = (item.dataset.tags ?? \"\").split(\",\").includes(\"base\");\n if (kind === \"base\") {\n item.hidden = !isBase;\n } else {\n const kindMatch = kind === \"all\" || item.dataset.kind === kind;\n const catMatch = category === \"all\" ||\n item.dataset.category === category;\n item.hidden = !(kindMatch && catMatch && !isBase);\n }\n });\n }\n\n kindButtons.forEach((b) => {\n b.addEventListener(\"click\", () => {\n activeKind = b.dataset.filter ?? \"all\";\n localStorage.setItem(FILTER_KIND_STORAGE_KEY, activeKind);\n const url = new URL(location.href);\n url.searchParams.delete(\"filter\");\n history.replaceState(null, \"\", url);\n applyFilter(activeKind, activeCategory);\n });\n });\n\n const url = new URL(location.href);\n const filterParam = url.searchParams.get(\"filter\");\n const storedKind = localStorage.getItem(FILTER_KIND_STORAGE_KEY);\n activeKind = filterParam === \"prelude\" || filterParam === \"interface\" ||\n filterParam === \"base\" || filterParam === \"all\"\n ? filterParam\n : storedKind === \"prelude\" || storedKind === \"interface\" ||\n storedKind === \"base\"\n ? storedKind\n : \"all\";\n activeCategory = url.searchParams.get(\"category\") ?? \"all\";\n applyFilter(activeKind, activeCategory);\n}\n\n////////////////////////////////////////////\n// TOGGLE BUTTONS\n////////////////////////////////////////////\n\nexport function insertToggleButtons() {\n const gridItems = /** @type {NodeListOf} */ (\n document.querySelectorAll(\".grid li\")\n );\n\n for (const li of gridItems) {\n const button = li.querySelector(\"button[data-action='toggle']\");\n if (!button) continue;\n\n button.addEventListener(\"click\", async () => {\n const uri = li.getAttribute(\"data-uri\");\n const name = li.getAttribute(\"data-name\");\n const kind = li.getAttribute(\"data-kind\") ?? undefined;\n const description = li.getAttribute(\"data-description\") ?? undefined;\n const tagsRaw = li.getAttribute(\"data-tags\");\n const tags = tagsRaw ? tagsRaw.split(\",\").filter(Boolean) : undefined;\n\n if (!uri || !name) return;\n\n const out = await output();\n const collection = await Output.data(out.facets);\n const isActive = collection.some((f) =>\n f.uri === uri && f.html === undefined\n );\n\n if (isActive) {\n out.facets.save(collection.filter((f) => f.uri !== uri));\n } else {\n const facet = await facetFromURI(\n { description, kind, name, tags, uri },\n {\n fetchHTML: false,\n },\n );\n out.facets.save([...collection, facet]);\n }\n });\n }\n}\n\n////////////////////////////////////////////\n// SYNC ACTIVE STATES\n////////////////////////////////////////////\n\n/** @type {() => void | undefined} */\nlet stopMonitor;\n\nexport async function monitorToggleButtonStates() {\n if (stopMonitor) stopMonitor();\n const out = await output();\n\n stopMonitor = effect(() => {\n const gridItems = /** @type {NodeListOf} */ (\n document.querySelectorAll(\".grid li\")\n );\n\n const col = out.facets.collection();\n const collection = col.state === \"loaded\" ? col.data : [];\n const colMap = new Map(collection.map((f) => [f.uri, f]));\n\n for (const li of gridItems) {\n const uri = li.getAttribute(\"data-uri\");\n const menu = /** @type {HTMLElement | null} */ (\n li.querySelector(\".grid-item__menu\")\n );\n\n const button = /** @type {HTMLElement | null} */ (\n li.querySelector(\"button[data-action='toggle']\")\n );\n\n const icon = button?.querySelector(\"i\");\n\n if (!menu || !button || !icon || !uri) continue;\n\n const item = colMap.get(uri);\n const isActive = item && item.html === undefined;\n const isPrelude = li.dataset.kind === \"prelude\";\n\n menu.classList.toggle(\"grid-item__menu--active\", isActive ?? false);\n\n button.style.opacity = \"revert-layer\";\n button.title = isActive\n ? (isPrelude ? \"Remove feature\" : \"Unpin interface\")\n : (isPrelude ? \"Add feature\" : \"Pin interface\");\n\n icon.className = isActive\n ? isPrelude ? \"ph-bold ph-check\" : \"ph-fill ph-push-pin\"\n : isPrelude\n ? \"ph-bold ph-plus\"\n : \"ph-bold ph-push-pin\";\n\n /** @type {HTMLElement} */ (icon).style.transform = isActive && !isPrelude\n ? \"rotate(-45deg)\"\n : \"\";\n }\n });\n}\n\n////////////////////////////////////////////\n// OUTPUT INDICATOR\n////////////////////////////////////////////\n\n/** @type {() => void | undefined} */\nlet stopOutputIndicator;\n\nexport async function setupOutputIndicator() {\n if (stopOutputIndicator) stopOutputIndicator();\n\n const filterEl = document.querySelector(\".grid-filter\");\n if (!filterEl) return;\n\n const out = await output();\n\n /** @type {HTMLElement | null} */\n const indicator = filterEl.querySelector(\".grid-filter--output\");\n if (!indicator) return;\n\n /** @type {HTMLElement | null} */\n const label = filterEl.querySelector(\".grid-filter--label-output\");\n if (!label) return;\n\n setTimeout(() => {\n indicator.style.opacity = \"1\";\n label.style.opacity = \"0.4\";\n }, 250);\n\n stopOutputIndicator = effect(() => {\n const selected = out.selected();\n const label = selected?.label ?? selected?.getAttribute?.(\"label\") ??\n \"Local storage\";\n indicator.textContent = label;\n });\n}\n"],"mappings":"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","names":["setupFilter","kindButtons","items","categoriesEl","categories","i","categoryLabelEl","categoryMenuEl","triggerBtn","span","caret","cat","item","activeCategory","url","applyFilter","activeKind","FILTER_KIND_STORAGE_KEY","kind","category","b","transparent","isBase","kindMatch","catMatch","__name","filterParam","storedKind","insertToggleButtons","gridItems","li","button","uri","name","description","tagsRaw","tags","out","output","collection","data","f","facet","facetFromURI","stopMonitor","monitorToggleButtonStates","effect","col","colMap","menu","icon","isActive","isPrelude","stopOutputIndicator","setupOutputIndicator","filterEl","indicator","label","selected"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-FALXUBWD.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js new file mode 120000 index 00000000..291a4357 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-FESDLVUC.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js.br new file mode 120000 index 00000000..cd2d5a77 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-FESDLVUC.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js.map new file mode 120000 index 00000000..436d670e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FESDLVUC.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-FESDLVUC.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FHQAE777.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FHQAE777.js new file mode 100644 index 00000000..f6676b70 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FHQAE777.js @@ -0,0 +1,3 @@ +import{B as s,F as u}from"./chunk-PHFIOWBZ.js";import{a as n}from"./chunk-75KFZLU6.js";var x=Object.prototype.toString,b="[object Uint8Array]";function U(t,e,r){return t?t.constructor===e?!0:x.call(t)===r:!1}n(U,"isType");function y(t){return U(t,Uint8Array,b)}n(y,"isUint8Array");function T(t){if(!y(t))throw new TypeError(`Expected \`Uint8Array\`, got \`${typeof t}\``)}n(T,"assertUint8Array");var m={utf8:new globalThis.TextDecoder("utf8")};var A=new globalThis.TextEncoder;var w=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function L(t){T(t);let e="";for(let r=0;r>l;let g=8-l,c=o-g;return c<0?f>>=8-l-o:c>0&&(f<<=c,f|=d(t,e,r+g,c)),f}n(d,"getBitAllignedNumber");function C(t,e,r){return d(t,e,r,1)===1}n(C,"isBitSet");function k(t){let e=[];for(let r=0,o=t.length;rr.trim().toLowerCase());if(e.length>=1){let r=Number.parseFloat(e[0]);return e.length===2&&e[1]==="db"?{dB:r,ratio:E(r)}:{dB:B(r),ratio:r}}}n(H,"toRatio");function R(t){if(t.length===0)throw new Error("decodeUintBE: empty Uint8Array");let e=new DataView(t.buffer,t.byteOffset,t.byteLength);return p(e)}n(R,"decodeUintBE");export{L as a,p as b,N as c,M as d,_ as e,h as f,j as g,d as h,C as i,k as j,H as k,R as l}; + +//# sourceMappingURL=./chunk-FHQAE777.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FHQAE777.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FHQAE777.js.br new file mode 100644 index 0000000000000000000000000000000000000000..9780fb4a32440f360b280160aaf03e8880f73f22 GIT binary patch literal 1293 zcmb16i+rnWG9!>riHtmRSSEwJ5mMnmv}7_RJLk)d1qrl%Kpm=Wq)sOdvqa^jHH z`?0LiIwiFGzsa%4pm-VUg!968M1=FCekeV$Ra9`_ZjjV?K5>rMTDvuFbrDJb68y85 zChq!fIa%}M87cqe?S0ELM7!2}EcwXZpr^I{M9=cziC5k(E4=OHo5Z+7um0%yIiJ1; zaJ|*}RIBehH~OdN?n}95yl-5~j`5z2iGFl-W;O53m-a0jGau_S|KaIVOWd$2OWkFr>3^CM`b^B-Q|Dv%QlbOX4AL* zkhtjKug1B2z6tLfrP;G(%UAO~Rlk#QZS%A*lWQj0gnk#xWN{7U3*y*#%Dv^Trb=D< zuhkDe=3RKJ$NEjU)SHoI&bkj%3)koe{XH~&tM|bvwI_c}+cE8P`03xPA9GAeU+(&Q ztq-$t3jetq_n5U$Rkql$W~ivk?!SM%#*yQ^NrB&*~rJd%>vu`oO&X zQQqHv|CX3K<46B$;Vajty!~FfBuDUr7Q58SPJu(OOEQ+^{I|=V;AL6A%*^M6)}c5a zx6rExBsa;3eb(7(W*xFt3PS&ysk^VEcQ=sHcb`%Bl@p4@5?K1hK7*M zIvhU~_Oabc=|AtjPsxeZfQOG^`j-P~6GJVoubiUtw{ri@e_8q~b3QLS<<50l)W-d# zSA&dT4?=_j4GTI424Rk)^2%rR?gWoAibyt1P0cDk10 z+xq_wyI;#>FZ>^UJm$iRSuT~wuYNnY!0*{|(WJfM$yy=n8CGQ8`rh_4;lmT|DlH%O zxaG{1`}Kp))VD4Pe#;bm&d{7Ug>(7wu-I@{<;`NA3*xrSopf%M_UCT%oC|(`%3RHj zay#!mDms=S6m>a(bye*5(3^=m%T0gSPMADx{h-Ms1ILMa(=y6BKAX>L6k~q7WZTRG(hjWrHOG9eJN)=L z-_7&g9`=k~@vCPz?ECs~k_P__hYK%HJSh-4EoAoR accumulator + currentValue.length, 0);\n\n\tconst returnValue = new Uint8Array(totalLength);\n\n\tlet offset = 0;\n\tfor (const array of arrays) {\n\t\tassertUint8Array(array);\n\t\treturnValue.set(array, offset);\n\t\toffset += array.length;\n\t}\n\n\treturn returnValue;\n}\n\nexport function areUint8ArraysEqual(a, b) {\n\tassertUint8Array(a);\n\tassertUint8Array(b);\n\n\tif (a === b) {\n\t\treturn true;\n\t}\n\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\n\t// eslint-disable-next-line unicorn/no-for-loop\n\tfor (let index = 0; index < a.length; index++) {\n\t\tif (a[index] !== b[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport function compareUint8Arrays(a, b) {\n\tassertUint8Array(a);\n\tassertUint8Array(b);\n\n\tconst length = Math.min(a.length, b.length);\n\n\tfor (let index = 0; index < length; index++) {\n\t\tconst diff = a[index] - b[index];\n\t\tif (diff !== 0) {\n\t\t\treturn Math.sign(diff);\n\t\t}\n\t}\n\n\t// At this point, all the compared elements are equal.\n\t// The shorter array should come first if the arrays are of different lengths.\n\treturn Math.sign(a.length - b.length);\n}\n\nconst cachedDecoders = {\n\tutf8: new globalThis.TextDecoder('utf8'),\n};\n\nexport function uint8ArrayToString(array, encoding = 'utf8') {\n\tassertUint8ArrayOrArrayBuffer(array);\n\tcachedDecoders[encoding] ??= new globalThis.TextDecoder(encoding);\n\treturn cachedDecoders[encoding].decode(array);\n}\n\nfunction assertString(value) {\n\tif (typeof value !== 'string') {\n\t\tthrow new TypeError(`Expected \\`string\\`, got \\`${typeof value}\\``);\n\t}\n}\n\nconst cachedEncoder = new globalThis.TextEncoder();\n\nexport function stringToUint8Array(string) {\n\tassertString(string);\n\treturn cachedEncoder.encode(string);\n}\n\nfunction base64ToBase64Url(base64) {\n\treturn base64.replaceAll('+', '-').replaceAll('/', '_').replace(/=+$/, '');\n}\n\nfunction base64UrlToBase64(base64url) {\n\tconst base64 = base64url.replaceAll('-', '+').replaceAll('_', '/');\n\tconst padding = (4 - (base64.length % 4)) % 4;\n\treturn base64 + '='.repeat(padding);\n}\n\n// Reference: https://phuoc.ng/collection/this-vs-that/concat-vs-push/\n// Important: Keep this value divisible by 3 so intermediate chunks produce no Base64 padding.\nconst MAX_BLOCK_SIZE = 65_535;\n\nexport function uint8ArrayToBase64(array, {urlSafe = false} = {}) {\n\tassertUint8Array(array);\n\n\tlet base64 = '';\n\n\tfor (let index = 0; index < array.length; index += MAX_BLOCK_SIZE) {\n\t\tconst chunk = array.subarray(index, index + MAX_BLOCK_SIZE);\n\t\t// Required as `btoa` and `atob` don't properly support Unicode: https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\n\t\tbase64 += globalThis.btoa(String.fromCodePoint.apply(undefined, chunk));\n\t}\n\n\treturn urlSafe ? base64ToBase64Url(base64) : base64;\n}\n\nexport function base64ToUint8Array(base64String) {\n\tassertString(base64String);\n\treturn Uint8Array.from(globalThis.atob(base64UrlToBase64(base64String)), x => x.codePointAt(0));\n}\n\nexport function stringToBase64(string, {urlSafe = false} = {}) {\n\tassertString(string);\n\treturn uint8ArrayToBase64(stringToUint8Array(string), {urlSafe});\n}\n\nexport function base64ToString(base64String) {\n\tassertString(base64String);\n\treturn uint8ArrayToString(base64ToUint8Array(base64String));\n}\n\nconst byteToHexLookupTable = Array.from({length: 256}, (_, index) => index.toString(16).padStart(2, '0'));\n\nexport function uint8ArrayToHex(array) {\n\tassertUint8Array(array);\n\n\t// Concatenating a string is faster than using an array.\n\tlet hexString = '';\n\n\t// eslint-disable-next-line unicorn/no-for-loop -- Max performance is critical.\n\tfor (let index = 0; index < array.length; index++) {\n\t\thexString += byteToHexLookupTable[array[index]];\n\t}\n\n\treturn hexString;\n}\n\nconst hexToDecimalLookupTable = {\n\t0: 0,\n\t1: 1,\n\t2: 2,\n\t3: 3,\n\t4: 4,\n\t5: 5,\n\t6: 6,\n\t7: 7,\n\t8: 8,\n\t9: 9,\n\ta: 10,\n\tb: 11,\n\tc: 12,\n\td: 13,\n\te: 14,\n\tf: 15,\n\tA: 10,\n\tB: 11,\n\tC: 12,\n\tD: 13,\n\tE: 14,\n\tF: 15,\n};\n\nexport function hexToUint8Array(hexString) {\n\tassertString(hexString);\n\n\tif (hexString.length % 2 !== 0) {\n\t\tthrow new Error('Invalid Hex string length.');\n\t}\n\n\tconst resultLength = hexString.length / 2;\n\tconst bytes = new Uint8Array(resultLength);\n\n\tfor (let index = 0; index < resultLength; index++) {\n\t\tconst highNibble = hexToDecimalLookupTable[hexString[index * 2]];\n\t\tconst lowNibble = hexToDecimalLookupTable[hexString[(index * 2) + 1]];\n\n\t\tif (highNibble === undefined || lowNibble === undefined) {\n\t\t\tthrow new Error(`Invalid Hex character encountered at position ${index * 2}`);\n\t\t}\n\n\t\tbytes[index] = (highNibble << 4) | lowNibble; // eslint-disable-line no-bitwise\n\t}\n\n\treturn bytes;\n}\n\n/**\n@param {DataView} view\n@returns {number}\n*/\nexport function getUintBE(view) {\n\tconst {byteLength} = view;\n\n\tif (byteLength === 6) {\n\t\treturn (view.getUint16(0) * (2 ** 32)) + view.getUint32(2);\n\t}\n\n\tif (byteLength === 5) {\n\t\treturn (view.getUint8(0) * (2 ** 32)) + view.getUint32(1);\n\t}\n\n\tif (byteLength === 4) {\n\t\treturn view.getUint32(0);\n\t}\n\n\tif (byteLength === 3) {\n\t\treturn (view.getUint8(0) * (2 ** 16)) + view.getUint16(1);\n\t}\n\n\tif (byteLength === 2) {\n\t\treturn view.getUint16(0);\n\t}\n\n\tif (byteLength === 1) {\n\t\treturn view.getUint8(0);\n\t}\n}\n\n/**\n@param {Uint8Array} array\n@param {Uint8Array} value\n@returns {number}\n*/\nexport function indexOf(array, value) {\n\tconst arrayLength = array.length;\n\tconst valueLength = value.length;\n\n\tif (valueLength === 0) {\n\t\treturn -1;\n\t}\n\n\tif (valueLength > arrayLength) {\n\t\treturn -1;\n\t}\n\n\tconst validOffsetLength = arrayLength - valueLength;\n\n\tfor (let index = 0; index <= validOffsetLength; index++) {\n\t\tlet isMatch = true;\n\t\tfor (let index2 = 0; index2 < valueLength; index2++) {\n\t\t\tif (array[index + index2] !== value[index2]) {\n\t\t\t\tisMatch = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (isMatch) {\n\t\t\treturn index;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\n/**\n@param {Uint8Array} array\n@param {Uint8Array} value\n@returns {boolean}\n*/\nexport function includes(array, value) {\n\treturn indexOf(array, value) !== -1;\n}\n","import { StringType } from 'token-types';\nimport { FieldDecodingError } from '../ParseError.js';\nimport { getUintBE } from 'uint8array-extras';\nexport function getBit(buf, off, bit) {\n return (buf[off] & (1 << bit)) !== 0;\n}\n/**\n * Find delimiting zero in uint8Array\n * @param uint8Array Uint8Array to find the zero delimiter in\n * @param encoding The string encoding used\n * @return position in uint8Array where zero found, or uint8Array.length if not found\n */\nexport function findZero(uint8Array, encoding) {\n const len = uint8Array.length;\n if (encoding === 'utf-16le' || encoding === 'utf-16be') {\n // Look for 0x00 0x00 on 2-byte boundary\n for (let i = 0; i + 1 < len; i += 2) {\n if (uint8Array[i] === 0 && uint8Array[i + 1] === 0)\n return i;\n }\n return len;\n }\n // latin1 / utf8 / utf16be (caller typically handles utf16be separately or via decode)\n for (let i = 0; i < len; i++) {\n if (uint8Array[i] === 0)\n return i;\n }\n return len;\n}\nexport function trimRightNull(x) {\n const pos0 = x.indexOf('\\0');\n return pos0 === -1 ? x : x.substring(0, pos0);\n}\nfunction swapBytes(uint8Array) {\n const l = uint8Array.length;\n if ((l & 1) !== 0)\n throw new FieldDecodingError('Buffer length must be even');\n for (let i = 0; i < l; i += 2) {\n const a = uint8Array[i];\n uint8Array[i] = uint8Array[i + 1];\n uint8Array[i + 1] = a;\n }\n return uint8Array;\n}\n/**\n * Decode string\n */\nexport function decodeString(uint8Array, encoding) {\n // annoying workaround for a double BOM issue\n // https://github.com/leetreveil/musicmetadata/issues/84\n if (uint8Array[0] === 0xFF && uint8Array[1] === 0xFE) { // little endian\n return decodeString(uint8Array.subarray(2), encoding);\n }\n if (encoding === 'utf-16le' && uint8Array[0] === 0xFE && uint8Array[1] === 0xFF) {\n // BOM, indicating big endian decoding\n if ((uint8Array.length & 1) !== 0)\n throw new FieldDecodingError('Expected even number of octets for 16-bit unicode string');\n return decodeString(swapBytes(uint8Array), encoding);\n }\n if (encoding === 'utf-16be') {\n // There is no native UTF-16BE decoder; swap to UTF-16LE and decode that.\n if ((uint8Array.length & 1) !== 0)\n throw new FieldDecodingError('Expected even number of octets for 16-bit unicode string');\n return new StringType(uint8Array.length, 'utf-16le').get(swapBytes(Uint8Array.from(uint8Array)), 0);\n }\n return new StringType(uint8Array.length, encoding).get(uint8Array, 0);\n}\nexport function stripNulls(str) {\n str = str.replace(/^\\x00+/g, '');\n str = str.replace(/\\x00+$/g, '');\n return str;\n}\n/**\n * Read bit-aligned number start from buffer\n * Total offset in bits = byteOffset * 8 + bitOffset\n * @param source Byte buffer\n * @param byteOffset Starting offset in bytes\n * @param bitOffset Starting offset in bits: 0 = lsb\n * @param len Length of number in bits\n * @return Decoded bit aligned number\n */\nexport function getBitAllignedNumber(source, byteOffset, bitOffset, len) {\n const byteOff = byteOffset + ~~(bitOffset / 8);\n const bitOff = bitOffset % 8;\n let value = source[byteOff];\n value &= 0xff >> bitOff;\n const bitsRead = 8 - bitOff;\n const bitsLeft = len - bitsRead;\n if (bitsLeft < 0) {\n value >>= (8 - bitOff - len);\n }\n else if (bitsLeft > 0) {\n value <<= bitsLeft;\n value |= getBitAllignedNumber(source, byteOffset, bitOffset + bitsRead, bitsLeft);\n }\n return value;\n}\n/**\n * Read bit-aligned number start from buffer\n * Total offset in bits = byteOffset * 8 + bitOffset\n * @param source Byte Uint8Array\n * @param byteOffset Starting offset in bytes\n * @param bitOffset Starting offset in bits: 0 = most significant bit, 7 is the least significant bit\n * @return True if bit is set\n */\nexport function isBitSet(source, byteOffset, bitOffset) {\n return getBitAllignedNumber(source, byteOffset, bitOffset, 1) === 1;\n}\nexport function a2hex(str) {\n const arr = [];\n for (let i = 0, l = str.length; i < l; i++) {\n const hex = Number(str.charCodeAt(i)).toString(16);\n arr.push(hex.length === 1 ? `0${hex}` : hex);\n }\n return arr.join(' ');\n}\n/**\n * Convert power ratio to DB\n * ratio: [0..1]\n */\nexport function ratioToDb(ratio) {\n return 10 * Math.log10(ratio);\n}\n/**\n * Convert dB to ratio\n * db Decibels\n */\nexport function dbToRatio(dB) {\n return 10 ** (dB / 10);\n}\n/**\n * Convert replay gain to ratio and Decibel\n * @param value string holding a ratio like '0.034' or '-7.54 dB'\n */\nexport function toRatio(value) {\n const ps = value.split(' ').map(p => p.trim().toLowerCase());\n if (ps.length >= 1) {\n const v = Number.parseFloat(ps[0]);\n return ps.length === 2 && ps[1] === 'db' ? {\n dB: v,\n ratio: dbToRatio(v)\n } : {\n dB: ratioToDb(v),\n ratio: v\n };\n }\n}\n/**\n * Decode a big-endian unsigned integer from a Uint8Array.\n * Supports dynamic length (1–8 bytes).\n */\nexport function decodeUintBE(uint8Array) {\n if (uint8Array.length === 0) {\n throw new Error(\"decodeUintBE: empty Uint8Array\");\n }\n const view = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);\n return getUintBE(view);\n}\n"],"mappings":"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","names":["objectToString","uint8ArrayStringified","isType","value","typeConstructor","typeStringified","objectToString","__name","isUint8Array","uint8ArrayStringified","assertUint8Array","value","isUint8Array","__name","cachedDecoders","cachedEncoder","byteToHexLookupTable","_","index","uint8ArrayToHex","array","assertUint8Array","hexString","__name","getUintBE","view","byteLength","__name","getBit","buf","off","bit","__name","findZero","uint8Array","encoding","len","i","trimRightNull","x","pos0","swapBytes","l","FieldDecodingError","a","decodeString","StringType","stripNulls","str","getBitAllignedNumber","source","byteOffset","bitOffset","byteOff","bitOff","value","bitsRead","bitsLeft","isBitSet","a2hex","arr","hex","ratioToDb","ratio","dbToRatio","dB","toRatio","ps","p","v","decodeUintBE","view","getUintBE"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-FHQAE777.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FMIQ6TTM.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FMIQ6TTM.js new file mode 100644 index 00000000..d792bd50 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FMIQ6TTM.js @@ -0,0 +1,3 @@ +import{a as c}from"./chunk-BTSSVB7R.js";import{e as l}from"./chunk-IA3NIKPO.js";import{j as i}from"./chunk-XILA3E7E.js";import{a as r,c as p}from"./chunk-75KFZLU6.js";var g={};p(g,{CLASS:()=>d,NAME:()=>u,default:()=>y});var o=class extends c{static{r(this,"PathCollectionsOrchestrator")}static NAME="diffuse/orchestrator/path-collections";constructor(){super();let t=this.base(),a=i(()=>{let e=t.tracks.collection();return f(e.state==="loaded"?e.data:[])});this.facets=t.facets,this.settings=t.settings,this.playlistItems={...t.playlistItems,collection:i(()=>{let e=t.playlistItems.collection();return e.state!=="loaded"?e:{state:"loaded",data:[...e.data,...a()]}}),save:r(async e=>{await t.playlistItems.save((e||[]).filter(s=>!s.ephemeral))},"save")},this.tracks=t.tracks,this.ready=t.ready}};function f(n){let t=[],a=new Set;return n.forEach(e=>{let s=h(e.uri);if(!s||a.has(s))return;let m={$type:"sh.diffuse.output.playlistItem",id:`path-collections/${e.id}`,playlist:s,criteria:[{field:"uri",value:e.uri}],ephemeral:!0};t.push(m),a.add(s)}),t}r(f,"createEphemeralItems");function h(n){try{return new URL(n).pathname.split("/").filter(Boolean)[0]||void 0}catch{return}}r(h,"pathSegment");var y=o,d=o,u="do-path-collections";l(u,d);export{y as a,d as b,u as c,g as d}; + +//# sourceMappingURL=./chunk-FMIQ6TTM.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FMIQ6TTM.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FMIQ6TTM.js.br new file mode 100644 index 0000000000000000000000000000000000000000..68e027341f611d8254079279b48d89f4ec98c894 GIT binary patch literal 654 zcmb3C&cg5{>g=!k&rKiltg@)qz8ORKM~3Kr-0wW(Rg%ogzD!U@ZbTCaS5ukkpeZ}cbV%HzcKy9-MzD>r|9&J=yV zD9S;lw(IX#dG+7z>B|?WW@^0q)_<)&=l{*L>t&W2ZNY9jJM8!KmCN<5t2Yj;TpVQh zR5{M^j!o45JyT*9}X+&aNzS<7Nc! zpQ8F#U9)PegN|9L2{ljB{jxG?nda$@%k`)E{S=Z|5zR3(@u&B#%hw78HwK(_y|;V< z>(+Hm6Sbc*ZOPiP%WICChwBLkIo4N}hn!T^uRIsfTpDpd%eif>&^E=Xr;n#kbkUpZ z7-do+nin!dKp-*v;Ul&GiC3Ev~-WVbAp{GxhfoZ|2S@KiOr=I z%NQ;1iYqbRw)IhYZJFPl_grnpl}~3vC4L8=DprsAw9w$6PeA|q1y?65yQ#{W9L~FO zOJ20Nsk-{rs?g#?8?(FKe(H&TnkUTSrurPx81J5O$}WB$_X;_fvX0Z(rP@UKw2y?+D8)clCs>b5zt z*%5l`+YE1B*H`_x$Sb&L51ZQ2TF+4FMQu+%^FKS)6exDAOY*kwzFT(k&4QL^PjSyk Smg;$J-_st!7 {\n const col = base.tracks.collection();\n return createEphemeralItems(col.state === \"loaded\" ? col.data : []);\n });\n\n this.facets = base.facets;\n this.settings = base.settings;\n this.playlistItems = {\n ...base.playlistItems,\n collection: computed(() => {\n const col = base.playlistItems.collection();\n if (col.state !== \"loaded\") return col;\n return { state: \"loaded\", data: [...col.data, ...ephemeralItems()] };\n }),\n /** @type {(typeof base.playlistItems.save)} */\n save: async (items) => {\n await base.playlistItems.save(\n (items || []).filter((p) => !p.ephemeral),\n );\n },\n };\n this.tracks = base.tracks;\n\n this.ready = base.ready;\n }\n}\n\n/**\n * @param {Track[]} tracks\n * @returns {PlaylistItem[]}\n */\nfunction createEphemeralItems(tracks) {\n /** @type {PlaylistItem[]} */\n const items = [];\n\n /** @type {Set} */\n const segmentsAdded = new Set();\n\n tracks.forEach((track) => {\n const segment = pathSegment(track.uri);\n if (!segment) return;\n\n if (segmentsAdded.has(segment)) return;\n\n /** @type {PlaylistItem} */\n const item = {\n $type: \"sh.diffuse.output.playlistItem\",\n id: `path-collections/${track.id}`,\n playlist: segment,\n criteria: [{ field: \"uri\", value: /** @type {any} */ (track.uri) }],\n ephemeral: true,\n };\n\n items.push(item);\n segmentsAdded.add(segment);\n });\n\n return items;\n}\n\n/**\n * @param {string} uri\n * @returns {string | undefined}\n */\nfunction pathSegment(uri) {\n try {\n const url = new URL(uri);\n const segment = url.pathname.split(\"/\").filter(Boolean)[0];\n return segment || undefined;\n } catch {\n return undefined;\n }\n}\n\nexport default PathCollectionsOrchestrator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = PathCollectionsOrchestrator;\nexport const NAME = \"do-path-collections\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"uKAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAYA,IAAMC,EAAN,cAA0CC,CAAkB,CAZ5D,MAY4D,CAAAC,EAAA,oCAC1D,OAAO,KAAO,wCAEd,aAAc,CACZ,MAAM,EAEN,IAAMC,EAAO,KAAK,KAAK,EAEjBC,EAAiBC,EAAS,IAAM,CACpC,IAAMC,EAAMH,EAAK,OAAO,WAAW,EACnC,OAAOI,EAAqBD,EAAI,QAAU,SAAWA,EAAI,KAAO,CAAC,CAAC,CACpE,CAAC,EAED,KAAK,OAASH,EAAK,OACnB,KAAK,SAAWA,EAAK,SACrB,KAAK,cAAgB,CACnB,GAAGA,EAAK,cACR,WAAYE,EAAS,IAAM,CACzB,IAAMC,EAAMH,EAAK,cAAc,WAAW,EAC1C,OAAIG,EAAI,QAAU,SAAiBA,EAC5B,CAAE,MAAO,SAAU,KAAM,CAAC,GAAGA,EAAI,KAAM,GAAGF,EAAe,CAAC,CAAE,CACrE,CAAC,EAED,KAAMF,EAAA,MAAOM,GAAU,CACrB,MAAML,EAAK,cAAc,MACtBK,GAAS,CAAC,GAAG,OAAQC,GAAM,CAACA,EAAE,SAAS,CAC1C,CACF,EAJM,OAKR,EACA,KAAK,OAASN,EAAK,OAEnB,KAAK,MAAQA,EAAK,KACpB,CACF,EAMA,SAASI,EAAqBG,EAAQ,CAEpC,IAAMF,EAAQ,CAAC,EAGTG,EAAgB,IAAI,IAE1B,OAAAD,EAAO,QAASE,GAAU,CACxB,IAAMC,EAAUC,EAAYF,EAAM,GAAG,EAGrC,GAFI,CAACC,GAEDF,EAAc,IAAIE,CAAO,EAAG,OAGhC,IAAME,EAAO,CACX,MAAO,iCACP,GAAI,oBAAoBH,EAAM,EAAE,GAChC,SAAUC,EACV,SAAU,CAAC,CAAE,MAAO,MAAO,MAA2BD,EAAM,GAAK,CAAC,EAClE,UAAW,EACb,EAEAJ,EAAM,KAAKO,CAAI,EACfJ,EAAc,IAAIE,CAAO,CAC3B,CAAC,EAEML,CACT,CA3BSN,EAAAK,EAAA,wBAiCT,SAASO,EAAYE,EAAK,CACxB,GAAI,CAGF,OAFY,IAAI,IAAIA,CAAG,EACH,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,CAAC,GACvC,MACpB,MAAQ,CACN,MACF,CACF,CARSd,EAAAY,EAAA,eAUT,IAAOG,EAAQjB,EAMFkB,EAAQlB,EACRmB,EAAO,sBAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","PathCollectionsOrchestrator","OutputTransformer","__name","base","ephemeralItems","computed","col","createEphemeralItems","items","p","tracks","segmentsAdded","track","segment","pathSegment","item","uri","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-FMIQ6TTM.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js new file mode 100644 index 00000000..716e917d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js @@ -0,0 +1,3 @@ +import{a as p,c as u}from"./chunk-E2G3ZJP4.js";import{c as i}from"./chunk-IUBFNQRH.js";import{b as r,e}from"./chunk-IA3NIKPO.js";import{a as o,c as n}from"./chunk-75KFZLU6.js";var a={};n(a,{CLASS:()=>h,NAME:()=>c,default:()=>m});var t=class extends r{static{o(this,"S3Input")}static NAME="diffuse/input/s3";static WORKER_URL="components/input/s3/worker.js";SCHEME=i;constructor(){super(),this.proxy=this.workerProxy(),this.artwork=this.proxy.artwork,this.consult=this.proxy.consult,this.detach=this.proxy.detach,this.groupConsult=this.proxy.groupConsult,this.list=this.proxy.list,this.resolve=this.proxy.resolve,this.demo=this.proxy.demo}sources(l){return Object.values(p(l)).map(s=>({label:`${s.bucketName} (${s.host})`,uri:u(s)}))}},m=t,h=t,c="di-s3";e(c,h);export{m as a,h as b,c,a as d}; + +//# sourceMappingURL=./chunk-FQW6BJK7.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js.br new file mode 100644 index 0000000000000000000000000000000000000000..703dcdad00aafa17dd8b34aa7c447b1f4814bbad GIT binary patch literal 425 zcmb0ZXJ$x=(fj{#RPv5KB=uq$T zFLyR?q{z1y#(O(=M(=Mrp>*z9TatmQ^R!n^$0|N~UDb(S61ec=m8yGX$Mv&Ltox$K zBBprYh0dz84^wWjorx8(WRH4UdE;fTyNi&5qetTV^?RRf+h1{b`E!2e=Ry9Bjh~|S z8_lj|?C7?W3S;YCm%6Z8`HGK9scv7rjDLtkq*3d$RP&-k%NM`M`gX_D_~7~lC7--5 zF#kBk7ZYyazB+yB#^>6ypE68meUrL;IqBB%a52xgY_Fhm8%p1{UpTR_)Bjx7+hYqF znPaDXS^P$8q0$qRkBlysSFZL1yyqb%V(u$`B0_)=fAMRRE z^wp4AvO_UMSecne+;Jbnx4OCcMayO#>XP}l;=@v=p8daC3OUbvTzKHkz^2*~w1}nn kNpjzslTWyfE#5P5{|qRvTgk36q4Ccl7qLZ2dES4S0CauI_y7O^ literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js.map new file mode 100644 index 00000000..a12eb812 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FQW6BJK7.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/input/s3/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\nimport { SCHEME } from \"./constants.js\";\nimport { bucketsFromTracks, buildURI } from \"./common.js\";\n\n/**\n * @import {InputActions, InputSchemeProvider} from \"@specs/components/input/types.d.ts\"\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {Track} from \"~/definitions/types.d.ts\"\n * @import {Demo} from \"@specs/components/input/s3/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n * @implements {InputSchemeProvider}\n */\nclass S3Input extends DiffuseElement {\n static NAME = \"diffuse/input/s3\";\n static WORKER_URL = \"components/input/s3/worker.js\";\n\n SCHEME = SCHEME;\n\n constructor() {\n super();\n\n /** @type {ProxiedActions Demo }>} */\n this.proxy = this.workerProxy();\n\n this.artwork = this.proxy.artwork;\n this.consult = this.proxy.consult;\n this.detach = this.proxy.detach;\n this.groupConsult = this.proxy.groupConsult;\n this.list = this.proxy.list;\n this.resolve = this.proxy.resolve;\n\n this.demo = this.proxy.demo;\n }\n\n // 🛠️\n\n /** @param {Track[]} tracks */\n sources(tracks) {\n return Object.values(bucketsFromTracks(tracks)).map((server) => {\n return {\n label: `${server.bucketName} (${server.host})`,\n uri: buildURI(server),\n };\n });\n }\n}\n\nexport default S3Input;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = S3Input;\nexport const NAME = \"di-s3\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"gLAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAmBA,IAAMC,EAAN,cAAsBC,CAAe,CAnBrC,MAmBqC,CAAAC,EAAA,gBACnC,OAAO,KAAO,mBACd,OAAO,WAAa,gCAEpB,OAASC,EAET,aAAc,CACZ,MAAM,EAGN,KAAK,MAAQ,KAAK,YAAY,EAE9B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,OAAS,KAAK,MAAM,OACzB,KAAK,aAAe,KAAK,MAAM,aAC/B,KAAK,KAAO,KAAK,MAAM,KACvB,KAAK,QAAU,KAAK,MAAM,QAE1B,KAAK,KAAO,KAAK,MAAM,IACzB,CAKA,QAAQC,EAAQ,CACd,OAAO,OAAO,OAAOC,EAAkBD,CAAM,CAAC,EAAE,IAAKE,IAC5C,CACL,MAAO,GAAGA,EAAO,UAAU,KAAKA,EAAO,IAAI,IAC3C,IAAKC,EAASD,CAAM,CACtB,EACD,CACH,CACF,EAEOE,EAAQR,EAMFS,EAAQT,EACRU,EAAO,QAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","S3Input","DiffuseElement","__name","SCHEME","tracks","bucketsFromTracks","server","buildURI","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-FQW6BJK7.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js new file mode 120000 index 00000000..a1cc4e3d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-FSTJJKKX.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js.br new file mode 120000 index 00000000..a6203779 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-FSTJJKKX.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js.map new file mode 120000 index 00000000..3c4815cc --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-FSTJJKKX.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-FSTJJKKX.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js new file mode 120000 index 00000000..f65bea8f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-G3G2PH4F.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js.br new file mode 120000 index 00000000..35c2563a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-G3G2PH4F.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js.map new file mode 120000 index 00000000..596974ce --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-G3G2PH4F.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-G3G2PH4F.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js new file mode 120000 index 00000000..8ede0abe --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GEJ7GEJO.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js.br new file mode 120000 index 00000000..8112f79b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GEJ7GEJO.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js.map new file mode 120000 index 00000000..2a5e86c5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GEJ7GEJO.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GEJ7GEJO.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js new file mode 100644 index 00000000..d5fb083e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js @@ -0,0 +1,3 @@ +import{b as o,e as i}from"./chunk-IA3NIKPO.js";import{a as r,c as h}from"./chunk-75KFZLU6.js";var a={};h(a,{CLASS:()=>c,NAME:()=>n,default:()=>u});var e=class extends o{static{r(this,"InputConfigurator")}static NAME="diffuse/configurator/input";static WORKER_URL="components/configurator/input/worker.js";constructor(){super();let t=this.workerProxy();this.artwork=t.artwork,this.consult=t.consult,this.detach=t.detach,this.groupConsult=t.groupConsult,this.list=t.list,this.resolve=t.resolve,this.cache=t.cache,this.cacheBlob=t.cacheBlob,this.listCached=t.listCached,this.removeFromCache=t.removeFromCache}dependencies(){return this.inputs()}inputs(){return Object.fromEntries(Array.from(this.children).map(t=>{let s=t;return[s.SCHEME,s]}))}},u=e,c=e,n="dc-input";i(n,c);export{u as a,c as b,n as c,a as d}; + +//# sourceMappingURL=./chunk-GK6YBSHM.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js.br new file mode 100644 index 0000000000000000000000000000000000000000..c5fb9b48e28a083096d72087e645db2b74a790b3 GIT binary patch literal 433 zcmb1EXJ&X({`bqi)13uPPo~-zI;pRUcx{mL?eNi+vsgtgHMoBKzgfNS>c&i;i?hCF zJq=p_#B_Vx52IFx=Qi29=V>b`zuV4rvc=|x5TEw3_8F#C0e5y3Z`oQKqZ}jG2uosV`Ih|NN3C+4HkiB=;$^(!#rzcX#cKR1YaJos&QJ?b9O%rzUiIt41Xq z&A)fE!`|0vpJ~t)xA*%QYM$)#y7%#&H^*+H-yNBu#)5zLGtEw1A3iC!WUJI-l^NRm zt9R_MySe+{j@@>m5x+ANE-6pHyz1?<F2Awxj2;zsBrS`jcF@e`TC}<;Jr4@j|KiV~YRT|*GW+iQ`_wd?B~q*4t_Sl??ckq00NDoIvj6}9 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js.map new file mode 100644 index 00000000..3bd68c0c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GK6YBSHM.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/configurator/input/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\n\n/**\n * @import {ProxiedActions, Tunnel} from \"~/common/worker.d.ts\"\n * @import {InputElement} from \"@specs/components/input/types.d.ts\"\n * @import {Actions} from \"@specs/components/configurator/input/types.d.ts\"\n */\n\n/**\n * @typedef {{ element: InputElement, tunnel: Tunnel, worker: Worker | SharedWorker }} Input\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n */\nclass InputConfigurator extends DiffuseElement {\n static NAME = \"diffuse/configurator/input\";\n static WORKER_URL = \"components/configurator/input/worker.js\";\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n const proxy = this.workerProxy();\n\n this.artwork = proxy.artwork;\n this.consult = proxy.consult;\n this.detach = proxy.detach;\n this.groupConsult = proxy.groupConsult;\n this.list = proxy.list;\n this.resolve = proxy.resolve;\n\n this.cache = proxy.cache;\n this.cacheBlob = proxy.cacheBlob;\n this.listCached = proxy.listCached;\n this.removeFromCache = proxy.removeFromCache;\n }\n\n // WORKERS\n\n /**\n * @override\n */\n dependencies() {\n return this.inputs();\n }\n\n inputs() {\n return Object.fromEntries(\n Array.from(this.children).map((element) => {\n const input = /** @type {InputElement} */ (element);\n return [input.SCHEME, input];\n }),\n );\n }\n}\n\nexport default InputConfigurator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = InputConfigurator;\nexport const NAME = \"dc-input\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"8FAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAmBA,IAAMC,EAAN,cAAgCC,CAAe,CAnB/C,MAmB+C,CAAAC,EAAA,0BAC7C,OAAO,KAAO,6BACd,OAAO,WAAa,0CAEpB,aAAc,CACZ,MAAM,EAGN,IAAMC,EAAQ,KAAK,YAAY,EAE/B,KAAK,QAAUA,EAAM,QACrB,KAAK,QAAUA,EAAM,QACrB,KAAK,OAASA,EAAM,OACpB,KAAK,aAAeA,EAAM,aAC1B,KAAK,KAAOA,EAAM,KAClB,KAAK,QAAUA,EAAM,QAErB,KAAK,MAAQA,EAAM,MACnB,KAAK,UAAYA,EAAM,UACvB,KAAK,WAAaA,EAAM,WACxB,KAAK,gBAAkBA,EAAM,eAC/B,CAOA,cAAe,CACb,OAAO,KAAK,OAAO,CACrB,CAEA,QAAS,CACP,OAAO,OAAO,YACZ,MAAM,KAAK,KAAK,QAAQ,EAAE,IAAKC,GAAY,CACzC,IAAMC,EAAqCD,EAC3C,MAAO,CAACC,EAAM,OAAQA,CAAK,CAC7B,CAAC,CACH,CACF,CACF,EAEOC,EAAQN,EAMFO,EAAQP,EACRQ,EAAO,WAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","InputConfigurator","DiffuseElement","__name","proxy","element","input","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-GK6YBSHM.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js new file mode 120000 index 00000000..3804917a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GL46KENX.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js.br new file mode 120000 index 00000000..b933f839 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GL46KENX.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js.map new file mode 120000 index 00000000..c5b5f421 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GL46KENX.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GL46KENX.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js new file mode 120000 index 00000000..994d42f4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GLDEPDQL.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js.br new file mode 120000 index 00000000..9a0d9ede --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GLDEPDQL.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js.map new file mode 120000 index 00000000..ecd86fc8 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GLDEPDQL.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GLDEPDQL.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js new file mode 100644 index 00000000..020400f6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js @@ -0,0 +1,3 @@ +import{d as g}from"./chunk-LINMKWZS.js";import{e as d}from"./chunk-FHQAE777.js";import{B as p,I as k,f as w,g as h,i as s}from"./chunk-PHFIOWBZ.js";import{a as r,d as y}from"./chunk-75KFZLU6.js";var P=y(w());var c=(0,P.default)("music-metadata:parser:ID3v1"),m=["Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge","Hip-Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death Metal","Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip","Gospel","Noise","Alt. Rock","Bass","Soul","Punk","Space","Meditative","Instrumental Pop","Instrumental Rock","Ethnic","Gothic","Darkwave","Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock","Comedy","Cult","Gangsta Rap","Top 40","Christian Rap","Pop/Funk","Jungle","Native American","Cabaret","New Wave","Psychedelic","Rave","Showtunes","Trailer","Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll","Hard Rock","Folk","Folk/Rock","National Folk","Swing","Fast-Fusion","Bebob","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock","Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony","Booty Bass","Primus","Porn Groove","Satire","Slow Jam","Club","Tango","Samba","Folklore","Ballad","Power Ballad","Rhythmic Soul","Freestyle","Duet","Punk Rock","Drum Solo","A Cappella","Euro-House","Dance Hall","Goa","Drum & Bass","Club-House","Hardcore","Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat","Christian Gangsta Rap","Heavy Metal","Black Metal","Crossover","Contemporary Christian","Christian Rock","Merengue","Salsa","Thrash Metal","Anime","JPop","Synthpop","Abstract","Art Rock","Baroque","Bhangra","Big Beat","Breakbeat","Chillout","Downtempo","Dub","EBM","Eclectic","Electro","Electroclash","Emo","Experimental","Garage","Global","IDM","Illbient","Industro-Goth","Jam Band","Krautrock","Leftfield","Lounge","Math Rock","New Romantic","Nu-Breakz","Post-Punk","Post-Rock","Psytrance","Shoegaze","Space Rock","Trop Rock","World Music","Neoclassical","Audiobook","Audio Theatre","Neue Deutsche Welle","Podcast","Indie Rock","G-Funk","Dubstep","Garage Rock","Psybient"],l={len:128,get:r((t,e)=>{let a=new i(3).get(t,e);return a==="TAG"?{header:a,title:new i(30).get(t,e+3),artist:new i(30).get(t,e+33),album:new i(30).get(t,e+63),year:new i(4).get(t,e+93),comment:new i(28).get(t,e+97),zeroByte:s.get(t,e+127),track:s.get(t,e+126),genre:s.get(t,e+127)}:null},"get")},i=class{static{r(this,"Id3v1StringType")}constructor(e){this.len=e,this.stringType=new p(e,"latin1")}get(e,a){let o=this.stringType.get(e,a);return o=d(o),o=o.trim(),o.length>0?o:void 0}},R=class t extends k{static{r(this,"ID3v1Parser")}constructor(e,a,o){super(e,a,o),this.apeHeader=o.apeHeader}static getGenre(e){if(ee){c("Already consumed the last 128 bytes");return}let a=await this.tokenizer.readToken(l,e);if(a){c("ID3v1 header found at: pos=%s",this.tokenizer.fileInfo.size-l.len);let o=["title","artist","album","comment","track","year"];for(let n of o)a[n]&&a[n]!==""&&await this.addTag(n,a[n]);let u=t.getGenre(a.genre);u&&await this.addTag("genre",u)}else c("ID3v1 header not found at: pos=%s",this.tokenizer.fileInfo.size-l.len)}async addTag(e,a){await this.metadata.addTag("ID3v1",e,a)}};async function z(t){if(t.fileInfo.size>=128){let e=new Uint8Array(3),a=t.position;return await t.readBuffer(e,{position:t.fileInfo.size-128}),t.setPosition(a),h(e,"latin1")==="TAG"}return!1}r(z,"hasID3v1Header");export{m as a,R as b,z as c}; + +//# sourceMappingURL=./chunk-GSVEIULU.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js.br new file mode 100644 index 0000000000000000000000000000000000000000..9199ab43a59a703c9eaffc937fe8a52f34a4faad GIT binary patch literal 1909 zcmb0(6kvE_6#Mo5dGE!m7O#n#$tihmbL&hIpBo}lyEm4e$ePczW?_w~>GPSnUrf?g z+E_H$rksCtckk6FeyMKLtJI}m?0dEEwBO227u_|MmV7bU5<11;9_M+hSthl@drC8e z4)x8bxU(+dLB!3{e~$O=pI@C2_VM%K*QYN(&)@v7zK{R*wt}XlNwq1WdpncZ@6 z@@D_6Vl^RhzLU0+-`1|}3m@#0HNEiH|Hi??UqAkuz#XZ6e=baIMa`|rZJz~Z{)rItpCE%{;zi4jThUi zFSjzeJTEGFr}a8{*S3iFdAovIt1pBB%JJFIHH<=oy?v8#7H*(`d8f4AEQQRbKw zu`^tA<_8+IYRx;Sx}S5}qr}UBZyT1jPl;f9qkf8=(P`25l4*I(!6~=6+&KIav;QZ| z+5T_x2kR-TAI-cUT+lz$dWGQBIlWt(9=|_fdP2^3)x$F$zwNH?*0i`YQS1|J~iI6nhO_l28%6p z6MeGt+zX$$-4|r3Iz(KystNEzMM3(dIRg%roah3-?|&ST#Xh))*9Z{2;MfE^?CA9 zt)Q3-OwP=4Q-5l%yDGIndhxd@jg9Yg*B0sYTub=#P`5EclDF_=9oyVwS@Cd-BjwiF zuWJLZ>f8Fx{&Op2st)VoqepirNiW#i*%e?Au*sG7dM#yz3s+LeVKj@b)5W8xAIb@|N=Tf07Ms&V$^?Pc0avab5av->i? zO?Wn^AlLb9+LF2M2ajDaS#AAIJLlsI4c*=Byf5zxmh@FWVLa!^AF$Bic*t3G?N6m% z3+F{XeY@+usP~rMMVB7Bui5&2Imf+uZW4Ds*&fpMS>#q0p6jeS{{|)E`>py6#}8 z>#B7T|86e`t-F1z~r(sJ?57w z+Y{wka!*gcIa24iXm6^iM9kal4o=ncmrL!Y=|9shllgt}`Ibo6h(lt}S?k`+h|X$T zr!`gAZ@<#tH%I&d-c0^i68g>O|iO}Y0`XnF?Zx5`5PLagj|cZUVb5|!e;K{dVG3K*Va8w_2Md? zhn_FC{+C#8lV`?Ixh>e_#Wa~c{~!ELRyDuE1p+65VE>^rQb9ld0x&&8G*4o_%%^vyAeWI#owNj|EbvNtA zdpD>4TkwSc=*M3lN*p4>%ilRae-PttwyS2AOYOO|*$d97y)!quVJ_$;7yqO^ro_Wy zih@dkqLiqDU!$7Ve@mszFyD)6)J zo}^5xOM%h1j8^UrNIvM?@v*K+RxWmf>+6e!{ePGO&9X8iJkNPw@~GxoK27j|0^`Kl z5y$PMf7o-@9gr$IY2W8<)REwRvix0=k={=GMxGyideiSnf7$UwkhP+3>!0TZo@P=H zueM#BG_m3Rv-I`TZ&m1fTD3F+^Lg&Ax~;H0O>z54oA+(+830bevN!+$ literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js.map new file mode 100644 index 00000000..ac30c5ca --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GSVEIULU.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/id3v1/ID3v1Parser.js"],"sourcesContent":["import initDebug from 'debug';\nimport { StringType, UINT8 } from 'token-types';\nimport * as util from '../common/Util.js';\nimport { BasicParser } from '../common/BasicParser.js';\nimport { APEv2Parser } from '../apev2/APEv2Parser.js';\nimport { textDecode } from '@borewit/text-codec';\nconst debug = initDebug('music-metadata:parser:ID3v1');\n/**\n * ID3v1 Genre mappings\n * Ref: https://de.wikipedia.org/wiki/Liste_der_ID3v1-Genres\n */\nexport const Genres = [\n 'Blues', 'Classic Rock', 'Country', 'Dance', 'Disco', 'Funk', 'Grunge', 'Hip-Hop',\n 'Jazz', 'Metal', 'New Age', 'Oldies', 'Other', 'Pop', 'R&B', 'Rap', 'Reggae', 'Rock',\n 'Techno', 'Industrial', 'Alternative', 'Ska', 'Death Metal', 'Pranks', 'Soundtrack',\n 'Euro-Techno', 'Ambient', 'Trip-Hop', 'Vocal', 'Jazz+Funk', 'Fusion', 'Trance',\n 'Classical', 'Instrumental', 'Acid', 'House', 'Game', 'Sound Clip', 'Gospel', 'Noise',\n 'Alt. Rock', 'Bass', 'Soul', 'Punk', 'Space', 'Meditative', 'Instrumental Pop',\n 'Instrumental Rock', 'Ethnic', 'Gothic', 'Darkwave', 'Techno-Industrial',\n 'Electronic', 'Pop-Folk', 'Eurodance', 'Dream', 'Southern Rock', 'Comedy', 'Cult',\n 'Gangsta Rap', 'Top 40', 'Christian Rap', 'Pop/Funk', 'Jungle', 'Native American',\n 'Cabaret', 'New Wave', 'Psychedelic', 'Rave', 'Showtunes', 'Trailer', 'Lo-Fi', 'Tribal',\n 'Acid Punk', 'Acid Jazz', 'Polka', 'Retro', 'Musical', 'Rock & Roll', 'Hard Rock',\n 'Folk', 'Folk/Rock', 'National Folk', 'Swing', 'Fast-Fusion', 'Bebob', 'Latin', 'Revival',\n 'Celtic', 'Bluegrass', 'Avantgarde', 'Gothic Rock', 'Progressive Rock', 'Psychedelic Rock',\n 'Symphonic Rock', 'Slow Rock', 'Big Band', 'Chorus', 'Easy Listening', 'Acoustic', 'Humour',\n 'Speech', 'Chanson', 'Opera', 'Chamber Music', 'Sonata', 'Symphony', 'Booty Bass', 'Primus',\n 'Porn Groove', 'Satire', 'Slow Jam', 'Club', 'Tango', 'Samba', 'Folklore',\n 'Ballad', 'Power Ballad', 'Rhythmic Soul', 'Freestyle', 'Duet', 'Punk Rock', 'Drum Solo',\n 'A Cappella', 'Euro-House', 'Dance Hall', 'Goa', 'Drum & Bass', 'Club-House',\n 'Hardcore', 'Terror', 'Indie', 'BritPop', 'Negerpunk', 'Polsk Punk', 'Beat',\n 'Christian Gangsta Rap', 'Heavy Metal', 'Black Metal', 'Crossover', 'Contemporary Christian',\n 'Christian Rock', 'Merengue', 'Salsa', 'Thrash Metal', 'Anime', 'JPop', 'Synthpop',\n 'Abstract', 'Art Rock', 'Baroque', 'Bhangra', 'Big Beat', 'Breakbeat', 'Chillout',\n 'Downtempo', 'Dub', 'EBM', 'Eclectic', 'Electro', 'Electroclash', 'Emo', 'Experimental',\n 'Garage', 'Global', 'IDM', 'Illbient', 'Industro-Goth', 'Jam Band', 'Krautrock',\n 'Leftfield', 'Lounge', 'Math Rock', 'New Romantic', 'Nu-Breakz', 'Post-Punk', 'Post-Rock',\n 'Psytrance', 'Shoegaze', 'Space Rock', 'Trop Rock', 'World Music', 'Neoclassical', 'Audiobook',\n 'Audio Theatre', 'Neue Deutsche Welle', 'Podcast', 'Indie Rock', 'G-Funk', 'Dubstep',\n 'Garage Rock', 'Psybient'\n];\n/**\n * Spec: http://id3.org/ID3v1\n * Wiki: https://en.wikipedia.org/wiki/ID3\n */\nconst Iid3v1Token = {\n len: 128,\n /**\n * @param buf Buffer possibly holding the 128 bytes ID3v1.1 metadata header\n * @param off Offset in buffer in bytes\n * @returns ID3v1.1 header if first 3 bytes equals 'TAG', otherwise null is returned\n */\n get: (buf, off) => {\n const header = new Id3v1StringType(3).get(buf, off);\n return header === 'TAG' ? {\n header,\n title: new Id3v1StringType(30).get(buf, off + 3),\n artist: new Id3v1StringType(30).get(buf, off + 33),\n album: new Id3v1StringType(30).get(buf, off + 63),\n year: new Id3v1StringType(4).get(buf, off + 93),\n comment: new Id3v1StringType(28).get(buf, off + 97),\n // ID3v1.1 separator for track\n zeroByte: UINT8.get(buf, off + 127),\n // track: ID3v1.1 field added by Michael Mutschler\n track: UINT8.get(buf, off + 126),\n genre: UINT8.get(buf, off + 127)\n } : null;\n }\n};\nclass Id3v1StringType {\n constructor(len) {\n this.len = len;\n this.stringType = new StringType(len, 'latin1');\n }\n get(buf, off) {\n let value = this.stringType.get(buf, off);\n value = util.trimRightNull(value);\n value = value.trim();\n return value.length > 0 ? value : undefined;\n }\n}\nexport class ID3v1Parser extends BasicParser {\n constructor(metadata, tokenizer, options) {\n super(metadata, tokenizer, options);\n this.apeHeader = options.apeHeader;\n }\n static getGenre(genreIndex) {\n if (genreIndex < Genres.length) {\n return Genres[genreIndex];\n }\n return undefined; // ToDO: generate warning\n }\n async parse() {\n if (!this.tokenizer.fileInfo.size) {\n debug('Skip checking for ID3v1 because the file-size is unknown');\n return;\n }\n if (this.apeHeader && this.tokenizer.supportsRandomAccess()) {\n this.tokenizer.setPosition(this.apeHeader.offset);\n const apeParser = new APEv2Parser(this.metadata, this.tokenizer, this.options);\n await apeParser.parseTags(this.apeHeader.footer);\n }\n const offset = this.tokenizer.fileInfo.size - Iid3v1Token.len;\n if (this.tokenizer.position > offset) {\n debug('Already consumed the last 128 bytes');\n return;\n }\n const header = await this.tokenizer.readToken(Iid3v1Token, offset);\n if (header) {\n debug('ID3v1 header found at: pos=%s', this.tokenizer.fileInfo.size - Iid3v1Token.len);\n const props = ['title', 'artist', 'album', 'comment', 'track', 'year'];\n for (const id of props) {\n if (header[id] && header[id] !== '')\n await this.addTag(id, header[id]);\n }\n const genre = ID3v1Parser.getGenre(header.genre);\n if (genre)\n await this.addTag('genre', genre);\n }\n else {\n debug('ID3v1 header not found at: pos=%s', this.tokenizer.fileInfo.size - Iid3v1Token.len);\n }\n }\n async addTag(id, value) {\n await this.metadata.addTag('ID3v1', id, value);\n }\n}\nexport async function hasID3v1Header(tokenizer) {\n if (tokenizer.fileInfo.size >= 128) {\n const tag = new Uint8Array(3);\n const position = tokenizer.position;\n await tokenizer.readBuffer(tag, { position: tokenizer.fileInfo.size - 128 });\n tokenizer.setPosition(position); // Restore tokenizer position\n return textDecode(tag, 'latin1') === 'TAG';\n }\n return false;\n}\n"],"mappings":"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","names":["import_debug","debug","initDebug","Genres","Iid3v1Token","__name","buf","off","header","Id3v1StringType","UINT8","len","StringType","value","trimRightNull","ID3v1Parser","_ID3v1Parser","BasicParser","metadata","tokenizer","options","genreIndex","APEv2Parser","offset","props","id","genre","hasID3v1Header","tag","position","textDecode"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-GSVEIULU.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js new file mode 120000 index 00000000..f11a16ba --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GUIEXD2J.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js.br new file mode 120000 index 00000000..dfa4ab12 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GUIEXD2J.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js.map new file mode 120000 index 00000000..5842612f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-GUIEXD2J.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-GUIEXD2J.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4L773TT.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4L773TT.js new file mode 100644 index 00000000..8d381566 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4L773TT.js @@ -0,0 +1,34 @@ +import{d as Vs}from"./chunk-XQAIXFJF.js";import{a as $h}from"./chunk-EDKAGOM6.js";import{b as kh}from"./chunk-ZGMMU2IC.js";import{b as _s}from"./chunk-SIM5AC6S.js";import{b as wh}from"./chunk-ARPMZXXD.js";import{c as xh}from"./chunk-VQAZGKWE.js";import{a as Gn}from"./chunk-BD6UIPEI.js";import{o as Ws}from"./chunk-XILA3E7E.js";import{a as c}from"./chunk-75KFZLU6.js";var Ls=[],Ch=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,1n,9,16,o,,x,1i,3,,i,,7,a,2,t,3,1k,,,7,2,2,2,3,9,,a,2,q,,2,3,1k,,,5,4,2,2,3,3,,u,2,3,,b,3,1k,,,8,,3,,3,k,2,m,6,,3,1k,,,7,2,2,2,3,7,3,a,2,u,,1n,5,3,3,,4,9,,14,5,1j,,,7,,3,,4,7,2,b,2,t,3,1k,,,7,,3,,4,7,2,b,2,f,,c,4,1j,2,,7,,3,,4,9,,a,2,t,3,1y,,4,6,,,,8,i,2,1p,,,8,c,8,2q,,,a,b,7,21,2,r,,,,,,4,2,1d,k,,2,5,b,,10,9,,2u,b,,6,n,4,4,3,g,4,d,,,3,6,,f,,jj,3,qa,4,s,3,t,2,u,2,1s,w,9,,19,3,,,39,2,y,,3a,c,4,c,63,5,1l,a,,,,,2,o,2,,1c,1a,2,c,k,5,1b,h,12,9,c,3,u,d,1k,e,1c,k,48,3,,l,4,,6,,2,3,5i,1s,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,n,5,4,,2b,2,1e,i,q,i,d,,12,8,p,d,18,4,1b,e,10,,1v,e,c,,8,2,1a,,1f,,,3,2,2,5,2,,,15,5,5,2,6k,8,,2,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,1t,5,8t,2,25,6,1y,b,1d,4,3e,3,1h,f,15,,2,2,a,4,19,b,7,,1p,3,10,e,g,2,18,,c,3,1c,e,8,4,,2,2k,c,6,,2,,4d,c,l,4,1j,2,,7,2,2,2,3,9,,a,2,2,7,3,5,1v,9,,,2,,,4,,5,,,e,2,2a,i,n,,29,k,6j,7,2,9,r,2,2a,h,2y,d,2t,3,2,a,74,f,6t,6,,2,2,4,,,,2,3x,7,2,7,3,,s,a,14,7,,4,8,,9,b,1a,g,5i,8,5j,8,,8,2a,m,,e,3e,6,3,,,2,,7,,,1u,5,,2,,5,9n,4,9,2,,,1c,7,3,5,n,,44l,,6,f,8ug,i,1xc,5,1n,7,t4,,,1j,7,4,29,,b,2,f57,2,3mp,1a,2,n,f2,5,3,6,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,2s,,4g,7,af,,1p,4,e4,4,72,2,6r,,2,,7,2,5,,d6,7,31,7,240,5".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=Ch[i])e=i+1;else return!0;if(e==t)return!1}}c(xp,"isExtendingChar");function vh(n){return n>=127462&&n<=127487}c(vh,"isRegionalIndicator");var Ph=8205;function Zh(n,e,t=!0,i=!0){return(t?Xh:wp)(n,e,i)}c(Zh,"findClusterBreak");function Xh(n,e,t){if(e==n.length)return e;e&&Ah(n.charCodeAt(e))&&Rh(n.charCodeAt(e-1))&&e--;let i=Ds(n,e);for(e+=Th(i);e=0&&vh(Ds(n,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}c(Xh,"nextClusterBreak");function wp(n,e,t){for(;e>1;){let i=Xh(n,e-2,t);if(i=56320&&n<57344}c(Ah,"surrogateLow");function Rh(n){return n>=55296&&n<56320}c(Rh,"surrogateHigh");function Th(n){return n<65536?1:2}c(Th,"codePointSize");var z=class n{static{c(this,"Text")}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=gi(this,e,t);let r=[];return this.decompose(0,e,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(t,this.length,r,1),Oi.from(r,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=gi(this,e,t);let i=[];return this.decompose(e,t,i,0),Oi.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),r=new It(this),s=new It(e);for(let o=t,l=t;;){if(r.next(o),s.next(o),o=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(l+=r.value.length,r.done||l>=i)return!0}}iter(e=1){return new It(this,e)}iterRange(e,t=this.length){return new Jn(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;i=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new er(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?n.empty:e.length<=32?new Ce(e):Oi.from(Ce.split(e,[]))}},Ce=class n extends z{static{c(this,"TextLeaf")}constructor(e,t=kp(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,r){for(let s=0;;s++){let o=this.text[s],l=r+o.length;if((t?i:l)>=e)return new Bs(r,l,i,o);r=l+1,i++}}decompose(e,t,i,r){let s=e<=0&&t>=this.length?this:new n(Mh(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let o=i.pop(),l=Kn(s.text,o.text.slice(),0,s.length);if(l.length<=32)i.push(new n(l,o.length+s.length));else{let a=l.length>>1;i.push(new n(l.slice(0,a)),new n(l.slice(a)))}}else i.push(s)}replace(e,t,i){if(!(i instanceof n))return super.replace(e,t,i);[e,t]=gi(this,e,t);let r=Kn(this.text,Kn(i.text,Mh(this.text,0,e)),t),s=this.length+i.length-(t-e);return r.length<=32?new n(r,s):Oi.from(n.split(r,[]),s)}sliceString(e,t=this.length,i=` +`){[e,t]=gi(this,e,t);let r="";for(let s=0,o=0;s<=t&&oe&&o&&(r+=i),es&&(r+=l.slice(Math.max(0,e-s),t-s)),s=a+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],r=-1;for(let s of e)i.push(s),r+=s.length+1,i.length==32&&(t.push(new n(i,r)),i=[],r=-1);return r>-1&&t.push(new n(i,r)),t}},Oi=class n extends z{static{c(this,"TextNode")}constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,r){for(let s=0;;s++){let o=this.children[s],l=r+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,r);r=l+1,i=a+1}}decompose(e,t,i,r){for(let s=0,o=0;o<=t&&s=o){let h=r&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if([e,t]=gi(this,e,t),i.lines=s&&t<=l){let a=o.replace(e-s,t-s,i),h=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>h>>6){let f=this.children.slice();return f[r]=a,new n(f,this.length-(t-e)+i.length)}return super.replace(s,l,a)}s=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` +`){[e,t]=gi(this,e,t);let r="";for(let s=0,o=0;se&&s&&(r+=i),eo&&(r+=l.sliceString(e-o,t-o,i)),o=a+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof n))return 0;let i=0,[r,s,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,s+=t){if(r==o||s==l)return i;let a=this.children[r],h=e.children[s];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,r)=>i+r.length+1,-1)){let i=0;for(let O of e)i+=O.lines;if(i<32){let O=[];for(let p of e)p.flatten(O);return new Ce(O,t)}let r=Math.max(32,i>>5),s=r<<1,o=r>>1,l=[],a=0,h=-1,f=[];function u(O){let p;if(O.lines>s&&O instanceof n)for(let m of O.children)u(m);else O.lines>o&&(a>o||!a)?(d(),l.push(O)):O instanceof Ce&&a&&(p=f[f.length-1])instanceof Ce&&O.lines+p.lines<=32?(a+=O.lines,h+=O.length+1,f[f.length-1]=new Ce(p.text.concat(O.text),p.length+1+O.length)):(a+O.lines>r&&d(),a+=O.lines,h+=O.length+1,f.push(O))}c(u,"add");function d(){a!=0&&(l.push(f.length==1?f[0]:n.from(f,h)),h=-1,a=f.length=0)}c(d,"flush");for(let O of e)u(O);return d(),l.length==1?l[0]:new n(l,t)}};z.empty=new Ce([""],0);function kp(n){let e=-1;for(let t of n)e+=t.length+1;return e}c(kp,"textLength");function Kn(n,e,t=0,i=1e9){for(let r=0,s=0,o=!0;s=t&&(a>i&&(l=l.slice(0,i-r)),r0?1:(e instanceof Ce?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,r=this.nodes[i],s=this.offsets[i],o=s>>1,l=r instanceof Ce?r.text.length:r.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(r instanceof Ce){let a=r.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=r.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof Ce?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Jn=class{static{c(this,"PartialTextCursor")}constructor(e,t,i){this.value="",this.done=!1,this.cursor=new It(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=i?r:t<0?r.slice(r.length-i):r.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},er=class{static{c(this,"LineCursor")}constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(z.prototype[Symbol.iterator]=function(){return this.iter()},It.prototype[Symbol.iterator]=Jn.prototype[Symbol.iterator]=er.prototype[Symbol.iterator]=function(){return this});var Bs=class{static{c(this,"Line")}constructor(e,t,i,r){this.from=e,this.to=t,this.number=i,this.text=r}get length(){return this.to-this.from}};function gi(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}c(gi,"clip");function ne(n,e,t=!0,i=!0){return Zh(n,e,t,i)}c(ne,"findClusterBreak");function $p(n){return n>=56320&&n<57344}c($p,"surrogateLow");function vp(n){return n>=55296&&n<56320}c(vp,"surrogateHigh");function ce(n,e){let t=n.charCodeAt(e);if(!vp(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return $p(i)?(t-55296<<10)+(i-56320)+65536:t}c(ce,"codePointAt");function tn(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}c(tn,"fromCodePoint");function Xe(n){return n<65536?1:2}c(Xe,"codePointSize");var Is=/\r\n?|\n/,oe=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(oe||(oe={})),ut=class n{static{c(this,"ChangeDesc")}constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-r);s+=l}else{if(i!=oe.Simple&&h>=e&&(i==oe.TrackDel&&re||i==oe.TrackBefore&&re))return null;if(h>e||h==e&&t<0&&!l)return e==r||t<0?s:s+a;s+=a}r=h}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return s}touchesRange(e,t=e){for(let i=0,r=0;i=0&&r<=t&&l>=e)return rt?"cover":!0;r=l}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new n(e)}static create(e){return new n(e)}},Se=class n extends ut{static{c(this,"ChangeSet")}constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Ns(this,(t,i,r,s,o)=>e=e.replace(r,r+(i-t),o),!1),e}mapDesc(e,t=!1){return Gs(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let r=0,s=0;r=0){t[r]=l,t[r+1]=o;let a=r>>1;for(;i.length0&&xt(i,t,s.text),s.forward(f),l+=f}let h=e[o++];for(;l>1].toJSON()))}return e}static of(e,t,i){let r=[],s=[],o=0,l=null;function a(f=!1){if(!f&&!r.length)return;od||u<0||d>t)throw new RangeError(`Invalid change range ${u} to ${d} (in doc of length ${t})`);let p=O?typeof O=="string"?z.of(O.split(i||Is)):O:z.empty,m=p.length;if(u==d&&m==0)return;uo&&Oe(r,u-o,-1),Oe(r,d-u,m),xt(s,r,p),o=d}}return c(h,"process"),h(e),a(!l),l}static empty(e){return new n(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let r=0;rl&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;i.length=0&&t<=0&&t==n[r+1]?n[r]+=e:r>=0&&e==0&&n[r]==0?n[r+1]+=t:i?(n[r]+=e,n[r+1]+=t):n.push(e,t)}c(Oe,"addSection");function xt(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],a=n.sections[o++];e(r,h,s,f,u),r=h,s=f}}}c(Ns,"iterChanges");function Gs(n,e,t,i=!1){let r=[],s=i?[]:null,o=new Nt(n),l=new Nt(e);for(let a=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);Oe(r,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len=0&&a=0){let h=0,f=o.len;for(;f;)if(l.ins==-1){let u=Math.min(f,l.len);h+=u,f-=u,l.forward(u)}else if(l.ins==0&&l.lena||o.ins>=0&&o.len>a)&&(l||i.length>h),s.forward2(a),o.forward(a)}}}}c(Wh,"composeSets");var Nt=class{static{c(this,"SectionIter")}constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?z.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?z.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},Lt=class n{static{c(this,"SelectionRange")}constructor(e,t,i,r){this.from=e,this.to=t,this.flags=i,this.goalColumn=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let i,r;return this.empty?i=r=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),i==this.from&&r==this.to?this:new n(i,r,this.flags,this.goalColumn)}extend(e,t=e,i=0){if(e<=this.anchor&&t>=this.anchor)return b.range(e,t,void 0,void 0,i);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return b.range(this.anchor,r,void 0,void 0,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return b.range(e.anchor,e.head)}static create(e,t,i,r){return new n(e,t,i,r)}},b=class n{static{c(this,"EditorSelection")}constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:n.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new n(e.ranges.map(t=>Lt.fromJSON(t)),e.main)}static single(e,t=e){return new n([n.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,r=0;rr.from-s.from),t=e.indexOf(i);for(let r=1;rs.head?n.range(a,l):n.range(l,a))}}return new n(e,t)}};function _h(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}c(_h,"checkSelection");var ro=0,v=class n{static{c(this,"Facet")}constructor(e,t,i,r,s){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=r,this.id=ro++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new n(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:so),!!e.static,e.enables)}of(e){return new pi([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new pi(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new pi(e,this,2,t)}from(e,t){return t||(t=c(i=>i,"get")),this.compute([e],i=>t(i.field(e)))}};function so(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}c(so,"sameArray");var pi=class{static{c(this,"FacetProvider")}constructor(e,t,i,r){this.dependencies=e,this.facet=t,this.type=i,this.value=r,this.id=ro++}dynamicSlot(e){var t;let i=this.value,r=this.facet.compareInput,s=this.id,o=e[s]>>1,l=this.type==2,a=!1,h=!1,f=[];for(let u of this.dependencies)u=="doc"?a=!0:u=="selection"?h=!0:(((t=e[u.id])!==null&&t!==void 0?t:1)&1)==0&&f.push(e[u.id]);return{create(u){return u.values[o]=i(u),1},update(u,d){if(a&&d.docChanged||h&&(d.docChanged||d.selection)||Us(u,f)){let O=i(u);if(l?!jh(O,u.values[o],r):!r(O,u.values[o]))return u.values[o]=O,1}return 0},reconfigure:c((u,d)=>{let O,p=d.config.address[s];if(p!=null){let m=rr(d,p);if(this.dependencies.every(g=>g instanceof v?d.facet(g)===u.facet(g):g instanceof ie?d.field(g,!1)==u.field(g,!1):!0)||(l?jh(O=i(u),m,r):r(O=i(u),m)))return u.values[o]=m,0}else O=i(u);return u.values[o]=O,1},"reconfigure")}}get extension(){return this}};function jh(n,e,t){if(n.length!=e.length)return!1;for(let i=0;in[a.id]),r=t.map(a=>a.type),s=i.filter(a=>!(a&1)),o=n[e.id]>>1;function l(a){let h=[];for(let f=0;fi===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Un).find(i=>i.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:c(i=>(i.values[t]=this.create(i),1),"create"),update:c((i,r)=>{let s=i.values[t],o=this.updateF(s,r);return this.compareF(s,o)?0:(i.values[t]=o,1)},"update"),reconfigure:c((i,r)=>{let s=i.facet(Un),o=r.facet(Un),l;return(l=s.find(a=>a.field==this))&&l!=o.find(a=>a.field==this)?(i.values[t]=l.create(i),1):r.config.address[this.id]!=null?(i.values[t]=r.field(this),0):(i.values[t]=this.create(i),1)},"reconfigure")}}init(e){return[this,Un.of({field:this,create:e})]}get extension(){return this}},qt={lowest:4,low:3,default:2,high:1,highest:0};function Fi(n){return e=>new tr(e,n)}c(Fi,"prec");var De={highest:Fi(qt.highest),high:Fi(qt.high),default:Fi(qt.default),low:Fi(qt.low),lowest:Fi(qt.lowest)},tr=class{static{c(this,"PrecExtension")}constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}},ir=class n{static{c(this,"Compartment")}of(e){return new Ki(this,e)}reconfigure(e){return n.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},Ki=class{static{c(this,"CompartmentInstance")}constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}},nr=class n{static{c(this,"Configuration")}constructor(e,t,i,r,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=r,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let r=[],s=Object.create(null),o=new Map;for(let d of Tp(e,t,o))d instanceof ie?r.push(d):(s[d.facet.id]||(s[d.facet.id]=[])).push(d);let l=Object.create(null),a=[],h=[];for(let d of r)l[d.id]=h.length<<1,h.push(O=>d.slot(O));let f=i?.config.facets;for(let d in s){let O=s[d],p=O[0].facet,m=f&&f[d]||[];if(O.every(g=>g.type==0))if(l[p.id]=a.length<<1|1,so(m,O))a.push(i.facet(p));else{let g=p.combine(O.map(y=>y.value));a.push(i&&p.compare(g,i.facet(p))?i.facet(p):g)}else{for(let g of O)g.type==0?(l[g.id]=a.length<<1|1,a.push(g.value)):(l[g.id]=h.length<<1,h.push(y=>g.dynamicSlot(y)));l[p.id]=h.length<<1,h.push(g=>Pp(g,p,O))}}let u=h.map(d=>d(l));return new n(e,o,u,l,a,s)}};function Tp(n,e,t){let i=[[],[],[],[],[]],r=new Map;function s(o,l){let a=r.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof Ki&&t.delete(o.compartment)}if(r.set(o,l),Array.isArray(o))for(let h of o)s(h,l);else if(o instanceof Ki){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),s(h,l)}else if(o instanceof tr)s(o.inner,o.prec);else if(o instanceof ie)i[l].push(o),o.provides&&s(o.provides,l);else if(o instanceof pi)i[l].push(o),o.facet.extensions&&s(o.facet.extensions,qt.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(h==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(h,l)}}return c(s,"inner"),s(n,qt.default),i.reduce((o,l)=>o.concat(l))}c(Tp,"flatten");function Hi(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let r=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|r}c(Hi,"ensureAddr");function rr(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}c(rr,"getAddr");var Vh=v.define(),Fs=v.define({combine:c(n=>n.some(e=>e),"combine"),static:!0}),Dh=v.define({combine:c(n=>n.length?n[0]:void 0,"combine"),static:!0}),Lh=v.define(),qh=v.define(),Bh=v.define(),Ih=v.define({combine:c(n=>n.length?n[0]:!1,"combine")}),we=class{static{c(this,"Annotation")}constructor(e,t){this.type=e,this.value=t}static define(){return new Hs}},Hs=class{static{c(this,"AnnotationType")}of(e){return new we(this,e)}},Ks=class{static{c(this,"StateEffectType")}constructor(e){this.map=e}of(e){return new R(this,e)}},R=class n{static{c(this,"StateEffect")}constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new n(this.type,t)}is(e){return this.type==e}static define(e={}){return new Ks(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let r of e){let s=r.map(t);s&&i.push(s)}return i}};R.reconfigure=R.define();R.appendConfig=R.define();var re=class n{static{c(this,"Transaction")}constructor(e,t,i,r,s,o){this.startState=e,this.changes=t,this.selection=i,this.effects=r,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,i&&_h(i,t.newLength),s.some(l=>l.type==n.time)||(this.annotations=s.concat(n.time.of(Date.now())))}static create(e,t,i,r,s,o){return new n(e,t,i,r,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(n.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};re.time=we.define();re.userEvent=we.define();re.addToHistory=we.define();re.remote=we.define();function Cp(n,e){let t=[];for(let i=0,r=0;;){let s,o;if(i=n[i]))s=n[i++],o=n[i++];else if(r=0;r--){let s=i[r](n);s instanceof re?n=s:Array.isArray(s)&&s.length==1&&s[0]instanceof re?n=s[0]:n=Gh(e,mi(s),!1)}return n}c(Zp,"filterTransaction");function Xp(n){let e=n.startState,t=e.facet(Bh),i=n;for(let r=t.length-1;r>=0;r--){let s=t[r](n);s&&Object.keys(s).length&&(i=Nh(i,Js(e,s,n.changes.newLength),!0))}return i==n?n:re.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}c(Xp,"extendTransaction");var Ap=[];function mi(n){return n==null?Ap:Array.isArray(n)?n:[n]}c(mi,"asArray");var I=(function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n})(I||(I={})),Rp=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,eo;try{eo=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function Mp(n){if(eo)return eo.test(n);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||Rp.test(t)))return!0}return!1}c(Mp,"hasWordChar");function jp(n){return e=>{if(!/\S/.test(e))return I.Space;if(Mp(e))return I.Word;for(let t=0;t-1)return I.Word;return I.Other}}c(jp,"makeCategorizer");var G=class n{static{c(this,"EditorState")}constructor(e,t,i,r,s,o){this.config=e,this.doc=t,this.selection=i,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let l=0;lr.set(h,a)),t=null),r.set(l.value.compartment,l.value.extension)):l.is(R.reconfigure)?(t=null,i=l.value):l.is(R.appendConfig)&&(t=null,i=mi(i).concat(l.value));let s;t?s=e.startState.values.slice():(t=nr.resolve(i,r,this),s=new n(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,h)=>h.reconfigure(a,this),null).values);let o=e.startState.facet(Fs)?e.newSelection:e.newSelection.asSingle();new n(t,e.newDoc,o,s,(l,a)=>a.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:b.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),r=this.changes(i.changes),s=[i.range],o=mi(i.effects);for(let l=1;lo.spec.fromJSON(l,a)))}}return n.create({doc:e.doc,selection:b.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=nr.resolve(e.extensions||[],new Map),i=e.doc instanceof z?e.doc:z.of((e.doc||"").split(t.staticFacet(n.lineSeparator)||Is)),r=e.selection?e.selection instanceof b?e.selection:b.single(e.selection.anchor,e.selection.head):b.single(0);return _h(r,i.length),t.staticFacet(Fs)||(r=r.asSingle()),new n(t,i,r,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(n.tabSize)}get lineBreak(){return this.facet(n.lineSeparator)||` +`}get readOnly(){return this.facet(Ih)}phrase(e,...t){for(let i of this.facet(n.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,r)=>{if(r=="$")return"$";let s=+(r||1);return!s||s>t.length?i:t[s-1]})),e}languageDataAt(e,t,i=-1){let r=[];for(let s of this.facet(Vh))for(let o of s(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&r.push(o[e]);return r}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return jp(t.length?t[0]:"")}wordAt(e){let{text:t,from:i,length:r}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-i,l=e-i;for(;o>0;){let a=ne(t,o,!1);if(s(t.slice(a,o))!=I.Word)break;o=a}for(;ln.length?n[0]:4,"combine")});G.lineSeparator=Dh;G.readOnly=Ih;G.phrases=v.define({compare(n,e){let t=Object.keys(n),i=Object.keys(e);return t.length==i.length&&t.every(r=>n[r]==e[r])}});G.languageData=Vh;G.changeFilter=Lh;G.transactionFilter=qh;G.transactionExtender=Bh;ir.reconfigure=R.define();function pe(n,e,t={}){let i={};for(let r of n)for(let s of Object.keys(r)){let o=r[s],l=i[s];if(l===void 0)i[s]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(t,s))i[s]=t[s](l,o);else throw new Error("Config merge conflict for field "+s)}for(let r in e)i[r]===void 0&&(i[r]=e[r]);return i}c(pe,"combineConfig");var Ve=class{static{c(this,"RangeValue")}eq(e){return this==e}range(e,t=e){return Ji.create(e,t,this)}};Ve.prototype.startSide=Ve.prototype.endSide=0;Ve.prototype.point=!1;Ve.prototype.mapMode=oe.TrackDel;function oo(n,e){return n==e||n.constructor==e.constructor&&n.eq(e)}c(oo,"cmpVal");var Ji=class n{static{c(this,"Range")}constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new n(e,t,i)}};function to(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}c(to,"cmpRange");var io=class n{static{c(this,"Chunk")}constructor(e,t,i,r){this.from=e,this.to=t,this.value=i,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,r=0){let s=i?this.to:this.from;for(let o=r,l=s.length;;){if(o==l)return o;let a=o+l>>1,h=s[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-t;if(a==o)return h>=0?o:l;h>=0?l=a:o=a+1}}between(e,t,i,r){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,s);sO||d==O&&h.startSide>0&&h.endSide<=0)continue;(O-d||h.endSide-h.startSide)<0||(o<0&&(o=d),h.point&&(l=Math.max(l,O-d)),i.push(h),r.push(d-o),s.push(O-o))}return{mapped:i.length?new n(r,s,i,l):null,pos:o}}},_=class n{static{c(this,"RangeSet")}constructor(e,t,i,r){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=r}static create(e,t,i,r){return new n(e,t,i,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:r=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(i&&(t=t.slice().sort(to)),this.isEmpty)return t.length?n.of(t):this;let l=new sr(this,null,-1).goto(0),a=0,h=[],f=new Ze;for(;l.value||a=0){let u=t[a++];f.addInner(u.from,u.to,u.value)||h.push(u)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||sl.to||s=s&&e<=s+o.length&&o.between(s,e-s,t-s,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return en.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return en.from(e).goto(t)}static compare(e,t,i,r,s=-1){let o=e.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=s),l=t.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=s),a=Eh(o,l,i),h=new Bt(o,a,s),f=new Bt(l,a,s);i.iterGaps((u,d,O)=>Yh(h,u,f,d,O,r)),i.empty&&i.length==0&&Yh(h,0,f,0,0,r)}static eq(e,t,i=0,r){r==null&&(r=999999999);let s=e.filter(f=>!f.isEmpty&&t.indexOf(f)<0),o=t.filter(f=>!f.isEmpty&&e.indexOf(f)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let l=Eh(s,o),a=new Bt(s,l,0).goto(i),h=new Bt(o,l,0).goto(i);for(;;){if(a.to!=h.to||!no(a.active,h.active)||a.point&&(!h.point||!oo(a.point,h.point)))return!1;if(a.to>r)return!0;a.next(),h.next()}}static spans(e,t,i,r,s=-1){let o=new Bt(e,null,s).goto(t),l=t,a=o.openStart;for(;;){let h=Math.min(o.to,i);if(o.point){let f=o.activeForPoint(o.to),u=o.pointFroml&&(r.span(l,h,o.active,a),a=o.openEnd(h));if(o.to>i)return a+(o.point&&o.to>i?1:0);l=o.to,o.next()}}static of(e,t=!1){let i=new Ze;for(let r of e instanceof Ji?[e]:t?Ep(e):e)i.add(r.from,r.to,r.value);return i.finish()}static join(e){if(!e.length)return n.empty;let t=e[e.length-1];for(let i=e.length-2;i>=0;i--)for(let r=e[i];r!=n.empty;r=r.nextLayer)t=new n(r.chunkPos,r.chunk,t,Math.max(r.maxPoint,t.maxPoint));return t}};_.empty=new _([],[],null,-1);function Ep(n){if(n.length>1)for(let e=n[0],t=1;t0)return n.slice().sort(to);e=i}return n}c(Ep,"lazySort");_.empty.nextLayer=_.empty;var Ze=class n{static{c(this,"RangeSetBuilder")}finishChunk(e){this.chunks.push(new io(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new n)).add(e,t,i)}addInner(e,t,i){let r=e-this.lastTo||i.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(_.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=_.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function Eh(n,e,t){let i=new Map;for(let s of n)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&r.push(new sr(o,t,i,s));return r.length==1?r[0]:new n(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)qs(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)qs(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),qs(this.heap,0)}}};function qs(n,e){for(let t=n[e];;){let i=(e<<1)+1;if(i>=n.length)break;let r=n[i];if(i+1=0&&(r=n[i+1],i++),t.compare(r)<0)break;n[i]=t,n[e]=r,e=i}}c(qs,"heapBubble");var Bt=class{static{c(this,"SpanCursor")}constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=en.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Fn(this.active,e),Fn(this.activeTo,e),Fn(this.activeRank,e),this.minActive=zh(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:r,rank:s}=this.cursor;for(;t0;)t++;Hn(this.active,t,i),Hn(this.activeTo,t,r),Hn(this.activeRank,t,s),e&&Hn(e,t,this.cursor.from),this.minActive=zh(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),i&&Fn(i,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[r]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}};function Yh(n,e,t,i,r,s){n.goto(e),t.goto(i);let o=i+r,l=i,a=i-e,h=!!s.boundChange;for(let f=!1;;){let u=n.to+a-t.to,d=u||n.endSide-t.endSide,O=d<0?n.to+a:t.to,p=Math.min(O,o);if(n.point||t.point?(n.point&&t.point&&oo(n.point,t.point)&&no(n.activeForPoint(n.to),t.activeForPoint(t.to))||s.comparePoint(l,p,n.point,t.point),f=!1):(f&&s.boundChange(l),p>l&&!no(n.active,t.active)&&s.compareRange(l,p,n.active,t.active),h&&po)break;l=O,d<=0&&n.next(),d>=0&&t.next()}}c(Yh,"compare");function no(n,e){if(n.length!=e.length)return!1;for(let t=0;t=e;i--)n[i+1]=n[i];n[e]=t}c(Hn,"insert");function zh(n,e){let t=-1,i=1e9;for(let r=0;r=e)return r;if(r==n.length)break;s+=n.charCodeAt(r)==9?t-s%t:1,r=ne(n,r)}return i===!0?-1:n.length}c(or,"findColumn");var Uh=typeof Symbol>"u"?"__\u037C":Symbol.for("\u037C"),lo=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Fh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},Le=class{static{c(this,"StyleModule")}constructor(e,t){this.rules=[];let{finish:i}=t||{};function r(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}c(r,"splitSelector");function s(o,l,a,h){let f=[],u=/^@(\w+)\b/.exec(o[0]),d=u&&u[1]=="keyframes";if(u&&l==null)return a.push(o[0]+";");for(let O in l){let p=l[O];if(/&/.test(O))s(O.split(/,\s*/).map(m=>o.map(g=>m.replace(/&/,g))).reduce((m,g)=>m.concat(g)),p,a);else if(p&&typeof p=="object"){if(!u)throw new RangeError("The value of a property ("+O+") should be a primitive value.");s(r(O),p,f,d)}else p!=null&&f.push(O.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(f.length||d)&&a.push((i&&!u&&!h?o.map(i):o).join(", ")+" {"+f.join(" ")+"}")}c(s,"render");for(let o in e)s(r(o),e[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=Fh[Uh]||1;return Fh[Uh]=e+1,"\u037C"+e.toString(36)}static mount(e,t,i){let r=e[lo],s=i&&i.nonce;r?s&&r.setNonce(s):r=new ao(e,s),r.mount(Array.isArray(t)?t:[t],e)}},Hh=new Map,ao=class{static{c(this,"StyleSet")}constructor(e,t){let i=e.ownerDocument||e,r=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let s=Hh.get(i);if(s)return e[lo]=s;this.sheet=new r.CSSStyleSheet,Hh.set(i,this)}else this.styleTag=i.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[lo]=this}mount(e,t){let i=this.sheet,r=0,s=0;for(let o=0;o-1&&(this.modules.splice(a,1),s--,a=-1),a==-1){if(this.modules.splice(s++,0,l),i)for(let h=0;h",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Yp=typeof navigator<"u"&&/Mac/.test(navigator.platform),zp=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(se=0;se<10;se++)Ot[48+se]=Ot[96+se]=String(se);var se;for(se=1;se<=24;se++)Ot[se+111]="F"+se;var se;for(se=65;se<=90;se++)Ot[se]=String.fromCharCode(se+32),Si[se]=String.fromCharCode(se);var se;for(lr in Ot)Si.hasOwnProperty(lr)||(Si[lr]=Ot[lr]);var lr;function Kh(n){var e=Yp&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||zp&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?Si:Ot)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}c(Kh,"keyName");function D(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var r=t[i];typeof r=="string"?n.setAttribute(i,r):r!=null&&(n[i]=r)}e++}for(;e2),C={mac:ic||/Mac/.test(ye.platform),windows:/Win/.test(ye.platform),linux:/Linux|X11/.test(ye.platform),ie:_r,ie_version:zc?yo.documentMode||6:Qo?+Qo[1]:bo?+bo[1]:0,gecko:ec,gecko_version:ec?+(/Firefox\/(\d+)/.exec(ye.userAgent)||[0,0])[1]:0,chrome:!!ho,chrome_version:ho?+ho[1]:0,ios:ic,android:/Android\b/.test(ye.userAgent),webkit:tc,webkit_version:tc?+(/\bAppleWebKit\/(\d+)/.exec(ye.userAgent)||[0,0])[1]:0,safari:xo,safari_version:xo?+(/\bVersion\/(\d+(\.\d+)?)/.exec(ye.userAgent)||[0,0])[1]:0,tabSize:yo.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function Ol(n,e){for(let t in n)t=="class"&&e.class?e.class+=" "+n.class:t=="style"&&e.style?e.style+=";"+n.style:e[t]=n[t];return e}c(Ol,"combineAttrs");var xr=Object.create(null);function pl(n,e,t){if(n==e)return!0;n||(n=xr),e||(e=xr);let i=Object.keys(n),r=Object.keys(e);if(i.length-(t&&i.indexOf(t)>-1?1:0)!=r.length-(t&&r.indexOf(t)>-1?1:0))return!1;for(let s of i)if(s!=t&&(r.indexOf(s)==-1||n[s]!==e[s]))return!1;return!0}c(pl,"attrsEq");function Wp(n,e){for(let t=n.attributes.length-1;t>=0;t--){let i=n.attributes[t].name;e[i]==null&&n.removeAttribute(i)}for(let t in e){let i=e[t];t=="style"?n.style.cssText=i:n.getAttribute(t)!=i&&n.setAttribute(t,i)}}c(Wp,"setAttrs");function nc(n,e,t){let i=!1;if(e)for(let r in e)t&&r in t||(i=!0,r=="style"?n.style.cssText="":n.removeAttribute(r));if(t)for(let r in t)e&&e[r]==t[r]||(i=!0,r=="style"?n.style.cssText=t[r]:n.setAttribute(r,t[r]));return i}c(nc,"updateAttrs");function _p(n){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new Ht(e,t,t,i,e.widget||null,!1)}static replace(e){let t=!!e.block,i,r;if(e.isBlockGap)i=-5e8,r=4e8;else{let{start:s,end:o}=Wc(e,t);i=(s?t?-3e8:-1:5e8)-1,r=(o?t?2e8:1:-6e8)+1}return new Ht(e,i,r,t,e.widget||null,!0)}static line(e){return new mn(e)}static set(e,t=!1){return _.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};X.none=_.empty;var pn=class n extends X{static{c(this,"MarkDecoration")}constructor(e){let{start:t,end:i}=Wc(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?Ol(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||xr}eq(e){return this==e||e instanceof n&&this.tagName==e.tagName&&pl(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};pn.prototype.point=!1;var mn=class n extends X{static{c(this,"LineDecoration")}constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof n&&this.spec.class==e.spec.class&&pl(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};mn.prototype.mapMode=oe.TrackBefore;mn.prototype.point=!0;var Ht=class n extends X{static{c(this,"PointDecoration")}constructor(e,t,i,r,s,o){super(t,i,s,e),this.block=r,this.isReplace=o,this.mapMode=r?t<=0?oe.TrackBefore:oe.TrackAfter:oe.TrackDel}get type(){return this.startSide!=this.endSide?ue.WidgetRange:this.startSide<=0?ue.WidgetBefore:ue.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof n&&Vp(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};Ht.prototype.point=!0;function Wc(n,e=!1){let{inclusiveStart:t,inclusiveEnd:i}=n;return t==null&&(t=n.inclusive),i==null&&(i=n.inclusive),{start:t??e,end:i??e}}c(Wc,"getInclusive");function Vp(n,e){return n==e||!!(n&&e&&n.compare(e))}c(Vp,"widgetsEq");function ki(n,e,t,i=0){let r=t.length-1;r>=0&&t[r]+i>=n?t[r]=Math.max(t[r],e):t.push(n,e)}c(ki,"addRange");var wr=class n extends Ve{static{c(this,"BlockWrapper")}constructor(e,t,i){super(),this.tagName=e,this.attributes=t,this.rank=i}eq(e){return e==this||e instanceof n&&this.tagName==e.tagName&&pl(this.attributes,e.attributes)}static create(e){return new n(e.tagName,e.attributes||xr,e.rank==null?50:Math.max(0,Math.min(e.rank,100)))}static set(e,t=!1){return _.of(e,t)}};wr.prototype.startSide=wr.prototype.endSide=-1;function gn(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}c(gn,"getSelection");function wo(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}c(wo,"contains");function on(n,e){if(!e.anchorNode)return!1;try{return wo(n,e.anchorNode)}catch{return!1}}c(on,"hasSelection");function gr(n){return n.nodeType==3?Sn(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}c(gr,"clientRectsFor");function ln(n,e,t,i){return t?rc(n,e,t,i,-1)||rc(n,e,t,i,1):!1}c(ln,"isEquivalentPosition");function $t(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}c($t,"domIndex");function kr(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}c(kr,"isBlockElement");function rc(n,e,t,i,r){for(;;){if(n==t&&e==i)return!0;if(e==(r<0?0:gt(n))){if(n.nodeName=="DIV")return!1;let s=n.parentNode;if(!s||s.nodeType!=1)return!1;e=$t(n)+(r<0?0:1),n=s}else if(n.nodeType==1){if(n=n.childNodes[e+(r<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=r<0?gt(n):0}else return!1}}c(rc,"scanFor");function gt(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}c(gt,"maxOffset");function $r(n,e){let{left:t,right:i}=n;if(t==i)return n;let r=e?t:i;return{left:r,right:r,top:n.top,bottom:n.bottom}}c($r,"flattenRect");function Dp(n){let e=n.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}c(Dp,"windowRect");function _c(n,e){let t=e.width/n.offsetWidth,i=e.height/n.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-n.offsetWidth)<1)&&(t=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-n.offsetHeight)<1)&&(i=1),{scaleX:t,scaleY:i}}c(_c,"getScale");function Lp(n,e,t,i,r,s,o,l){let a=n.ownerDocument,h=a.defaultView||window;for(let f=n,u=!1;f&&!u;)if(f.nodeType==1){let d,O=f==a.body,p=1,m=1;if(O)d=Dp(h);else{if(/^(fixed|sticky)$/.test(getComputedStyle(f).position)&&(u=!0),f.scrollHeight<=f.clientHeight&&f.scrollWidth<=f.clientWidth){f=f.assignedSlot||f.parentNode;continue}let x=f.getBoundingClientRect();({scaleX:p,scaleY:m}=_c(f,x)),d={left:x.left,right:x.left+f.clientWidth*p,top:x.top,bottom:x.top+f.clientHeight*m}}let g=0,y=0;if(r=="nearest")e.top0&&e.bottom>d.bottom+y&&(y=e.bottom-d.bottom+o)):e.bottom>d.bottom-o&&(y=e.bottom-d.bottom+o,t<0&&e.top-y0&&e.right>d.right+g&&(g=e.right-d.right+s)):e.right>d.right-s&&(g=e.right-d.right+s,t<0&&e.leftd.bottom||e.leftd.right)&&(e={left:Math.max(e.left,d.left),right:Math.min(e.right,d.right),top:Math.max(e.top,d.top),bottom:Math.min(e.bottom,d.bottom)}),f=f.assignedSlot||f.parentNode}else if(f.nodeType==11)f=f.host;else break}c(Lp,"scrollRectIntoView");function Vc(n,e=!0){let t=n.ownerDocument,i=null,r=null;for(let s=n.parentNode;s&&!(s==t.body||(!e||i)&&r);)if(s.nodeType==1)!r&&s.scrollHeight>s.clientHeight&&(r=s),e&&!i&&s.scrollWidth>s.clientWidth&&(i=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:i,y:r}}c(Vc,"scrollableParents");var ko=class{static{c(this,"DOMSelectionState")}constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:i}=e;this.set(t,Math.min(e.anchorOffset,t?gt(t):0),i,Math.min(e.focusOffset,i?gt(i):0))}set(e,t,i,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=r}};function Dc(n){let e=[];for(let t=n;t;t=t.nodeType==11?t.host:t.parentNode)t.nodeType==1&&e.push({node:t,left:t.scrollLeft,top:t.scrollTop});return e}c(Dc,"getScrollStack");function Lc(n,e=!0){for(let{node:t,left:i,top:r}of n)e&&t.scrollTop!=r&&(t.scrollTop=r),t.scrollLeft!=i&&(t.scrollLeft=i)}c(Lc,"restoreScrollStack");var Gt=null;C.safari&&C.safari_version>=26&&(Gt=!1);function qc(n){if(n.setActive)return n.setActive();if(Gt)return n.focus(Gt);let e=Dc(n);n.focus(Gt==null?{get preventScroll(){return Gt={preventScroll:!0},!0}}:void 0),Gt||(Gt=!1,Lc(e))}c(qc,"focusPreventScroll");var sc;function Sn(n,e,t=e){let i=sc||(sc=document.createRange());return i.setEnd(n,t),i.setStart(n,e),i}c(Sn,"textRange");function $i(n,e,t,i){let r={key:e,code:e,keyCode:t,which:t,cancelable:!0};i&&({altKey:r.altKey,ctrlKey:r.ctrlKey,shiftKey:r.shiftKey,metaKey:r.metaKey}=i);let s=new KeyboardEvent("keydown",r);s.synthetic=!0,n.dispatchEvent(s);let o=new KeyboardEvent("keyup",r);return o.synthetic=!0,n.dispatchEvent(o),s.defaultPrevented||o.defaultPrevented}c($i,"dispatchKey");function qp(n){for(;n;){if(n&&(n.nodeType==9||n.nodeType==11&&n.host))return n;n=n.assignedSlot||n.parentNode}return null}c(qp,"getRoot");function Bp(n,e){let t=e.focusNode,i=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=i)return!1;for(i=Math.min(i,gt(t));;)if(i){if(t.nodeType!=1)return!1;let r=t.childNodes[i-1];r.contentEditable=="false"?i--:(t=r,i=gt(t))}else{if(t==n)return!0;i=$t(t),t=t.parentNode}}c(Bp,"atElementStart");function Bc(n){return n instanceof Window?n.pageYOffset>Math.max(0,n.document.documentElement.scrollHeight-n.innerHeight-4):n.scrollTop>Math.max(1,n.scrollHeight-n.clientHeight-4)}c(Bc,"isScrolledToBottom");function Ic(n,e){for(let t=n,i=e;;){if(t.nodeType==3&&i>0)return{node:t,offset:i};if(t.nodeType==1&&i>0){if(t.contentEditable=="false")return null;t=t.childNodes[i-1],i=gt(t)}else if(t.parentNode&&!kr(t))i=$t(t),t=t.parentNode;else return null}}c(Ic,"textNodeBefore");function Nc(n,e){for(let t=n,i=e;;){if(t.nodeType==3&&i=t){if(l.level==i)return o;(s<0||(r!=0?r<0?l.fromt:e[s].level>l.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function Fc(n,e){if(n.length!=e.length)return!1;for(let t=0;t=0;m-=3)if(ot[m+1]==-O){let g=ot[m+2],y=g&2?r:g&4?g&1?s:r:0;y&&(U[u]=U[ot[m]]=y),l=m;break}}else{if(ot.length==189)break;ot[l++]=u,ot[l++]=d,ot[l++]=a}else if((p=U[u])==2||p==1){let m=p==r;a=m?0:1;for(let g=l-3;g>=0;g-=3){let y=ot[g+2];if(y&2)break;if(m)ot[g+2]|=2;else{if(y&4)break;ot[g+2]|=4}}}}}c(Fp,"processBracketPairs");function Hp(n,e,t,i){for(let r=0,s=i;r<=t.length;r++){let o=r?t[r-1].to:n,l=ra;)p==g&&(p=t[--m].from,g=m?t[m-1].to:n),U[--p]=O;a=f}else s=h,a++}}}c(Hp,"processNeutrals");function vo(n,e,t,i,r,s,o){let l=i%2?2:1;if(i%2==r%2)for(let a=e,h=0;aa&&o.push(new Ie(a,m.from,O));let g=m.direction==Kt!=!(O%2);Po(n,g?i+1:i,r,m.inner,m.from,m.to,o),a=m.to}p=m.to}else{if(p==t||(f?U[p]!=l:U[p]==l))break;p++}d?vo(n,a,p,i+1,r,d,o):ae;){let f=!0,u=!1;if(!h||a>s[h-1].to){let m=U[a-1];m!=l&&(f=!1,u=m==16)}let d=!f&&l==1?[]:null,O=f?i:i+1,p=a;e:for(;;)if(h&&p==s[h-1].to){if(u)break e;let m=s[--h];if(!f)for(let g=m.from,y=h;;){if(g==e)break e;if(y&&s[y-1].to==g)g=s[--y].from;else{if(U[g-1]==l)break e;break}}if(d)d.push(m);else{m.toU.length;)U[U.length]=256;let i=[],r=e==Kt?0:1;return Po(n,r,r,t,0,n.length,i),i}c(Kp,"computeOrder");function Hc(n){return[new Ie(0,n,0)]}c(Hc,"trivialOrder");var Kc="";function Jp(n,e,t,i,r){var s;let o=i.head-n.from,l=Ie.find(e,o,(s=i.bidiLevel)!==null&&s!==void 0?s:-1,i.assoc),a=e[l],h=a.side(r,t);if(o==h){let d=l+=r?1:-1;if(d<0||d>=e.length)return null;a=e[l=d],o=a.side(!r,t),h=a.side(r,t)}let f=ne(n.text,o,a.forward(r,t));(fa.to)&&(f=h),Kc=n.text.slice(Math.min(o,f),Math.max(o,f));let u=l==(r?e.length-1:0)?null:e[l+(r?1:-1)];return u&&f==h&&u.level+(r?0:1)n.some(e=>e),"combine")}),lf=v.define({combine:c(n=>n.some(e=>e),"combine")}),af=v.define(),an=class n{static{c(this,"ScrollTarget")}constructor(e,t,i,r,s,o=!1){this.range=e,this.y=t,this.x=i,this.yMargin=r,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new n(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new n(b.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},ar=R.define({map:c((n,e)=>n.map(e),"map")}),hf=R.define();function fe(n,e,t){let i=n.facet(nf);i.length?i[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}c(fe,"logException");var pt=v.define({combine:c(n=>n.length?n[0]:!0,"combine")}),tm=0,bi=v.define({combine(n){return n.filter((e,t)=>{for(let i=0;i{let a=[];return o&&a.push(Vr.of(h=>{let f=h.plugin(l);return f?o(f):X.none})),s&&a.push(s(l)),a})}static fromClass(e,t){return n.define((i,r)=>new e(i,r),t)}},hn=class{static{c(this,"PluginInstance")}constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(i){if(fe(t.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){fe(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(i){fe(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},cf=v.define(),yl=v.define(),Vr=v.define(),ff=v.define(),bl=v.define(),yn=v.define(),uf=v.define();function oc(n,e){let t=n.state.facet(uf);if(!t.length)return t;let i=t.map(s=>s instanceof Function?s(n):s),r=[];return _.spans(i,e.from,e.to,{point(){},span(s,o,l,a){let h=s-e.from,f=o-e.from,u=r;for(let d=l.length-1;d>=0;d--,a--){let O=l[d].spec.bidiIsolate,p;if(O==null&&(O=em(e.text,h,f)),a>0&&u.length&&(p=u[u.length-1]).to==h&&p.direction==O)p.to=f,u=p.inner;else{let m={from:h,to:f,direction:O,inner:[]};u.push(m),u=m.inner}}}}),r}c(oc,"getIsolatedRanges");var df=v.define();function Ql(n){let e=0,t=0,i=0,r=0;for(let s of n.state.facet(df)){let o=s(n);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(i=Math.max(i,o.top)),o.bottom!=null&&(r=Math.max(r,o.bottom)))}return{left:e,right:t,top:i,bottom:r}}c(Ql,"getScrollMargins");var nn=v.define(),Fe=class n{static{c(this,"ChangedRange")}constructor(e,t,i,r){this.fromA=e,this.toA=t,this.fromB=i,this.toB=r}join(e){return new n(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>i.toA)){if(r.toAr.push(new Fe(s,o,l,a))),this.changedRanges=r}static create(e,t,i){return new n(e,t,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},im=[],ee=class{static{c(this,"Tile")}constructor(e,t,i=0){this.dom=e,this.length=t,this.flags=i,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return im}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&Wp(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let i=t;for(let r of this.children){if(r==e)return i;i+=r.length+r.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t,i){return null}domPosFor(e,t){let i=$t(this.dom),r=this.length?e>0:t>0;return new lt(this.parent.dom,i+(r?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Pi)return e;return null}static get(e){return e.cmTile}},vi=class extends ee{static{c(this,"CompositeTile")}constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,i=null,r,s=e?.node==t?e:null,o=0;for(let l of this.children){if(l.sync(e),o+=l.length+l.breakAfter,r=i?i.nextSibling:t.firstChild,s&&r!=l.dom&&(s.written=!0),l.dom.parentNode==t)for(;r&&r!=l.dom;)r=lc(r);else t.insertBefore(l.dom,r);i=l.dom}for(r=i?i.nextSibling:t.firstChild,s&&r&&(s.written=!0);r;)r=lc(r);this.length=o}};function lc(n){let e=n.nextSibling;return n.parentNode.removeChild(n),e}c(lc,"rm$1");var Pi=class extends vi{static{c(this,"DocTile")}constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=ee.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],i=this,r=0,s=0;;)if(r==i.children.length){if(!t.length)return;i=i.parent,i.breakAfter&&s++,r=t.pop()}else{let o=i.children[r++];if(o instanceof mt)t.push(r),i=o,r=0;else{let l=s+o.length,a=e(o,s);if(a!==void 0)return a;s=l+o.breakAfter}}}resolveBlock(e,t){let i,r=-1,s,o=-1;if(this.blockTiles((l,a)=>{let h=a+l.length;if(e>=a&&e<=h){if(l.isWidget()&&t>=-1&&t<=1){if(l.flags&32)return!0;l.flags&16&&(i=void 0)}(ae||e==a&&(t>1?l.length:l.covers(-1)))&&(!s||!l.isWidget()&&s.isWidget())&&(s=l,o=e-a)}}),!i&&!s)throw new Error("No tile at position "+e);return i&&t<0||!s?{tile:i,offset:r}:{tile:s,offset:o}}},mt=class n extends vi{static{c(this,"BlockWrapperTile")}constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let i=new n(t||document.createElement(e.tagName),e);return t||(i.flags|=4),i}},Ti=class n extends vi{static{c(this,"LineTile")}constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,i){let r=new n(t||document.createElement("div"),e);return(!t||!i)&&(r.flags|=4),r}get domAttrs(){return this.attrs}resolveInline(e,t,i){let r=null,s=-1,o=null,l=-1;function a(f,u){for(let d=0,O=0;d=u&&(p.isComposite()?a(p,u-O):(!o||o.isHidden&&(t>0&&!(o.flags&32)||i&&rm(o,p)))&&(m>u||p.flags&32&&t<=1)?(o=p,l=u-O):(O=-1)&&(r=p,s=u-O)),O=m}}c(a,"scan"),a(this,e);let h=(t<0?r:o)||r||o;return h?{tile:h,offset:h==r?s:l}:null}coordsIn(e,t,i){let r=this.resolveInline(e,t,!0);return r?r.tile.coordsIn(Math.max(0,r.offset),t,i):nm(this)}domIn(e,t){let i=this.resolveInline(e,t);if(i){let{tile:r,offset:s}=i;if(this.dom.contains(r.dom))return r.isText()?new lt(r.dom,Math.min(r.dom.nodeValue.length,s)):r.domPosFor(s,r.flags&16?1:r.flags&32?-1:t);let o=i.tile.parent,l=!1;for(let a of o.children){if(l)return new lt(a.dom,0);a==i.tile&&(l=!0)}}return new lt(this.dom,0)}};function nm(n){let e=n.dom.lastChild;if(!e)return n.dom.getBoundingClientRect();let t=gr(e);return t[t.length-1]||null}c(nm,"fallbackRect");function rm(n,e){let t=n.coordsIn(0,1),i=e.coordsIn(0,1);return t&&i&&i.topr&&(e=r);let s=e,o=e,l=0;e==0&&t<0||e==r&&t>=0?C.chrome||C.gecko||(e?(s--,l=1):o=0)?0:a.length-1];return C.safari&&!l&&h.width==0&&(h=Array.prototype.find.call(a,f=>f.width)||h),i==null?h:$r(h,(l?l>0:t<0)==i)}static of(e,t){let i=new n(t||document.createTextNode(e),e);return t||(i.flags|=2),i}},Jt=class n extends ee{static{c(this,"WidgetTile")}constructor(e,t,i,r){super(e,t,r),this.widget=i}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,i){let r=this.widget.coordsAt(this.dom,e,t);if(r)return r;if(i)return $r(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let l=this.flags&16?!0:this.flags&32?!1:e>0;for(let a=l?s.length-1:0;o=s[a],!(e>0?a==0:a==s.length-1||o.top0==i)}},Co=class{static{c(this,"TilePointer")}constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,i){let{tile:r,index:s,beforeBreak:o,parents:l}=this;for(;e||t>0;)if(r.isComposite())if(o){if(!e)break;i&&i.break(),e--,o=!1}else if(s==r.children.length){if(!e&&!l.length)break;i&&i.leave(r),o=!!r.breakAfter,{tile:r,index:s}=l.pop(),s++}else{let a=r.children[s],h=a.breakAfter;(t>0?a.length<=e:a.length=0;l--){let a=t.marks[l],h=r.lastChild;if(h instanceof ke&&h.mark.eq(a.mark))h.dom!=a.dom&&h.setDOM(co(a.dom)),r=h;else{if(this.cache.reused.get(a)){let u=ee.get(a.dom);u&&u.setDOM(co(a.dom))}let f=ke.of(a.mark,a.dom);r.append(f),r=f}this.cache.reused.set(a,2)}let s=ee.get(e.text);s&&this.cache.reused.set(s,2);let o=new Ut(e.text,e.text.nodeValue);o.flags|=8,this.pos=e.range.toB,r.append(o)}addInlineWidget(e,t,i){let r=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);r||this.flushBuffer();let s=this.ensureMarks(t,i);!r&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,i){this.flushBuffer(),this.ensureMarks(t,i).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var i;e||(e=Of);let r=Ti.start(e,t||((i=this.cache.find(Ti))===null||i===void 0?void 0:i.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=r)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var i;let r=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],l;if(t>0&&(l=r.lastChild)&&l instanceof ke&&l.mark.eq(o))r=l,t--;else{let a=ke.of(o,(i=this.cache.find(ke,h=>h.mark.eq(o)))===null||i===void 0?void 0:i.dom);r.append(a),r=a,t=0}}return r}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!ac(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(C.ios&&ac(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(fo,0,32)||new Jt(fo.toDOM(),0,fo,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=e.rank*102+e.value.rank,i=new Zo(e.from,e.to,e.value,t),r=this.wrappers.length;for(;r>0&&(this.wrappers[r-1].rank-i.rank||this.wrappers[r-1].to-i.to)<0;)r--;this.wrappers.splice(r,0,i)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let i of this.wrappers){let r=t.lastChild;if(i.fromo.wrapper.eq(i.wrapper)))===null||e===void 0?void 0:e.dom);t.append(s),t=s}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),i=this.cache.find(Ci,void 0,1);return i&&(i.flags=t),i||new Ci(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},Ao=class{static{c(this,"TextStream")}constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:r,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=r;let l=this.textOff=Math.min(e,r.length);return s?null:r.slice(0,l)}let t=Math.min(this.text.length,this.textOff+e),i=this.text.slice(this.textOff,t);return this.textOff=t,i}},Pr=[Jt,Ti,Ut,ke,Ci,mt,Pi];for(let n=0;n[]),this.index=Pr.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,i=this.buckets[t];i.length<6?i.push(e):i[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,i=2){let r=e.bucket,s=this.buckets[r],o=this.index[r];for(let l=0;l{if(this.cache.add(o),o.isComposite())return!1},"skip"),enter:c(o=>this.cache.add(o),"enter"),leave:c(()=>{},"leave"),break:c(()=>{},"break")}}run(e,t){let i=t&&this.getCompositionContext(t.text);for(let r=0,s=0,o=0;;){let l=or){let h=a-r;this.preserve(h,!o,!l),r=a,s+=h}if(!l)break;t&&l.fromA<=t.range.fromA&&l.toA>=t.range.toA?(this.forward(l.fromA,t.range.fromA,t.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(a-l);else{let h=a>0||l{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof ke&&r.unshift(o.mark)),this.openWidget=!1},"enter"),leave:c(o=>{o.isLine()?r.length&&(r.length=s=0):o instanceof ke&&(r.shift(),s=Math.min(s,r.length))},"leave"),break:c(()=>{this.builder.addBreak(),this.openWidget=!1},"break")}),this.text.skip(e)}emit(e,t){let i=null,r=this.builder,s=-1,o=_.spans(this.decorations,e,t,{point:c((l,a,h,f,u,d)=>{if(h instanceof Ht){if(this.disallowBlockEffectsFor[d]){if(h.block)throw new RangeError("Block decorations may not be specified via plugins");if(a>this.view.state.doc.lineAt(l).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=f.length,u>f.length)r.continueWidget(a-l);else{let O=h.widget||(h.block?vt.block:vt.inline),p=sm(h),m=this.cache.findWidget(O,a-l,p)||Jt.of(O,this.view,a-l,p);h.block?(h.startSide>0&&r.addLineStartIfNotCovered(i),r.addBlockWidget(m)):(r.ensureLine(i),r.addInlineWidget(m,f,u))}i=null}else i=om(i,h);a>l&&this.text.skip(a-l)},"point"),span:c((l,a,h,f)=>{for(let u=l;u-1&&(this.openWidget=o>s),this.openWidget||r.addLineStartIfNotCovered(i),this.openMarks=o}forward(e,t,i=1){t-e<=10?this.old.advance(t-e,i,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,i,this.reuseWalker))}getCompositionContext(e){let t=[],i=null;for(let r=e.parentNode;;r=r.parentNode){let s=ee.get(r);if(r==this.view.contentDOM)break;s instanceof ke?t.push(s):s?.isLine()?i=s:s instanceof mt||(r.nodeName=="DIV"&&!i&&r!=this.view.contentDOM?i=new Ti(r,Of):i||t.push(ke.of(new pn({tagName:r.nodeName.toLowerCase(),attributes:_p(r)}),r)))}return{line:i,marks:t}}};function ac(n,e){let t=c(i=>{for(let r of i.children)if((e?r.isText():r.length)||t(r))return!0;return!1},"scan");return t(n)}c(ac,"hasContent");function sm(n){let e=n.isReplace?(n.startSide<0?64:0)|(n.endSide>0?128:0):n.startSide>0?32:16;return n.block&&(e|=256),e}c(sm,"widgetFlags");var Of={class:"cm-line"};function om(n,e){let t=e.spec.attributes,i=e.spec.class;return!t&&!i||(n||(n={class:"cm-line"}),t&&Ol(t,n),i&&(n.class+=" "+i)),n}c(om,"addLineDeco");function lm(n){let e=[];for(let t=n.parents.length;t>1;t--){let i=t==n.parents.length?n.tile:n.parents[t].tile;i instanceof ke&&e.push(i.mark)}return e}c(lm,"getMarks");function co(n){let e=ee.get(n);return e&&e.setDOM(n.cloneNode()),n}c(co,"freeNode");var vt=class extends be{static{c(this,"NullWidget")}constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};vt.inline=new vt("span");vt.block=new vt("div");var fo=new class extends be{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},Tr=class{static{c(this,"DocView")}constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=X.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Pi(e,e.contentDOM),this.updateInner([new Fe(0,0,0,e.state.doc.length)],null)}update(e){var t;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:f,toA:u})=>uthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let r=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?r=this.domChanged.newSel.head:!pm(e.changes,this.hasComposition)&&!e.selectionSet&&(r=e.state.selection.main.head));let s=r>-1?hm(this.view,e.changes,r):null;if(this.domChanged=null,this.hasComposition){let{from:f,to:u}=this.hasComposition;i=new Fe(f,u,e.changes.mapPos(f,-1),e.changes.mapPos(u,1)).addToSet(i.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(C.ie||C.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,l=this.blockWrappers;this.updateDeco();let a=um(o,this.decorations,e.changes);a.length&&(i=Fe.extendWithRanges(i,a));let h=dm(l,this.blockWrappers,e.changes);return h.length&&(i=Fe.extendWithRanges(i,h)),s&&!i.some(f=>f.fromA<=s.range.fromA&&f.toA>=s.range.toA)&&(i=s.range.addToSet(i.slice())),this.tile.flags&2&&i.length==0?!1:(this.updateInner(i,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:i}=this.view;i.ignore(()=>{if(t||e.length){let o=this.tile,l=new Mo(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);t&&ee.get(t.text)&&l.cache.reused.set(ee.get(t.text),2),this.tile=l.run(e,t),jo(o,l.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=C.chrome||C.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||i.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let r=[];if(this.view.viewport.from||this.view.viewport.to-1)&&on(i,this.view.observer.selectionRange)&&!(r&&i.contains(r));if(!(s||t||o))return;let l=this.forceSelection;this.forceSelection=!1;let a=this.view.state.selection.main,h,f;if(a.empty?f=h=this.inlineDOMNearPos(a.anchor,a.assoc||1):(f=this.inlineDOMNearPos(a.head,a.head==a.from?1:-1),h=this.inlineDOMNearPos(a.anchor,a.anchor==a.from?1:-1)),C.gecko&&a.empty&&!this.hasComposition&&am(h)){let d=document.createTextNode("");this.view.observer.ignore(()=>h.node.insertBefore(d,h.node.childNodes[h.offset]||null)),h=f=new lt(d,0),l=!0}let u=this.view.observer.selectionRange;(l||!u.focusNode||(!ln(h.node,h.offset,u.anchorNode,u.anchorOffset)||!ln(f.node,f.offset,u.focusNode,u.focusOffset))&&!this.suppressWidgetCursorChange(u,a))&&(this.view.observer.ignore(()=>{C.android&&C.chrome&&i.contains(u.focusNode)&&Om(u.focusNode,i)&&(i.blur(),i.focus({preventScroll:!0}));let d=gn(this.view.root);if(d)if(a.empty){if(C.gecko){let O=cm(h.node,h.offset);if(O&&O!=3){let p=(O==1?Ic:Nc)(h.node,h.offset);p&&(h=new lt(p.node,p.offset))}}d.collapse(h.node,h.offset),a.bidiLevel!=null&&d.caretBidiLevel!==void 0&&(d.caretBidiLevel=a.bidiLevel)}else if(d.extend){d.collapse(h.node,h.offset);try{d.extend(f.node,f.offset)}catch{}}else{let O=document.createRange();a.anchor>a.head&&([h,f]=[f,h]),O.setEnd(f.node,f.offset),O.setStart(h.node,h.offset),d.removeAllRanges(),d.addRange(O)}o&&this.view.root.activeElement==i&&(i.blur(),r&&r.focus())}),this.view.observer.setSelectionRange(h,f)),this.impreciseAnchor=h.precise?null:new lt(u.anchorNode,u.anchorOffset),this.impreciseHead=f.precise?null:new lt(u.focusNode,u.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&ln(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,i=gn(e.root),{anchorNode:r,anchorOffset:s}=e.observer.selectionRange;if(!i||!t.empty||!t.assoc||!i.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let l=o.posAtStart;if(t.head==l||t.head==l+o.length)return;let a=this.coordsAt(t.head,-1),h=this.coordsAt(t.head,1);if(!a||!h||a.bottom>h.top)return;let f=this.domAtPos(t.head+t.assoc,t.assoc);i.collapse(f.node,f.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let u=e.observer.selectionRange;e.docView.posFromDOM(u.anchorNode,u.anchorOffset)!=t.from&&i.collapse(r,s)}posFromDOM(e,t){let i=this.tile.nearest(e);if(!i)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let r=i.posAtStart;if(i.isComposite()){let s;if(e==i.dom)s=i.dom.childNodes[t];else{let o=gt(e)==0?0:t==0?-1:1;for(;;){let l=e.parentNode;if(l==i.dom)break;o==0&&l.firstChild!=l.lastChild&&(e==l.firstChild?o=-1:o=1),e=l}o<0?s=e:s=e.nextSibling}if(s==i.dom.firstChild)return r;for(;s&&!ee.get(s);)s=s.nextSibling;if(!s)return r+i.length;for(let o=0,l=r;;o++){let a=i.children[o];if(a.dom==s)return l;l+=a.length+a.breakAfter}}else return i.isText()?e==i.dom?r+t:r+(t?i.length:0):r}domAtPos(e,t){let{tile:i,offset:r}=this.tile.resolveBlock(e,t);return i.isWidget()?i.domPosFor(r,t):i.domIn(r,t)}inlineDOMNearPos(e,t){let i,r=-1,s=!1,o,l=-1,a=!1;return this.tile.blockTiles((h,f)=>{if(h.isWidget()){if(h.flags&32&&f>=e)return!0;h.flags&16&&(s=!0)}else{let u=f+h.length;if(f<=e&&(i=h,r=e-f,s=u=e&&!o&&(o=h,l=e-f,a=f>e),f>e&&o)return!0}}),!i&&!o?this.domAtPos(e,t):(s&&o?i=null:a&&i&&(o=null),i&&t<0||!o?i.domIn(r,t):o.domIn(l,t))}coordsAt(e,t,i){let{tile:r,offset:s}=this.tile.resolveBlock(e,t);return r.isWidget()?r.widget instanceof cn?null:r.coordsInWidget(s,t,!0):r.coordsIn(s,t,i)}lineAt(e,t){let{tile:i}=this.tile.resolveBlock(e,t);return i.isLine()?i:null}coordsForChar(e){let{tile:t,offset:i}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function r(s,o){if(s.isComposite())for(let l of s.children){if(l.length>=o){let a=r(l,o);if(a)return a}if(o-=l.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==q.LTR,h=0,f=c((u,d,O)=>{for(let p=0;pr);p++){let m=u.children[p],g=d+m.length,y=m.dom.getBoundingClientRect(),{height:x}=y;if(O&&!p&&(h+=y.top-O.top),m instanceof mt)g>i&&f(m,d,y);else if(d>=i&&(h>0&&t.push(-h),t.push(x+h),h=0,o)){let Q=m.dom.lastChild,Z=Q?gr(Q):[];if(Z.length){let w=Z[Z.length-1],k=a?w.right-y.left:y.right-w.left;k>l&&(l=k,this.minWidth=s,this.minWidthFrom=d,this.minWidthTo=g)}}O&&p==u.children.length-1&&(h+=O.bottom-y.bottom),d=g+m.breakAfter}},"scan");return f(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?q.RTL:q.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let l=0,a;for(let h of o.children){if(!h.isText()||/[^ -~]/.test(h.text))return;let f=gr(h.dom);if(f.length!=1)return;l+=f[0].width,a=f[0].height}if(l)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:l/o.length,textHeight:a}}});if(e)return e;let t=document.createElement("div"),i,r,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=gr(t.firstChild)[0];i=t.getBoundingClientRect().height,r=o&&o.width?o.width/27:7,s=o&&o.height?o.height:i,t.remove()}),{lineHeight:i,charWidth:r,textHeight:s}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,r=0;;r++){let s=r==t.viewports.length?null:t.viewports[r],o=s?s.from-1:this.view.state.doc.length;if(o>i){let l=(t.lineBlockAt(o).bottom-t.lineBlockAt(i).top)/this.view.scaleY;e.push(X.replace({widget:new cn(l),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!s)break;i=s.to+1}return X.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Vr).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),i=!1,r=this.view.state.facet(bl).map((s,o)=>{let l=typeof s=="function";return l&&(i=!0),l?s(this.view):s});for(r.length&&(this.dynamicDecorationMap[e++]=i,t.push(_.join(r))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){if(e.isSnapshot){let h=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=h.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let h of this.view.state.facet(af))try{if(h(this.view,e.range,e))return!0}catch(f){fe(this.view.state,f,"scroll handler")}let{range:t}=e,i=this.coordsAt(t.head,t.assoc||(t.head>t.anchor?-1:1)),r;if(!i)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(i={left:Math.min(i.left,r.left),top:Math.min(i.top,r.top),right:Math.max(i.right,r.right),bottom:Math.max(i.bottom,r.bottom)});let s=Ql(this.view),o={left:i.left-s.left,top:i.top-s.top,right:i.right+s.right,bottom:i.bottom+s.bottom},{offsetWidth:l,offsetHeight:a}=this.view.scrollDOM;if(Lp(this.view.scrollDOM,o,t.head1&&(i.top>window.visualViewport.offsetTop+window.visualViewport.height||i.bottomi.isWidget()||i.children.some(t),"scan");return t(this.tile.resolveBlock(e,1).tile)}destroy(){jo(this.tile)}};function jo(n,e){let t=e?.get(n);if(t!=1){t==null&&n.destroy();for(let i of n.children)jo(i,e)}}c(jo,"destroyDropped");function am(n){return n.node.nodeType==1&&n.node.firstChild&&(n.offset==0||n.node.childNodes[n.offset-1].contentEditable=="false")&&(n.offset==n.node.childNodes.length||n.node.childNodes[n.offset].contentEditable=="false")}c(am,"betweenUneditable");function pf(n,e){let t=n.observer.selectionRange;if(!t.focusNode)return null;let i=Ic(t.focusNode,t.focusOffset),r=Nc(t.focusNode,t.focusOffset),s=i||r;if(r&&i&&r.node!=i.node){let l=ee.get(r.node);if(!l||l.isText()&&l.text!=r.node.nodeValue)s=r;else if(n.docView.lastCompositionAfterCursor){let a=ee.get(i.node);!a||a.isText()&&a.text!=i.node.nodeValue||(s=r)}}if(n.docView.lastCompositionAfterCursor=s!=i,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}c(pf,"findCompositionNode");function hm(n,e,t){let i=pf(n,t);if(!i)return null;let{node:r,from:s,to:o}=i,l=r.nodeValue;if(/[\n\r]/.test(l)||n.state.doc.sliceString(i.from,i.to)!=l)return null;let a=e.invertedDesc;return{range:new Fe(a.mapPos(s),a.mapPos(o),s,o),text:r}}c(hm,"findCompositionRange");function cm(n,e){return n.nodeType!=1?0:(e&&n.childNodes[e-1].contentEditable=="false"?1:0)|(e{ie.from&&(t=!0)}),t}c(pm,"touchesComposition");var cn=class extends be{static{c(this,"BlockGapWidget")}constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function mm(n,e,t=1){let i=n.charCategorizer(e),r=n.doc.lineAt(e),s=e-r.from;if(r.length==0)return b.cursor(e);s==0?t=1:s==r.length&&(t=-1);let o=s,l=s;t<0?o=ne(r.text,s,!1):l=ne(r.text,s);let a=i(r.text.slice(o,l));for(;o>0;){let h=ne(r.text,o,!1);if(i(r.text.slice(h,o))!=a)break;o=h}for(;ln.defaultLineHeight*1.5){let l=n.viewState.heightOracle.textHeight,a=Math.floor((r-t.top-(n.defaultLineHeight-l)*.5)/l);s+=a*n.viewState.heightOracle.lineLength}let o=n.state.sliceDoc(t.from,t.to);return t.from+or(o,s,n.state.tabSize)}c(gm,"posAtCoordsImprecise");function Yo(n,e,t){let i=n.lineBlockAt(e);if(Array.isArray(i.type)){let r;for(let s of i.type){if(s.from>e)break;if(!(s.toe)return s;(!r||s.type==ue.Text&&(r.type!=s.type||(t<0?s.frome)))&&(r=s)}}return r||i}return i}c(Yo,"blockAt");function Sm(n,e,t,i){let r=Yo(n,e.head,e.assoc||-1),s=!i||r.type!=ue.Text||!(n.lineWrapping||r.widgetLineBreaks)?null:n.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head);if(s){let o=n.dom.getBoundingClientRect(),l=n.textDirectionAt(r.from),a=n.posAtCoords({x:t==(l==q.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(a!=null)return b.cursor(a,t?-1:1)}return b.cursor(t?r.to:r.from,t?-1:1)}c(Sm,"moveToLineBoundary");function hc(n,e,t,i){let r=n.state.doc.lineAt(e.head),s=n.bidiSpans(r),o=n.textDirectionAt(r.from);for(let l=e,a=null;;){let h=Jp(r,s,o,l,t),f=Kc;if(!h){if(r.number==(t?n.state.doc.lines:1))return l;f=` +`,r=n.state.doc.line(r.number+(t?1:-1)),s=n.bidiSpans(r),h=n.visualLineSide(r,!t)}if(a){if(!a(f))return l}else{if(!i)return h;a=i(f)}l=h}}c(hc,"moveByChar");function ym(n,e,t){let i=n.state.charCategorizer(e),r=i(t);return s=>{let o=i(s);return r==I.Space&&(r=o),r==o}}c(ym,"byGroup");function bm(n,e,t,i){let r=e.head,s=t?1:-1;if(r==(t?n.state.doc.length:0))return b.cursor(r,e.assoc);let o=e.goalColumn,l,a=n.contentDOM.getBoundingClientRect(),h=n.coordsAtPos(r,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),f=n.documentTop;if(h)o==null&&(o=h.left-a.left),l=s<0?h.top:h.bottom;else{let p=n.viewState.lineBlockAt(r);o==null&&(o=Math.min(a.right-a.left,n.defaultCharacterWidth*(r-p.from))),l=(s<0?p.top:p.bottom)+f}let u=a.left+o,d=n.viewState.heightOracle.textHeight>>1,O=i??d;for(let p=0;;p+=d){let m=l+(O+p)*s,g=zo(n,{x:u,y:m},!1,s);if(t?m>a.bottom:ml:x{if(e>s&&er(n)),t.from,e.head>t.from?-1:1);return i==t.from?t:b.cursor(i,in.viewState.docHeight)return new Be(n.state.doc.length,-1);if(h=n.elementAtHeight(a),i==null)break;if(h.type==ue.Text){if(i<0?h.ton.viewport.to)break;let d=n.docView.coordsAt(i<0?h.from:h.to,i>0?-1:1);if(d&&(i<0?d.top<=a+s:d.bottom>=a+s))break}let u=n.viewState.heightOracle.textHeight/2;a=i>0?h.bottom+u:h.top-u}if(n.viewport.from>=h.to||n.viewport.to<=h.from){if(t)return null;if(h.type==ue.Text){let u=gm(n,r,h,o,l);return new Be(u,u==h.from?1:-1)}}if(h.type!=ue.Text)return a<(h.top+h.bottom)/2?new Be(h.from,1):new Be(h.to,-1);let f=n.docView.lineAt(h.from,2);return(!f||f.length!=h.length)&&(f=n.docView.lineAt(h.from,-2)),new Wo(n,o,l,n.textDirectionAt(h.from)).scanTile(f,h.from)}c(zo,"posAtCoords");var Wo=class{static{c(this,"InlineCoordsScan")}constructor(e,t,i,r){this.view=e,this.x=t,this.y=i,this.baseDir=r,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||i.length&&(i[0].level!=this.baseDir||i[0].to+r.from>1;t:if(o.has(m)){for(let x=1;x=s&&(Q-=p),!o.has(Q)){m=Q;break t}}break e}o.add(m);let g=t(m),y=0;if(g)for(let x=0;x1))if(Q.bottomthis.y)(!h||h.top>Q.top)&&(h=Q),y=-1;else{let Z=Q.left>this.x?this.x-Q.left:Q.right(p+p+m)/3)return this.y=a.bottom-1,this.scan(e,t,!0);if(h&&h.top<(p+m+m)/3)return this.y=h.top+1,this.scan(e,t,!0)}let O=(l?this.dirAt(e[f],1):this.baseDir)==q.LTR;return{i:f,after:this.x>(d.left+d.right)/2==O}}scanText(e,t){let i=[];for(let s=0;s{let o=i[s]-t,l=i[s+1]-t;return Sn(e.dom,o,l).getClientRects()});return r.after?new Be(i[r.i+1],-1):new Be(i[r.i],1)}scanTile(e,t){if(!e.length)return new Be(t,1);if(e.children.length==1){let l=e.children[0];if(l.isText())return this.scanText(l,t);if(l.isComposite())return this.scanTile(l,t)}let i=[t];for(let l=0,a=t;l{let a=e.children[l];return a.flags&48?null:(a.dom.nodeType==1?a.dom:Sn(a.dom,0,a.length)).getClientRects()}),s=e.children[r.i],o=i[r.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):r.after?new Be(i[r.i+1],-1):new Be(o,1)}},yi="\uFFFF",_o=class{static{c(this,"DOMReader")}constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(G.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=yi}readRange(e,t){if(!e)return this;let i=e.parentNode;for(let r=e;;){this.findPointBefore(i,r);let s=this.text.length;this.readNode(r);let o=ee.get(r),l=r.nextSibling;if(l==t){o?.breakAfter&&!l&&i!=this.view.contentDOM&&this.lineBreak();break}let a=ee.get(l);(o&&a?o.breakAfter:(o?o.breakAfter:kr(r))||kr(l)&&(r.nodeName!="BR"||o?.isWidget())&&this.text.length>s)&&!xm(l,t)&&this.lineBreak(),r=l}return this.findPointBefore(i,t),this}readTextNode(e){let t=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t.length));for(let i=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,l;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(l=r.exec(t))&&(s=l.index,o=l[0].length),this.append(t.slice(i,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=o-1);i=s+o}}readNode(e){let t=ee.get(e),i=t&&t.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let r=i.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(Qm(e,i.node,i.offset)?t:0))}};function Qm(n,e,t){for(;;){if(!e||t-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,l=e.state.selection;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=gf(e.docView.tile,t,i,0))){let a=s||o?[]:km(e),h=new _o(a,e);h.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=h.text,this.newSel=$m(a,this.bounds.from)}else{let a=e.observer.selectionRange,h=s&&s.node==a.focusNode&&s.offset==a.focusOffset||!wo(e.contentDOM,a.focusNode)?l.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),f=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!wo(e.contentDOM,a.anchorNode)?l.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),u=e.viewport;if((C.ios||C.chrome)&&h!=f&&Math.min(h,f)<=l.main.from&&Math.max(h,f)>=l.main.to&&(u.from>0||u.to-1&&l.ranges.length>1)this.newSel=l.replaceRange(b.range(f,h));else if(e.lineWrapping&&f==h&&!(l.main.empty&&l.main.head==h)&&e.inputState.lastTouchTime>Date.now()-100){let d=e.coordsAtPos(h,-1),O=0;d&&(O=e.inputState.lastTouchY<=d.bottom?-1:1),this.newSel=b.create([b.cursor(h,O)])}else this.newSel=b.single(f,h)}}};function gf(n,e,t,i){if(n.isComposite()){let r=-1,s=-1,o=-1,l=-1;for(let a=0,h=i,f=i;at)return gf(u,e,t,h);if(d>=e&&r==-1&&(r=a,s=h),h>t&&u.dom.parentNode==n.dom){o=a,l=f;break}f=d,h=d+u.breakAfter}return{from:s,to:l<0?i+n.length:l,startDOM:(r?n.children[r-1].dom.nextSibling:null)||n.dom.firstChild,endDOM:o=0?n.children[o].dom:null}}else return n.isText()?{from:i,to:i+n.length,startDOM:n.dom,endDOM:n.dom.nextSibling}:null}c(gf,"domBoundsAround");function Sf(n,e){let t,{newSel:i}=e,{state:r}=n,s=r.selection.main,o=n.inputState.lastKeyTime>Date.now()-100?n.inputState.lastKeyCode:-1;if(e.bounds){let{from:l,to:a}=e.bounds,h=s.from,f=null;(o===8||C.android&&e.text.length=l&&s.to<=a&&(e.typeOver||u!=e.text)&&u.slice(0,s.from-l)==e.text.slice(0,s.from-l)&&u.slice(s.to-l)==e.text.slice(d=e.text.length-(u.length-(s.to-l)))?t={from:s.from,to:s.to,insert:z.of(e.text.slice(s.from-l,d).split(yi))}:(O=yf(u,e.text,h-l,f))&&(C.chrome&&o==13&&O.toB==O.from+2&&e.text.slice(O.from,O.toB)==yi+yi&&O.toB--,t={from:l+O.from,to:l+O.toA,insert:z.of(e.text.slice(O.from,O.toB).split(yi))})}else i&&(!n.hasFocus&&r.facet(pt)||Zr(i,s))&&(i=null);if(!t&&!i)return!1;if((C.mac||C.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&n.contentDOM.getAttribute("autocorrect")=="off"?(i&&t.insert.length==2&&(i=b.single(i.main.anchor-1,i.main.head-1)),t={from:t.from,to:t.to,insert:z.of([t.insert.toString().replace("."," ")])}):r.doc.lineAt(s.from).toDate.now()-50?t={from:s.from,to:s.to,insert:r.toText(n.inputState.insertingText)}:C.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` + `&&n.lineWrapping&&(i&&(i=b.single(i.main.anchor-1,i.main.head-1)),t={from:s.from,to:s.to,insert:z.of([" "])}),t)return xl(n,t,i,o);if(i&&!Zr(i,s)){let l=!1,a="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(l=!0),a=n.inputState.lastSelectionOrigin,a=="select.pointer"&&(i=mf(r.facet(yn).map(h=>h(n)),i))),n.dispatch({selection:i,scrollIntoView:l,userEvent:a}),!0}else return!1}c(Sf,"applyDOMChange");function xl(n,e,t,i=-1){if(C.ios&&n.inputState.flushIOSKey(e))return!0;let r=n.state.selection.main;if(C.android&&(e.to==r.to&&(e.from==r.from||e.from==r.from-1&&n.state.sliceDoc(e.from,r.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&$i(n.contentDOM,"Enter",13)||(e.from==r.from-1&&e.to==r.to&&e.insert.length==0||i==8&&e.insert.lengthr.head)&&$i(n.contentDOM,"Backspace",8)||e.from==r.from&&e.to==r.to+1&&e.insert.length==0&&$i(n.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,l=c(()=>o||(o=wm(n,e,t)),"defaultInsert");return n.state.facet(rf).some(a=>a(n,e.from,e.to,s,l))||n.dispatch(l()),!0}c(xl,"applyDOMChangeInner");function wm(n,e,t){let i,r=n.state,s=r.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let a=e.fromu(n)),h,a);e.from==f&&(o=f)}if(o>-1)i={changes:e,selection:b.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&n.inputState.composing<0){let a=s.frome.to?r.sliceDoc(e.to,s.to):"";i=r.replaceSelection(n.state.toText(a+e.insert.sliceString(0,void 0,n.state.lineBreak)+h))}else{let a=r.changes(e),h=t&&t.main.to<=a.newLength?t.main:void 0;if(r.selection.ranges.length>1&&(n.inputState.composing>=0||n.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let f=n.state.sliceDoc(e.from,e.to),u,d=t&&pf(n,t.main.head);if(d){let p=e.insert.length-(e.to-e.from);u={from:d.from,to:d.to-p}}else u=n.state.doc.lineAt(s.head);let O=s.to-e.to;i=r.changeByRange(p=>{if(p.from==s.from&&p.to==s.to)return{changes:a,range:h||p.map(a)};let m=p.to-O,g=m-f.length;if(n.state.sliceDoc(g,m)!=f||m>=u.from&&g<=u.to)return{range:p};let y=r.changes({from:g,to:m,insert:e.insert}),x=p.to-s.to;return{changes:y,range:h?b.range(Math.max(0,h.anchor+x),Math.max(0,h.head+x)):p.map(y)}})}else i={changes:a,selection:h&&r.selection.replaceRange(h)}}let l="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,l+=".compose",n.inputState.compositionFirstChange&&(l+=".start",n.inputState.compositionFirstChange=!1)),r.update(i,{userEvent:l,scrollIntoView:!0})}c(wm,"applyDefaultInsert");function yf(n,e,t,i){let r=Math.min(n.length,e.length),s=0;for(;s0&&l>0&&n.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(i=="end"){let a=Math.max(0,s-Math.min(o,l));t-=o+a-s}if(o=o?s-t:0;s-=a,l=s+(l-o),o=s}else if(l=l?s-t:0;s-=a,o=s+(o-l),l=s}return{from:s,toA:o,toB:l}}c(yf,"findDiff");function km(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:r,focusOffset:s}=n.observer.selectionRange;return t&&(e.push(new Cr(t,i)),(r!=t||s!=i)&&e.push(new Cr(r,s))),e}c(km,"selectionPoints");function $m(n,e){if(n.length==0)return null;let t=n[0].pos,i=n.length==2?n[1].pos:t;return t>-1&&i>-1?b.single(t+e,i+e):null}c($m,"selectionFromPoints");function Zr(n,e){return e.head==n.main.head&&e.anchor==n.main.anchor}c(Zr,"sameSelPos");var Do=class{static{c(this,"InputState")}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,C.safari&&e.contentDOM.addEventListener("input",()=>null),C.gecko&&_m(e.contentDOM.ownerDocument)}handleEvent(e){!Rm(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let i=this.handlers[e];if(i){for(let r of i.observers)r(this.view,t);for(let r of i.handlers){if(t.defaultPrevented)break;if(r(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=Pm(e),i=this.handlers,r=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,l=i[s];l&&o!=!l.handlers.length&&(r.removeEventListener(s,this.handleEvent),l=null),l||r.addEventListener(s,this.handleEvent,{passive:o})}for(let s in i)s!="scroll"&&!t[s]&&r.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Qf.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),C.android&&C.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;if(C.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&(bf.some(t=>t.keyCode==e.keyCode)&&!e.ctrlKey||Tm.indexOf(e.key)>-1&&e.ctrlKey)){let t={ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey};return t.shiftKey&&C.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&vm(this.view.win)&&(t.shiftKey=!1),this.pendingIOSKey={key:e.key,keyCode:e.keyCode,mods:t},setTimeout(()=>this.flushIOSKey(),250),!0}return e.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from0?!0:C.safari&&!C.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function vm(n){return n.visualViewport?n.visualViewport.height*n.visualViewport.scale/n.document.documentElement.clientHeight<.85:!1}c(vm,"iosVirtualKeyboardOpen");function cc(n,e){return(t,i)=>{try{return e.call(n,i,t)}catch(r){fe(t.state,r)}}}c(cc,"bindHandler");function Pm(n){let e=Object.create(null);function t(i){return e[i]||(e[i]={observers:[],handlers:[]})}c(t,"record");for(let i of n){let r=i.spec,s=r&&r.plugin.domEventHandlers,o=r&&r.plugin.domEventObservers;if(s)for(let l in s){let a=s[l];a&&t(l).handlers.push(cc(i.value,a))}if(o)for(let l in o){let a=o[l];a&&t(l).observers.push(cc(i.value,a))}}for(let i in He)t(i).handlers.push(He[i]);for(let i in Qe)t(i).observers.push(Qe[i]);return e}c(Pm,"computeHandlers");var bf=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Tm="dthko",Qf=[16,17,18,20,91,92,224,225],hr=6;function cr(n){return Math.max(0,n)*.7+8}c(cr,"dragScrollSpeed");function Cm(n,e){return Math.max(Math.abs(n.clientX-e.clientX),Math.abs(n.clientY-e.clientY))}c(Cm,"dist");var Lo=class{static{c(this,"MouseSelection")}constructor(e,t,i,r){this.view=e,this.startEvent=t,this.style=i,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=Vc(e.contentDOM),this.atoms=e.state.facet(yn).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(G.allowMultipleSelections)&&Zm(e,t),this.dragging=Am(e,t)&&kf(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&Cm(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,i=0,r=0,s=0,o=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:r,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:l}=this.scrollParents.y.getBoundingClientRect());let a=Ql(this.view);e.clientX-a.left<=r+hr?t=-cr(r-e.clientX):e.clientX+a.right>=o-hr&&(t=cr(e.clientX-o)),e.clientY-a.top<=s+hr?i=-cr(s-e.clientY):e.clientY+a.bottom>=l-hr&&(i=cr(e.clientY-l)),this.setScrollSpeed(t,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,i=mf(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!i.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function Zm(n,e){let t=n.state.facet(Jc);return t.length?t[0](e):C.mac?e.metaKey:e.ctrlKey}c(Zm,"addsSelectionRange");function Xm(n,e){let t=n.state.facet(ef);return t.length?t[0](e):C.mac?!e.altKey:!e.ctrlKey}c(Xm,"dragMovesSelection");function Am(n,e){let{main:t}=n.state.selection;if(t.empty)return!1;let i=gn(n.root);if(!i||i.rangeCount==0)return!0;let r=i.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}c(Am,"isInPrimarySelection");function Rm(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,i;t!=n.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(i=ee.get(t))&&i.isWidget()&&!i.isHidden&&i.widget.ignoreEvent(e))return!1;return!0}c(Rm,"eventBelongsToEditor");var He=Object.create(null),Qe=Object.create(null),xf=C.ie&&C.ie_version<15||C.ios&&C.webkit_version<604;function Mm(n){let e=n.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{n.focus(),t.remove(),wf(n,t.value)},50)}c(Mm,"capturePaste");function Dr(n,e,t){for(let i of n.facet(e))t=i(t,n);return t}c(Dr,"textFilter");function wf(n,e){e=Dr(n.state,gl,e);let{state:t}=n,i,r=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(qo!=null&&t.selection.ranges.every(a=>a.empty)&&qo==s.toString()){let a=-1;i=t.changeByRange(h=>{let f=t.doc.lineAt(h.from);if(f.from==a)return{range:h};a=f.from;let u=t.toText((o?s.line(r++).text:e)+t.lineBreak);return{changes:{from:f.from,insert:u},range:b.cursor(h.from+u.length)}})}else o?i=t.changeByRange(a=>{let h=s.line(r++);return{changes:{from:a.from,to:a.to,insert:h.text},range:b.cursor(a.from+h.length)}}):i=t.replaceSelection(s);n.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}c(wf,"doPaste");Qe.scroll=n=>{let e=n.inputState;e.lastScrollTop=n.scrollDOM.scrollTop,e.lastScrollLeft=n.scrollDOM.scrollLeft,C.ios&&!e.touchActive&&(e.lastIOSMomentumScroll=Date.now())};Qe.wheel=Qe.mousewheel=n=>{n.inputState.lastWheelEvent=Date.now()};He.keydown=(n,e)=>(n.inputState.setSelectionOrigin("select"),e.keyCode==27&&n.inputState.tabFocusMode!=0&&(n.inputState.tabFocusMode=Date.now()+2e3),!1);Qe.touchstart=(n,e)=>{let t=n.inputState,i=e.targetTouches[0];t.touchActive=!0,t.lastTouchTime=Date.now(),i&&(t.lastTouchX=i.clientX,t.lastTouchY=i.clientY),t.setSelectionOrigin("select.pointer")};Qe.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};Qe.touchend=(n,e)=>{n.inputState.touchActive=!1};He.mousedown=(n,e)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let i of n.state.facet(tf))if(t=i(n,e),t)break;if(!t&&e.button==0&&(t=Em(n,e)),t){let i=!n.hasFocus;n.inputState.startMouseSelection(new Lo(n,e,t,i)),i&&n.observer.ignore(()=>{qc(n.contentDOM);let s=n.root.activeElement;s&&!s.contains(n.contentDOM)&&s.blur()});let r=n.inputState.mouseSelection;if(r)return r.start(e),r.dragging===!1}else n.inputState.setSelectionOrigin("select.pointer");return!1};function fc(n,e,t,i){if(i==1)return b.cursor(e,t);if(i==2)return mm(n.state,e,t);{let r=n.docView.lineAt(e,t),s=n.state.doc.lineAt(r?r.posAtEnd:e),o=r?r.posAtStart:s.from,l=r?r.posAtEnd:s.to;return lDate.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(dc+1)%3:1}c(kf,"getClickType");function Em(n,e){let t=n.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),i=kf(e),r=n.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),r=r.map(s.changes))},get(s,o,l){let a=n.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),h,f=fc(n,a.pos,a.assoc,i);if(t.pos!=a.pos&&!o){let u=fc(n,t.pos,t.assoc,i),d=Math.min(u.from,f.from),O=Math.max(u.to,f.to);f=d1&&(h=Ym(r,a.pos))?h:l?r.addRange(f):b.create([f])}}}c(Em,"basicMouseSelection");function Ym(n,e){for(let t=0;t=e)return b.create(n.ranges.slice(0,t).concat(n.ranges.slice(t+1)),n.mainIndex==t?0:n.mainIndex-(n.mainIndex>t?1:0))}return null}c(Ym,"removeRangeAround");He.dragstart=(n,e)=>{let{selection:{main:t}}=n.state;if(e.target.draggable){let r=n.docView.tile.nearest(e.target);if(r&&r.isWidget()){let s=r.posAtStart,o=s+r.length;(s>=t.to||o<=t.from)&&(t=b.undirectionalRange(s,o))}}let{inputState:i}=n;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",Dr(n.state,Sl,n.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};He.dragend=n=>(n.inputState.draggedContent=null,!1);function pc(n,e,t,i){if(t=Dr(n.state,gl,t),!t)return;let r=n.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=n.inputState,o=i&&s&&Xm(n,e)?{from:s.from,to:s.to}:null,l={from:r,insert:t},a=n.state.changes(o?[o,l]:l);n.focus(),n.dispatch({changes:a,selection:{anchor:a.mapPos(r,-1),head:a.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"}),n.inputState.draggedContent=null}c(pc,"dropText");He.drop=(n,e)=>{if(!e.dataTransfer)return!1;if(n.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let i=Array(t.length),r=0,s=c(()=>{++r==t.length&&pc(n,e,i.filter(o=>o!=null).join(n.state.lineBreak),!1)},"finishFile");for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(i[o]=l.result),s()},l.readAsText(t[o])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return pc(n,e,i,!0),!0}return!1};He.paste=(n,e)=>{if(n.state.readOnly)return!0;n.observer.flush();let t=xf?null:e.clipboardData;return t?(wf(n,t.getData("text/plain")||t.getData("text/uri-list")),!0):(Mm(n),!1)};function zm(n,e){let t=n.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),n.focus()},50)}c(zm,"captureCopy");function Wm(n){let e=[],t=[],i=!1;for(let r of n.selection.ranges)r.empty||(e.push(n.sliceDoc(r.from,r.to)),t.push(r));if(!e.length){let r=-1;for(let{from:s}of n.selection.ranges){let o=n.doc.lineAt(s);o.number>r&&(e.push(o.text),t.push({from:o.from,to:Math.min(n.doc.length,o.to+1)})),r=o.number}i=!0}return{text:Dr(n,Sl,e.join(n.lineBreak)),ranges:t,linewise:i}}c(Wm,"copiedRange");var qo=null;He.copy=He.cut=(n,e)=>{if(!on(n.contentDOM,n.observer.selectionRange))return!1;let{text:t,ranges:i,linewise:r}=Wm(n.state);if(!t&&!r)return!1;qo=r?t:null,e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let s=xf?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(zm(n,t),!1)};var $f=we.define();function vf(n,e){let t=[];for(let i of n.facet(sf)){let r=i(n,e);r&&t.push(r)}return t.length?n.update({effects:t,annotations:$f.of(!0)}):null}c(vf,"focusChangeTransaction");function Pf(n){setTimeout(()=>{let e=n.hasFocus;if(e!=n.inputState.notifiedFocused){let t=vf(n.state,e);t?n.dispatch(t):n.update([])}},10)}c(Pf,"updateForFocusChange");Qe.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),Pf(n)};Qe.blur=n=>{n.observer.clearSelectionRange(),Pf(n)};Qe.compositionstart=Qe.compositionupdate=n=>{n.observer.editContext||(n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0))};Qe.compositionend=n=>{n.observer.editContext||(n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionPendingKey=!0,n.inputState.compositionPendingChange=n.observer.pendingRecords().length>0,n.inputState.compositionFirstChange=null,C.chrome&&C.android?n.observer.flushSoon():n.inputState.compositionPendingChange?Promise.resolve().then(()=>n.observer.flush()):setTimeout(()=>{n.inputState.composing<0&&n.docView.hasComposition&&n.update([])},50))};Qe.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};He.beforeinput=(n,e)=>{var t,i;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(n.inputState.insertingText=e.data,n.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&n.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let l=o[0],a=n.posAtDOM(l.startContainer,l.startOffset),h=n.posAtDOM(l.endContainer,l.endOffset);return xl(n,{from:a,to:h,insert:n.state.toText(s)},null),!0}}let r;if(C.chrome&&C.android&&(r=bf.find(s=>s.inputType==e.inputType))&&(n.observer.delayAndroidKey(r.key,r.keyCode),r.key=="Backspace"||r.key=="Delete")){let s=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}return C.ios&&e.inputType=="deleteContentForward"&&n.observer.flushSoon(),C.safari&&e.inputType=="insertText"&&n.inputState.composing>=0&&setTimeout(()=>Qe.compositionend(n,e),20),!1};var mc=new Set;function _m(n){mc.has(n)||(mc.add(n),n.addEventListener("copy",()=>{}),n.addEventListener("cut",()=>{}))}c(_m,"firefoxCopyCutHack");var gc=["pre-wrap","normal","pre-line","break-spaces"],Zi=!1;function Sc(){Zi=!1}c(Sc,"clearHeightChangeFlag");var Bo=class{static{c(this,"HeightOracle")}constructor(e){this.lineWrapping=e,this.doc=z.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return gc.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,a=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=t,this.charWidth=i,this.textHeight=r,this.lineLength=s,a){this.heightSamples={};for(let h=0;h0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Sr&&(Zi=!0),this.height=e)}replace(e,t,i){return n.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,r){let s=this,o=i.doc;for(let l=r.length-1;l>=0;l--){let{fromA:a,toA:h,fromB:f,toB:u}=r[l],d=s.lineAt(a,K.ByPosNoHeight,i.setDoc(t),0,0),O=d.to>=h?d:s.lineAt(h,K.ByPosNoHeight,i,0,0);for(u+=O.to-h,h=O.to;l>0&&d.from<=r[l-1].toA;)a=r[l-1].fromA,f=r[l-1].fromB,l--,as*2){let l=e[t-1];l.break?e.splice(--t,1,l.left,null,l.right):e.splice(--t,1,l.left,l.right),i+=1+l.break,r-=l.size}else if(s>r*2){let l=e[i];l.break?e.splice(i,1,l.left,null,l.right):e.splice(i,1,l.left,l.right),i+=2+l.break,s-=l.size}else break;else if(r=s&&o(this.lineAt(0,K.ByPos,i,r,s))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more&&this.setMeasuredHeight(r),this.outdated=!1,this}toString(){return`block(${this.length})`}},qe=class n extends Ar{static{c(this,"HeightMapText")}constructor(e,t,i){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=i}mainBlock(e,t){return new Ue(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,i){let r=i[0];return i.length==1&&(r instanceof n||r instanceof kt&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof kt?r=new n(r.length,this.height,this.spaceAbove):r.height=this.height,this.outdated||(r.outdated=!1),r):Ae.of(i)}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more?this.setMeasuredHeight(r):(i||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},kt=class n extends Ae{static{c(this,"HeightMapGap")}constructor(e){super(e,0)}heightMetrics(e,t){let i=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,s=r-i+1,o,l=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*s);o=a/s,this.length>s+1&&(l=(this.height-a)/(this.length-s-1))}else o=this.height/s;return{firstLine:i,lastLine:r,perLine:o,perChar:l}}blockAt(e,t,i,r){let{firstLine:s,lastLine:o,perLine:l,perChar:a}=this.heightMetrics(t,r);if(t.lineWrapping){let h=r+(e0){let s=i[i.length-1];s instanceof n?i[i.length-1]=new n(s.length+r):i.push(null,new n(r-1))}if(e>0){let s=i[0];s instanceof n?i[0]=new n(e+s.length):i.unshift(new n(e-1),null)}return Ae.of(i)}decomposeLeft(e,t){t.push(new n(e-1),null)}decomposeRight(e,t){t.push(null,new n(this.length-e-1))}updateHeight(e,t=0,i=!1,r){let s=t+this.length;if(r&&r.from<=t+this.length&&r.more){let o=[],l=Math.max(t,r.from),a=-1;for(r.from>t&&o.push(new n(r.from-t-1).updateHeight(e,t));l<=s&&r.more;){let f=e.doc.lineAt(l).length;o.length&&o.push(null);let u=r.heights[r.index++],d=0;u<0&&(d=-u,u=r.heights[r.index++]),a==-1?a=u:Math.abs(u-a)>=Sr&&(a=-2);let O=new qe(f,u,d);O.outdated=!1,o.push(O),l+=f+1}l<=s&&o.push(null,new n(s-l).updateHeight(e,l));let h=Ae.of(o);return(a<0||Math.abs(h.height-this.height)>=Sr||Math.abs(a-this.heightMetrics(e,t).perLine)>=Sr)&&(Zi=!0),Xr(this,h)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},No=class extends Ae{static{c(this,"HeightMapBranch")}constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,t,i,r){let s=i+this.left.height;return el))return h;let f=t==K.ByPosNoHeight?K.ByPosNoHeight:K.ByPos;return a?h.join(this.right.lineAt(l,f,i,o,l)):this.left.lineAt(l,f,i,r,s).join(h)}forEachLine(e,t,i,r,s,o){let l=r+this.left.height,a=s+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,i,l,a,o);else{let h=this.lineAt(a,K.ByPos,i,r,s);e=e&&h.from<=t&&o(h),t>h.to&&this.right.forEachLine(h.to+1,t,i,l,a,o)}}replace(e,t,i){let r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,i));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let l of i)s.push(l);if(e>0&&yc(s,o-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,r=i+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?Ae.of(this.break?[e,null,t]:[e,t]):(this.left=Xr(this.left,e),this.right=Xr(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,r){let{left:s,right:o}=this,l=t+s.length+this.break,a=null;return r&&r.from<=t+s.length&&r.more?a=s=s.updateHeight(e,t,i,r):s.updateHeight(e,t,i),r&&r.from<=l+o.length&&r.more?a=o=o.updateHeight(e,l,i,r):o.updateHeight(e,l,i),a?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function yc(n,e){let t,i;n[e]==null&&(t=n[e-1])instanceof kt&&(i=n[e+1])instanceof kt&&n.splice(e-1,3,new kt(t.length+1+i.length))}c(yc,"mergeGaps");var Dm=5,Go=class n{static{c(this,"NodeBuilder")}constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let i=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof qe?r.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new qe(i-this.pos,-1,0)),this.writtenTo=i,t>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=Dm)&&this.addLineDeco(r,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new qe(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let i=new kt(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof qe)return e;let t=new qe(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,i){let r=this.ensureLine();r.length+=i,r.collapsed+=i,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+i}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof qe)&&!this.isCovered?this.nodes.push(new qe(0,-1,0)):(this.writtenTof.clientHeight||f.scrollWidth>f.clientWidth)&&u.overflow!="visible"){let d=f.getBoundingClientRect();s=Math.max(s,d.left),o=Math.min(o,d.right),l=Math.max(l,d.top),a=Math.min(h==n.parentNode?r.innerHeight:a,d.bottom)}h=u.position=="absolute"||u.position=="fixed"?f.offsetParent:f.parentNode}else if(h.nodeType==11)h=h.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:l-(t.top+e),bottom:Math.max(l,a)-(t.top+e)}}c(qm,"visiblePixelRange");function Bm(n){let e=n.getBoundingClientRect(),t=n.ownerDocument.defaultView||window;return e.left0&&e.top0}c(Bm,"inWindow");function Im(n,e){let t=n.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}c(Im,"fullPixelRange");var un=class{static{c(this,"LineGap")}constructor(e,t,i,r){this.from=e,this.to=t,this.size=i,this.displaySize=r}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;itypeof r!="function"&&r.class=="cm-lineWrapping");this.heightOracle=new Bo(i),this.stateDeco=Qc(t),this.heightMap=Ae.empty().applyChanges(this.stateDeco,z.empty,this.heightOracle.setDoc(t.doc),[new Fe(0,0,0,t.doc.length)]);for(let r=0;r<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());r++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=X.set(this.lineGaps.map(r=>r.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let r=i?t.head:t.anchor;if(!e.some(({from:s,to:o})=>r>=s&&r<=o)){let{from:s,to:o}=this.lineBlockAt(r);e.push(new Qi(s,o))}}return this.viewports=e.sort((i,r)=>i.from-r.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?bc:new Ho(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(rn(e,this.scaler))})}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=Qc(this.state);let r=e.changedRanges,s=Fe.extendWithRanges(r,Lm(i,this.stateDeco,e?e.changes:Se.empty(this.state.doc.length))),o=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);Sc(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||Zi)&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let a=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let h=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(h||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(lf)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,t=e.contentDOM,i=window.getComputedStyle(t),r=this.heightOracle,s=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?q.RTL:q.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",l=t.getBoundingClientRect(),a=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let h=0,f=0;if(l.width&&l.height){let{scaleX:w,scaleY:k}=_c(t,l);(w>.005&&Math.abs(this.scaleX-w)>.005||k>.005&&Math.abs(this.scaleY-k)>.005)&&(this.scaleX=w,this.scaleY=k,h|=16,o=a=!0)}let u=(parseInt(i.paddingTop)||0)*this.scaleY,d=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=u||this.paddingBottom!=d)&&(this.paddingTop=u,this.paddingBottom=d,h|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,h|=16);let O=Vc(this.view.contentDOM,!1).y;O!=this.scrollParent&&(this.scrollParent=O,this.scrollAnchorHeight=-1,this.scrollOffset=0);let p=this.getScrollOffset();this.scrollOffset!=p&&(this.scrollAnchorHeight=-1,this.scrollOffset=p),this.scrolledToBottom=Bc(this.scrollParent||e.win);let m=(this.printing?Im:qm)(t,this.paddingTop),g=m.top-this.pixelViewport.top,y=m.bottom-this.pixelViewport.bottom;this.pixelViewport=m;let x=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(x!=this.inView&&(this.inView=x,x&&(a=!0)),!this.inView&&!this.scrollTarget&&!Bm(e.dom))return 0;let Q=l.width;if((this.contentDOMWidth!=Q||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,h|=16),a){let w=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(w)&&(o=!0),o||r.lineWrapping&&Math.abs(Q-this.contentDOMWidth)>r.charWidth){let{lineHeight:k,charWidth:$,textHeight:E}=e.docView.measureTextSize();o=k>0&&r.refresh(s,k,$,E,Math.max(5,Q/$),w),o&&(e.docView.minWidth=0,h|=16)}g>0&&y>0?f=Math.max(g,y):g<0&&y<0&&(f=Math.min(g,y)),Sc();for(let k of this.viewports){let $=k.from==this.viewport.from?w:e.docView.measureVisibleLineHeights(k);this.heightMap=(o?Ae.empty().applyChanges(this.stateDeco,z.empty,this.heightOracle,[new Fe(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new Io(k.from,$))}Zi&&(h|=2)}let Z=!this.viewportIsAppropriate(this.viewport,f)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return Z&&(h&2&&(h|=this.updateScaler()),this.viewport=this.getViewport(f,this.scrollTarget),h|=this.updateForViewport()),(h&2||Z)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,a=new Qi(r.lineAt(o-i*1e3,K.ByHeight,s,0,0).from,r.lineAt(l+(1-i)*1e3,K.ByHeight,s,0,0).to);if(t){let{head:h}=t.range;if(ha.to){let f=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),u=r.lineAt(h,K.ByPos,s,0,0),d;t.y=="center"?d=(u.top+u.bottom)/2-f/2:t.y=="start"||t.y=="nearest"&&h=l+Math.max(10,Math.min(i,250)))&&r>o-2*1e3&&s>1,o=r<<1;if(this.defaultTextDirection!=q.LTR&&!i)return[];let l=[],a=c((f,u,d,O)=>{if(u-ff&&yy.from>=d.from&&y.to<=d.to&&Math.abs(y.from-f)y.fromx));if(!g){if(uQ.from<=u&&Q.to>=u)){let Q=t.moveToLineBoundary(b.cursor(u),!1,!0).head;Q>f&&(u=Q)}let y=this.gapSize(d,f,u,O),x=i||y<2e6?y:2e6;g=new un(f,u,y,x)}l.push(g)},"addGap"),h=c(f=>{if(f.length2e6)for(let k of e)k.from>=f.from&&k.fromf.from&&a(f.from,O,f,u),pt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let i=[];_.spans(t,this.viewport.from,this.viewport.to,{span(s,o){i.push({from:s,to:o})},point(){}},20);let r=0;if(i.length!=this.visibleRanges.length)r=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||rn(this.heightMap.lineAt(e,K.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||rn(this.heightMap.lineAt(this.scaler.fromDOM(e),K.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return rn(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Qi=class{static{c(this,"Viewport")}constructor(e,t){this.from=e,this.to=t}};function Nm(n,e,t){let i=[],r=n,s=0;return _.spans(t,n,e,{span(){},point(o,l){o>r&&(i.push({from:r,to:o}),s+=o-r),r=l}},20),r=1)return e[e.length-1].to;let i=Math.floor(n*t);for(let r=0;;r++){let{from:s,to:o}=e[r],l=o-s;if(i<=l)return s+i;i-=l}}c(fr,"findPosition");function ur(n,e){let t=0;for(let{from:i,to:r}of n.ranges){if(e<=r){t+=e-i;break}t+=r-i}return t/n.total}c(ur,"findFraction");function Gm(n,e){for(let t of n)if(e(t))return t}c(Gm,"find");var bc={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(n){return n==this}};function Qc(n){let e=n.facet(Vr).filter(i=>typeof i!="function"),t=n.facet(bl).filter(i=>typeof i!="function");return t.length&&e.push(_.join(t)),e}c(Qc,"staticDeco");var Ho=class n{static{c(this,"BigScaler")}constructor(e,t,i){let r=0,s=0,o=0;this.viewports=i.map(({from:l,to:a})=>{let h=t.lineAt(l,K.ByPos,e,0,0).top,f=t.lineAt(a,K.ByPos,e,0,0).bottom;return r+=f-h,{from:l,to:a,top:h,bottom:f,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let l of this.viewports)l.domTop=o+(l.top-s)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(e){for(let t=0,i=0,r=0;;t++){let s=tt.from==e.viewports[i].from&&t.to==e.viewports[i].to):!1}};function rn(n,e){if(e.scale==1)return n;let t=e.toDOM(n.top),i=e.toDOM(n.bottom);return new Ue(n.from,n.length,t,i-t,Array.isArray(n._content)?n._content.map(r=>rn(r,e)):n._content)}c(rn,"scaleBlock");var dr=v.define({combine:c(n=>n.join(" "),"combine")}),Ko=v.define({combine:c(n=>n.indexOf(!0)>-1,"combine")}),Jo=Le.newName(),Tf=Le.newName(),Cf=Le.newName(),Zf={"&light":"."+Tf,"&dark":"."+Cf};function el(n,e,t){return new Le(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,r=>{if(r=="&")return n;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):n+" "+i}})}c(el,"buildTheme");var Um=el("."+Jo,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},".cm-panels-top":{top:"0"},".cm-panels-bottom":{bottom:"0"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Zf),Fm={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Oo=C.ie&&C.ie_version<=11,tl=class{static{c(this,"DOMObserver")}constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new ko,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(C.ie&&C.ie_version<=11||C.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&C.android&&e.constructor.EDIT_CONTEXT!==!1&&!(C.chrome&&C.chrome_version<126)&&(this.editContext=new il(e),e.state.facet(pt)&&(e.contentDOM.editContext=this.editContext.editContext)),Oo&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,r=this.selectionRange;if(i.state.facet(pt)?i.root.activeElement!=this.dom:!on(this.dom,r))return;let s=r.anchorNode&&i.docView.tile.nearest(r.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(C.ie&&C.ie_version<=11||C.android&&C.chrome)&&!i.state.selection.main.empty&&r.focusNode&&ln(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=gn(e.root);if(!t)return!1;let i=C.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&Hm(this.view,t)||t;if(!i||this.selectionRange.eq(i))return!1;let r=on(this.dom,i);return r&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&$i(this.dom,s.key,s.keyCode))},"flush");this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,i=-1,r=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(r=!0),t==-1?{from:t,to:i}=o:(t=Math.min(o.from,t),i=Math.max(o.to,i)))}return{from:t,to:i,typeOver:r}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),r=this.selectionChanged&&on(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new Vo(this.view,e,t,i);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let i=this.view.state,r=Sf(this.view,t);return this.view.state==i&&(t.domChanged||t.newSel&&!Zr(this.view.state.selection,t.newSel.main))&&this.view.update([]),r}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let i=xc(t,e.previousSibling||e.target.previousSibling,-1),r=xc(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(pt)!=e.state.facet(pt)&&(e.view.contentDOM.editContext=e.state.facet(pt)?this.editContext.editContext:null))}destroy(){var e,t,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function xc(n,e,t){for(;e;){let i=ee.get(e);if(i&&i.parent==n)return i;let r=e.parentNode;e=r!=n.dom?r:t>0?e.nextSibling:e.previousSibling}return null}c(xc,"findChild");function wc(n,e){let t=e.startContainer,i=e.startOffset,r=e.endContainer,s=e.endOffset,o=n.docView.domAtPos(n.state.selection.main.anchor,1);return ln(o.node,o.offset,r,s)&&([t,i,r,s]=[r,s,t,i]),{anchorNode:t,anchorOffset:i,focusNode:r,focusOffset:s}}c(wc,"buildSelectionRangeFromRange");function Hm(n,e){if(e.getComposedRanges){let r=e.getComposedRanges(n.root)[0];if(r)return wc(n,r)}let t=null;function i(r){r.preventDefault(),r.stopImmediatePropagation(),t=r.getTargetRanges()[0]}return c(i,"read"),n.contentDOM.addEventListener("beforeinput",i,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",i,!0),t?wc(n,t):null}c(Hm,"safariSelectionRangeHack");var il=class{static{c(this,"EditContextManager")}constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let r=e.state.selection.main,{anchor:s,head:o}=r,l=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:l,drifted:!1});let h=a-l>i.text.length;l==this.from&&sthis.to&&(a=s);let f=yf(e.state.sliceDoc(l,a),i.text,(h?r.from:r.to)-l,h?"end":null);if(!f){let d=b.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));Zr(d,r)||e.dispatch({selection:d,userEvent:"select"});return}let u={from:f.from+l,to:f.toA+l,insert:z.of(i.text.slice(f.from,f.toB).split(` +`))};if((C.mac||C.android)&&u.from==o-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(u={from:l,to:a,insert:z.of([i.text.replace("."," ")])}),this.pendingContextChange=u,!e.state.readOnly){let d=this.to-this.from+(u.to-u.from+u.insert.length);xl(e,u,b.single(this.toEditorPos(i.selectionStart,d),this.toEditorPos(i.selectionEnd,d)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),u.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,i.updateRangeStart-1),Math.min(t.text.length,i.updateRangeStart+1)))&&this.handlers.compositionend(i)},this.handlers.characterboundsupdate=i=>{let r=[],s=null;for(let o=this.toEditorPos(i.rangeStart),l=this.toEditorPos(i.rangeEnd);o{let r=[];for(let s of i.getTextFormats()){let o=s.underlineStyle,l=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(l)){let a=this.toEditorPos(s.rangeStart),h=this.toEditorPos(s.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)t.addEventListener(i,this.handlers[i]);this.measureReq={read:c(i=>{let r=gn(i.root);r&&r.rangeCount&&this.editContext.updateSelectionBounds(r.getRangeAt(0).getBoundingClientRect())},"read")}}applyEdits(e){let t=0,i=!1,r=this.pendingContextChange;return e.changes.iterChanges((s,o,l,a,h)=>{if(i)return;let f=h.length-(o-s);if(r&&o>=r.to)if(r.from==s&&r.to==o&&r.insert.eq(h)){r=this.pendingContextChange=null,t+=f,this.to+=f;return}else r=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=f,this.to+=f;else if(sthis.to||this.to-this.from+h.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),h.toString()),this.to+=f}t+=f}),r&&!i&&this.revertPending(e.state),!i}update(e){let t=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(r=>!r.isUserEvent("input.type")&&r.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),r=this.toContextPos(t.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=r)&&this.editContext.updateSelection(i,r)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},P=class n{static{c(this,"EditorView")}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:i}=e;this.dispatchTransactions=e.dispatchTransactions||i&&(r=>r.forEach(s=>i(s,this)))||(r=>this.update(r)),this.dispatch=this.dispatch.bind(this),this._root=e.root||qp(e.parent)||document,this.viewState=new Rr(this,e.state||G.create(e)),e.scrollTo&&e.scrollTo.is(ar)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(bi).map(r=>new hn(r));for(let r of this.plugins)r.update(this);this.observer=new tl(this),this.inputState=new Do(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Tr(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof re?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,r,s=this.state;for(let d of e){if(d.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=d.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,l=0,a=null;e.some(d=>d.annotation($f))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=vf(s,o),a||(l=1));let h=this.observer.delayedAndroidKey,f=null;if(h?(this.observer.clearDelayedAndroidKey(),f=this.observer.readChange(),(f&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(f=null)):this.observer.clear(),s.facet(G.phrases)!=this.state.facet(G.phrases))return this.setState(s);r=vr.create(this,s,e),r.flags|=l;let u=this.viewState.scrollTarget;try{this.updateState=2;for(let d of e){if(u&&(u=u.map(d.changes)),d.scrollIntoView){let{main:O}=d.state.selection,{x:p,y:m}=this.state.facet(n.cursorScrollMargin);u=new an(O.empty?O:b.cursor(O.head,O.head>O.anchor?-1:1),"nearest","nearest",m,p)}for(let O of d.effects)O.is(ar)&&(u=O.value.clip(this.state))}this.viewState.update(r,u),this.bidiCache=Mr.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(nn)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(d=>d.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(dr)!=r.state.facet(dr)&&(this.viewState.mustMeasureContent=!0),(t||i||u||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!r.empty)for(let d of this.state.facet(To))try{d(r)}catch(O){fe(this.state,O,"update listener")}(a||f)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),f&&!Sf(this,f)&&h.force&&$i(this.contentDOM,h.key,h.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new Rr(this,e),this.plugins=e.facet(bi).map(i=>new hn(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new Tr(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(bi),i=e.state.facet(bi);if(t!=i){let r=[];for(let s of i){let o=t.indexOf(s);if(o<0)r.push(new hn(s));else{let l=this.plugins[o];l.mustUpdate=e,r.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,i=this.viewState.scrollParent,r=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(r-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0)if(Bc(i||this.win))s=-1,o=this.viewState.heightMap.height;else{let O=this.viewState.scrollAnchorAt(r);s=O.from,o=O.top}this.updateState=1;let a=this.viewState.measure();if(!a&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let h=[];a&4||([this.measureRequests,h]=[h,this.measureRequests]);let f=h.map(O=>{try{return O.read(this)}catch(p){return fe(this.state,p),kc}}),u=vr.create(this,this.state,[]),d=!1;u.flags|=a,t?t.flags|=a:t=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),d=this.docView.update(u),d&&this.docViewUpdate());for(let O=0;O1||p<-1)&&!(C.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(i==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){r=r+p,i?s<0?i.scrollTop=i.scrollHeight:i.scrollTop+=p:this.win.scrollBy(0,p),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(To))l(t)}get themeClasses(){return Jo+" "+(this.state.facet(Ko)?Cf:Tf)+" "+this.state.facet(dr)}updateAttrs(){let e=$c(this,cf,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(pt)?"true":"false",class:"cm-content",style:`${C.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),$c(this,yl,t);let i=this.observer.ignore(()=>{let r=nc(this.contentDOM,this.contentAttrs,t),s=nc(this.dom,this.editorAttrs,e);return r||s});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let r of i.effects)if(r.is(n.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(nn);let e=this.state.facet(n.cspNonce);Le.mount(this.root,this.styleModules.concat(Um).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return uo(this,e,hc(this,e,t,i))}moveByGroup(e,t){return uo(this,e,hc(this,e,t,i=>ym(this,e.head,i)))}visualLineSide(e,t){let i=this.bidiSpans(e),r=this.textDirectionAt(e.from),s=i[t?i.length-1:0];return b.cursor(s.side(t,r)+e.from,s.forward(!t,r)?1:-1)}moveToLineBoundary(e,t,i=!0){return Sm(this,e,t,i)}moveVertically(e,t,i){return uo(this,e,bm(this,e,t,i))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let i=zo(this,e,t);return i&&i.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),zo(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.state.doc.lineAt(e),r=this.bidiSpans(i),s=r[Ie.find(r,e-i.from,-1,t)];return this.docView.coordsAt(e,t,s.dir==q.RTL)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(of)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Km)return Hc(e.length);let t=this.textDirectionAt(e.from),i;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||Fc(s.isolates,i=oc(this,e))))return s.order;i||(i=oc(this,e));let r=Kp(e.text,t,i);return this.bidiCache.push(new Mr(e.from,e.to,t,i,!0,r)),r}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||C.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{qc(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){var i,r,s,o;return ar.of(new an(typeof e=="number"?b.cursor(e):e,(i=t.y)!==null&&i!==void 0?i:"nearest",(r=t.x)!==null&&r!==void 0?r:"nearest",(s=t.yMargin)!==null&&s!==void 0?s:5,(o=t.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,i=this.viewState.scrollAnchorAt(e);return ar.of(new an(b.cursor(i.from),"start","start",i.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return te.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return te.define(()=>({}),{eventObservers:e})}static theme(e,t){let i=Le.newName(),r=[dr.of(i),nn.of(el(`.${i}`,e))];return t&&t.dark&&r.push(Ko.of(!0)),r}static baseTheme(e){return De.lowest(nn.of(el("."+Jo,e,Zf)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),r=i&&ee.get(i)||ee.get(e);return((t=r?.root)===null||t===void 0?void 0:t.view)||null}};P.styleModule=nn;P.inputHandler=rf;P.clipboardInputFilter=gl;P.clipboardOutputFilter=Sl;P.scrollHandler=af;P.focusChangeEffect=sf;P.perLineTextDirection=of;P.exceptionSink=nf;P.updateListener=To;P.editable=pt;P.mouseSelectionStyle=tf;P.dragMovesSelection=ef;P.clickAddsSelectionRange=Jc;P.decorations=Vr;P.blockWrappers=ff;P.outerDecorations=bl;P.atomicRanges=yn;P.bidiIsolatedRanges=uf;P.cursorScrollMargin=v.define({combine:c(n=>{let e=5,t=5;for(let i of n)typeof i=="number"?e=t=i:{x:e,y:t}=i;return{x:e,y:t}},"combine")});P.scrollMargins=df;P.darkTheme=Ko;P.cspNonce=v.define({combine:c(n=>n.length?n[0]:"","combine")});P.contentAttributes=yl;P.editorAttributes=cf;P.lineWrapping=P.contentAttributes.of({class:"cm-lineWrapping"});P.announce=R.define();var Km=4096,kc={},Mr=class n{static{c(this,"CachedOrder")}constructor(e,t,i,r,s,o){this.from=e,this.to=t,this.dir=i,this.isolates=r,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let i=[],r=e.length?e[e.length-1].dir:q.LTR;for(let s=Math.max(0,e.length-10);s=0;r--){let s=i[r],o=typeof s=="function"?s(n):s;o&&Ol(o,t)}return t}c($c,"attrsFromFacet");var Jm=C.mac?"mac":C.windows?"win":C.linux?"linux":"key";function eg(n,e){let t=n.split(/-(?!$)/),i=t[t.length-1];i=="Space"&&(i=" ");let r,s,o,l;for(let a=0;ai.concat(r),[]))),t}c(Xf,"getKeymap");function Af(n,e,t){return Rf(Xf(n.state),e,n,t)}c(Af,"runScopeHandlers");var wt=null,ig=4e3;function ng(n,e=Jm){let t=Object.create(null),i=Object.create(null),r=c((o,l)=>{let a=i[o];if(a==null)i[o]=l;else if(a!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},"checkPrefix"),s=c((o,l,a,h,f)=>{var u,d;let O=t[o]||(t[o]=Object.create(null)),p=l.split(/ (?!$)/).map(y=>eg(y,e));for(let y=1;y{let Z=wt={view:Q,prefix:x,scope:o};return setTimeout(()=>{wt==Z&&(wt=null)},ig),!0}]})}let m=p.join(" ");r(m,!1);let g=O[m]||(O[m]={preventDefault:!1,stopPropagation:!1,run:((d=(u=O._any)===null||u===void 0?void 0:u.run)===null||d===void 0?void 0:d.slice())||[]});a&&g.run.push(a),h&&(g.preventDefault=!0),f&&(g.stopPropagation=!0)},"add");for(let o of n){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let h of l){let f=t[h]||(t[h]=Object.create(null));f._any||(f._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:u}=o;for(let d in f)f[d].run.push(O=>u(O,nl))}let a=o[e]||o.key;if(a)for(let h of l)s(h,a,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(h,"Shift-"+a,o.shift,o.preventDefault,o.stopPropagation)}return t}c(ng,"buildKeymap");var nl=null;function Rf(n,e,t,i){nl=e;let r=Kh(e),s=ce(r,0),o=Xe(s)==r.length&&r!=" ",l="",a=!1,h=!1,f=!1;wt&&wt.view==t&&wt.scope==i&&(l=wt.prefix+" ",Qf.indexOf(e.keyCode)<0&&(h=!0,wt=null));let u=new Set,d=c(g=>{if(g){for(let y of g.run)if(!u.has(y)&&(u.add(y),y(t)))return g.stopPropagation&&(f=!0),!0;g.preventDefault&&(g.stopPropagation&&(f=!0),h=!0)}return!1},"runFor"),O=n[i],p,m;return O&&(d(O[l+Or(r,e,!o)])?a=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(C.windows&&e.ctrlKey&&e.altKey)&&!(C.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(p=Ot[e.keyCode])&&p!=r?(d(O[l+Or(p,e,!0)])||e.shiftKey&&(m=Si[e.keyCode])!=r&&m!=p&&d(O[l+Or(m,e,!1)]))&&(a=!0):o&&e.shiftKey&&d(O[l+Or(r,e,!0)])&&(a=!0),!a&&d(O._any)&&(a=!0)),h&&(a=!0),a&&f&&e.stopPropagation(),nl=null,a}c(Rf,"runHandlers");var Ft=class n{static{c(this,"RectangleMarker")}constructor(e,t,i,r,s){this.className=e,this.left=t,this.top=i,this.width=r,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,i){if(i.empty){let r=e.coordsAtPos(i.head,i.assoc||1);if(!r)return[];let s=Mf(e);return[new n(t,r.left-s.left,r.top-s.top,null,r.bottom-r.top)]}else return rg(e,t,i)}};function Mf(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==q.LTR?e.left:e.right-n.scrollDOM.clientWidth*n.scaleX)-n.scrollDOM.scrollLeft*n.scaleX,top:e.top-n.scrollDOM.scrollTop*n.scaleY}}c(Mf,"getBase");function Pc(n,e,t,i){let r=n.coordsAtPos(e,t*2);if(!r)return i;let s=n.dom.getBoundingClientRect(),o=(r.top+r.bottom)/2,l=n.posAtCoords({x:s.left+1,y:o}),a=n.posAtCoords({x:s.right-1,y:o});return l==null||a==null?i:{from:Math.max(i.from,Math.min(l,a)),to:Math.min(i.to,Math.max(l,a))}}c(Pc,"wrappedLine");function rg(n,e,t){if(t.to<=n.viewport.from||t.from>=n.viewport.to)return[];let i=Math.max(t.from,n.viewport.from),r=Math.min(t.to,n.viewport.to),s=n.textDirection==q.LTR,o=n.contentDOM,l=o.getBoundingClientRect(),a=Mf(n),h=o.querySelector(".cm-line"),f=h&&window.getComputedStyle(h),u=l.left+(f?parseInt(f.paddingLeft)+Math.min(0,parseInt(f.textIndent)):0),d=l.right-(f?parseInt(f.paddingRight):0),O=Yo(n,i,1),p=Yo(n,r,-1),m=O.type==ue.Text?O:null,g=p.type==ue.Text?p:null;if(m&&(n.lineWrapping||O.widgetLineBreaks)&&(m=Pc(n,i,1,m)),g&&(n.lineWrapping||p.widgetLineBreaks)&&(g=Pc(n,r,-1,g)),m&&g&&m.from==g.from&&m.to==g.to)return x(Q(t.from,t.to,m));{let w=m?Q(t.from,null,m):Z(O,!1),k=g?Q(null,t.to,g):Z(p,!0),$=[];return(m||O).to<(g||p).from-(m&&g?1:0)||O.widgetLineBreaks>1&&w.bottom+n.defaultLineHeight/2M&&L.from=ge)break;We>H&&Y(Math.max(he,H),w==null&&he<=M,Math.min(We,ge),k==null&&We>=B,rt.dir)}if(H=Te.to+1,H>=ge)break}return N.length==0&&Y(M,w==null,B,k==null,n.textDirection),{top:E,bottom:W,horizontal:N}}c(Q,"drawForLine");function Z(w,k){let $=l.top+(k?w.top:w.bottom);return{top:$,bottom:$,horizontal:[]}}c(Z,"drawForWidget")}c(rg,"rectanglesForRange");function sg(n,e){return n.constructor==e.constructor&&n.eq(e)}c(sg,"sameMarker");var rl=class{static{c(this,"LayerView")}constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(yr)!=e.state.facet(yr)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,i=e.facet(yr);for(;t!sg(t,this.drawn[i]))){let t=this.dom.firstChild,i=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[i].constructor&&r.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e,C.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},yr=v.define();function jf(n){return[te.define(e=>new rl(e,n)),yr.of(n)]}c(jf,"layer");var Xi=v.define({combine(n){return pe(n,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:c((e,t)=>Math.min(e,t),"cursorBlinkRate"),drawRangeCursor:c((e,t)=>e||t,"drawRangeCursor")})}});function Ef(n={}){return[Xi.of(n),og,lg,hg,lf.of(!0)]}c(Ef,"drawSelection");function Yf(n){return n.startState.facet(Xi)!=n.state.facet(Xi)}c(Yf,"configChanged");var og=jf({above:!0,markers(n){let{state:e}=n,t=e.facet(Xi),i=[];for(let r of e.selection.ranges){let s=r==e.selection.main;if(r.empty||t.drawRangeCursor&&!(s&&C.ios&&t.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=r.empty?r:b.cursor(r.head,r.assoc);for(let a of Ft.forRange(n,o,l))i.push(a)}}return i},update(n,e){n.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=Yf(n);return t&&Tc(n.state,e),n.docChanged||n.selectionSet||t},mount(n,e){Tc(e.state,n)},class:"cm-cursorLayer"});function Tc(n,e){e.style.animationDuration=n.facet(Xi).cursorBlinkRate+"ms"}c(Tc,"setBlinkRate");var lg=jf({above:!1,markers(n){let e=[],{main:t,ranges:i}=n.state.selection;for(let r of i)if(!r.empty)for(let s of Ft.forRange(n,"cm-selectionBackground",r))e.push(s);if(C.ios&&!t.empty&&n.state.facet(Xi).iosSelectionHandles){for(let r of Ft.forRange(n,"cm-selectionHandle cm-selectionHandle-start",b.cursor(t.from,1)))e.push(r);for(let r of Ft.forRange(n,"cm-selectionHandle cm-selectionHandle-end",b.cursor(t.to,1)))e.push(r)}return e},update(n,e){return n.docChanged||n.selectionSet||n.viewportChanged||Yf(n)},class:"cm-selectionLayer"}),ag=C.gecko&&C.gecko_version==153?"#ffffff01":"transparent",hg=De.highest(P.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:`${ag} !important`},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),zf=R.define({map(n,e){return n==null?null:e.mapPos(n)}}),sn=ie.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((t,i)=>i.is(zf)?i.value:t,n)}}),cg=te.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var e;let t=n.state.field(sn);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(n.startState.field(sn)!=t||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:n}=this,e=n.state.field(sn),t=e!=null&&n.coordsAtPos(e);if(!t)return null;let i=n.scrollDOM.getBoundingClientRect();return{left:t.left-i.left+n.scrollDOM.scrollLeft*n.scaleX,top:t.top-i.top+n.scrollDOM.scrollTop*n.scaleY,height:t.bottom-t.top}}drawCursor(n){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;n?(this.cursor.style.left=n.left/e+"px",this.cursor.style.top=n.top/t+"px",this.cursor.style.height=n.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(sn)!=n&&this.view.dispatch({effects:zf.of(n)})}},{eventObservers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Wf(){return[sn,cg]}c(Wf,"dropCursor");function Cc(n,e,t,i,r){e.lastIndex=0;for(let s=n.iterRange(t,i),o=t,l;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;l=e.exec(s.value);)r(o+l.index,l)}c(Cc,"iterMatches");function fg(n,e){let t=n.visibleRanges;if(t.length==1&&t[0].from==n.viewport.from&&t[0].to==n.viewport.to)return t;let i=[];for(let{from:r,to:s}of t)r=Math.max(n.state.doc.lineAt(r).from,r-e),s=Math.min(n.state.doc.lineAt(s).to,s+e),i.length&&i[i.length-1].to>=r?i[i.length-1].to=s:i.push({from:r,to:s});return i}c(fg,"matchRanges");var sl=class{static{c(this,"MatchDecorator")}constructor(e){let{regexp:t,decoration:i,decorate:r,boundary:s,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(l,a,h,f)=>r(f,h,h+l[0].length,l,a);else if(typeof i=="function")this.addMatch=(l,a,h,f)=>{let u=i(l,a,h);u&&f(h,h+l[0].length,u)};else if(i)this.addMatch=(l,a,h,f)=>f(h,h+l[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let t=new Ze,i=t.add.bind(t);for(let{from:r,to:s}of fg(e,this.maxLength))Cc(e.state.doc,this.regexp,r,s,(o,l)=>this.addMatch(l,e,o,i));return t.finish()}updateDeco(e,t){let i=1e9,r=-1;return e.docChanged&&e.changes.iterChanges((s,o,l,a)=>{a>=e.view.viewport.from&&l<=e.view.viewport.to&&(i=Math.min(l,i),r=Math.max(a,r))}),e.viewportMoved||r-i>1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),i,r):t}updateRange(e,t,i,r){for(let s of e.visibleRanges){let o=Math.max(s.from,i),l=Math.min(s.to,r);if(l>=o){let a=e.state.doc.lineAt(o),h=a.toa.from;o--)if(this.boundary.test(a.text[o-1-a.from])){f=o;break}for(;ld.push(y.range(m,g)),"add");if(a==h)for(this.regexp.lastIndex=f-a.from;(O=this.regexp.exec(a.text))&&O.indexthis.addMatch(g,e,m,p));t=t.update({filterFrom:f,filterTo:u,filter:c((m,g)=>mu,"filter"),add:d})}}return t}},ol=/x/.unicode!=null?"gu":"g",ug=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,ol),dg={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},po=null;function Og(){var n;if(po==null&&typeof document<"u"&&document.body){let e=document.body.style;po=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return po||!1}c(Og,"supportsTabSize");var br=v.define({combine(n){let e=pe(n,{render:null,specialChars:ug,addSpecialChars:null});return(e.replaceTabs=!Og())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,ol)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,ol)),e}});function _f(n={}){return[br.of(n),pg()]}c(_f,"highlightSpecialChars");var Zc=null;function pg(){return Zc||(Zc=te.fromClass(class{constructor(n){this.view=n,this.decorations=X.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(br)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new sl({regexp:n.specialChars,decoration:c((e,t,i)=>{let{doc:r}=t.state,s=ce(e[0],0);if(s==9){let o=r.lineAt(i),l=t.state.tabSize,a=dt(o.text,l,i-o.from);return X.replace({widget:new al((l-a%l)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=X.replace({widget:new ll(n,s)}))},"decoration"),boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(br);n.startState.facet(br)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:c(n=>n.decorations,"decorations")}))}c(pg,"specialCharPlugin");var mg="\u2022";function gg(n){return n>=32?mg:n==10?"\u2424":String.fromCharCode(9216+n)}c(gg,"placeholder$1");var ll=class extends be{static{c(this,"SpecialCharWidget")}constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=gg(this.code),i=e.state.phrase("Control character")+" "+(dg[this.code]||"0x"+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,i,t);if(r)return r;let s=document.createElement("span");return s.textContent=t,s.title=i,s.setAttribute("aria-label",i),s.className="cm-specialChar",s}ignoreEvent(){return!1}},al=class extends be{static{c(this,"TabWidget")}constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function Vf(){return yg}c(Vf,"highlightActiveLine");var Sg=X.line({class:"cm-activeLine"}),yg=te.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,t=[];for(let i of n.state.selection.ranges){let r=n.lineBlockAt(i.head);r.from>e&&(t.push(Sg.range(r.from)),e=r.from)}return X.set(t)}},{decorations:c(n=>n.decorations,"decorations")});var hl=2e3;function bg(n,e,t){let i=Math.min(e.line,t.line),r=Math.max(e.line,t.line),s=[];if(e.off>hl||t.off>hl||e.col<0||t.col<0){let o=Math.min(e.off,t.off),l=Math.max(e.off,t.off);for(let a=i;a<=r;a++){let h=n.doc.line(a);h.length<=l&&s.push(b.range(h.from+o,h.to+l))}}else{let o=Math.min(e.col,t.col),l=Math.max(e.col,t.col);for(let a=i;a<=r;a++){let h=n.doc.line(a),f=or(h.text,o,n.tabSize,!0);if(f<0)s.push(b.cursor(h.to));else{let u=or(h.text,l,n.tabSize);s.push(b.range(h.from+f,h.from+u))}}}return s}c(bg,"rectangleFor");function Qg(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}c(Qg,"absoluteColumn");function Xc(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),i=n.state.doc.lineAt(t),r=t-i.from,s=r>hl?-1:r==i.length?Qg(n,e.clientX):dt(i.text,n.state.tabSize,t-i.from);return{line:i.number,col:s,off:r}}c(Xc,"getPos");function xg(n,e){let t=Xc(n,e),i=n.state.selection;return t?{update(r){if(r.docChanged){let s=r.changes.mapPos(r.startState.doc.line(t.line).from),o=r.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},i=i.map(r.changes)}},get(r,s,o){let l=Xc(n,r);if(!l)return i;let a=bg(n.state,t,l);return a.length?o?b.create(a.concat(i.ranges)):b.create(a):i}}:null}c(xg,"rectangleSelectionStyle");function Df(n){let e=n?.eventFilter||(t=>t.altKey&&t.button==0);return P.mouseSelectionStyle.of((t,i)=>e(i)?xg(t,i):null)}c(Df,"rectangularSelection");var wg={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},kg={style:"cursor: crosshair"};function Lf(n={}){let[e,t]=wg[n.key||"Alt"],i=te.fromClass(class{constructor(r){this.view=r,this.isDown=!1}set(r){this.isDown!=r&&(this.isDown=r,this.view.update([]))}},{eventObservers:{keydown(r){this.set(r.keyCode==e||t(r))},keyup(r){(r.keyCode==e||!t(r))&&this.set(!1)},mousemove(r){this.set(t(r))}}});return[i,P.contentAttributes.of(r=>{var s;return!((s=r.plugin(i))===null||s===void 0)&&s.isDown?kg:null})]}c(Lf,"crosshairCursor");var pr="-10000px",jr=class{static{c(this,"TooltipViewManager")}constructor(e,t,i,r){this.facet=t,this.createTooltipView=i,this.removeTooltipView=r,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=i(o,s))}update(e,t){var i;let r=e.state.facet(this.facet),s=r.filter(a=>a);if(r===this.input){for(let a of this.tooltipViews)a.update&&a.update(e);return!1}let o=[],l=t?[]:null;for(let a=0;at[h]=a),t.length=l.length),this.input=r,this.tooltips=s,this.tooltipViews=o,!0}};function $g(n){let e=n.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}c($g,"windowSpace");var mo=v.define({combine:c(n=>{var e,t,i;return{position:C.ios?"absolute":((e=n.find(r=>r.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=n.find(r=>r.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=n.find(r=>r.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||$g}},"combine")}),Ac=new WeakMap,wl=te.fromClass(class{constructor(n){this.view=n,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=n.state.facet(mo);this.position=e.position,this.parent=e.parent,this.classes=n.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new jr(n,bn,(t,i)=>this.createTooltip(t,i),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),n.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let n of this.manager.tooltipViews)this.intersectionObserver.observe(n.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(n){n.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(n,this.above);e&&this.observeIntersection();let t=e||n.geometryChanged,i=n.state.facet(mo);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let r of this.manager.tooltipViews)r.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let r of this.manager.tooltipViews)this.container.appendChild(r.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(n,e){let t=n.create(this.view),i=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),n.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let r=document.createElement("div");r.className="cm-tooltip-arrow",t.dom.appendChild(r)}return t.dom.style.position=this.position,t.dom.style.top=pr,t.dom.style.left="0px",this.container.insertBefore(t.dom,i),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var n,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(n=i.destroy)===null||n===void 0||n.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let n=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(C.safari){let o=s.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(n=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:n,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),r=Ql(this.view);return{visible:{left:i.left+r.left,top:i.top+r.top,right:i.right-r.right,bottom:i.bottom-r.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let l=this.manager.tooltipViews[o];return l.getCoords?l.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(mo).tooltipSpace(this.view),scaleX:n,scaleY:e,makeAbsolute:t}}writeMeasure(n){var e;if(n.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let l of this.manager.tooltipViews)l.dom.style.position="absolute"}let{visible:t,space:i,scaleX:r,scaleY:s}=n,o=[];for(let l=0;l=Math.min(t.bottom,i.bottom)||u.rightMath.min(t.right,i.right)+.1)){f.style.top=pr;continue}let O=a.arrow?h.dom.querySelector(".cm-tooltip-arrow"):null,p=O?7:0,m=d.right-d.left,g=(e=Ac.get(h))!==null&&e!==void 0?e:d.bottom-d.top,y=h.offset||Pg,x=this.view.textDirection==q.LTR,Q=d.width>i.right-i.left?x?i.left:i.right-d.width:x?Math.max(i.left,Math.min(u.left-(O?14:0)+y.x,i.right-m)):Math.min(Math.max(i.left,u.left-m+(O?14:0)-y.x),i.right-m),Z=this.above[l];!a.strictSide&&(Z?u.top-g-p-y.yi.bottom)&&Z==i.bottom-u.bottom>u.top-i.top&&(Z=this.above[l]=!Z);let w=(Z?u.top-i.top:i.bottom-u.bottom)-p;if(wQ&&E.topk&&(k=Z?E.top-g-2-p:E.bottom+p+2);if(this.position=="absolute"?(f.style.top=(k-n.parent.top)/s+"px",Rc(f,(Q-n.parent.left)/r)):(f.style.top=k/s+"px",Rc(f,Q/r)),O){let E=u.left+(x?y.x:-y.x)-(Q+14-7);O.style.left=E/r+"px"}h.overlap!==!0&&o.push({left:Q,top:k,right:$,bottom:k+g}),f.classList.toggle("cm-tooltip-above",Z),f.classList.toggle("cm-tooltip-below",!Z),h.positioned&&h.positioned(n.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let n of this.manager.tooltipViews)n.dom.style.top=pr}},{eventObservers:{scroll(){this.maybeMeasure()}}});function Rc(n,e){let t=parseInt(n.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(n.style.left=e+"px")}c(Rc,"setLeftStyle");var vg=P.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),Pg={x:0,y:0},bn=v.define({enables:[wl,vg]}),Er=v.define({combine:c(n=>n.reduce((e,t)=>e.concat(t),[]),"combine")}),Yr=class n{static{c(this,"HoverTooltipHost")}static create(e){return new n(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new jr(e,Er,(t,i)=>this.createHostedView(t,i),t=>t.dom.remove())}createHostedView(e,t){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let i of this.manager.tooltipViews){let r=i[e];if(r!==void 0){if(t===void 0)t=r;else if(t!==r)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},Tg=bn.compute([Er],n=>{let e=n.facet(Er);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var i;return(i=t.end)!==null&&i!==void 0?i:t.pos})),create:Yr.create,above:e[0].above,arrow:e.some(t=>t.arrow)}}),qf=v.define(),cl=class{static{c(this,"HoverPlugin")}constructor(e,t,i,r,s,o){this.view=e,this.source=t,this.field=i,this.locked=r,this.setHover=s,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(e){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;eo.bottom||t.xo.right+e.defaultCharacterWidth)return;let l=e.bidiSpans(e.state.doc.lineAt(r)).find(h=>h.from<=r&&h.to>=r),a=l&&l.dir==q.RTL?-1:1;s=t.x{if(l&&!(Array.isArray(l)&&!l.length)){let a=Array.isArray(l)?l:[l];r&&this.locked.set(a,r),e.dispatch({effects:this.setHover.of(a)})}},"done");if(s&&"then"in s){let l=this.pending={pos:t};s.then(a=>{this.pending==l&&(this.pending=null,o(a))},a=>fe(e.state,a,"hover tooltip"))}else o(s)}get tooltip(){let e=this.view.plugin(wl),t=e?e.manager.tooltips.findIndex(i=>i.create==Yr.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:r,tooltip:s}=this;if(r.length&&!this.locked.has(r)&&s&&!Cg(s.dom,e)||this.pending){let{pos:o}=r[0]||this.pending,l=(i=(t=r[0])===null||t===void 0?void 0:t.end)!==null&&i!==void 0?i:o;(o==l?this.view.posAtCoords(this.lastMove)!=o:!Zg(this.view,o,l,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length&&!this.locked.has(t)){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=c(i=>{e.removeEventListener("mouseleave",t);let{active:r}=this;r.length&&!this.locked.has(r)&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})},"watch");e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},mr=4;function Cg(n,e){let{left:t,right:i,top:r,bottom:s}=n.getBoundingClientRect(),o;if(o=n.querySelector(".cm-tooltip-arrow")){let l=o.getBoundingClientRect();r=Math.min(l.top,r),s=Math.max(l.bottom,s)}return e.clientX>=t-mr&&e.clientX<=i+mr&&e.clientY>=r-mr&&e.clientY<=s+mr}c(Cg,"isInTooltip");function Zg(n,e,t,i,r,s){let o=n.scrollDOM.getBoundingClientRect(),l=n.documentTop+n.documentPadding.top+n.contentHeight;if(o.left>i||o.rightr||Math.min(o.bottom,l)=e&&a<=t}c(Zg,"isOverRange");function Bf(n,e={}){let t=R.define(),i=new WeakMap,r=ie.define({create(){return[]},update(o,l){let a=i.get(o);if(o.length&&(e.hideOnChange&&(l.docChanged||l.selection)?o=[]:a&&a(l)?o=[]:e.hideOn&&(o=o.filter(h=>!e.hideOn(l,h)))),l.docChanged&&o.length){let h=[];for(let f of o){let u=l.changes.mapPos(f.pos,-1,oe.TrackDel);if(u!=null){let d=Object.assign(Object.create(null),f);d.pos=u,d.end!=null&&(d.end=l.changes.mapPos(d.end)),h.push(d)}}o=h}for(let h of l.effects)h.is(t)&&(o=h.value,a=void 0),(h.is(Xg)&&!h.value||h.value==r)&&(o=[]);return o.length&&a&&i.set(o,a),o},provide:c(o=>Er.from(o),"provide")}),s=te.define(o=>new cl(o,n,r,i,t,e.hoverTime||300));return{active:r,extension:[r,s,qf.of(s),Tg]}}c(Bf,"hoverTooltip");function If(n,e,t,i={}){var r;let s=n.state.facet(qf).map(o=>n.plugin(o)).filter(o=>!!o);if(i.tooltip&&i.tooltip.active){let o=s.find(l=>l.field==i.tooltip.active);o&&(s=[o])}for(let o of s)o.activateHover(n,e,t,(r=i.until)!==null&&r!==void 0?r:(()=>!1))}c(If,"activateHover");function kl(n,e){let t=n.plugin(wl);if(!t)return null;let i=t.manager.tooltips.indexOf(e);return i<0?null:t.manager.tooltipViews[i]}c(kl,"getTooltip");var Xg=R.define();var Mc=v.define({combine(n){let e,t;for(let i of n)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Qn(n,e){let t=n.plugin(Nf),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}c(Qn,"getPanel");var Nf=te.fromClass(class{constructor(n){this.input=n.state.facet(ei),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(n));let e=n.state.facet(Mc);this.top=new xi(n,!0,e.topContainer),this.bottom=new xi(n,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(n){let e=n.state.facet(Mc);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new xi(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new xi(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=n.state.facet(ei);if(t!=this.input){let i=t.filter(a=>a),r=[],s=[],o=[],l=[];for(let a of i){let h=this.specs.indexOf(a),f;h<0?(f=a(n.view),l.push(f)):(f=this.panels[h],f.update&&f.update(n)),r.push(f),(f.top?s:o).push(f)}this.specs=i,this.panels=r,this.top.sync(s),this.bottom.sync(o);for(let a of l)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:c(n=>P.scrollMargins.of(e=>{let t=e.plugin(n);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}}),"provide")}),xi=class{static{c(this,"PanelGroup")}constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=jc(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=jc(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function jc(n){let e=n.nextSibling;return n.remove(),e}c(jc,"rm");var ei=v.define({enables:Nf});function Gf(n,e){let t,i=new Promise(o=>t=o),r=c(o=>Ag(o,e,t),"panelCtor");n.state.field(go,!1)?n.dispatch({effects:Uf.of(r)}):n.dispatch({effects:R.appendConfig.of(go.init(()=>[r]))});let s=Ff.of(r);return{close:s,result:i.then(o=>((n.win.queueMicrotask||(a=>n.win.setTimeout(a,10)))(()=>{n.state.field(go).indexOf(r)>-1&&n.dispatch({effects:s})}),o))}}c(Gf,"showDialog");var go=ie.define({create(){return[]},update(n,e){for(let t of e.effects)t.is(Uf)?n=[t.value].concat(n):t.is(Ff)&&(n=n.filter(i=>i!=t.value));return n},provide:c(n=>ei.computeN([n],e=>e.field(n)),"provide")}),Uf=R.define(),Ff=R.define();function Ag(n,e,t){let i=e.content?e.content(n,()=>o(null)):null;if(!i){if(i=D("form"),e.input){let l=D("input",e.input);/^(text|password|number|email|tel|url)$/.test(l.type)&&l.classList.add("cm-textfield"),l.name||(l.name="input"),i.appendChild(D("label",(e.label||"")+": ",l))}else i.appendChild(document.createTextNode(e.label||""));i.appendChild(document.createTextNode(" ")),i.appendChild(D("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let r=i.nodeName=="FORM"?[i]:i.querySelectorAll("form");for(let l=0;l{h.keyCode==27?(h.preventDefault(),o(null)):h.keyCode==13&&(h.preventDefault(),o(a))}),a.addEventListener("submit",h=>{h.preventDefault(),o(a)})}let s=D("div",i,D("button",{onclick:c(()=>o(null),"onclick"),"aria-label":n.state.phrase("close"),class:"cm-dialog-close",type:"button"},["\xD7"]));e.class&&(s.className=e.class),s.classList.add("cm-dialog");function o(l){s.contains(s.ownerDocument.activeElement)&&n.focus(),t(l)}return c(o,"done"),{dom:s,top:e.top,mount:c(()=>{if(e.focus){let l;typeof e.focus=="string"?l=i.querySelector(e.focus):l=i.querySelector("input")||i.querySelector("button"),l&&"select"in l?l.select():l&&"focus"in l&&l.focus()}},"mount")}}c(Ag,"createDialog");var Re=class extends Ve{static{c(this,"GutterMarker")}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Re.prototype.elementClass="";Re.prototype.toDOM=void 0;Re.prototype.mapMode=oe.TrackBefore;Re.prototype.startSide=Re.prototype.endSide=-1;Re.prototype.point=!0;var Qr=v.define(),Rg=v.define(),Mg={class:"",renderEmptyElements:!1,elementStyle:"",markers:c(()=>_.empty,"markers"),lineMarker:c(()=>null,"lineMarker"),widgetMarker:c(()=>null,"widgetMarker"),lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},dn=v.define();function $l(n){return[Hf(),dn.of({...Mg,...n})]}c($l,"gutter");var fl=v.define({combine:c(n=>n.some(e=>e),"combine")});function Hf(n){let e=[jg];return n&&n.fixed===!1&&e.push(fl.of(!0)),e}c(Hf,"gutters");var jg=te.fromClass(class{constructor(n){this.view=n,this.domAfter=null,this.prevViewport=n.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=n.state.facet(dn).map(e=>new zr(n,e)),this.fixed=!n.state.facet(fl);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),n.scrollDOM.insertBefore(this.dom,n.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(n){if(this.updateGutters(n)){let e=this.prevViewport,t=n.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}if(n.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(fl)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=n.view.viewport}syncGutters(n){let e=this.dom.nextSibling;n&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=_.iter(this.view.state.facet(Qr),this.view.viewport.from),i=[],r=this.gutters.map(s=>new dl(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(s.type)){let o=!0;for(let l of s.type)if(l.type==ue.Text&&o){ul(t,i,l.from);for(let a of r)a.line(this.view,l,i);o=!1}else if(l.widget)for(let a of r)a.widget(this.view,l)}else if(s.type==ue.Text){ul(t,i,s.from);for(let o of r)o.line(this.view,s,i)}else if(s.widget)for(let o of r)o.widget(this.view,s);for(let s of r)s.finish();n&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(n){let e=n.startState.facet(dn),t=n.state.facet(dn),i=n.docChanged||n.heightChanged||n.viewportChanged||!_.eq(n.startState.facet(Qr),n.state.facet(Qr),n.view.viewport.from,n.view.viewport.to);if(e==t)for(let r of this.gutters)r.update(n)&&(i=!0);else{i=!0;let r=[];for(let s of t){let o=e.indexOf(s);o<0?r.push(new zr(this.view,s)):(this.gutters[o].update(n),r.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),r.indexOf(s)<0&&s.destroy();for(let s of r)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=r}return i}destroy(){for(let n of this.gutters)n.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:c(n=>P.scrollMargins.of(e=>{let t=e.plugin(n);if(!t||t.gutters.length==0||!t.fixed)return null;let i=t.dom.offsetWidth*e.scaleX,r=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==q.LTR?{left:i,right:r}:{right:i,left:r}}),"provide")});function Ec(n){return Array.isArray(n)?n:[n]}c(Ec,"asArray");function ul(n,e,t){for(;n.value&&n.from<=t;)n.from==t&&e.push(n.value),n.next()}c(ul,"advanceCursor");var dl=class{static{c(this,"UpdateContext")}constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=_.iter(e.markers,t.from)}addElement(e,t,i){let{gutter:r}=this,s=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==r.elements.length){let l=new Wr(e,o,s,i);r.elements.push(l),r.dom.appendChild(l.dom)}else r.elements[this.i].update(e,o,s,i);this.height=t.bottom,this.i++}line(e,t,i){let r=[];ul(this.cursor,r,t.from),i.length&&(r=r.concat(i));let s=this.gutter.config.lineMarker(e,t,r);s&&r.unshift(s);let o=this.gutter;r.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,r)}widget(e,t){let i=this.gutter.config.widgetMarker(e,t.widget,t),r=i?[i]:null;for(let s of e.state.facet(Rg)){let o=s(e,t.widget,t);o&&(r||(r=[])).push(o)}r&&this.addElement(e,t,r)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},zr=class{static{c(this,"SingleGutterView")}constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,r=>{let s=r.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let a=s.getBoundingClientRect();o=(a.top+a.bottom)/2}else o=r.clientY;let l=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[i](e,l,r)&&r.preventDefault()});this.markers=Ec(t.markers(e)),t.initialSpacer&&(this.spacer=new Wr(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Ec(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let r=this.config.updateSpacer(this.spacer.markers[0],e);r!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[r])}let i=e.view.viewport;return!_.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},Wr=class{static{c(this,"GutterElement")}constructor(e,t,i,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,r)}update(e,t,i,r){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),Eg(this.markers,r)||this.setMarkers(e,r)}setMarkers(e,t){let i="cm-gutterElement",r=this.dom.firstChild;for(let s=0,o=0;;){let l=o,a=ss(l,a,h)||o(l,a,h):o}return i}})}}),On=class extends Re{static{c(this,"NumberMarker")}constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function So(n,e){return n.state.facet(wi).formatNumber(e,n.state)}c(So,"formatNumber");var Wg=dn.compute([wi],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(Yg)},lineMarker(e,t,i){return i.some(r=>r.toDOM)?null:new On(So(e,e.state.doc.lineAt(t.from).number))},widgetMarker:c((e,t,i)=>{for(let r of e.state.facet(zg)){let s=r(e,t,i);if(s)return s}return null},"widgetMarker"),lineMarkerChange:c(e=>e.startState.facet(wi)!=e.state.facet(wi),"lineMarkerChange"),initialSpacer(e){return new On(So(e,Yc(e.state.doc.lines)))},updateSpacer(e,t){let i=So(t.view,Yc(t.view.state.doc.lines));return i==e.number?e:new On(i)},domEventHandlers:n.facet(wi).domEventHandlers,side:"before"}));function Kf(n={}){return[wi.of(n),Hf(),Wg]}c(Kf,"lineNumbers");function Yc(n){let e=9;for(;e{let e=[],t=-1;for(let i of n.selection.ranges){let r=n.doc.lineAt(i.head).from;r>t&&(t=r,e.push(_g.range(r)))}return _.of(e)});function Jf(){return Vg}c(Jf,"highlightActiveLineGutter");var Dg=0,$e=class{static{c(this,"Range")}constructor(e,t){this.from=e,this.to=t}},j=class{static{c(this,"NodeProp")}constructor(e={}){this.id=Dg++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=de.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}};j.closedBy=new j({deserialize:c(n=>n.split(" "),"deserialize")});j.openedBy=new j({deserialize:c(n=>n.split(" "),"deserialize")});j.group=new j({deserialize:c(n=>n.split(" "),"deserialize")});j.isolate=new j({deserialize:c(n=>{if(n&&n!="rtl"&&n!="ltr"&&n!="auto")throw new RangeError("Invalid value for isolate: "+n);return n||"auto"},"deserialize")});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});var Pt=class{static{c(this,"MountedTree")}constructor(e,t,i,r=!1){this.tree=e,this.overlay=t,this.parser=i,this.bracketed=r}static get(e){return e&&e.props&&e.props[j.mounted.id]}},Lg=Object.create(null),de=class n{static{c(this,"NodeType")}constructor(e,t,i,r=0){this.name=e,this.props=t,this.id=i,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):Lg,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new n(e.name||"",t,e.id,i);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(r)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(j.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let r of i.split(" "))t[r]=e[i];return i=>{for(let r=i.prop(j.group),s=-1;s<(r?r.length:0);s++){let o=t[s<0?i.name:r[s]];if(o)return o}}}};de.none=new de("",Object.create(null),0,8);var xn=class n{static{c(this,"NodeSet")}constructor(e){this.types=e;for(let t=0;t0;for(let a=this.cursor(o|V.IncludeAnonymous);;){let h=!1;if(a.from<=s&&a.to>=r&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;h=!0}for(;h&&i&&(l||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;h=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:El(de.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,r)=>new n(this.type,t,i,r,this.propValues),e.makeTree||((t,i,r)=>new n(de.none,t,i,r)))}static build(e){return Bg(e)}};J.empty=new J(de.none,[],[],0);var vl=class n{static{c(this,"FlatBufferCursor")}constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new n(this.buffer,this.index)}},Tt=class n{static{c(this,"TreeBuffer")}constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return de.none}toString(){let e=[];for(let t=0;t0));a=o[a+3]);return l}slice(e,t,i){let r=this.buffer,s=new Uint16Array(t-e),o=0;for(let l=e,a=0;l=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}c(lu,"checkSide");function wn(n,e,t,i){for(var r;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to0?l.length:-1;e!=h;e+=t){let f=l[e],u=a[e]+o.from,d;if(!(!(s&V.EnterBracketed&&f instanceof J&&(d=Pt.get(f))&&!d.overlay&&d.bracketed&&i>=u&&i<=u+f.length)&&!lu(r,i,u,u+f.length))){if(f instanceof Tt){if(s&V.ExcludeBuffers)continue;let O=f.findChild(0,f.buffer.length,t,i-u,r);if(O>-1)return new ti(new Tl(o,f,e,u),null,O)}else if(s&V.IncludeAnonymous||!f.type.isAnonymous||jl(f)){let O;if(!(s&V.IgnoreMounts)&&(O=Pt.get(f))&&!O.overlay)return new n(O.tree,u,e,o);let p=new n(f,u,e,o);return s&V.IncludeAnonymous||!p.type.isAnonymous?p:p.nextChild(t<0?f.children.length-1:0,t,i,r,s)}}}if(s&V.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,i=0){let r;if(!(i&V.IgnoreOverlays)&&(r=Pt.get(this._tree))&&r.overlay){let s=e-this.from,o=i&V.EnterBracketed&&r.bracketed;for(let{from:l,to:a}of r.overlay)if((t>0||o?l<=s:l=s:a>s))return new n(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function tu(n,e,t,i){let r=n.cursor(),s=[];if(!r.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=r.type.is(t),!r.nextSibling())return s}for(;;){if(i!=null&&r.type.is(i))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return i==null?s:[]}}c(tu,"getChildren");function Pl(n,e,t=e.length-1){for(let i=n;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}c(Pl,"matchNodeContext");var Tl=class{static{c(this,"BufferContext")}constructor(e,t,i,r){this.parent=e,this.buffer=t,this.index=i,this.start=r}},ti=class n extends Br{static{c(this,"BufferNode")}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){super(),this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,i);return s<0?null:new n(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,i=0){if(i&V.ExcludeBuffers)return null;let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new n(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new n(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new n(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,r=this.index+4,s=i.buffer[this.index+3];if(s>r){let o=i.buffer[this.index+1];e.push(i.slice(r,s,o)),t.push(0)}return new J(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function au(n){if(!n.length)return null;let e=0,t=n[0];for(let s=1;st.from||o.to=e){let l=new ve(o.tree,o.overlay[0].from+s.from,-1,s);(r||(r=[i])).push(wn(l,e,t,!1))}}return r?au(r):i}c(qg,"stackIterator");var Ri=class{static{c(this,"TreeCursor")}get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~V.EnterBracketed,e instanceof ve)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=i+r.buffer[e+1],this.to=i+r.buffer[e+2],!0}yield(e){return e?e instanceof ve?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:r}=this.buffer,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,i);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i&V.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&V.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&V.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let r=i<0?0:this.stack[i]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(r)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:r}=this;if(r){if(e>0){if(this.index-1)for(let s=t+e,o=e<0?-1:i._tree.children.length;s!=o;s+=e){let l=i._tree.children[s];if(this.mode&V.IncludeAnonymous||l instanceof Tt||!l.type.isAnonymous||jl(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==r){if(r==this.index)return o;t=o,i=s+1;break e}r=this.stack[--s]}for(let r=i;r=0;s--){if(s<0)return Pl(this._tree,e,r);let o=i[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[r]&&e[r]!=o.name)return!1;r--}}return!0}};function jl(n){return n.children.some(e=>e instanceof Tt||!e.type.isAnonymous||jl(e))}c(jl,"hasChild");function Bg(n){var e;let{buffer:t,nodeSet:i,maxBufferLength:r=1024,reused:s=[],minRepeatType:o=i.types.length}=n,l=Array.isArray(t)?new vl(t,t.length):t,a=i.types,h=0,f=0;function u(w,k,$,E,W,N){let{id:Y,start:M,end:B,size:L}=l,H=f,ge=h;if(L<0)if(l.next(),L==-1){let ft=s[Y];$.push(ft),E.push(M-w);return}else if(L==-3){h=Y;return}else if(L==-4){f=Y;return}else throw new RangeError(`Unrecognized record size: ${L}`);let Te=a[Y],rt,he,We=M-w;if(B-M<=r&&(he=g(l.pos-k,W))){let ft=new Uint16Array(he.size-he.skip),_e=l.pos-he.size,st=ft.length;for(;l.pos>_e;)st=y(he.start,ft,st);rt=new Tt(ft,B-he.start,i),We=he.start-w}else{let ft=l.pos-L;l.next();let _e=[],st=[],Dt=Y>=o?Y:-1,di=0,Nn=B;for(;l.pos>ft;)Dt>=0&&l.id==Dt&&l.size>=0?(l.end<=Nn-r&&(p(_e,st,M,di,l.end,Nn,Dt,H,ge),di=_e.length,Nn=l.end),l.next()):N>2500?d(M,ft,_e,st):u(M,ft,_e,st,Dt,N+1);if(Dt>=0&&di>0&&di<_e.length&&p(_e,st,M,di,M,Nn,Dt,H,ge),_e.reverse(),st.reverse(),Dt>-1&&di>0){let Qh=O(Te,ge);rt=El(Te,_e,st,0,_e.length,0,B-M,Qh,Qh)}else rt=m(Te,_e,st,B-M,H-B,ge)}$.push(rt),E.push(We)}c(u,"takeNode");function d(w,k,$,E){let W=[],N=0,Y=-1;for(;l.pos>k;){let{id:M,start:B,end:L,size:H}=l;if(H>4)l.next();else{if(Y>-1&&B=0;L-=3)M[H++]=W[L],M[H++]=W[L+1]-B,M[H++]=W[L+2]-B,M[H++]=H;$.push(new Tt(M,W[2]-B,i)),E.push(B-w)}}c(d,"takeFlatNode");function O(w,k){return($,E,W)=>{let N=0,Y=$.length-1,M,B;if(Y>=0&&(M=$[Y])instanceof J){if(!Y&&M.type==w&&M.length==W)return M;(B=M.prop(j.lookAhead))&&(N=E[Y]+M.length+B)}return m(w,$,E,W,N,k)}}c(O,"makeBalanced");function p(w,k,$,E,W,N,Y,M,B){let L=[],H=[];for(;w.length>E;)L.push(w.pop()),H.push(k.pop()+$-W);w.push(m(i.types[Y],L,H,N-W,M-N,B)),k.push(W-$)}c(p,"makeRepeatLeaf");function m(w,k,$,E,W,N,Y){if(N){let M=[j.contextHash,N];Y=Y?[M].concat(Y):[M]}if(W>25){let M=[j.lookAhead,W];Y=Y?[M].concat(Y):[M]}return new J(w,k,$,E,Y)}c(m,"makeTree");function g(w,k){let $=l.fork(),E=0,W=0,N=0,Y=$.end-r,M={size:0,start:0,skip:0};e:for(let B=$.pos-w;$.pos>B;){let L=$.size;if($.id==k&&L>=0){M.size=E,M.start=W,M.skip=N,N+=4,E+=4,$.next();continue}let H=$.pos-L;if(L<0||H=o?4:0,Te=$.start;for($.next();$.pos>H;){if($.size<0)if($.size==-3||$.size==-4)ge+=4;else break e;else $.id>=o&&(ge+=4);$.next()}W=Te,E+=L,N+=ge}return(k<0||E==w)&&(M.size=E,M.start=W,M.skip=N),M.size>4?M:void 0}c(g,"findBufferSize");function y(w,k,$){let{id:E,start:W,end:N,size:Y}=l;if(l.next(),Y>=0&&E4){let B=l.pos-(Y-4);for(;l.pos>B;)$=y(w,k,$)}k[--$]=M,k[--$]=N-w,k[--$]=W-w,k[--$]=E}else Y==-3?h=E:Y==-4&&(f=E);return $}c(y,"copyToBuffer");let x=[],Q=[];for(;l.pos>0;)u(n.start||0,n.bufferStart||0,x,Q,-1,0);let Z=(e=n.length)!==null&&e!==void 0?e:x.length?Q[0]+x[0].length:0;return new J(a[n.topID],x.reverse(),Q.reverse(),Z)}c(Bg,"buildTree");var iu=new WeakMap;function qr(n,e){if(!n.isAnonymous||e instanceof Tt||e.type!=n)return 1;let t=iu.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=n||!(i instanceof J)){t=1;break}t+=qr(n,i)}iu.set(e,t)}return t}c(qr,"nodeSize");function El(n,e,t,i,r,s,o,l,a){let h=0;for(let p=i;p=f)break;k+=$}if(Q==Z+1){if(k>f){let $=p[Z];O($.children,$.positions,0,$.children.length,m[Z]+x);continue}u.push(p[Z])}else{let $=m[Q-1]+p[Q-1].length-w;u.push(El(n,p,m,Z,Q,w,$,null,a))}d.push(w+x-s)}}return c(O,"divide"),O(e,t,i,r,0),(l||a)(u,d,o)}c(El,"balanceRange");var Mi=class{static{c(this,"NodeWeakMap")}constructor(){this.map=new WeakMap}setBuffer(e,t,i){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,i)}getBuffer(e,t){let i=this.map.get(e);return i&&i.get(t)}set(e,t){e instanceof ti?this.setBuffer(e.context.buffer,e.index,t):e instanceof ve&&this.map.set(e.tree,t)}get(e){return e instanceof ti?this.getBuffer(e.context.buffer,e.index):e instanceof ve?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}},St=class n{static{c(this,"TreeFragment")}constructor(e,t,i,r,s=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=r,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let r=[new n(0,e.length,e,0,!1,i)];for(let s of t)s.to>e.length&&r.push(s);return r}static applyChanges(e,t,i=128){if(!t.length)return e;let r=[],s=1,o=e.length?e[0]:null;for(let l=0,a=0,h=0;;l++){let f=l=i)for(;o&&o.from=d.from||u<=d.to||h){let O=Math.max(d.from,a)-h,p=Math.min(d.to,u)-h;d=O>=p?null:new n(O,p,d.tree,d.offset+h,l>0,!!f)}if(d&&r.push(d),o.to>u)break;o=snew $e(r.from,r.to)):[new $e(0,0)]:[new $e(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let r=this.startParse(e,t,i);for(;;){let s=r.advance();if(s)return s}}},Zl=class{static{c(this,"StringInput")}constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};function hu(n){return(e,t,i,r)=>new Rl(e,n,t,i,r)}c(hu,"parseMixed");var Ir=class{static{c(this,"InnerParse")}constructor(e,t,i,r,s,o){this.parser=e,this.parse=t,this.overlay=i,this.bracketed=r,this.target=s,this.from=o}};function nu(n){if(!n.length||n.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(n))}c(nu,"checkRanges");var Xl=class{static{c(this,"ActiveOverlay")}constructor(e,t,i,r,s,o,l,a){this.parser=e,this.predicate=t,this.mounts=i,this.index=r,this.start=s,this.bracketed=o,this.target=l,this.prev=a,this.depth=0,this.ranges=[]}},Al=new j({perNode:!0}),Rl=class{static{c(this,"MixedParse")}constructor(e,t,i,r,s){this.nest=t,this.input=i,this.fragments=r,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let i=this.baseParse.advance();if(!i)return null;if(this.baseParse=null,this.baseTree=i,this.startInner(),this.stoppedAt!=null)for(let r of this.inner)r.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let i=this.baseTree;return this.stoppedAt!=null&&(i=new J(i.type,i.children,i.positions,i.length,i.propValues.concat([[Al,this.stoppedAt]]))),i}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let i=Object.assign(Object.create(null),e.target.props);i[j.mounted.id]=new Pt(t,e.overlay,e.parser,e.bracketed),e.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)l=!1;else if(e.hasNode(r)){if(t){let h=t.mounts.find(f=>f.frag.from<=r.from&&f.frag.to>=r.to&&f.mount.overlay);if(h)for(let f of h.mount.overlay){let u=f.from+h.pos,d=f.to+h.pos;u>=r.from&&d<=r.to&&!t.ranges.some(O=>O.fromu)&&t.ranges.push({from:u,to:d})}}l=!1}else if(i&&(o=Ig(i.ranges,r.from,r.to)))l=o!=2;else if(!r.type.isAnonymous&&(s=this.nest(r,this.input))&&(r.fromnew $e(u.from-r.from,u.to-r.from)):null,!!s.bracketed,r.tree,f.length?f[0].from:r.from)),s.overlay?f.length&&(i={ranges:f,depth:0,prev:i}):l=!1}}else if(t&&(a=t.predicate(r))&&(a===!0&&(a=new $e(r.from,r.to)),a.from=0&&t.ranges[h].to==a.from?t.ranges[h]={from:t.ranges[h].from,to:a.to}:t.ranges.push(a)}if(l&&r.firstChild())t&&t.depth++,i&&i.depth++;else for(;!r.nextSibling();){if(!r.parent())break e;if(t&&!--t.depth){let h=su(this.ranges,t.ranges);h.length&&(nu(h),this.inner.splice(t.index,0,new Ir(t.parser,t.parser.startParse(this.input,ou(t.mounts,h),h),t.ranges.map(f=>new $e(f.from-t.start,f.to-t.start)),t.bracketed,t.target,h[0].from))),t=t.prev}i&&!--i.depth&&(i=i.prev)}}}};function Ig(n,e,t){for(let i of n){if(i.from>=t)break;if(i.to>e)return i.from<=e&&i.to>=t?2:1}return 0}c(Ig,"checkCover");function ru(n,e,t,i,r,s){if(e=e&&t.enter(i,1,V.IgnoreOverlays|V.ExcludeBuffers)))if(t.to<=e)t.next(!1)||(this.done=!0);else break}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof J)t=t.children[0];else break}return!1}},Ml=class{static{c(this,"FragmentCursor")}constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let i=this.curFrag=e[0];this.curTo=(t=i.tree.prop(Al))!==null&&t!==void 0?t:i.to,this.inner=new Nr(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Al))!==null&&e!==void 0?e:t.to,this.inner=new Nr(t.tree,-t.offset)}}findMounts(e,t){var i;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let o=(i=s.tree)===null||i===void 0?void 0:i.prop(j.mounted);if(o&&o.parser==t)for(let l=this.fragI;l=s.to)break;a.tree==this.curFrag.tree&&r.push({frag:a,pos:s.from-a.offset,mount:o})}}}return r}};function su(n,e){let t=null,i=e;for(let r=1,s=0;r=l)break;a.to<=o||(t||(i=t=e.slice()),a.froml&&t.splice(s+1,0,new $e(l,a.to))):a.to>l?t[s--]=new $e(l,a.to):t.splice(s--,1))}}return i}c(su,"punchRanges");function Gg(n,e,t,i){let r=0,s=0,o=!1,l=!1,a=-1e9,h=[];for(;;){let f=r==n.length?1e9:o?n[r].to:n[r].from,u=s==e.length?1e9:l?e[s].to:e[s].from;if(o!=l){let d=Math.max(a,t),O=Math.min(f,u,i);dnew $e(d.from+i,d.to+i)),u=Gg(e,f,a,h);for(let d=0,O=a;;d++){let p=d==u.length,m=p?h:u[d].from;if(m>O&&t.push(new St(O,m,r.tree,-o,s.from>=O||s.openStart,s.to<=m||s.openEnd)),p)break;O=u[d].to}}else t.push(new St(a,h,r.tree,-o,s.from>=o||s.openStart,s.to<=l||s.openEnd))}return t}c(ou,"enterFragments");var Ug=0,Ke=class n{static{c(this,"Tag")}constructor(e,t,i,r){this.name=e,this.set=t,this.base=i,this.modified=r,this.id=Ug++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let i=typeof e=="string"?e:"?";if(e instanceof n&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let r=new n(i,[],null,[]);if(r.set.push(r),t)for(let s of t.set)r.set.push(s);return r}static defineModifier(e){let t=new Hr(e);return i=>i.modified.indexOf(t)>-1?i:Hr.get(i.base||i,i.modified.concat(t).sort((r,s)=>r.id-s.id))}},Fg=0,Hr=class n{static{c(this,"Modifier")}constructor(e){this.name=e,this.instances=[],this.id=Fg++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(l=>l.base==e&&Hg(t,l.modified));if(i)return i;let r=[],s=new Ke(e.name,r,e,t);for(let l of t)l.instances.push(s);let o=Kg(t);for(let l of e.set)if(!l.modified.length)for(let a of o)r.push(n.get(l,a));return s}};function Hg(n,e){return n.length==e.length&&n.every((t,i)=>t==e[i])}c(Hg,"sameArray");function Kg(n){let e=[[]];for(let t=0;ti.length-t.length)}c(Kg,"powerSet");function Xt(n){let e=Object.create(null);for(let t in n){let i=n[t];Array.isArray(i)||(i=[i]);for(let r of t.split(" "))if(r){let s=[],o=2,l=r;for(let u=0;;){if(l=="..."&&u>0&&u+3==r.length){o=1;break}let d=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!d)throw new RangeError("Invalid path: "+r);if(s.push(d[0]=="*"?"":d[0][0]=='"'?JSON.parse(d[0]):d[0]),u+=d[0].length,u==r.length)break;let O=r[u++];if(u==r.length&&O=="!"){o=0;break}if(O!="/")throw new RangeError("Invalid path: "+r);l=r.slice(u)}let a=s.length-1,h=s[a];if(!h)throw new RangeError("Invalid path: "+r);let f=new ni(i,o,a>0?s.slice(0,a):null);e[h]=f.sort(e[h])}}return uu.add(e)}c(Xt,"styleTags");var uu=new j({combine(n,e){let t,i,r;for(;n||e;){if(!n||e&&n.depth>=e.depth?(r=e,e=e.next):(r=n,n=n.next),t&&t.mode==r.mode&&!r.context&&!t.context)continue;let s=new ni(r.tags,r.mode,r.context);t?t.next=s:i=s,t=s}return i}}),ni=class{static{c(this,"Rule")}constructor(e,t,i,r){this.tags=e,this.mode=t,this.context=i,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=r;for(let l of s)for(let a of l.set){let h=t[a.id];if(h){o=o?o+" "+h:h;break}}return o},"style"),scope:i}}c(_l,"tagHighlighter");function Jg(n,e){let t=null;for(let i of n){let r=i.style(e);r&&(t=t?t+" "+r:r)}return t}c(Jg,"highlightTags");function du(n,e,t,i=0,r=n.length){let s=new zl(i,Array.isArray(e)?e:[e],t);s.highlightRange(n.cursor(),i,r,"",s.highlighters),s.flush(r)}c(du,"highlightTree");var zl=class{static{c(this,"HighlightBuilder")}constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,r,s){let{type:o,from:l,to:a}=e;if(l>=i||a<=t)return;o.isTop&&(s=this.highlighters.filter(O=>!O.scope||O.scope(o)));let h=r,f=e0(e)||ni.empty,u=Jg(s,f.tags);if(u&&(h&&(h+=" "),h+=u,f.mode==1&&(r+=(r?" ":"")+u)),this.startSpan(Math.max(t,l),h),f.opaque)return;let d=e.tree&&e.tree.prop(j.mounted);if(d&&d.overlay){let O=e.node.enter(d.overlay[0].from+l,1),p=this.highlighters.filter(g=>!g.scope||g.scope(d.tree.type)),m=e.firstChild();for(let g=0,y=l;;g++){let x=g=Q||!e.nextSibling())););if(!x||Q>i)break;y=x.to+l,y>t&&(this.highlightRange(O.cursor(),Math.max(t,x.from+l),Math.min(i,y),"",p),this.startSpan(Math.min(i,y),h))}m&&e.parent()}else if(e.firstChild()){d&&(r="");do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,r,s),this.startSpan(Math.min(i,e.to),h)}while(e.nextSibling());e.parent()}}};function e0(n){let e=n.type.prop(uu);for(;e&&e.context&&!n.matchContext(e.context);)e=e.next;return e||null}c(e0,"getStyleTags");var T=Ke.define,Gr=T(),Ct=T(),cu=T(Ct),fu=T(Ct),Zt=T(),Ur=T(Zt),Yl=T(Zt),ct=T(),ii=T(ct),at=T(),ht=T(),Wl=T(),kn=T(Wl),Fr=T(),S={comment:Gr,lineComment:T(Gr),blockComment:T(Gr),docComment:T(Gr),name:Ct,variableName:T(Ct),typeName:cu,tagName:T(cu),propertyName:fu,attributeName:T(fu),className:T(Ct),labelName:T(Ct),namespace:T(Ct),macroName:T(Ct),literal:Zt,string:Ur,docString:T(Ur),character:T(Ur),attributeValue:T(Ur),number:Yl,integer:T(Yl),float:T(Yl),bool:T(Zt),regexp:T(Zt),escape:T(Zt),color:T(Zt),url:T(Zt),keyword:at,self:T(at),null:T(at),atom:T(at),unit:T(at),modifier:T(at),operatorKeyword:T(at),controlKeyword:T(at),definitionKeyword:T(at),moduleKeyword:T(at),operator:ht,derefOperator:T(ht),arithmeticOperator:T(ht),logicOperator:T(ht),bitwiseOperator:T(ht),compareOperator:T(ht),updateOperator:T(ht),definitionOperator:T(ht),typeOperator:T(ht),controlOperator:T(ht),punctuation:Wl,separator:T(Wl),bracket:kn,angleBracket:T(kn),squareBracket:T(kn),paren:T(kn),brace:T(kn),content:ct,heading:ii,heading1:T(ii),heading2:T(ii),heading3:T(ii),heading4:T(ii),heading5:T(ii),heading6:T(ii),contentSeparator:T(ct),list:T(ct),quote:T(ct),emphasis:T(ct),strong:T(ct),link:T(ct),monospace:T(ct),strikethrough:T(ct),inserted:T(),deleted:T(),changed:T(),invalid:T(),meta:Fr,documentMeta:T(Fr),annotation:T(Fr),processingInstruction:T(Fr),definition:Ke.defineModifier("definition"),constant:Ke.defineModifier("constant"),function:Ke.defineModifier("function"),standard:Ke.defineModifier("standard"),local:Ke.defineModifier("local"),special:Ke.defineModifier("special")};for(let n in S){let e=S[n];e instanceof Ke&&(e.name=n)}var ix=_l([{tag:S.link,class:"tok-link"},{tag:S.heading,class:"tok-heading"},{tag:S.emphasis,class:"tok-emphasis"},{tag:S.strong,class:"tok-strong"},{tag:S.keyword,class:"tok-keyword"},{tag:S.atom,class:"tok-atom"},{tag:S.bool,class:"tok-bool"},{tag:S.url,class:"tok-url"},{tag:S.labelName,class:"tok-labelName"},{tag:S.inserted,class:"tok-inserted"},{tag:S.deleted,class:"tok-deleted"},{tag:S.literal,class:"tok-literal"},{tag:S.string,class:"tok-string"},{tag:S.number,class:"tok-number"},{tag:[S.regexp,S.escape,S.special(S.string)],class:"tok-string2"},{tag:S.variableName,class:"tok-variableName"},{tag:S.local(S.variableName),class:"tok-variableName tok-local"},{tag:S.definition(S.variableName),class:"tok-variableName tok-definition"},{tag:S.special(S.variableName),class:"tok-variableName2"},{tag:S.definition(S.propertyName),class:"tok-propertyName tok-definition"},{tag:S.typeName,class:"tok-typeName"},{tag:S.namespace,class:"tok-namespace"},{tag:S.className,class:"tok-className"},{tag:S.macroName,class:"tok-macroName"},{tag:S.propertyName,class:"tok-propertyName"},{tag:S.operator,class:"tok-operator"},{tag:S.comment,class:"tok-comment"},{tag:S.meta,class:"tok-meta"},{tag:S.invalid,class:"tok-invalid"},{tag:S.punctuation,class:"tok-punctuation"}]);var Vl,Ei=new j;function Jl(n){return v.define({combine:n?e=>e.concat(n):void 0})}c(Jl,"defineLanguageFacet");var ts=new j,Me=class{static{c(this,"Language")}constructor(e,t,i=[],r=""){this.data=e,this.name=r,G.prototype.hasOwnProperty("tree")||Object.defineProperty(G.prototype,"tree",{get(){return F(this)}}),this.parser=t,this.extension=[Rt.of(this),G.languageData.of((s,o,l)=>{let a=Ou(s,o,l),h=a.type.prop(Ei);if(!h)return[];let f=s.facet(h),u=a.type.prop(ts);if(u){let d=a.resolve(o-a.from,l);for(let O of u)if(O.test(d,s)){let p=s.facet(O.facet);return O.type=="replace"?p:p.concat(f)}}return f})].concat(i)}isActiveAt(e,t,i=-1){return Ou(e,t,i).type.prop(Ei)==this.data}findRegions(e){let t=e.facet(Rt);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],r=c((s,o)=>{if(s.prop(Ei)==this.data){i.push({from:o,to:o+s.length});return}let l=s.prop(j.mounted);if(l){if(l.tree.prop(Ei)==this.data){if(l.overlay)for(let a of l.overlay)i.push({from:a.from+o,to:a.to+o});else i.push({from:o,to:o+s.length});return}else if(l.overlay){let a=i.length;if(r(l.tree,l.overlay[0].from+o),i.length>a)return}}for(let a=0;ai.isTop?t:void 0)]}),e.name)}configure(e,t){return new n(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function F(n){let e=n.field(Me.state,!1);return e?e.tree:J.empty}c(F,"syntaxTree");var Bl=class{static{c(this,"DocInput")}constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}},$n=null,Il=class n{static{c(this,"ParseContext")}constructor(e,t,i=[],r,s,o,l,a){this.parser=e,this.state=t,this.fragments=i,this.tree=r,this.treeLen=s,this.viewport=o,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new n(e,t,[],J.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Bl(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=J.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let r=Date.now()+e;e=c(()=>Date.now()>r,"until")}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(St.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=$n;$n=this;try{return e()}finally{$n=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=pu(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:r,treeLen:s,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((h,f,u,d)=>a.push({fromA:h,toA:f,fromB:u,toB:d})),i=St.applyChanges(i,a),r=J.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let h of this.skipped){let f=e.mapPos(h.from,1),u=e.mapPos(h.to,-1);fe.from&&(this.fragments=pu(this.fragments,r,s),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends ji{createParse(t,i,r){let s=r[0].from,o=r[r.length-1].to;return{parsedPos:s,advance(){let a=$n;if(a){for(let h of r)a.tempSkipped.push(h);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=o,new J(de.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return $n}};function pu(n,e,t){return St.applyChanges(n,[{fromA:e,toA:t,fromB:e,toB:t}])}c(pu,"cutFragments");var Pn=class n{static{c(this,"LanguageState")}constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new n(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=Il.create(e.facet(Rt).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new n(i)}};Me.state=ie.define({create:Pn.init,update(n,e){for(let t of e.effects)if(t.is(Me.setState))return t.value;return e.startState.facet(Rt)!=e.state.facet(Rt)?Pn.init(e.state):n.apply(e)}});var xu=c(n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)},"requestIdle");typeof requestIdleCallback<"u"&&(xu=c(n=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(n,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)},"requestIdle"));var Dl=typeof navigator<"u"&&(!((Vl=navigator.scheduling)===null||Vl===void 0)&&Vl.isInputPending)?()=>navigator.scheduling.isInputPending():null,t0=te.fromClass(class{static{c(this,"ParseWorker")}constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Me.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Me.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=xu(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndr+1e3,a=s.context.work(()=>Dl&&Dl()||Date.now()>o,r+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:Me.setState.of(new Pn(s.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>fe(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Rt=v.define({combine(n){return n.length?n[0]:null},enables:c(n=>[Me.state,t0,P.contentAttributes.compute([n],e=>{let t=e.facet(n);return t&&t.name?{"data-language":t.name}:{}})],"enables")}),Mt=class{static{c(this,"LanguageSupport")}constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}};var i0=v.define(),Yi=v.define({combine:c(n=>{if(!n.length)return" ";let e=n[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return e},"combine")});function Tn(n){let e=n.facet(Yi);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}c(Tn,"getIndentUnit");function zi(n,e){let t="",i=n.tabSize,r=n.facet(Yi)[0];if(r==" "){for(;e>=i;)t+=" ",e-=i;r=" "}for(let s=0;s=e?n0(n,t,e):null}c(is,"getIndentation");var ri=class{static{c(this,"IndentContext")}constructor(e,t={}){this.state=e,this.options=t,this.unit=Tn(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:s}=this.options;return r!=null&&r>=i.from&&r<=i.to?s&&r==e?{text:"",from:e}:(t<0?r-1&&(s+=o-this.countColumn(i,i.search(/\S|$/))),s}countColumn(e,t=e.length){return dt(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:r}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(r);if(o>-1)return o}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},oi=new j;function n0(n,e,t){let i=e.resolveStack(t),r=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(r!=i.node){let s=[];for(let o=r;o&&!(o.fromi.node.to||o.from==i.node.from&&o.type==i.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)i={node:s[o],next:i}}return wu(i,n,t)}c(n0,"syntaxIndentation");function wu(n,e,t){for(let i=n;i;i=i.next){let r=s0(i.node);if(r)return r(Nl.create(e,t,i))}return 0}c(wu,"indentFor");function r0(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}c(r0,"ignoreClosed");function s0(n){let e=n.type.prop(oi);if(e)return e;let t=n.firstChild,i;if(t&&(i=t.type.prop(j.closedBy))){let r=n.lastChild,s=r&&i.indexOf(r.name)>-1;return o=>$u(o,!0,1,void 0,s&&!r0(o)?r.from:void 0)}return n.parent==null?o0:null}c(s0,"indentStrategy");function o0(){return 0}c(o0,"topIndent");var Nl=class n extends ri{static{c(this,"TreeIndentContext")}constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.context=i}get node(){return this.context.node}static create(e,t,i){return new n(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(t.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(l0(i,e))break;t=this.state.doc.lineAt(i.from)}return this.lineIndent(t.from)}continue(){return wu(this.context.next,this.base,this.pos)}};function l0(n,e){for(let t=e;t;t=t.parent)if(n==t)return!0;return!1}c(l0,"isParent");function a0(n){let e=n.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let r=n.options.simulateBreak,s=n.state.doc.lineAt(t.from),o=r==null||r<=s.from?s.to:Math.min(s.to,r);for(let l=t.to;;){let a=e.childAfter(l);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=o)return null;let h=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+h}}l=a.to}}c(a0,"bracketedAligned");function ku({closing:n,align:e=!0,units:t=1}){return i=>$u(i,e,t,n)}c(ku,"delimitedIndent");function $u(n,e,t,i,r){let s=n.textAfter,o=s.match(/^\s*/)[0].length,l=i&&s.slice(o,o+i.length)==i||r==n.pos+o,a=e?a0(n):null;return a?l?n.column(a.from):n.column(a.to):n.baseIndent+(l?0:n.unit*t)}c($u,"delimitedStrategy");var vu=c(n=>n.baseIndent,"flatIndent");function Wi({except:n,units:e=1}={}){return t=>{let i=n&&n.test(t.textAfter);return t.baseIndent+(i?0:e*t.unit)}}c(Wi,"continuedIndent");var h0=200;function Pu(){return G.transactionFilter.of(n=>{if(!n.docChanged||!n.isUserEvent("input.type")&&!n.isUserEvent("input.complete"))return n;let e=n.startState.languageDataAt("indentOnInput",n.startState.selection.main.head);if(!e.length)return n;let t=n.newDoc,{head:i}=n.newSelection.main,r=t.lineAt(i);if(i>r.from+h0)return n;let s=t.sliceString(r.from,i);if(!e.some(h=>h.test(s)))return n;let{state:o}=n,l=-1,a=[];for(let{head:h}of o.selection.ranges){let f=o.doc.lineAt(h);if(f.from==l)continue;l=f.from;let u=is(o,f.from);if(u==null)continue;let d=/^\s*/.exec(f.text)[0],O=zi(o,u);d!=O&&a.push({from:f.from,to:f.from+d.length,insert:O})}return a.length?[n,{changes:a,sequential:!0}]:n})}c(Pu,"indentOnInput");var c0=v.define(),li=new j;function ns(n){let e=n.firstChild,t=n.lastChild;return e&&e.tot)continue;if(s&&l.from=e&&h.to>t&&(s=h)}}return s}c(f0,"syntaxFolding");function u0(n){let e=n.lastChild;return e&&e.to==n.to&&e.type.isError}c(u0,"isUnfinished");function Kr(n,e,t){for(let i of n.facet(c0)){let r=i(n,e,t);if(r)return r}return f0(n,e,t)}c(Kr,"foldable");function Tu(n,e){let t=e.mapPos(n.from,1),i=e.mapPos(n.to,-1);return t>=i?void 0:{from:t,to:i}}c(Tu,"mapRange");var rs=R.define({map:Tu}),Cn=R.define({map:Tu});function Cu(n){let e=[];for(let{head:t}of n.state.selection.ranges)e.some(i=>i.from<=t&&i.to>=t)||e.push(n.lineBlockAt(t));return e}c(Cu,"selectedLines");var si=ie.define({create(){return X.none},update(n,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((i,r)=>n=mu(n,i,r)),n=n.map(e.changes);let t=[];for(let i of e.effects)i.is(rs)&&!d0(n,i.value.from,i.value.to)?t.push(i.value):i.is(Cn)&&(n=n.update({filter:c((r,s)=>i.value.from!=r||i.value.to!=s,"filter"),filterFrom:i.value.from,filterTo:i.value.to}));if(t.length){let{preparePlaceholder:i}=e.state.facet(ea),r=t.map(s=>(i?X.replace({widget:new Gl(i(e.state,s))}):gu).range(s.from,s.to));n=n.update({add:r})}return e.selection&&(n=mu(n,e.selection.main.head)),n},provide:c(n=>P.decorations.from(n),"provide"),toJSON(n,e){let t=[];return n.between(0,e.doc.length,(i,r)=>{t.push(i,r)}),t},fromJSON(n){if(!Array.isArray(n)||n.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{re&&(i=!0)}),i?n.update({filterFrom:e,filterTo:t,filter:c((r,s)=>r>=t||s<=e,"filter")}):n}c(mu,"clearTouchedFolds");function Jr(n,e,t){var i;let r=null;return(i=n.field(si,!1))===null||i===void 0||i.between(e,t,(s,o)=>{(!r||r.from>s)&&(r={from:s,to:o})}),r}c(Jr,"findFold");function d0(n,e,t){let i=!1;return n.between(e,e,(r,s)=>{r==e&&s==t&&(i=!0)}),i}c(d0,"foldExists");function Zu(n,e){return n.field(si,!1)?e:e.concat(R.appendConfig.of(Ru()))}c(Zu,"maybeEnable");var O0=c(n=>{for(let e of Cu(n)){let t=Kr(n.state,e.from,e.to);if(t)return n.dispatch({effects:Zu(n.state,[rs.of(t),Xu(n,t)])}),!0}return!1},"foldCode"),p0=c(n=>{if(!n.state.field(si,!1))return!1;let e=[];for(let t of Cu(n)){let i=Jr(n.state,t.from,t.to);i&&e.push(Cn.of(i),Xu(n,i,!1))}return e.length&&n.dispatch({effects:e}),e.length>0},"unfoldCode");function Xu(n,e,t=!0){let i=n.state.doc.lineAt(e.from).number,r=n.state.doc.lineAt(e.to).number;return P.announce.of(`${n.state.phrase(t?"Folded lines":"Unfolded lines")} ${i} ${n.state.phrase("to")} ${r}.`)}c(Xu,"announceFold");var m0=c(n=>{let{state:e}=n,t=[];for(let i=0;i{let e=n.state.field(si,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,n.state.doc.length,(i,r)=>{t.push(Cn.of({from:i,to:r}))}),n.dispatch({effects:t}),!0},"unfoldAll");var Au=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:O0},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:p0},{key:"Ctrl-Alt-[",run:m0},{key:"Ctrl-Alt-]",run:g0}],S0={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},ea=v.define({combine(n){return pe(n,S0)}});function Ru(n){let e=[si,b0];return n&&e.push(ea.of(n)),e}c(Ru,"codeFolding");function Mu(n,e){let{state:t}=n,i=t.facet(ea),r=c(o=>{let l=n.lineBlockAt(n.posAtDOM(o.target)),a=Jr(n.state,l.from,l.to);a&&n.dispatch({effects:Cn.of(a)}),o.preventDefault()},"onclick");if(i.placeholderDOM)return i.placeholderDOM(n,r,e);let s=document.createElement("span");return s.textContent=i.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=r,s}c(Mu,"widgetToDOM");var gu=X.replace({widget:new class extends be{toDOM(n){return Mu(n,null)}}}),Gl=class extends be{static{c(this,"PreparedFoldWidget")}constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Mu(e,this.value)}},y0={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:c(()=>!1,"foldingChanged")},vn=class extends Re{static{c(this,"FoldMarker")}constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}};function ju(n={}){let e={...y0,...n},t=new vn(e,!0),i=new vn(e,!1),r=te.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Rt)!=o.state.facet(Rt)||o.startState.field(si,!1)!=o.state.field(si,!1)||F(o.startState)!=F(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let l=new Ze;for(let a of o.viewportLineBlocks){let h=Jr(o.state,a.from,a.to)?i:Kr(o.state,a.from,a.to)?t:null;h&&l.add(a.from,a.from,h)}return l.finish()}}),{domEventHandlers:s}=e;return[r,$l({class:"cm-foldGutter",markers(o){var l;return((l=o.plugin(r))===null||l===void 0?void 0:l.markers)||_.empty},initialSpacer(){return new vn(e,!1)},domEventHandlers:{...s,click:c((o,l,a)=>{if(s.click&&s.click(o,l,a))return!0;let h=Jr(o.state,l.from,l.to);if(h)return o.dispatch({effects:Cn.of(h)}),!0;let f=Kr(o.state,l.from,l.to);return f?(o.dispatch({effects:rs.of(f)}),!0):!1},"click")}}),Ru()]}c(ju,"foldGutter");var b0=P.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),es=class n{static{c(this,"HighlightStyle")}constructor(e,t){this.specs=e;let i;function r(l){let a=Le.newName();return(i||(i=Object.create(null)))["."+a]=l,a}c(r,"def");let s=typeof t.all=="string"?t.all:t.all?r(t.all):void 0,o=t.scope;this.scope=o instanceof Me?l=>l.prop(Ei)==o.data:o?l=>l==o:void 0,this.style=_l(e.map(l=>({tag:l.tag,class:l.class||r(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=i?new Le(i):null,this.themeType=t.themeType}static define(e,t){return new n(e,t||{})}},Ul=v.define(),Eu=v.define({combine(n){return n.length?[n[0]]:null}});function Ll(n){let e=n.facet(Ul);return e.length?e:n.facet(Eu)}c(Ll,"getHighlighters");function Yu(n,e){let t=[Q0],i;return n instanceof es&&(n.module&&t.push(P.styleModule.of(n.module)),i=n.themeType),e?.fallback?t.push(Eu.of(n)):i?t.push(Ul.computeN([P.darkTheme],r=>r.facet(P.darkTheme)==(i=="dark")?[n]:[])):t.push(Ul.of(n)),t}c(Yu,"syntaxHighlighting");var Fl=class{static{c(this,"TreeHighlighter")}constructor(e){this.markCache=Object.create(null),this.tree=F(e.state),this.decorations=this.buildDeco(e,Ll(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=F(e.state),i=Ll(e.state),r=i!=Ll(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return X.none;let i=new Ze;for(let{from:r,to:s}of e.visibleRanges)du(this.tree,t,(o,l,a)=>{i.add(o,l,this.markCache[a]||(this.markCache[a]=X.mark({class:a})))},r,s);return i.finish()}},Q0=De.high(te.fromClass(Fl,{decorations:c(n=>n.decorations,"decorations")})),zu=es.define([{tag:S.meta,color:"#404740"},{tag:S.link,textDecoration:"underline"},{tag:S.heading,textDecoration:"underline",fontWeight:"bold"},{tag:S.emphasis,fontStyle:"italic"},{tag:S.strong,fontWeight:"bold"},{tag:S.strikethrough,textDecoration:"line-through"},{tag:S.keyword,color:"#708"},{tag:[S.atom,S.bool,S.url,S.contentSeparator,S.labelName],color:"#219"},{tag:[S.literal,S.inserted],color:"#164"},{tag:[S.string,S.deleted],color:"#a11"},{tag:[S.regexp,S.escape,S.special(S.string)],color:"#e40"},{tag:S.definition(S.variableName),color:"#00f"},{tag:S.local(S.variableName),color:"#30a"},{tag:[S.typeName,S.namespace],color:"#085"},{tag:S.className,color:"#167"},{tag:[S.special(S.variableName),S.macroName],color:"#256"},{tag:S.definition(S.propertyName),color:"#00c"},{tag:S.comment,color:"#940"},{tag:S.invalid,color:"#f00"}]),x0=P.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Wu=1e4,_u="()[]{}",Vu=v.define({combine(n){return pe(n,{afterCursor:!0,brackets:_u,maxScanDistance:Wu,renderMatch:$0})}}),w0=X.mark({class:"cm-matchingBracket"}),k0=X.mark({class:"cm-nonmatchingBracket"});function $0(n){let e=[],t=n.matched?w0:k0;return e.push(t.range(n.start.from,n.start.to)),n.end&&e.push(t.range(n.end.from,n.end.to)),e}c($0,"defaultRenderMatch");function Su(n){let e=[],t=n.facet(Vu);for(let i of n.selection.ranges){if(!i.empty)continue;let r=Je(n,i.head,-1,t)||i.head>0&&Je(n,i.head-1,1,t)||t.afterCursor&&(Je(n,i.head,1,t)||i.headn.decorations,"decorations")}),P0=[v0,x0];function Du(n={}){return[Vu.of(n),P0]}c(Du,"bracketMatching");var ta=new j;function Hl(n,e,t){let i=n.prop(e<0?j.openedBy:j.closedBy);if(i)return i;if(n.name.length==1){let r=t.indexOf(n.name);if(r>-1&&r%2==(e<0?1:0))return[t[r+e]]}return null}c(Hl,"matchingNodes");function Kl(n){let e=n.type.prop(ta);return e?e(n.node):n}c(Kl,"findHandle");function Je(n,e,t,i={}){let r=i.maxScanDistance||Wu,s=i.brackets||_u,o=F(n),l=o.resolveInner(e,t);for(let a=l;a;a=a.parent){let h=Hl(a.type,t,s);if(h&&a.from0?e>=f.from&&ef.from&&e<=f.to))return T0(n,e,t,a,f,h,s)}}return C0(n,e,t,o,l.type,r,s)}c(Je,"matchBrackets");function T0(n,e,t,i,r,s,o){let l=i.parent,a={from:r.from,to:r.to},h=0,f=l?.cursor();if(f&&(t<0?f.childBefore(i.from):f.childAfter(i.to)))do if(t<0?f.to<=i.from:f.from>=i.to){if(h==0&&s.indexOf(f.type.name)>-1&&f.from0)return null;let h={from:t<0?e-1:e,to:t>0?e+1:e},f=n.doc.iterRange(e,t>0?n.doc.length:0),u=0;for(let d=0;!f.next().done&&d<=s;){let O=f.value;t<0&&(d+=O.length);let p=e+d*t;for(let m=t>0?0:O.length-1,g=t>0?O.length:-1;m!=g;m+=t){let y=o.indexOf(O[m]);if(!(y<0||i.resolveInner(p+m,1).type!=r))if(y%2==0==t>0)u++;else{if(u==1)return{start:h,end:{from:p+m,to:p+m+1},matched:y>>1==a>>1};u--}}t>0&&(d+=O.length)}return f.done?{start:h,matched:!1}:null}c(C0,"matchPlainBrackets");var Z0=Object.create(null),yu=[de.none];var bu=[],Qu=Object.create(null),X0=Object.create(null);for(let[n,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])X0[n]=A0(Z0,e);function ql(n,e){bu.indexOf(n)>-1||(bu.push(n),console.warn(e))}c(ql,"warnForPart");function A0(n,e){let t=[];for(let l of e.split(" ")){let a=[];for(let h of l.split(".")){let f=n[h]||S[h];f?typeof f=="function"?a.length?a=a.map(f):ql(h,`Modifier ${h} used at start of tag`):a.length?ql(h,`Tag ${h} used as modifier`):a=Array.isArray(f)?f:[f]:ql(h,`Unknown highlighting tag ${h}`)}for(let h of a)t.push(h)}if(!t.length)return 0;let i=e.replace(/ /g,"_"),r=i+" "+t.map(l=>l.id),s=Qu[r];if(s)return s.id;let o=Qu[r]=de.define({id:yu.length,name:i,props:[Xt({[i]:t})]});return yu.push(o),o.id}c(A0,"createTokenType");var fx={rtl:X.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:q.RTL}),ltr:X.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:q.LTR}),auto:X.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var R0=c(n=>{let{state:e}=n,t=e.doc.lineAt(e.selection.main.from),i=aa(n.state,t.from);return i.line?M0(n):i.block?E0(n):!1},"toggleComment");function la(n,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let r=n(e,t);return r?(i(t.update(r)),!0):!1}}c(la,"command");var M0=la(W0,0);var j0=la(Hu,0);var E0=la((n,e)=>Hu(n,e,z0(e)),0);function aa(n,e){let t=n.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}c(aa,"getConfig");var Zn=50;function Y0(n,{open:e,close:t},i,r){let s=n.sliceDoc(i-Zn,i),o=n.sliceDoc(r,r+Zn),l=/\s*$/.exec(s)[0].length,a=/^\s*/.exec(o)[0].length,h=s.length-l;if(s.slice(h-e.length,h)==e&&o.slice(a,a+t.length)==t)return{open:{pos:i-l,margin:l&&1},close:{pos:r+a,margin:a&&1}};let f,u;r-i<=2*Zn?f=u=n.sliceDoc(i,r):(f=n.sliceDoc(i,i+Zn),u=n.sliceDoc(r-Zn,r));let d=/^\s*/.exec(f)[0].length,O=/\s*$/.exec(u)[0].length,p=u.length-O-t.length;return f.slice(d,d+e.length)==e&&u.slice(p,p+t.length)==t?{open:{pos:i+d+e.length,margin:/\s/.test(f.charAt(d+e.length))?1:0},close:{pos:r-O-t.length,margin:/\s/.test(u.charAt(p-1))?1:0}}:null}c(Y0,"findBlockComment");function z0(n){let e=[];for(let t of n.selection.ranges){let i=n.doc.lineAt(t.from),r=t.to<=i.to?i:n.doc.lineAt(t.to);r.from>i.from&&r.from==t.to&&(r=t.to==i.to+1?i:n.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>i.from?e[s].to=r.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:r.to})}return e}c(z0,"selectedLineRanges");function Hu(n,e,t=e.selection.ranges){let i=t.map(s=>aa(e,s.from).block);if(!i.every(s=>s))return null;let r=t.map((s,o)=>Y0(e,i[o],s.from,s.to));if(n!=2&&!r.every(s=>s))return{changes:e.changes(t.map((s,o)=>r[o]?[]:[{from:s.from,insert:i[o].open+" "},{from:s.to,insert:" "+i[o].close}]))};if(n!=1&&r.some(s=>s)){let s=[];for(let o=0,l;or&&(s==o||o>u.from)){r=u.from;let d=/^\s*/.exec(u.text)[0].length,O=d==u.length,p=u.text.slice(d,d+h.length)==h?d:-1;ds.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:a,indent:h,empty:f,single:u}of i)(u||!f)&&s.push({from:l.from+h,insert:a+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(n!=1&&i.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:l,token:a}of i)if(l>=0){let h=o.from+l,f=h+a.length;o.text[f-o.from]==" "&&f++,s.push({from:h,to:f})}return{changes:s}}return null}c(W0,"changeLineComment");var na=we.define(),_0=we.define(),V0=v.define(),Ku=v.define({combine(n){return pe(n,{minDepth:100,newGroupDelay:500,joinToEvent:c((e,t)=>t,"joinToEvent")},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:c((e,t)=>(i,r)=>e(i,r)||t(i,r),"joinToEvent")})}}),Ju=ie.define({create(){return ai.empty},update(n,e){let t=e.state.facet(Ku),i=e.annotation(na);if(i){let a=et.fromTransaction(e,i.selection),h=i.side,f=h==0?n.undone:n.done;return a?f=os(f,f.length,t.minDepth,a):f=nd(f,e.startState.selection),new ai(h==0?i.rest:f,h==0?f:i.rest)}let r=e.annotation(_0);if((r=="full"||r=="before")&&(n=n.isolate()),e.annotation(re.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let s=et.fromTransaction(e),o=e.annotation(re.time),l=e.annotation(re.userEvent);return s?n=n.addChanges(s,o,l,t,e):e.selection&&(n=n.addSelection(e.startState.selection,o,l,t.newGroupDelay)),(r=="full"||r=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new ai(n.done.map(et.fromJSON),n.undone.map(et.fromJSON))}});function ed(n={}){return[Ju,Ku.of(n),P.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?td:e.inputType=="historyRedo"?ra:null;return i?(e.preventDefault(),i(t)):!1}})]}c(ed,"history");function ls(n,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let r=t.field(Ju,!1);if(!r)return!1;let s=r.pop(n,t,e);return s?(i(s),!0):!1}}c(ls,"cmd");var td=ls(0,!1),ra=ls(1,!1),D0=ls(0,!0),L0=ls(1,!0);var et=class n{static{c(this,"HistEvent")}constructor(e,t,i,r,s){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=r,this.selectionsAfter=s}setSelAfter(e){return new n(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new n(e.changes&&Se.fromJSON(e.changes),[],e.mapped&&ut.fromJSON(e.mapped),e.startSelection&&b.fromJSON(e.startSelection),e.selectionsAfter.map(b.fromJSON))}static fromTransaction(e,t){let i=Ne;for(let r of e.startState.facet(V0)){let s=r(e);s.length&&(i=i.concat(s))}return!i.length&&e.changes.empty?null:new n(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,Ne)}static selection(e){return new n(void 0,Ne,void 0,void 0,e)}};function os(n,e,t,i){let r=e+1>t+20?e-t-1:0,s=n.slice(r,e);return s.push(i),s}c(os,"updateBranch");function q0(n,e){let t=[],i=!1;return n.iterChangedRanges((r,s)=>t.push(r,s)),e.iterChangedRanges((r,s,o,l)=>{for(let a=0;a=h&&o<=f&&(i=!0)}}),i}c(q0,"isAdjacent");function B0(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}c(B0,"eqSelectionShape");function id(n,e){return n.length?e.length?n.concat(e):n:e}c(id,"conc");var Ne=[],I0=200;function nd(n,e){if(n.length){let t=n[n.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-I0));return i.length&&i[i.length-1].eq(e)?n:(i.push(e),os(n,n.length-1,1e9,t.setSelAfter(i)))}else return[et.selection([e])]}c(nd,"addSelection");function N0(n){let e=n[n.length-1],t=n.slice();return t[n.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}c(N0,"popSelection");function ia(n,e){if(!n.length)return n;let t=n.length,i=Ne;for(;t;){let r=G0(n[t-1],e,i);if(r.changes&&!r.changes.empty||r.effects.length){let s=n.slice(0,t);return s[t-1]=r,s}else e=r.mapped,t--,i=r.selectionsAfter}return i.length?[et.selection(i)]:Ne}c(ia,"addMappingToBranch");function G0(n,e,t){let i=id(n.selectionsAfter.length?n.selectionsAfter.map(l=>l.map(e)):Ne,t);if(!n.changes)return et.selection(i);let r=n.changes.map(e),s=e.mapDesc(n.changes,!0),o=n.mapped?n.mapped.composeDesc(s):s;return new et(r,R.mapEffects(n.effects,e),o,n.startSelection.map(s),i)}c(G0,"mapEvent");var U0=/^(input\.type|delete)($|\.)/,ai=class n{static{c(this,"HistoryState")}constructor(e,t,i=0,r=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=r}isolate(){return this.prevTime?new n(this.done,this.undone):this}addChanges(e,t,i,r,s){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!i||U0.test(i))&&(!l.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?n.moveByChar(t,e):as(t,e))}c(sd,"cursorByChar");function me(n){return n.textDirectionAt(n.state.selection.main.head)==q.LTR}c(me,"ltrAtCursor");var od=c(n=>sd(n,!me(n)),"cursorCharLeft"),ld=c(n=>sd(n,me(n)),"cursorCharRight");function ad(n,e){return it(n,t=>t.empty?n.moveByGroup(t,e):as(t,e))}c(ad,"cursorByGroup");var F0=c(n=>ad(n,!me(n)),"cursorGroupLeft"),H0=c(n=>ad(n,me(n)),"cursorGroupRight");var xx=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function K0(n,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(n.sliceDoc(e.from,e.to)))||e.firstChild}c(K0,"interestingNode");function hs(n,e,t){let i=F(n).resolveInner(e.head),r=t?j.closedBy:j.openedBy;for(let a=e.head;;){let h=t?i.childAfter(a):i.childBefore(a);if(!h)break;K0(n,h,r)?i=h:a=t?h.to:h.from}let s=i.type.prop(r),o,l;return s&&(o=t?Je(n,i.from,1):Je(n,i.to,-1))&&o.matched?l=t?o.end.to:o.end.from:l=t?i.to:i.from,b.cursor(l,t?-1:1)}c(hs,"moveBySyntax");var J0=c(n=>it(n,e=>hs(n.state,e,!me(n))),"cursorSyntaxLeft"),eS=c(n=>it(n,e=>hs(n.state,e,me(n))),"cursorSyntaxRight");function hd(n,e){return it(n,t=>{if(!t.empty)return as(t,e);let i=n.moveVertically(t,e);return i.head!=t.head?i:n.moveToLineBoundary(t,e)})}c(hd,"cursorByLine");var cd=c(n=>hd(n,!1),"cursorLineUp"),fd=c(n=>hd(n,!0),"cursorLineDown");function ud(n){let e=n.scrollDOM.clientHeighto.empty?n.moveVertically(o,e,t.height):as(o,e));if(r.eq(i.selection))return!1;let s;if(t.selfScroll){let o=n.coordsAtPos(i.selection.main.head),l=n.scrollDOM.getBoundingClientRect(),a=l.top+t.marginTop,h=l.bottom-t.marginBottom;o&&o.top>a&&o.bottomdd(n,!1),"cursorPageUp"),sa=c(n=>dd(n,!0),"cursorPageDown");function jt(n,e,t){let i=n.lineBlockAt(e.head),r=n.moveToLineBoundary(e,t);if(r.head==e.head&&r.head!=(t?i.to:i.from)&&(r=n.moveToLineBoundary(e,t,!1)),!t&&r.head==i.from&&i.length){let s=/^\s*/.exec(n.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;s&&e.head!=i.from+s&&(r=b.cursor(i.from+s))}return r}c(jt,"moveByLineBoundary");var tS=c(n=>it(n,e=>jt(n,e,!0)),"cursorLineBoundaryForward"),iS=c(n=>it(n,e=>jt(n,e,!1)),"cursorLineBoundaryBackward"),nS=c(n=>it(n,e=>jt(n,e,!me(n))),"cursorLineBoundaryLeft"),rS=c(n=>it(n,e=>jt(n,e,me(n))),"cursorLineBoundaryRight"),sS=c(n=>it(n,e=>b.cursor(n.lineBlockAt(e.head).from,1)),"cursorLineStart"),oS=c(n=>it(n,e=>b.cursor(n.lineBlockAt(e.head).to,-1)),"cursorLineEnd");function lS(n,e,t){let i=!1,r=_i(n.selection,s=>{let o=Je(n,s.head,-1)||Je(n,s.head,1)||s.head>0&&Je(n,s.head-1,1)||s.headlS(n,e,!1),"cursorMatchingBracket");function Ge(n,e,t){let i=_i(n.state.selection,r=>{r.undirectional&&r.head>=r.anchor!=e&&(r=b.range(r.head,r.anchor));let s=t(r);return b.range(r.anchor,s.head,s.goalColumn,s.bidiLevel||void 0,s.assoc)});return i.eq(n.state.selection)?!1:(n.dispatch(tt(n.state,i)),!0)}c(Ge,"extendSel");function Od(n,e){return Ge(n,e,t=>n.moveByChar(t,e))}c(Od,"selectByChar");var pd=c(n=>Od(n,!me(n)),"selectCharLeft"),md=c(n=>Od(n,me(n)),"selectCharRight");function gd(n,e){return Ge(n,e,t=>n.moveByGroup(t,e))}c(gd,"selectByGroup");var hS=c(n=>gd(n,!me(n)),"selectGroupLeft"),cS=c(n=>gd(n,me(n)),"selectGroupRight");var fS=c(n=>{let e=!me(n);return Ge(n,e,t=>hs(n.state,t,e))},"selectSyntaxLeft"),uS=c(n=>{let e=me(n);return Ge(n,e,t=>hs(n.state,t,e))},"selectSyntaxRight");function Sd(n,e){return Ge(n,e,t=>n.moveVertically(t,e))}c(Sd,"selectByLine");var yd=c(n=>Sd(n,!1),"selectLineUp"),bd=c(n=>Sd(n,!0),"selectLineDown");function Qd(n,e){return Ge(n,e,t=>n.moveVertically(t,e,ud(n).height))}c(Qd,"selectByPage");var qu=c(n=>Qd(n,!1),"selectPageUp"),Bu=c(n=>Qd(n,!0),"selectPageDown"),dS=c(n=>Ge(n,!0,e=>jt(n,e,!0)),"selectLineBoundaryForward"),OS=c(n=>Ge(n,!1,e=>jt(n,e,!1)),"selectLineBoundaryBackward"),pS=c(n=>{let e=!me(n);return Ge(n,e,t=>jt(n,t,e))},"selectLineBoundaryLeft"),mS=c(n=>{let e=me(n);return Ge(n,e,t=>jt(n,t,e))},"selectLineBoundaryRight"),gS=c(n=>Ge(n,!1,e=>b.cursor(n.lineBlockAt(e.head).from)),"selectLineStart"),SS=c(n=>Ge(n,!0,e=>b.cursor(n.lineBlockAt(e.head).to)),"selectLineEnd"),Iu=c(({state:n,dispatch:e})=>(e(tt(n,{anchor:0})),!0),"cursorDocStart"),Nu=c(({state:n,dispatch:e})=>(e(tt(n,{anchor:n.doc.length})),!0),"cursorDocEnd"),Gu=c(({state:n,dispatch:e})=>(e(tt(n,{anchor:n.selection.main.anchor,head:0})),!0),"selectDocStart"),Uu=c(({state:n,dispatch:e})=>(e(tt(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),"selectDocEnd"),yS=c(({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),"selectAll"),bS=c(({state:n,dispatch:e})=>{let t=cs(n).map(({from:i,to:r})=>b.undirectionalRange(i,Math.min(r+1,n.doc.length)));return e(n.update({selection:b.create(t),userEvent:"select"})),!0},"selectLine"),QS=c(({state:n,dispatch:e})=>{let t=_i(n.selection,i=>{let r=F(n),s=r.resolveStack(i.from,1);if(i.empty){let o=r.resolveStack(i.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:l}=o;if((l.from=i.to||l.to>i.to&&l.from<=i.from)&&o.next)return b.undirectionalRange(l.from,l.to)}return i});return t.eq(n.selection)?!1:(e(tt(n,t)),!0)},"selectParentSyntax");function xd(n,e){let{state:t}=n,i=t.selection,r=t.selection.ranges.slice();for(let s of t.selection.ranges){let o=t.doc.lineAt(s.head);if(e?o.to0)for(let l=s;;){let a=n.moveVertically(l,e);if(a.heado.to){r.some(h=>h.head==a.head)||r.push(a);break}else{if(a.head==l.head)break;l=a}}}return r.length==i.ranges.length?!1:(n.dispatch(tt(t,b.create(r,r.length-1))),!0)}c(xd,"addCursorVertically");var xS=c(n=>xd(n,!1),"addCursorAbove"),wS=c(n=>xd(n,!0),"addCursorBelow"),kS=c(({state:n,dispatch:e})=>{let t=n.selection,i=null;return t.ranges.length>1?i=b.create([t.main]):t.main.empty||(i=b.create([b.cursor(t.main.head)])),i?(e(tt(n,i)),!0):!1},"simplifySelection");function Xn(n,e){if(n.state.readOnly)return!1;let t="delete.selection",{state:i}=n,r=i.changeByRange(s=>{let{from:o,to:l}=s;if(o==l){let a=e(s);ao&&(t="delete.forward",a=ss(n,a,!0)),o=Math.min(o,a),l=Math.max(l,a)}else o=ss(n,o,!1),l=ss(n,l,!0);return o==l?{range:s}:{changes:{from:o,to:l},range:b.cursor(o,or(n)))i.between(e,e,(r,s)=>{re&&(e=t?s:r)});return e}c(ss,"skipAtomic");var wd=c((n,e,t)=>Xn(n,i=>{let r=i.from,{state:s}=n,o=s.doc.lineAt(r),l,a;if(t&&!e&&r>o.from&&rwd(n,!1,!0),"deleteCharBackward");var kd=c(n=>wd(n,!0,!1),"deleteCharForward"),$d=c((n,e)=>Xn(n,t=>{let i=t.head,{state:r}=n,s=r.doc.lineAt(i),o=r.charCategorizer(i);for(let l=null;;){if(i==(e?s.to:s.from)){i==t.head&&s.number!=(e?r.doc.lines:1)&&(i+=e?1:-1);break}let a=ne(s.text,i-s.from,e)+s.from,h=s.text.slice(Math.min(i,a)-s.from,Math.max(i,a)-s.from),f=o(h);if(l!=null&&f!=l)break;(h!=" "||i!=t.head)&&(l=f),i=a}return i}),"deleteByGroup"),vd=c(n=>$d(n,!1),"deleteGroupBackward"),$S=c(n=>$d(n,!0),"deleteGroupForward");var vS=c(n=>Xn(n,e=>{let t=n.lineBlockAt(e.head).to;return e.headXn(n,e=>{let t=n.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),"deleteLineBoundaryBackward"),TS=c(n=>Xn(n,e=>{let t=n.moveToLineBoundary(e,!0).head;return e.head{if(n.readOnly)return!1;let t=n.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:z.of(["",""])},range:b.cursor(i.from)}));return e(n.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},"splitLine"),ZS=c(({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(i=>{if(!i.empty||i.from==0||i.from==n.doc.length)return{range:i};let r=i.from,s=n.doc.lineAt(r),o=r==s.from?r-1:ne(s.text,r-s.from,!1)+s.from,l=r==s.to?r+1:ne(s.text,r-s.from,!0)+s.from;return{changes:{from:o,to:l,insert:n.doc.slice(r,l).append(n.doc.slice(o,r))},range:b.cursor(l)}});return t.changes.empty?!1:(e(n.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)},"transposeChars");function cs(n){let e=[],t=-1;for(let i of n.selection.ranges){let r=n.doc.lineAt(i.from),s=n.doc.lineAt(i.to);if(!i.empty&&i.to==s.from&&(s=n.doc.lineAt(i.to-1)),t>=r.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(i)}else e.push({from:r.from,to:s.to,ranges:[i]});t=s.number+1}return e}c(cs,"selectedLineBlocks");function Pd(n,e,t){if(n.readOnly)return!1;let i=[],r=[];for(let s of cs(n)){if(t?s.to==n.doc.length:s.from==0)continue;let o=n.doc.lineAt(t?s.to+1:s.from-1),l=o.length+1;if(t){i.push({from:s.to,to:o.to},{from:s.from,insert:o.text+n.lineBreak});for(let a of s.ranges)r.push(b.range(Math.min(n.doc.length,a.anchor+l),Math.min(n.doc.length,a.head+l)))}else{i.push({from:o.from,to:s.from},{from:s.to,insert:n.lineBreak+o.text});for(let a of s.ranges)r.push(b.range(a.anchor-l,a.head-l))}}return i.length?(e(n.update({changes:i,scrollIntoView:!0,selection:b.create(r,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}c(Pd,"moveLine");var XS=c(({state:n,dispatch:e})=>Pd(n,e,!1),"moveLineUp"),AS=c(({state:n,dispatch:e})=>Pd(n,e,!0),"moveLineDown");function Td(n,e,t){if(n.readOnly)return!1;let i=[];for(let s of cs(n))t?i.push({from:s.from,insert:n.doc.slice(s.from,s.to)+n.lineBreak}):i.push({from:s.to,insert:n.lineBreak+n.doc.slice(s.from,s.to)});let r=n.changes(i);return e(n.update({changes:r,selection:n.selection.map(r,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}c(Td,"copyLine");var RS=c(({state:n,dispatch:e})=>Td(n,e,!1),"copyLineUp"),MS=c(({state:n,dispatch:e})=>Td(n,e,!0),"copyLineDown"),jS=c(n=>{if(n.state.readOnly)return!1;let{state:e}=n,t=e.changes(cs(e).map(({from:r,to:s})=>(r>0?r--:s{let s;if(n.lineWrapping){let o=n.lineBlockAt(r.head),l=n.coordsAtPos(r.head,r.assoc||1);l&&(s=o.bottom+n.documentTop-l.bottom+n.defaultLineHeight/2)}return n.moveVertically(r,!0,s)}).map(t);return n.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0},"deleteLine");function ES(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=F(n).resolveInner(e),i=t.childBefore(e),r=t.childAfter(e),s;return i&&r&&i.to<=e&&r.from>=e&&(s=i.type.prop(j.closedBy))&&s.indexOf(r.name)>-1&&n.doc.lineAt(i.to).from==n.doc.lineAt(r.from).from&&!/\S/.test(n.sliceDoc(i.to,r.from))?{from:i.to,to:r.from}:null}c(ES,"isBetweenBrackets");var Fu=Cd(!1),YS=Cd(!0);function Cd(n){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(r=>{let{from:s,to:o}=r,l=e.doc.lineAt(s),a=!n&&s==o&&ES(e,s);n&&(s=o=(o<=l.to?l:e.doc.lineAt(o)).to);let h=new ri(e,{simulateBreak:s,simulateDoubleBreak:!!a}),f=is(h,s);for(f==null&&(f=dt(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));ol.from&&s{let r=[];for(let o=i.from;o<=i.to;){let l=n.doc.lineAt(o);l.number>t&&(i.empty||i.to>l.from)&&(e(l,r,i),t=l.number),o=l.to+1}let s=n.changes(r);return{changes:r,range:b.range(s.mapPos(i.anchor,1),s.mapPos(i.head,1))}})}c(ha,"changeBySelectedLine");var zS=c(({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=Object.create(null),i=new ri(n,{overrideIndentation:c(s=>{let o=t[s];return o??-1},"overrideIndentation")}),r=ha(n,(s,o,l)=>{let a=is(i,s.from);if(a==null)return;/\S/.test(s.text)||(a=0);let h=/^\s*/.exec(s.text)[0],f=zi(n,a);(h!=f||l.fromn.readOnly?!1:(e(n.update(ha(n,(t,i)=>{i.push({from:t.from,insert:n.facet(Yi)})}),{userEvent:"input.indent"})),!0),"indentMore"),_S=c(({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(ha(n,(t,i)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let s=dt(r,n.tabSize),o=0,l=zi(n,Math.max(0,s-Tn(n)));for(;o(n.setTabFocusMode(),!0),"toggleTabFocusMode");var DS=[{key:"Ctrl-b",run:od,shift:pd,preventDefault:!0},{key:"Ctrl-f",run:ld,shift:md},{key:"Ctrl-p",run:cd,shift:yd},{key:"Ctrl-n",run:fd,shift:bd},{key:"Ctrl-a",run:sS,shift:gS},{key:"Ctrl-e",run:oS,shift:SS},{key:"Ctrl-d",run:kd},{key:"Ctrl-h",run:oa},{key:"Ctrl-k",run:vS},{key:"Ctrl-Alt-h",run:vd},{key:"Ctrl-o",run:CS},{key:"Ctrl-t",run:ZS},{key:"Ctrl-v",run:sa}],LS=[{key:"ArrowLeft",run:od,shift:pd,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:F0,shift:hS,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:nS,shift:pS,preventDefault:!0},{key:"ArrowRight",run:ld,shift:md,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:H0,shift:cS,preventDefault:!0},{mac:"Cmd-ArrowRight",run:rS,shift:mS,preventDefault:!0},{key:"ArrowUp",run:cd,shift:yd,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Iu,shift:Gu},{mac:"Ctrl-ArrowUp",run:Lu,shift:qu},{key:"ArrowDown",run:fd,shift:bd,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Nu,shift:Uu},{mac:"Ctrl-ArrowDown",run:sa,shift:Bu},{key:"PageUp",run:Lu,shift:qu},{key:"PageDown",run:sa,shift:Bu},{key:"Home",run:iS,shift:OS,preventDefault:!0},{key:"Mod-Home",run:Iu,shift:Gu},{key:"End",run:tS,shift:dS,preventDefault:!0},{key:"Mod-End",run:Nu,shift:Uu},{key:"Enter",run:Fu,shift:Fu},{key:"Mod-a",run:yS},{key:"Backspace",run:oa,shift:oa,preventDefault:!0},{key:"Delete",run:kd,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:vd,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:$S,preventDefault:!0},{mac:"Mod-Backspace",run:PS,preventDefault:!0},{mac:"Mod-Delete",run:TS,preventDefault:!0}].concat(DS.map(n=>({mac:n.key,run:n.run,shift:n.shift}))),Zd=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:J0,shift:fS},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:eS,shift:uS},{key:"Alt-ArrowUp",run:XS},{key:"Shift-Alt-ArrowUp",run:RS},{key:"Alt-ArrowDown",run:AS},{key:"Shift-Alt-ArrowDown",run:MS},{key:"Mod-Alt-ArrowUp",run:xS},{key:"Mod-Alt-ArrowDown",run:wS},{key:"Escape",run:kS},{key:"Mod-Enter",run:YS},{key:"Alt-l",mac:"Ctrl-l",run:bS},{key:"Mod-i",run:QS,preventDefault:!0},{key:"Mod-[",run:_S},{key:"Mod-]",run:WS},{key:"Mod-Alt-\\",run:zS},{key:"Shift-Mod-k",run:jS},{key:"Shift-Mod-\\",run:aS},{key:"Mod-/",run:R0},{key:"Alt-A",mac:"Ctrl-A",run:j0},{key:"Ctrl-m",mac:"Shift-Alt-m",run:VS}].concat(LS);var Xd=typeof String.prototype.normalize=="function"?n=>n.normalize("NFKD"):n=>n,Yt=class{static{c(this,"SearchCursor")}constructor(e,t,i=0,r=e.length,s,o){this.test=o,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,r),this.bufferStart=i,this.normalize=s?l=>s(Xd(l)):Xd,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return ce(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=tn(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=Xe(e);let r=this.normalize(t);if(r.length)for(let s=0,o=i,l=!0;;s++){let a=r.charCodeAt(s),h=this.match(a,o,l,this.bufferPos+this.bufferStart,s==r.length-1);if(h)return this.value=h,this;if(s==r.length-1)break;l&&sthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,r=i+t[0].length;if(this.matchPos=ms(this.text,r+(i==r?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,r,t)))return this.value={from:i,to:r,precise:!0,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||r.to<=t){let l=new n(t,e.sliceString(t,i));return ca.set(e,l),l}if(r.from==t&&r.to==i)return r;let{text:s,from:o}=r;return o>t&&(s=e.sliceString(t,o)+s,o=t),r.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let i=this.flat.from+t.index,r=i+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,r,t)))return this.value={from:i,to:r,precise:!0,match:t},this.matchPos=ms(this.text,r+(i==r?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Os.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<"u"&&(ds.prototype[Symbol.iterator]=ps.prototype[Symbol.iterator]=function(){return this});function qS(n){try{return new RegExp(n,pa),!0}catch{return!1}}c(qS,"validRegExp");function ms(n,e){if(e>=n.length)return e;let t=n.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}c(ms,"toCharEnd");var BS=c(n=>{let{state:e}=n,t=String(e.doc.lineAt(n.state.selection.main.head).number),{close:i,result:r}=Gf(n,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:t},focus:!0,submitLabel:e.phrase("go")});return r.then(s=>{let o=s&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(s.elements.line.value);if(!o){n.dispatch({effects:i});return}let l=e.doc.lineAt(e.selection.main.head),[,a,h,f,u]=o,d=f?+f.slice(1):0,O=h?+h:l.number;if(h&&u){let g=O/100;a&&(g=g*(a=="-"?-1:1)+l.number/e.doc.lines),O=Math.round(e.doc.lines*g)}else h&&a&&(O=O*(a=="-"?-1:1)+l.number);let p=e.doc.line(Math.max(1,Math.min(e.doc.lines,O))),m=b.cursor(p.from+Math.max(0,Math.min(d,p.length)));n.dispatch({effects:[i,P.scrollIntoView(m.from,{y:"center"})],selection:m})}),!0},"gotoLine"),IS={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},jd=v.define({combine(n){return pe(n,IS,{highlightWordAroundCursor:c((e,t)=>e||t,"highlightWordAroundCursor"),minSelectionLength:Math.min,maxMatches:Math.min})}});function Ed(n){let e=[HS,FS];return n&&e.push(jd.of(n)),e}c(Ed,"highlightSelectionMatches");var NS=X.mark({class:"cm-selectionMatch"}),GS=X.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Ad(n,e,t,i){return(t==0||n(e.sliceDoc(t-1,t))!=I.Word)&&(i==e.doc.length||n(e.sliceDoc(i,i+1))!=I.Word)}c(Ad,"insideWordBoundaries");function US(n,e,t,i){return n(e.sliceDoc(t,t+1))==I.Word&&n(e.sliceDoc(i-1,i))==I.Word}c(US,"insideWord");var FS=te.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.selectionSet||n.docChanged||n.viewportChanged)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=n.state.facet(jd),{state:t}=n,i=t.selection;if(i.ranges.length>1)return X.none;let r=i.main,s,o=null;if(r.empty){if(!e.highlightWordAroundCursor)return X.none;let a=t.wordAt(r.head);if(!a)return X.none;o=t.charCategorizer(r.head),s=t.sliceDoc(a.from,a.to)}else{let a=r.to-r.from;if(a200)return X.none;if(e.wholeWords){if(s=t.sliceDoc(r.from,r.to),o=t.charCategorizer(r.head),!(Ad(o,t,r.from,r.to)&&US(o,t,r.from,r.to)))return X.none}else if(s=t.sliceDoc(r.from,r.to),!s)return X.none}let l=[];for(let a of n.visibleRanges){let h=new Yt(t.doc,s,a.from,a.to);for(;!h.next().done;){let{from:f,to:u}=h.value;if((!o||Ad(o,t,f,u))&&(r.empty&&f<=r.from&&u>=r.to?l.push(GS.range(f,u)):(f>=r.to||u<=r.from)&&l.push(NS.range(f,u)),l.length>e.maxMatches))return X.none}}return X.set(l)}},{decorations:c(n=>n.decorations,"decorations")}),HS=P.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),KS=c(({state:n,dispatch:e})=>{let{selection:t}=n,i=b.create(t.ranges.map(r=>n.wordAt(r.head)||b.cursor(r.head)),t.mainIndex);return i.eq(t)?!1:(e(n.update({selection:i})),!0)},"selectWord");function JS(n,e){let{main:t,ranges:i}=n.selection,r=n.wordAt(t.head),s=r&&r.from==t.from&&r.to==t.to;for(let o=!1,l=new Yt(n.doc,e,i[i.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new Yt(n.doc,e,0,Math.max(0,i[i.length-1].from-1)),o=!0}else{if(o&&i.some(a=>a.from==l.value.from))continue;if(s){let a=n.wordAt(l.value.from);if(!a||a.from!=l.value.from||a.to!=l.value.to)continue}return l.value}}c(JS,"findNextOccurrence");var ey=c(({state:n,dispatch:e})=>{let{ranges:t}=n.selection;if(t.some(s=>s.from===s.to))return KS({state:n,dispatch:e});let i=n.sliceDoc(t[0].from,t[0].to);if(n.selection.ranges.some(s=>n.sliceDoc(s.from,s.to)!=i))return!1;let r=JS(n,i);return r?(e(n.update({selection:n.selection.addRange(b.range(r.from,r.to),!1),effects:P.scrollIntoView(r.to)})),!0):!1},"selectNextOccurrence"),Li=v.define({combine(n){return pe(n,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:c(e=>new Oa(e),"createPanel"),scrollToMatch:c(e=>P.scrollIntoView(e),"scrollToMatch")})}});var gs=class{static{c(this,"SearchQuery")}constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||qS(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,i)=>i=="n"?` +`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new ua(this):new fa(this)}getCursor(e,t=0,i){let r=e.doc?e:G.create({doc:e});return i==null&&(i=r.doc.length),this.regexp?Di(this,r,t,i):Vi(this,r,t,i)}},Ss=class{static{c(this,"QueryType")}constructor(e){this.spec=e}};function ty(n,e,t){return(i,r,s,o)=>{if(t&&!t(i,r,s,o))return!1;let l=i>=o&&r<=o+s.length?s.slice(i-o,r-o):e.doc.sliceString(i,r);return n(l,e,i,r)}}c(ty,"wrapStringTest");function Vi(n,e,t,i){let r;return n.wholeWord&&(r=iy(e.doc,e.charCategorizer(e.selection.main.head))),n.test&&(r=ty(n.test,e,r)),new Yt(e.doc,n.unquoted,t,i,n.caseSensitive?void 0:s=>s.toLowerCase(),r)}c(Vi,"stringCursor");function iy(n,e){return(t,i,r,s)=>((s>t||s+r.length=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let s=Vi(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)r(s.value.from,s.value.to)}};function ny(n,e,t){return(i,r,s)=>(!t||t(i,r,s))&&n(s[0],e,i,r)}c(ny,"wrapRegexpTest");function Di(n,e,t,i){let r;return n.wholeWord&&(r=ry(e.charCategorizer(e.selection.main.head))),n.test&&(r=ny(n.test,e,r)),new ds(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:r},t,i)}c(Di,"regexpCursor");function ys(n,e){return n.slice(ne(n,e,!1),e)}c(ys,"charBefore");function bs(n,e){return n.slice(e,ne(n,e))}c(bs,"charAfter");function ry(n){return(e,t,i)=>!i[0].length||(n(ys(i.input,i.index))!=I.Word||n(bs(i.input,i.index))!=I.Word)&&(n(bs(i.input,i.index+i[0].length))!=I.Word||n(ys(i.input,i.index+i[0].length))!=I.Word)}c(ry,"regexpWordTest");var ua=class extends Ss{static{c(this,"RegExpQuery")}nextMatch(e,t,i){let r=Di(this.spec,e,i,e.doc.length).next();return r.done&&(r=Di(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,i){for(let r=1;;r++){let s=Math.max(t,i-r*1e4),o=Di(this.spec,e,s,i),l=null;for(;!o.next().done;)l=o.value;if(l&&(s==t||l.from>s+10))return l;if(s==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let r=i.length;r>0;r--){let s=+i.slice(0,r);if(s>0&&s=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let s=Di(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!s.next().done;)r(s.value.from,s.value.to)}},Rn=R.define(),ma=R.define(),Et=ie.define({create(n){return new An(da(n).create(),null)},update(n,e){for(let t of e.effects)t.is(Rn)?n=new An(t.value.create(),n.panel):t.is(ma)&&(n=new An(n.query,t.value?ga:null));return n},provide:c(n=>ei.from(n,e=>e.panel),"provide")});var An=class{static{c(this,"SearchState")}constructor(e,t){this.query=e,this.panel=t}},sy=X.mark({class:"cm-searchMatch"}),oy=X.mark({class:"cm-searchMatch cm-searchMatch-selected"}),ly=te.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(Et))}update(n){let e=n.state.field(Et);(e!=n.startState.field(Et)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return X.none;let{view:t}=this,i=new Ze;for(let r=0,s=t.visibleRanges,o=s.length;rs[r+1].from-500;)a=s[++r].to;n.highlight(t.state,l,a,(h,f)=>{let u=t.state.selection.ranges.some(d=>d.from==h&&d.to==f);i.add(h,f,u?oy:sy)})}return i.finish()}},{decorations:c(n=>n.decorations,"decorations")});function Mn(n){return e=>{let t=e.state.field(Et,!1);return t&&t.query.spec.valid?n(e,t):Wd(e)}}c(Mn,"searchCommand");var Qs=Mn((n,{query:e})=>{let{to:t}=n.state.selection.main,i=e.nextMatch(n.state,t,t);if(!i)return!1;let r=b.single(i.from,i.to),s=n.state.facet(Li);return n.dispatch({selection:r,effects:[Sa(n,i),s.scrollToMatch(r.main,n)],userEvent:"select.search"}),zd(n),!0}),xs=Mn((n,{query:e})=>{let{state:t}=n,{from:i}=t.selection.main,r=e.prevMatch(t,i,i);if(!r)return!1;let s=b.single(r.from,r.to),o=n.state.facet(Li);return n.dispatch({selection:s,effects:[Sa(n,r),o.scrollToMatch(s.main,n)],userEvent:"select.search"}),zd(n),!0}),ay=Mn((n,{query:e})=>{let t=e.matchAll(n.state,1e3);return!t||!t.length?!1:(n.dispatch({selection:b.create(t.map(i=>b.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),hy=c(({state:n,dispatch:e})=>{let t=n.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:r}=t.main,s=[],o=0;for(let l=new Yt(n.doc,n.sliceDoc(i,r));!l.next().done;){if(s.length>1e3)return!1;l.value.from==i&&(o=s.length),s.push(b.range(l.value.from,l.value.to))}return e(n.update({selection:b.create(s,o),userEvent:"select.search.matches"})),!0},"selectSelectionMatches"),Rd=Mn((n,{query:e})=>{let{state:t}=n,{from:i,to:r}=t.selection.main;if(t.readOnly)return!1;let s=e.nextMatch(t,i,i);if(!s)return!1;let o=s,l=[],a,h,f=[];o.precise?o.from==i&&o.to==r&&(h=t.toText(e.getReplacement(o)),l.push({from:o.from,to:o.to,insert:h}),o=e.nextMatch(t,o.from,o.to),f.push(P.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+"."))):o=e.nextMatch(t,o.from,o.to);let u=n.state.changes(l);return o&&(a=b.single(o.from,o.to).map(u),f.push(Sa(n,o)),f.push(t.facet(Li).scrollToMatch(a.main,n))),n.dispatch({changes:u,selection:a,effects:f,userEvent:"input.replace"}),!0}),cy=Mn((n,{query:e})=>{if(n.state.readOnly)return!1;let t=[];for(let r of e.matchAll(n.state,1e9)){let{from:s,to:o,precise:l}=r;l&&t.push({from:s,to:o,insert:e.getReplacement(r)})}if(!t.length)return!1;let i=n.state.phrase("replaced $ matches",t.length)+".";return n.dispatch({changes:t,effects:P.announce.of(i),userEvent:"input.replace.all"}),!0});function ga(n){return n.state.facet(Li).createPanel(n)}c(ga,"createSearchPanel");function da(n,e){var t,i,r,s,o;let l=n.selection.main,a=l.empty||l.to>l.from+100?"":n.sliceDoc(l.from,l.to);if(e&&!a)return e;let h=n.facet(Li);return new gs({search:((t=e?.literal)!==null&&t!==void 0?t:h.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e?.caseSensitive)!==null&&i!==void 0?i:h.caseSensitive,literal:(r=e?.literal)!==null&&r!==void 0?r:h.literal,regexp:(s=e?.regexp)!==null&&s!==void 0?s:h.regexp,wholeWord:(o=e?.wholeWord)!==null&&o!==void 0?o:h.wholeWord})}c(da,"defaultQuery");function Yd(n){let e=Qn(n,ga);return e&&e.dom.querySelector("[main-field]")}c(Yd,"getSearchInput");function zd(n){let e=Yd(n);e&&e==n.root.activeElement&&e.select()}c(zd,"selectSearchInput");var Wd=c(n=>{let e=n.state.field(Et,!1);if(e&&e.panel){let t=Yd(n);if(t&&t!=n.root.activeElement){let i=da(n.state,e.query.spec);i.valid&&n.dispatch({effects:Rn.of(i)}),t.focus(),t.select()}}else n.dispatch({effects:[ma.of(!0),e?Rn.of(da(n.state,e.query.spec)):R.appendConfig.of(uy)]});return!0},"openSearchPanel"),_d=c(n=>{let e=n.state.field(Et,!1);if(!e||!e.panel)return!1;let t=Qn(n,ga);return t&&t.dom.contains(n.root.activeElement)&&n.focus(),n.dispatch({effects:ma.of(!1)}),!0},"closeSearchPanel"),Vd=[{key:"Mod-f",run:Wd,scope:"editor search-panel"},{key:"F3",run:Qs,shift:xs,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Qs,shift:xs,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:_d,scope:"editor search-panel"},{key:"Mod-Shift-l",run:hy},{key:"Mod-Alt-g",run:BS},{key:"Mod-d",run:ey,preventDefault:!0}],Oa=class{static{c(this,"SearchPanel")}constructor(e){this.view=e;let t=this.query=e.state.field(Et).query.spec;this.commit=this.commit.bind(this),this.searchField=D("input",{value:t.search,placeholder:je(e,"Find"),"aria-label":je(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=D("input",{value:t.replace,placeholder:je(e,"Replace"),"aria-label":je(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=D("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=D("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=D("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(r,s,o){return D("button",{class:"cm-button",name:r,onclick:s,type:"button"},o)}c(i,"button"),this.dom=D("div",{onkeydown:c(r=>this.keydown(r),"onkeydown"),class:"cm-search"},[this.searchField,i("next",()=>Qs(e),[je(e,"next")]),i("prev",()=>xs(e),[je(e,"previous")]),i("select",()=>ay(e),[je(e,"all")]),D("label",null,[this.caseField,je(e,"match case")]),D("label",null,[this.reField,je(e,"regexp")]),D("label",null,[this.wordField,je(e,"by word")]),...e.state.readOnly?[]:[D("br"),this.replaceField,i("replace",()=>Rd(e),[je(e,"replace")]),i("replaceAll",()=>cy(e),[je(e,"replace all")])],D("button",{name:"close",onclick:c(()=>_d(e),"onclick"),"aria-label":je(e,"close"),type:"button"},["\xD7"])])}commit(){let e=new gs({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Rn.of(e)}))}keydown(e){Af(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?xs:Qs)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),Rd(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(Rn)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Li).top}};function je(n,e){return n.state.phrase(e)}c(je,"phrase");var fs=30,us=/[\s\.,:;?!]/;function Sa(n,{from:e,to:t}){let i=n.state.doc.lineAt(e),r=n.state.doc.lineAt(t).to,s=Math.max(i.from,e-fs),o=Math.min(r,t+fs),l=n.state.sliceDoc(s,o);if(s!=i.from){for(let a=0;al.length-fs;a--)if(!us.test(l[a-1])&&us.test(l[a])){l=l.slice(0,a);break}}return P.announce.of(`${n.state.phrase("current match")}. ${l} ${n.state.phrase("on line")} ${i.number}.`)}c(Sa,"announceMatch");var fy=P.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),uy=[Et,De.low(ly),fy];var ks=class{static{c(this,"CompletionContext")}constructor(e,t,i,r){this.state=e,this.pos=t,this.explicit=i,this.view=r,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=F(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),r=t.text.slice(i-t.from,this.pos-t.from),s=r.search(Hd(e,!1));return s<0?null:{from:i+s,to:this.pos,text:r.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),i&&i.onDocChange&&(this.abortOnDocChange=!0))}};function Dd(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}c(Dd,"toSet");function dy(n){let e=Object.create(null),t=Object.create(null);for(let{label:r}of n){e[r[0]]=!0;for(let s=1;stypeof r=="string"?{label:r}:r),[t,i]=e.every(r=>/^\w+$/.test(r.label))?[/\w*$/,/\w+$/]:dy(e);return r=>{let s=r.matchBefore(i);return s||r.explicit?{from:s?s.from:r.pos,options:e,validFor:t}:null}}c(Xa,"completeFromList");function Fd(n,e){return t=>{for(let i=F(t.state).resolveInner(t.pos,-1);i;i=i.parent){if(n.indexOf(i.name)>-1)return null;if(i.type.isTop)break}return e(t)}}c(Fd,"ifNotIn");var $s=class{static{c(this,"Option")}constructor(e,t,i,r){this.completion=e,this.source=t,this.match=i,this.score=r}};function ci(n){return n.selection.main.from}c(ci,"cur");function Hd(n,e){var t;let{source:i}=n,r=e&&i[0]!="^",s=i[i.length-1]!="$";return!r&&!s?n:new RegExp(`${r?"^":""}(?:${i})${s?"$":""}`,(t=n.flags)!==null&&t!==void 0?t:n.ignoreCase?"i":"")}c(Hd,"ensureAnchor");var Aa=we.define();function Oy(n,e,t,i){let{main:r}=n.selection,s=t-r.from,o=i-r.from;return{...n.changeByRange(l=>{if(l!=r&&t!=i&&n.sliceDoc(l.from+s,l.from+o)!=n.sliceDoc(t,i))return{range:l};let a=n.toText(e);return{changes:{from:l.from+s,to:i==r.from?l.to:l.from+o,insert:a},range:b.cursor(l.from+s+a.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}c(Oy,"insertCompletionText");var Ld=new WeakMap;function py(n){if(!Array.isArray(n))return n;let e=Ld.get(n);return e||Ld.set(n,e=Xa(n)),e}c(py,"asSource");var vs=R.define(),jn=R.define(),xa=class{static{c(this,"FuzzyMatcher")}constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&w<=57||w>=97&&w<=122?2:w>=65&&w<=90?1:0:(k=tn(w))!=k.toLowerCase()?1:k!=k.toUpperCase()?2:0;(!x||$==1&&g||Z==0&&$!=0)&&(t[u]==w||i[u]==w&&(d=!0)?o[u++]=x:o.length&&(y=!1)),Z=$,x+=Xe(w)}return u==a&&o[0]==0&&y?this.result(-100+(d?-200:0),o,e):O==a&&p==0?this.ret(-200-e.length+(m==e.length?0:-100),[0,m]):l>-1?this.ret(-700-e.length,[l,l+this.pattern.length]):O==a?this.ret(-900-e.length,[p,m]):u==a?this.result(-100+(d?-200:0)+-700+(y?0:-1100),o,e):t.length==2?null:this.result((r[0]?-700:0)+-200+-1100,r,e)}result(e,t,i){let r=[],s=0;for(let o of t){let l=o+(this.astral?Xe(ce(i,o)):1);s&&r[s-1]==o?r[s-1]=l:(r[s++]=o,r[s++]=l)}return this.ret(e-i.length,r)}},wa=class{static{c(this,"StrictMatcher")}constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,"activateOnCompletion"),activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:c(()=>"","tooltipClass"),optionClass:c(()=>"","optionClass"),aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:my,filterStrict:!1,compareCompletions:c((e,t)=>(e.sortText||e.label).localeCompare(t.sortText||t.label),"compareCompletions"),interactionDelay:75,updateSyncTime:100},{defaultKeymap:c((e,t)=>e&&t,"defaultKeymap"),closeOnBlur:c((e,t)=>e&&t,"closeOnBlur"),icons:c((e,t)=>e&&t,"icons"),tooltipClass:c((e,t)=>i=>qd(e(i),t(i)),"tooltipClass"),optionClass:c((e,t)=>i=>qd(e(i),t(i)),"optionClass"),addToOptions:c((e,t)=>e.concat(t),"addToOptions"),filterStrict:c((e,t)=>e||t,"filterStrict")})}});function qd(n,e){return n?e?n+" "+e:n:e}c(qd,"joinClass");function my(n,e,t,i,r,s){let o=n.textDirection==q.RTL,l=o,a=!1,h="top",f,u,d=e.left-r.left,O=r.right-e.right,p=i.right-i.left,m=i.bottom-i.top;if(l&&d=m||x>e.top?f=t.bottom-e.top:(h="bottom",f=e.bottom-t.top)}let g=(e.bottom-e.top)/s.offsetHeight,y=(e.right-e.left)/s.offsetWidth;return{style:`${h}: ${f/g}px; max-width: ${u/y}px`,class:"cm-completionInfo-"+(a?o?"left-narrow":"right-narrow":l?"left":"right")}}c(my,"defaultPositionInfo");var Ra=R.define();function gy(n){let e=n.addToOptions.slice();return n.icons&&e.push({render(t){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),t.type&&i.classList.add(...t.type.split(/\s+/g).map(r=>"cm-completionIcon-"+r)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(t,i,r,s){let o=document.createElement("span");o.className="cm-completionLabel";let l=t.displayLabel||t.label,a=0;for(let h=0;ha&&o.appendChild(document.createTextNode(l.slice(a,f)));let d=o.appendChild(document.createElement("span"));d.appendChild(document.createTextNode(l.slice(f,u))),d.className="cm-completionMatchedText",a=u}return at.position-i.position).map(t=>t.render)}c(gy,"optionContent");function ya(n,e,t){if(n<=t)return{from:0,to:n};if(e<0&&(e=0),e<=n>>1){let r=Math.floor(e/t);return{from:r*t,to:(r+1)*t}}let i=Math.ceil((n-e)/t);return{from:n-i*t,to:n-(i-1)*t}}c(ya,"rangeAroundSelected");var ka=class{static{c(this,"CompletionTooltip")}constructor(e,t,i){this.view=e,this.stateField=t,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:c(()=>this.measureInfo(),"read"),write:c(a=>this.placeInfo(a),"write"),key:this},this.space=null,this.currentClass="";let r=e.state.field(t),{options:s,selected:o}=r.open,l=e.state.facet(le);this.optionContent=gy(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=ya(s.length,o,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",a=>{let{options:h}=e.state.field(t).open;for(let f=a.target,u;f&&f!=this.dom;f=f.parentNode)if(f.nodeName=="LI"&&(u=/-(\d+)$/.exec(f.id))&&+u[1]this.list.lastChild.getBoundingClientRect().bottom?this.range.to:null;f!=null&&(e.dispatch({effects:Ra.of(f)}),a.preventDefault())}}),this.dom.addEventListener("focusout",a=>{let h=e.state.field(this.stateField,!1);h&&h.tooltip&&e.state.facet(le).closeOnBlur&&a.relatedTarget!=e.contentDOM&&e.dispatch({effects:jn.of(null)})}),this.showOptions(s,r.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let i=e.state.field(this.stateField),r=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=r){let{options:s,selected:o,disabled:l}=i.open;(!r.open||r.open.options!=s)&&(this.range=ya(s.length,o,e.state.facet(le).maxRenderedOptions),this.showOptions(s,i.id)),this.updateSel(),l!=((t=r.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of t.split(" "))i&&this.dom.classList.add(i);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;(t.selected>-1&&t.selected=this.range.to)&&(this.range=ya(t.options.length,t.selected,this.view.state.facet(le).maxRenderedOptions),this.showOptions(t.options,e.id));let i=this.updateSelectedOption(t.selected);if(i){this.destroyInfo();let{completion:r}=t.options[t.selected],{info:s}=r;if(!s)return;let o=typeof s=="string"?document.createTextNode(s):s(r);if(!o)return;"then"in o?o.then(l=>{l&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(l,r)}).catch(l=>fe(this.view.state,l,"completion info")):(this.addInfoPane(o,r),i.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,t){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",i.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:r,destroy:s}=e;i.appendChild(r),this.infoDestroy=s||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,r=this.range.from;i;i=i.nextSibling,r++)i.nodeName!="LI"||!i.id?r--:r==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&(i.removeAttribute("aria-selected"),i.removeAttribute("aria-describedby"));return t&&yy(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),s=this.space;if(!s){let o=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return r.top>Math.min(s.bottom,t.bottom)-10||r.bottom{o.target==r&&o.preventDefault()});let s=null;for(let o=i.from;oi.from||i.from==0))if(s=d,typeof h!="string"&&h.header)r.appendChild(h.header(h));else{let O=r.appendChild(document.createElement("completion-section"));O.textContent=d}}let f=r.appendChild(document.createElement("li"));f.id=t+"-"+o,f.setAttribute("role","option");let u=this.optionClass(l);u&&(f.className=u);for(let d of this.optionContent){let O=d(l,this.view.state,this.view,a);O&&f.appendChild(O)}}return i.from&&r.classList.add("cm-completionListIncompleteTop"),i.tonew ka(t,n,e)}c(Sy,"completionTooltip");function yy(n,e){let t=n.getBoundingClientRect(),i=e.getBoundingClientRect(),r=t.height/n.offsetHeight;i.topt.bottom&&(n.scrollTop+=(i.bottom-t.bottom)/r)}c(yy,"scrollIntoView");function Bd(n){return(n.boost||0)*100+(n.apply?10:0)+(n.info?5:0)+(n.type?1:0)}c(Bd,"score");function by(n,e){let t=[],i=null,r=null,s=c(f=>{t.push(f);let{section:u}=f.completion;if(u){i||(i=[]);let d=typeof u=="string"?u:u.name;i.some(O=>O.name==d)||i.push(typeof u=="string"?{name:d}:u)}},"addOption"),o=e.facet(le);for(let f of n)if(f.hasResult()){let u=f.result.getMatch;if(f.result.filter===!1)for(let d of f.result.options)s(new $s(d,f.source,u?u(d):[],1e9-t.length));else{let d=e.sliceDoc(f.from,f.to),O,p=o.filterStrict?new wa(d):new xa(d);for(let m of f.result.options)if(O=p.match(m.label)){let g=m.displayLabel?u?u(m,O.matched):[]:O.matched,y=O.score+(m.boost||0);if(s(new $s(m,f.source,g,y)),typeof m.section=="object"&&m.section.rank==="dynamic"){let{name:x}=m.section;r||(r=Object.create(null)),r[x]=Math.max(y,r[x]||-1e9)}}}}if(i){let f=Object.create(null),u=0,d=c((O,p)=>(O.rank==="dynamic"&&p.rank==="dynamic"?r[p.name]-r[O.name]:0)||(typeof O.rank=="number"?O.rank:1e9)-(typeof p.rank=="number"?p.rank:1e9)||(O.named.score-u.score||h(u.completion,d.completion))){let u=f.completion;!a||a.label!=u.label||a.detail!=u.detail||a.type!=null&&u.type!=null&&a.type!=u.type||a.apply!=u.apply||a.boost!=u.boost?l.push(f):Bd(f.completion)>Bd(a)&&(l[l.length-1]=f),a=f.completion}return l}c(by,"sortOptions");var $a=class n{static{c(this,"CompletionDialog")}constructor(e,t,i,r,s,o){this.options=e,this.attrs=t,this.tooltip=i,this.timestamp=r,this.selected=s,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new n(this.options,Id(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,r,s,o){if(r&&!o&&e.some(h=>h.isPending))return r.setDisabled();let l=by(e,t);if(!l.length)return r&&e.some(h=>h.isPending)?r.setDisabled():null;let a=t.facet(le).selectOnOpen?0:-1;if(r&&r.selected!=a&&r.selected!=-1){let h=r.options[r.selected].completion;for(let f=0;ff.hasResult()?Math.min(h,f.from):h,1e8),create:vy,above:s.aboveCursor},r?r.timestamp:Date.now(),a,!1)}map(e){return new n(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new n(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}},va=class n{static{c(this,"CompletionState")}constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new n(ky,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,i=t.facet(le),s=(i.override||t.languageDataAt("autocomplete",ci(t)).map(py)).map(a=>(this.active.find(f=>f.source==a)||new yt(a,this.active.some(f=>f.state!=0)?1:0)).update(e,i));s.length==this.active.length&&s.every((a,h)=>a==this.active[h])&&(s=this.active);let o=this.open,l=e.effects.some(a=>a.is(Ma));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||s.some(a=>a.hasResult()&&e.changes.touchesRange(a.from,a.to))||!Qy(s,this.active)||l?o=$a.build(s,t,this.id,o,i,l):o&&o.disabled&&!s.some(a=>a.isPending)&&(o=null),!o&&s.every(a=>!a.isPending)&&s.some(a=>a.hasResult())&&(s=s.map(a=>a.hasResult()?new yt(a.source,0):a));for(let a of e.effects)a.is(Ra)&&(o=o&&o.setSelected(a.value,this.id));return s==this.active&&o==this.open?this:new n(s,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?xy:wy}};function Qy(n,e){if(n==e)return!0;for(let t=0,i=0;;){for(;t-1&&(t["aria-activedescendant"]=n+"-"+e),t}c(Id,"makeAttrs");var ky=[];function Kd(n,e){if(n.isUserEvent("input.complete")){let i=n.annotation(Aa);if(i&&e.activateOnCompletion(i))return 12}let t=n.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:n.isUserEvent("delete.backward")?2:n.selection?8:n.docChanged?16:0}c(Kd,"getUpdateType");var yt=class n{static{c(this,"ActiveSource")}constructor(e,t,i=!1){this.source=e,this.state=t,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let i=Kd(e,t),r=this;(i&8||i&16&&this.touches(e))&&(r=new n(r.source,0)),i&4&&r.state==0&&(r=new n(this.source,1)),r=r.updateFor(e,i);for(let s of e.effects)if(s.is(vs))r=new n(r.source,1,s.value);else if(s.is(jn))r=new n(r.source,0);else if(s.is(Ma))for(let o of s.value)o.source==r.source&&(r=o);return r}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(ci(e.state))}},Ps=class n extends yt{static{c(this,"ActiveResult")}constructor(e,t,i,r,s,o){super(e,3,t),this.limit=i,this.result=r,this.from=s,this.to=o}hasResult(){return!0}updateFor(e,t){var i;if(!(t&3))return this.map(e.changes);let r=this.result;r.map&&!e.changes.empty&&(r=r.map(r,e.changes));let s=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),l=ci(e.state);if(l>o||!r||t&2&&(ci(e.startState)==this.from||lt.map(e))}}),Pe=ie.define({create(){return va.start()},update(n,e){return n.update(e)},provide:c(n=>[bn.from(n,e=>e.tooltip),P.contentAttributes.from(n,e=>e.attrs)],"provide")});function ja(n,e){let t=e.completion.apply||e.completion.label,i=n.state.field(Pe).active.find(r=>r.source==e.source);return i instanceof Ps?(typeof t=="string"?n.dispatch({...Oy(n.state,t,i.from,i.to),annotations:Aa.of(e.completion)}):t(n,e.completion,i.from,i.to),!0):!1}c(ja,"applyCompletion");var vy=Sy(Pe,ja);function ws(n,e="option"){return t=>{let i=t.state.field(Pe,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+r*(n?1:-1):n?0:o-1;return l<0?l=e=="page"?0:o-1:l>=o&&(l=e=="page"?o-1:0),t.dispatch({effects:Ra.of(l)}),!0}}c(ws,"moveCompletionSelection");var Py=c(n=>{let e=n.state.field(Pe,!1);return n.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampn.state.field(Pe,!1)?(n.dispatch({effects:vs.of(!0)}),!0):!1,"startCompletion"),Ty=c(n=>{let e=n.state.field(Pe,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(n.dispatch({effects:jn.of(null)}),!0)},"closeCompletion"),Pa=class{static{c(this,"RunningQuery")}constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}},Cy=50,Zy=1e3,Xy=te.fromClass(class{constructor(n){this.view=n,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of n.state.field(Pe).active)e.isPending&&this.startQuery(e)}update(n){let e=n.state.field(Pe),t=n.state.facet(le);if(!n.selectionSet&&!n.docChanged&&n.startState.field(Pe)==e)return;let i=n.transactions.some(s=>{let o=Kd(s,t);return o&8||(s.selection||s.docChanged)&&!(o&3)});for(let s=0;sCy&&Date.now()-o.time>Zy){for(let l of o.context.abortListeners)try{l()}catch(a){fe(this.view.state,a)}o.context.abortListeners=null,this.running.splice(s--,1)}else o.updates.push(...n.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),n.transactions.some(s=>s.effects.some(o=>o.is(vs)))&&(this.pendingStart=!0);let r=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(o=>o.active.source==s.source))?setTimeout(()=>this.startUpdate(),r):-1,this.composing!=0)for(let s of n.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:n}=this.view,e=n.field(Pe);for(let t of e.active)t.isPending&&!this.running.some(i=>i.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(le).updateSyncTime))}startQuery(n){let{state:e}=this.view,t=ci(e),i=new ks(e,t,n.explicit,this.view),r=new Pa(n,i);this.running.push(r),Promise.resolve(n.source(i)).then(s=>{r.context.aborted||(r.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:jn.of(null)}),fe(this.view.state,s)})}scheduleAccept(){this.running.every(n=>n.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(le).updateSyncTime))}accept(){var n;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(le),i=this.view.state.field(Pe);for(let r=0;rl.source==s.active.source);if(o&&o.isPending)if(s.done==null){let l=new yt(s.active.source,0);for(let a of s.updates)l=l.update(a,t);l.isPending||e.push(l)}else this.startQuery(o)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:Ma.of(e)})}},{eventHandlers:{blur(n){let e=this.view.state.field(Pe,!1);if(e&&e.tooltip&&this.view.state.facet(le).closeOnBlur){let t=e.open&&kl(this.view,e.open.tooltip);(!t||!t.dom.contains(n.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:jn.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:vs.of(!1)}),20),this.composing=0}}}),Ay=typeof navigator=="object"&&/Win/.test(navigator.platform),Ry=De.highest(P.domEventHandlers({keydown(n,e){let t=e.state.field(Pe,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||n.key.length>1||n.ctrlKey&&!(Ay&&n.altKey)||n.metaKey)return!1;let i=t.open.options[t.open.selected],r=t.active.find(o=>o.source==i.source),s=i.completion.commitCharacters||r.result.commitCharacters;return s&&s.indexOf(n.key)>-1&&ja(e,i),!1}})),Jd=P.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center",cursor:"pointer"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),Ta=class{static{c(this,"FieldPos")}constructor(e,t,i,r){this.field=e,this.line=t,this.from=i,this.to=r}},Ca=class n{static{c(this,"FieldRange")}constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){let t=e.mapPos(this.from,-1,oe.TrackDel),i=e.mapPos(this.to,1,oe.TrackDel);return t==null||i==null?null:new n(this.field,t,i)}},Za=class n{static{c(this,"Snippet")}constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let i=[],r=[t],s=e.doc.lineAt(t),o=/^\s*/.exec(s.text)[0];for(let a of this.lines){if(i.length){let h=o,f=/^\t*/.exec(a)[0].length;for(let u=0;unew Ca(a.field,r[a.line]+a.from,r[a.line]+a.to));return{text:i,ranges:l}}static parse(e){let t=[],i=[],r=[],s;for(let o of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let l=s[1]?+s[1]:null,a=s[2]||s[3]||"",h=-1;l===0&&(l=1e9);let f=a.replace(/\\[{}]/g,u=>u[1]);for(let u=0;u=h&&d.field++}for(let u of r)if(u.line==i.length&&u.from>s.index){let d=s[2]?3+(s[1]||"").length:2;u.from-=d,u.to-=d}r.push(new Ta(h,i.length,s.index,s.index+f.length)),o=o.slice(0,s.index)+a+o.slice(s.index+s[0].length)}o=o.replace(/\\([{}])/g,(l,a,h)=>{for(let f of r)f.line==i.length&&f.from>h&&(f.from--,f.to--);return a}),i.push(o)}return new n(i,r)}},My=X.widget({widget:new class extends be{toDOM(){let n=document.createElement("span");return n.className="cm-snippetFieldPosition",n}ignoreEvent(){return!1}}}),jy=X.mark({class:"cm-snippetField"}),qi=class n{static{c(this,"ActiveSnippet")}constructor(e,t){this.ranges=e,this.active=t,this.deco=X.set(e.map(i=>(i.from==i.to?My:jy).range(i.from,i.to)),!0)}map(e){let t=[];for(let i of this.ranges){let r=i.map(e);if(!r)return null;t.push(r)}return new n(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(i=>i.field==this.active&&i.from<=t.from&&i.to>=t.to))}},zn=R.define({map(n,e){return n&&n.map(e)}}),Ey=R.define(),En=ie.define({create(){return null},update(n,e){for(let t of e.effects){if(t.is(zn))return t.value;if(t.is(Ey)&&n)return new qi(n.ranges,t.value)}return n&&e.docChanged&&(n=n.map(e.changes)),n&&e.selection&&!n.selectionInsideField(e.selection)&&(n=null),n},provide:c(n=>P.decorations.from(n,e=>e?e.deco:X.none),"provide")});function Ea(n,e){return b.create(n.filter(t=>t.field==e).map(t=>b.range(t.from,t.to)))}c(Ea,"fieldSelection");function Yy(n){let e=Za.parse(n);return(t,i,r,s)=>{let{text:o,ranges:l}=e.instantiate(t.state,r),{main:a}=t.state.selection,h={changes:{from:r,to:s==a.from?a.to:s,insert:z.of(o)},scrollIntoView:!0,annotations:i?[Aa.of(i),re.userEvent.of("input.complete")]:void 0};if(l.length&&(h.selection=Ea(l,0)),l.some(f=>f.field>0)){let f=new qi(l,0),u=h.effects=[zn.of(f)];t.state.field(En,!1)===void 0&&u.push(R.appendConfig.of([En,Dy,Ly,Jd]))}t.dispatch(t.state.update(h))}}c(Yy,"snippet");function eO(n){return({state:e,dispatch:t})=>{let i=e.field(En,!1);if(!i||n<0&&i.active==0)return!1;let r=i.active+n,s=n>0&&!i.ranges.some(o=>o.field==r+n);return t(e.update({selection:Ea(i.ranges,r),effects:zn.of(s?null:new qi(i.ranges,r)),scrollIntoView:!0})),!0}}c(eO,"moveField");var zy=c(({state:n,dispatch:e})=>n.field(En,!1)?(e(n.update({effects:zn.of(null)})),!0):!1,"clearSnippet"),Wy=eO(1),_y=eO(-1);var Vy=[{key:"Tab",run:Wy,shift:_y},{key:"Escape",run:zy}],Nd=v.define({combine(n){return n.length?n[0]:Vy}}),Dy=De.highest(Ai.compute([Nd],n=>n.facet(Nd)));function xe(n,e){return{...e,apply:Yy(n)}}c(xe,"snippetCompletion");var Ly=P.domEventHandlers({mousedown(n,e){let t=e.state.field(En,!1),i;if(!t||(i=e.posAtCoords({x:n.clientX,y:n.clientY}))==null)return!1;let r=t.ranges.find(s=>s.from<=i&&s.to>=i);return!r||r.field==t.active?!1:(e.dispatch({selection:Ea(t.ranges,r.field),effects:zn.of(t.ranges.some(s=>s.field>r.field)?new qi(t.ranges,r.field):null),scrollIntoView:!0}),!0)}});var Yn={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},hi=R.define({map(n,e){let t=e.mapPos(n,-1,oe.TrackAfter);return t??void 0}}),Ya=new class extends Ve{};Ya.startSide=1;Ya.endSide=-1;var tO=ie.define({create(){return _.empty},update(n,e){if(n=n.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);n=n.update({filter:c(i=>i>=t.from&&i<=t.to,"filter")})}for(let t of e.effects)t.is(hi)&&(n=n.update({add:[Ya.range(t.value,t.value+1)]}));return n}});function iO(){return[By,tO]}c(iO,"closeBrackets");var Qa="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function nO(n){for(let e=0;e{if((qy?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let r=n.state.selection.main;if(i.length>2||i.length==2&&Xe(ce(i,0))==1||e!=r.from||t!=r.to)return!1;let s=Ny(n.state,i);return s?(n.dispatch(s),!0):!1}),Iy=c(({state:n,dispatch:e})=>{if(n.readOnly)return!1;let i=rO(n,n.selection.main.head).brackets||Yn.brackets,r=null,s=n.changeByRange(o=>{if(o.empty){let l=Gy(n.doc,o.head);for(let a of i)if(a==l&&Ts(n.doc,o.head)==nO(ce(a,0)))return{changes:{from:o.head-a.length,to:o.head+a.length},range:b.cursor(o.head-a.length)}}return{range:r=o}});return r||e(n.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!r},"deleteBracketPair"),sO=[{key:"Backspace",run:Iy}];function Ny(n,e){let t=rO(n,n.selection.main.head),i=t.brackets||Yn.brackets;for(let r of i){let s=nO(ce(r,0));if(e==r)return s==r?Hy(n,r,i.indexOf(r+r+r)>-1,t):Uy(n,r,s,t.before||Yn.before);if(e==s&&oO(n,n.selection.main.from))return Fy(n,r,s)}return null}c(Ny,"insertBracket");function oO(n,e){let t=!1;return n.field(tO).between(0,n.doc.length,i=>{i==e&&(t=!0)}),t}c(oO,"closedBracketAt");function Ts(n,e){let t=n.sliceString(e,e+2);return t.slice(0,Xe(ce(t,0)))}c(Ts,"nextChar");function Gy(n,e){let t=n.sliceString(e-2,e);return Xe(ce(t,0))==t.length?t:t.slice(1)}c(Gy,"prevChar");function Uy(n,e,t,i){let r=null,s=n.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:hi.of(o.to+e.length),range:b.range(o.anchor+e.length,o.head+e.length)};let l=Ts(n.doc,o.head);return!l||/\s/.test(l)||i.indexOf(l)>-1?{changes:{insert:e+t,from:o.head},effects:hi.of(o.head+e.length),range:b.cursor(o.head+e.length)}:{range:r=o}});return r?null:n.update(s,{scrollIntoView:!0,userEvent:"input.type"})}c(Uy,"handleOpen");function Fy(n,e,t){let i=null,r=n.changeByRange(s=>s.empty&&Ts(n.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:b.cursor(s.head+t.length)}:i={range:s});return i?null:n.update(r,{scrollIntoView:!0,userEvent:"input.type"})}c(Fy,"handleClose");function Hy(n,e,t,i){let r=i.stringPrefixes||Yn.stringPrefixes,s=null,o=n.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:hi.of(l.to+e.length),range:b.range(l.anchor+e.length,l.head+e.length)};let a=l.head,h=Ts(n.doc,a),f;if(h==e){if(Gd(n,a))return{changes:{insert:e+e,from:a},effects:hi.of(a+e.length),range:b.cursor(a+e.length)};if(oO(n,a)){let d=t&&n.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+d.length,insert:d},range:b.cursor(a+d.length)}}}else{if(t&&n.sliceDoc(a-2*e.length,a)==e+e&&(f=Ud(n,a-2*e.length,r))>-1&&Gd(n,f))return{changes:{insert:e+e+e+e,from:a},effects:hi.of(a+e.length),range:b.cursor(a+e.length)};if(n.charCategorizer(a)(h)!=I.Word&&Ud(n,a,r)>-1&&!Ky(n,a,e,r))return{changes:{insert:e+e,from:a},effects:hi.of(a+e.length),range:b.cursor(a+e.length)}}return{range:s=l}});return s?null:n.update(o,{scrollIntoView:!0,userEvent:"input.type"})}c(Hy,"handleSame");function Gd(n,e){let t=F(n).resolveInner(e+1);return t.parent&&t.from==e}c(Gd,"nodeStart");function Ky(n,e,t,i){let r=F(n).resolveInner(e,-1),s=i.reduce((o,l)=>Math.max(o,l.length),0);for(let o=0;o<5;o++){let l=n.sliceDoc(r.from,Math.min(r.to,r.from+t.length+s)),a=l.indexOf(t);if(!a||a>-1&&i.indexOf(l.slice(0,a))>-1){let f=r.firstChild;for(;f&&f.from==r.from&&f.to-f.from>t.length+a;){if(n.sliceDoc(f.to-t.length,f.to)==t)return!1;f=f.firstChild}return!0}let h=r.to==e&&r.parent;if(!h)break;r=h}return!1}c(Ky,"probablyInString");function Ud(n,e,t){let i=n.charCategorizer(e);if(i(n.sliceDoc(e-1,e))!=I.Word)return e;for(let r of t){let s=e-r.length;if(n.sliceDoc(s,e)==r&&i(n.sliceDoc(s-1,s))!=I.Word)return s}return-1}c(Ud,"canStartStringAt");function Cs(n={}){return[Ry,Pe,le.of(n),Xy,Jy,Jd]}c(Cs,"autocompletion");var za=[{key:"Ctrl-Space",run:ba},{mac:"Alt-`",run:ba},{mac:"Alt-i",run:ba},{key:"Escape",run:Ty},{key:"ArrowDown",run:ws(!0)},{key:"ArrowUp",run:ws(!1)},{key:"PageDown",run:ws(!0,"page")},{key:"PageUp",run:ws(!1,"page")},{key:"Enter",run:Py}],Jy=De.highest(Ai.computeN([le],n=>n.facet(le).defaultKeymap?[za]:[]));var Xs=class{static{c(this,"SelectedDiagnostic")}constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}},fi=class n{static{c(this,"LintState")}constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let r=i.facet(Wn).markerFilter;r&&(e=r(e,i));let s=e.slice().sort((O,p)=>O.from-p.from||O.to-p.to),o=new Ze,l=[],a=0,h=i.doc.iter(),f=0,u=i.doc.length;for(let O=0;;){let p=O==s.length?null:s[O];if(!p&&!l.length)break;let m,g;if(l.length)m=a,g=l.reduce((Q,Z)=>Math.min(Q,Z.to),p&&p.from>m?p.from:1e8);else{if(m=p.from,m>u)break;g=p.to,l.push(p),O++}for(;OQ.from||Q.to==m))l.push(Q),O++,g=Math.min(Q.to,g);else{g=Math.min(Q.from,g);break}}g=Math.min(g,u);let y=!1;if(l.some(Q=>Q.from==m&&(Q.to==g||g==u))&&(y=m==g,!y&&g-m<10)){let Q=m-(f+h.value.length);Q>0&&(h.next(Q),f=m);for(let Z=m;;){if(Z>=g){y=!0;break}if(!h.lineBreak&&f+h.value.length>Z)break;Z=f+h.value.length,f+=h.value.length,h.next()}}let x=c1(l);if(y)o.add(m,m,X.widget({widget:new Wa(x),diagnostics:l.slice()}));else{let Q=l.reduce((Z,w)=>w.markClass?Z+" "+w.markClass:Z,"");o.add(m,g,X.mark({class:"cm-lintRange cm-lintRange-"+x+Q,diagnostics:l.slice(),inclusiveEnd:l.some(Z=>Z.to>g)}))}if(a=g,a==u)break;for(let Q=0;Q{if(!(e&&o.diagnostics.indexOf(e)<0))if(!i)i=new Xs(r,s,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new Xs(i.from,s,i.diagnostic)}}),i}c(zt,"findDiagnostic");function e1(n,e){let t=e.pos,i=e.end||t,r=n.state.facet(Wn).hideOn(n,t,i);if(r!=null)return r;let s=n.startState.doc.lineAt(e.pos);return!!(n.effects.some(o=>o.is(hO))||n.changes.touchesRange(s.from,Math.max(s.to,i)))}c(e1,"hideTooltip");function t1(n,e){return n.field(Ee,!1)?e:e.concat(R.appendConfig.of(f1))}c(t1,"maybeEnableLint");var hO=R.define(),_a=R.define(),cO=R.define(),Ee=ie.define({create(){return new fi(X.none,null,null)},update(n,e){if(e.docChanged&&n.diagnostics.size){let t=n.diagnostics.map(e.changes),i=null,r=n.panel;if(n.selected){let s=e.changes.mapPos(n.selected.from,1);i=zt(t,n.selected.diagnostic,s)||zt(t,null,s)}!t.size&&r&&e.state.facet(Wn).autoPanel&&(r=null),n=new fi(t,r,i)}for(let t of e.effects)if(t.is(hO)){let i=e.state.facet(Wn).autoPanel?t.value.length?_n.open:null:n.panel;n=fi.init(t.value,i,e.state)}else t.is(_a)?n=new fi(n.diagnostics,t.value?_n.open:null,n.selected):t.is(cO)&&(n=new fi(n.diagnostics,n.panel,t.value));return n},provide:c(n=>[ei.from(n,e=>e.panel),P.decorations.from(n,e=>e.diagnostics)],"provide")});var i1=X.mark({class:"cm-lintRange cm-lintRange-active"});function n1(n,e,t){let{diagnostics:i}=n.state.field(Ee),r,s=-1,o=-1;i.between(e-(t<0?1:0),e+(t>0?1:0),(a,h,{spec:f})=>{if(e>=a&&e<=h&&(a==h||(e>a||t>0)&&(edO(n,t,!1)))}c(r1,"diagnosticsTooltip");var s1=c(n=>{let e=n.state.field(Ee,!1);(!e||!e.panel)&&n.dispatch({effects:t1(n.state,[_a.of(!0)])});let t=Qn(n,_n.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},"openLintPanel"),lO=c(n=>{let e=n.state.field(Ee,!1);return!e||!e.panel?!1:(n.dispatch({effects:_a.of(!1)}),!0)},"closeLintPanel"),o1=c(n=>{let e=n.state.field(Ee,!1);if(!e)return!1;let t=n.state.selection.main,i=zt(e.diagnostics,null,t.to+1);return!i&&(i=zt(e.diagnostics,null,0),!i||i.from==t.from&&i.to==t.to)?!1:(n.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),If(n,i.from,1,{tooltip:OO,until:c(r=>r.docChanged||r.newSelection.main.headi.to,"until")}),!0)},"nextDiagnostic");var fO=[{key:"Mod-Shift-m",run:s1,preventDefault:!0},{key:"F8",run:o1}];var Wn=v.define({combine(n){return{sources:n.map(e=>e.source).filter(e=>e!=null),...pe(n.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:c(()=>null,"hideOn")},{delay:Math.max,markerFilter:aO,tooltipFilter:aO,needsRefresh:c((e,t)=>e?t?i=>e(i)||t(i):e:t,"needsRefresh"),hideOn:c((e,t)=>e?t?(i,r,s)=>e(i,r,s)||t(i,r,s):e:t,"hideOn"),autoPanel:c((e,t)=>e||t,"autoPanel")})}}});function aO(n,e){return n?e?(t,i)=>e(n(t,i),i):n:e}c(aO,"combineFilter");function uO(n){let e=[];if(n)e:for(let{name:t}of n){for(let i=0;is.toLowerCase()==r.toLowerCase())){e.push(r);continue e}}e.push("")}return e}c(uO,"assignKeys");function dO(n,e,t){var i;let r=t?uO(e.actions):[];return D("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},D("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(n):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((s,o)=>{let l=!1,a=c(O=>{if(O.preventDefault(),l)return;l=!0;let p=zt(n.state.field(Ee).diagnostics,e);p&&s.apply(n,p.from,p.to)},"click"),{name:h}=s,f=r[o]?h.indexOf(r[o]):-1,u=f<0?h:[h.slice(0,f),D("u",h.slice(f,f+1)),h.slice(f+1)],d=s.markClass?" "+s.markClass:"";return D("button",{type:"button",class:"cm-diagnosticAction"+d,onclick:a,onmousedown:a,"aria-label":` Action: ${h}${f<0?"":` (access key "${r[o]})"`}.`},u)}),e.source&&D("div",{class:"cm-diagnosticSource"},e.source))}c(dO,"renderDiagnostic");var Wa=class extends be{static{c(this,"DiagnosticWidget")}constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return D("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}},As=class{static{c(this,"PanelItem")}constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=dO(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},_n=class n{static{c(this,"LintPanel")}constructor(e){this.view=e,this.items=[];let t=c(r=>{if(!(r.ctrlKey||r.altKey||r.metaKey)){if(r.keyCode==27)lO(this.view),this.view.focus();else if(r.keyCode==38||r.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(r.keyCode==40||r.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(r.keyCode==36)this.moveSelection(0);else if(r.keyCode==35)this.moveSelection(this.items.length-1);else if(r.keyCode==13)this.view.focus();else if(r.keyCode>=65&&r.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:s}=this.items[this.selectedIndex],o=uO(s.actions);for(let l=0;l{for(let s=0;slO(this.view),"onclick")},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(Ee).selected;if(!e)return-1;for(let t=0;t{for(let f of h.diagnostics){if(o.has(f))continue;o.add(f);let u=-1,d;for(let O=i;Oi&&(this.items.splice(i,u-i),r=!0)),t&&d.diagnostic==t.diagnostic?d.dom.hasAttribute("aria-selected")||(d.dom.setAttribute("aria-selected","true"),s=d):d.dom.hasAttribute("aria-selected")&&d.dom.removeAttribute("aria-selected"),i++}});i({sel:s.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),"read"),write:c(({sel:l,panel:a})=>{let h=a.height/this.list.offsetHeight;l.topa.bottom&&(this.list.scrollTop+=(l.bottom-a.bottom)/h)},"write")})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let i=e;e=i.nextSibling,i.remove()}c(t,"rm");for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(Ee),i=zt(t.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:cO.of(i)})}static open(e){return new n(e)}};function l1(n,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(n)}')`}c(l1,"svg");function Zs(n){return l1(``,'width="6" height="3"')}c(Zs,"underline");var a1=P.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Zs("#f11")},".cm-lintRange-warning":{backgroundImage:Zs("orange")},".cm-lintRange-info":{backgroundImage:Zs("#999")},".cm-lintRange-hint":{backgroundImage:Zs("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:"#86714a80"},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:"#2e343e"}}});function h1(n){return n=="error"?4:n=="warning"?3:n=="info"?2:1}c(h1,"severityWeight");function c1(n){let e="hint",t=1;for(let i of n){let r=h1(i.severity);r>t&&(t=r,e=i.severity)}return e}c(c1,"maxSeverity");var OO=Bf(n1,{hideOn:e1}),f1=[Ee,P.decorations.compute([Ee],n=>{let{selected:e,panel:t}=n.field(Ee);return!e||!t||e.from==e.to?X.none:X.set([i1.range(e.from,e.to)])}),OO,a1];var pO=[Kf(),Jf(),_f(),ed(),ju(),Ef(),Wf(),G.allowMultipleSelections.of(!0),Pu(),Yu(zu,{fallback:!0}),Du(),iO(),Cs(),Df(),Lf(),Vf(),Ed(),Ai.of([...sO,...Zd,...Vd,...rd,...Au,...za,...fO])];var La=class n{static{c(this,"Stack")}constructor(e,t,i,r,s,o,l,a,h,f=0,u){this.p=e,this.stack=t,this.state=i,this.reducePos=r,this.pos=s,this.score=o,this.buffer=l,this.bufferBase=a,this.curContext=h,this.lookAhead=f,this.parent=u}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){let r=e.parser.context;return new n(e,[],t,i,i,0,[],0,r?new Rs(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let i=e>>19,r=e&65535,{parser:s}=this.p,o=this.reducePos=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(h==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=f):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(r,h)}storeNode(e,t,i,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&this.buffer[o-4]==0&&this.buffer[o-1]>-1){if(t==i)return;if(this.buffer[o-2]>=t){this.buffer[o-2]=i;return}}}if(!s||this.pos==i)this.buffer.push(e,t,i,r);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let l=!1;for(let a=o;a>0&&this.buffer[a-2]>i;a-=4)if(this.buffer[a-1]>=0){l=!0;break}if(l)for(;o>0&&this.buffer[o-2]>i;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,r>4&&(r-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=i,this.buffer[o+3]=r}}shift(e,t,i,r){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let s=e,{parser:o}=this.p;this.pos=r;let l=o.stateFlag(s,1);!l&&(r>i||t<=o.maxNode)&&(this.reducePos=r),this.pushState(s,l?i:Math.min(i,this.reducePos)),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,r,4)}else this.pos=r,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,r,4)}apply(e,t,i,r){e&65536?this.reduce(e):this.shift(e,t,i,r)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(i,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(t&&e.buffer[t-4]==0&&(t-=4);t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let i=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new n(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new qa(this);;){let i=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(i==0)return!1;if((i&65536)==0)return!0;t.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let r=[];for(let s=0,o;sa&1&&l==o)||r.push(t[s],o)}t=r}let i=[];for(let r=0;r>19,r=t&65535,s=this.stack.length-i*3;if(s<0||e.getGoto(this.stack[s],r,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],i=c((r,s)=>{if(!t.includes(r))return t.push(r),e.allActions(r,o=>{if(!(o&393216))if(o&65536){let l=(o>>19)-s;if(l>1){let a=o&65535,h=this.stack.length-l*3;if(h>=0&&e.getGoto(this.stack[h],a,!1)>=0)return l<<19|65536|a}}else{let l=i(o,s+1);if(l!=null)return l}})},"explore");return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t0&&this.emitLookAhead()}},Rs=class{static{c(this,"StackContext")}constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},qa=class{static{c(this,"SimulatedStack")}constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},Ba=class n{static{c(this,"StackBufferCursor")}constructor(e,t,i){this.stack=e,this.pos=t,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new n(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new n(this.stack,this.pos,this.index)}};function Vn(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let i=0,r=0;i=92&&o--,o>=34&&o--;let a=o-32;if(a>=46&&(a-=46,l=!0),s+=a,l)break;s*=46}t?t[r++]=s:t=new e(s)}return t}c(Vn,"decodeArray");var Bi=class{static{c(this,"CachedToken")}constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},mO=new Bi,Ia=class{static{c(this,"InputStream")}constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=mO,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let i=this.range,r=this.rangeIndex,s=this.pos+e;for(;si.to:s>=i.to;){if(r==this.ranges.length-1)return null;let o=this.ranges[++r];s+=o.from-i.to,i=o}return s}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,i,r;if(t>=0&&t=this.chunk2Pos&&il.to&&(this.chunk2=this.chunk2.slice(0,l.to-i)),r=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),r}acceptToken(e,t=0){let i=t?this.resolveOffset(t,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=mO,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let i="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(i+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return i}},Wt=class{static{c(this,"TokenGroup")}constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:i}=t.p;QO(this.data,e,t,this.id,i.data,i.tokenPrecTable)}};Wt.prototype.contextual=Wt.prototype.fallback=Wt.prototype.extend=!1;var _t=class{static{c(this,"LocalTokenGroup")}constructor(e,t,i){this.precTable=t,this.elseToken=i,this.data=typeof e=="string"?Vn(e):e}token(e,t){let i=e.pos,r=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(QO(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||r++,o==null)break;e.reset(o,e.token)}r&&(e.reset(i,e.token),e.acceptToken(this.elseToken,r))}};_t.prototype.contextual=Wt.prototype.fallback=Wt.prototype.extend=!1;var ae=class{static{c(this,"ExternalTokenizer")}constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}};function QO(n,e,t,i,r,s){let o=0,l=1<0){let p=n[O];if(a.allows(p)&&(e.token.value==-1||e.token.value==p||d1(p,e.token.value,r,s))){e.acceptToken(p);break}}let f=e.next,u=0,d=n[o+2];if(e.next<0&&d>u&&n[h+d*3-3]==65535){o=n[h+d*3-1];continue e}for(;u>1,p=h+O+(O<<1),m=n[p],g=n[p+1]||65536;if(f=g)u=O+1;else{o=n[p+2],e.advance();continue e}}break}}c(QO,"readToken");function gO(n,e,t){for(let i=e,r;(r=n[i])!=65535;i++)if(r==t)return i-e;return-1}c(gO,"findOffset");function d1(n,e,t,i){let r=gO(t,i,e);return r<0||gO(t,i,n)e)&&!i.type.isError)return t<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(n.length,Math.max(i.from+1,e+25));if(t<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return t<0?0:n.length}}c(SO,"cutAt");var Na=class{static{c(this,"FragmentCursor")}constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?SO(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?SO(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(s instanceof J){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}},Ga=class{static{c(this,"TokenCache")}constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new Bi)}getActions(e){let t=0,i=null,{parser:r}=e.p,{tokenizers:s}=r,o=r.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let h=0;hu.end+25&&(a=Math.max(u.lookAhead,a)),u.value!=0)){let d=t;if(u.extended>-1&&(t=this.addActions(e,u.extended,u.end,t)),t=this.addActions(e,u.value,u.end,t),!f.extend&&(i=u,t>d))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new Bi,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,t=this.addActions(e,i.value,i.end,t)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Bi,{pos:i,p:r}=e;return t.start=i,t.end=Math.min(i+1,r.stream.end),t.value=i==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,i){let r=this.stream.clipPos(i.pos);if(t.token(this.stream.reset(r,e),i),e.value>-1){let{parser:s}=i.p;for(let o=0;o=0&&i.p.parser.dialect.allows(l>>1)){(l&1)==0?e.value=l>>1:e.extended=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,i,r){for(let s=0;se.bufferLength*4?new Na(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,i=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;ot)i.push(l);else{if(this.advanceStack(l,i,e))continue;{r||(r=[],s=[]),r.push(l);let a=this.tokens.getMainToken(l);s.push(a.value,a.end)}}break}}if(!i.length){let o=r&&O1(r);if(o)return Ye&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw Ye&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let o=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,i);if(o)return Ye&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(i.length>o)for(i.sort((l,a)=>a.score-l.score);i.length>o;)i.pop();i.some(l=>l.reducePos>t)&&this.recovering--}else if(i.length>1){e:for(let o=0;o500&&h.buffer.length>500)if((l.score-h.score||l.buffer.length-h.buffer.length)>0)i.splice(a--,1);else{i.splice(o--,1);continue e}}}i.length>12&&(i.sort((o,l)=>l.score-o.score),i.splice(12,i.length-12))}this.minStackPos=i[0].pos;for(let o=1;o ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let h=e.curContext&&e.curContext.tracker.strict,f=h?e.curContext.hash:0;for(let u=this.fragments.nodeAt(r);u;){let d=this.parser.nodeSet.types[u.type.id]==u.type?s.getGoto(e.state,u.type.id):-1;if(d>-1&&u.length&&(!h||(u.prop(j.contextHash)||0)==f))return e.useNode(u,d),Ye&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(u.type.id)})`),!0;if(!(u instanceof J)||u.children.length==0||u.positions[0]>0)break;let O=u.children[0];if(O instanceof J&&u.positions[0]==0)u=O;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Ye&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(l&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let h=0;hr?t.push(p):i.push(p)}return!1}advanceFully(e,t){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return yO(e,t),!0}}runRecovery(e,t,i){let r=null,s=!1;for(let o=0;o ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Ye&&console.log(f+this.stackID(l)+" (restarted)"),this.advanceFully(l,i))))continue;let u=l.split(),d=f;for(let O=0;O<10&&u.forceReduce()&&(Ye&&console.log(d+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,i));O++)Ye&&(d=this.stackID(u)+" -> ");for(let O of l.recoverByInsert(a))Ye&&console.log(f+this.stackID(O)+" (via recover-insert)"),this.advanceFully(O,i);this.stream.end>l.pos?(h==l.pos&&(h++,a=0),l.recoverByDelete(a,h),Ye&&console.log(f+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),yO(l,i)):(!r||r.scoren,"id"),Ii=class{static{c(this,"ContextTracker")}constructor(e){this.start=e.start,this.shift=e.shift||Da,this.reduce=e.reduce||Da,this.reuse=e.reuse||Da,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},Vt=class n extends ji{static{c(this,"LRParser")}constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;le.topRules[l][1]),r=[];for(let l=0;l=0)s(f,a,l[h++]);else{let u=l[h+-f];for(let d=-f;d>0;d--)s(l[h++],a,u);h++}}}this.nodeSet=new xn(t.map((l,a)=>de.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:r[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=Vn(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;ltypeof l=="number"?new Wt(o,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,i){let r=new Ua(this,e,t,i);for(let s of this.wrappers)r=s(r,e,t,i);return r}getGoto(e,t,i=!1){let r=this.goto;if(t>=r[0])return-1;for(let s=r[t+1];;){let o=r[s++],l=o&1,a=r[s++];if(l&&i)return a;for(let h=s+(o>>1);s0}validAction(e,t){return!!this.allActions(e,i=>i==t?!0:null)}allActions(e,t){let i=this.stateSlot(e,4),r=i?t(i):void 0;for(let s=this.stateSlot(e,1);r==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=bt(this.data,s+2);else break;r=t(bt(this.data,s+1))}return r}nextStates(e){let t=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=bt(this.data,i+2);else break;if((this.data[i+2]&1)==0){let r=this.data[i+1];t.some((s,o)=>o&1&&s==r)||t.push(this.data[i],r)}}return t}configure(e){let t=Object.assign(Object.create(n.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=i}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(i=>{let r=e.tokenizers.find(s=>s.from==i);return r?r.to:i})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((i,r)=>{let s=e.specializers.find(l=>l.from==i.external);if(!s)return i;let o=Object.assign(Object.assign({},i),{external:s.to});return t.specializers[r]=bO(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),i=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(i[o]=!0)}let r=null;for(let s=0;si)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.scoren.external(t,i)<<1|e}return n.get}c(bO,"getSpecializer");var p1=148,xO=1,m1=149,g1=150,kO=2,S1=151,y1=3,b1=4,$O=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Q1=58,x1=40,vO=95,w1=91,Ms=45,k1=46,$1=35,v1=37,P1=38,T1=92,C1=10,Z1=42;function Dn(n){return n>=65&&n<=90||n>=97&&n<=122||n>=161}c(Dn,"isAlpha");function Ha(n){return n>=48&&n<=57}c(Ha,"isDigit");function wO(n){return Ha(n)||n>=97&&n<=102||n>=65&&n<=70}c(wO,"isHex");var PO=c((n,e,t)=>(i,r)=>{for(let s=!1,o=0,l=0;;l++){let{next:a}=i;if(Dn(a)||a==Ms||a==vO||s&&Ha(a))!s&&(a!=Ms||l>0)&&(s=!0),o===l&&a==Ms&&o++,i.advance();else if(a==T1&&i.peek(1)!=C1){if(i.advance(),wO(i.next)){do i.advance();while(wO(i.next));i.next==32&&i.advance()}else i.next>-1&&i.advance();s=!0}else{s&&i.acceptToken(o==2&&r.canShift(kO)?e:a==x1?t:n);break}}},"identifierTokens"),X1=new ae(PO(m1,kO,g1),{contextual:!0}),A1=new ae(PO(S1,y1,b1),{contextual:!0}),R1=new ae(n=>{if($O.includes(n.peek(-1))){let{next:e}=n;(Dn(e)||e==vO||e==$1||e==k1||e==Z1||e==w1||e==Q1&&Dn(n.peek(1))||e==Ms||e==P1)&&n.acceptToken(p1)}}),M1=new ae(n=>{if(!$O.includes(n.peek(-1))){let{next:e}=n;if(e==v1&&(n.advance(),n.acceptToken(xO)),Dn(e)){do n.advance();while(Dn(n.next)||Ha(n.next));n.acceptToken(xO)}}}),j1=Xt({"AtKeyword import charset namespace keyframes media supports font-feature-values":S.definitionKeyword,"from to selector scope MatchFlag":S.keyword,NamespaceName:S.namespace,KeyframeName:S.labelName,KeyframeRangeName:S.operatorKeyword,TagName:S.tagName,ClassName:S.className,PseudoClassName:S.constant(S.className),IdName:S.labelName,"FeatureName PropertyName":S.propertyName,AttributeName:S.attributeName,NumberLiteral:S.number,KeywordQuery:S.keyword,UnaryQueryOp:S.operatorKeyword,"CallTag ValueName FontName":S.atom,VariableName:S.variableName,Callee:S.operatorKeyword,Unit:S.unit,"UniversalSelector NestingSelector":S.definitionOperator,"MatchOp CompareOp":S.compareOperator,"ChildOp SiblingOp, LogicOp":S.logicOperator,BinOp:S.arithmeticOperator,Important:S.modifier,Comment:S.blockComment,ColorLiteral:S.color,"ParenthesizedContent StringLiteral":S.string,":":S.punctuation,"PseudoOp #":S.derefOperator,"; , |":S.separator,"( )":S.paren,"[ ]":S.squareBracket,"{ }":S.brace}),E1={__proto__:null,lang:44,"nth-child":44,"nth-last-child":44,"nth-of-type":44,"nth-last-of-type":44,dir:44,"host-context":44,if:90,url:158,"url-prefix":158,domain:158,regexp:158},Y1={__proto__:null,or:104,and:104,not:112,only:112,layer:212},z1={__proto__:null,selector:118,style:124,layer:208},W1={__proto__:null,"@import":204,"@media":216,"@charset":220,"@namespace":224,"@keyframes":230,"@supports":242,"@scope":246,"@font-feature-values":252},_1={__proto__:null,to:249},TO=Vt.deserialize({version:14,states:"MrQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FqO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#ERO'dQdO'#ETO'oQdO'#E[O'oQdO'#E_OOQP'#Fq'#FqO)RQhO'#FQOOQS'#Fp'#FpOOQS'#FT'#FTQYQdOOO)YQdO'#EeO*iQhO'#EkO)YQdO'#EmO*pQdO'#EoO*{QdO'#ErO)}QhO'#ExO+TQdO'#EzO+`QdO'#E}O+eQaO'#CfO+lQ`O'#EbO+qQ`O'#F}O+|QdO'#F}QOQ`OOP,WO&jO'#CaPOOO)CA`)CA`OOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,cQdO,59YO'_QdO,5:mO'dQdO,5:oO'oQdO,5:vO'oQdO,5:xO'oQdO,5:yO'oQdO'#F[O,nQ`O,58}O,vQdO'#EaOOQS,58},58}OOQP'#Cq'#CqOOQO'#EP'#EPOOQP,59Y,59YO,}Q`O,59YO-SQ`O,59YOOQP'#ES'#ESOOQP,5:m,5:mO-XQpO'#EUO-dQdO'#EVO-iQ`O'#EVO-nQpO,5:oO.XQaO,5:vO.oQaO,5:yOOQW'#D^'#D^O/nQhO'#DgO0RQhO,5;lO)}QhO'#DeO0`Q`O'#DnO0eQhO'#D{OOQW'#Fw'#FwOOQS,5;l,5;lO0jQ`O'#DhO0oQ`O'#DkOOQS-E9R-E9ROOQ['#Cv'#CvO0tQdO'#CwO1[QdO'#C}O1rQdO'#DQO2YQ!pO'#DSO4fQ!jO,5;POOQO'#DX'#DXO-SQ`O'#DWO4vQ!nO'#FtO6|Q`O'#DYO7RQ`O'#D|OOQ['#Ft'#FtO7WQhO'#GQO7fQ`O,5;VO7kQ!bO,5;XOOQS'#Eq'#EqO7sQ`O,5;ZO7xQdO,5;ZOOQO'#Et'#EtO8QQ`O,5;^O8VQhO,5;dO'oQdO'#DjOOQS,5;f,5;fO0jQ`O,5;fO8_QdO,5;fOOQS'#Fc'#FcO8gQdO'#FPO7fQ`O,5;iO8oQdO,5:|O9PQdO'#F^O9^Q`O,5lQhO'#DoOOQW,5:Y,5:YOOQW,5:g,5:gOOQW,5:S,5:SO>vQhO,5:VO?bQ!fO'#FuOOQS'#Fu'#FuOOQS'#FV'#FVO@rQdO,59cOOQ[,59c,59cOAYQdO,59iOOQ[,59i,59iOApQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)YQdO,59pOBWQhO'#EgOOQW'#Eg'#EgOBuQ`O1G0kO4oQhO1G0kOOQ[,59r,59rO)}QhO'#D[OOQ[,59t,59tOBzQ#tO,5:hOCVQhO'#F`OCdQ`O,5vQhO'#DmOI_QhO'#DsOIgQhO'#DuOIlQ!jO'#FzOOQO'#Fz'#FzOIwQ`O'#DxOJPQ!bO'#DzOOQO'#Fy'#FyOJUQ`O1G/qOOQS-E9T-E9TOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OJZQdO,5;ROOQS7+&V7+&VOJ`Q`O7+&VOJeQhO'#D]OJmQ`O,59vO)}QhO,59vOOQ[1G0S1G0SOJuQ`O1G0SOJzQhO,5;zOOQO-E9^-E9^OOQS7+&a7+&aOKYQbO'#DSOOQO'#Ew'#EwOKhQ`O'#EvOOQO'#Ev'#EvOKsQ`O'#FaOK{QdO,5;aOOQS,5;a,5;aOOQ[1G/p1G/pOOQS7+&l7+&lO7fQ`O7+&lOLWQ!fO'#F]O)YQdO'#F]OM_QdO7+&SOOQO7+&S7+&SOOQO,5;O,5;OOOQO1G1d1G1dOMrQ!bO<vQhO'#DtOOQO,5:_,5:_O! sQhO,5:aO! {QhO,5:fO)YQdO,5:dOOQW7+%]7+%]OOQO'#Ei'#EiO!!SQ`O1G0mOOQS<{AN>{O!$^Q`OAN>{O!$cQaO,5;uOOQO-E9X-E9XO!$mQdO,5;tOOQO-E9W-E9WOOQW<vQhO'#DwOOQO1G/{1G/{O!&aQ!bO1G0QO!&iQdO1G0OOJZQdO'#F_O!&pQ`O7+&XOOQW7+&X7+&XO!&xQ!bO1G/cOOQ[7+$|7+$|O!'TQhO7+$|P!'[Q`O'#FWOOQO,5;|,5;|OOQO-E9`-E9`OOQS1G1g1G1gOOQPG24gG24gO!'aQ`OAN>ZO)YQdO1G1_O!'fQ`O7+'mOOQO1G/z1G/zO!'nQ`O,5:cO!'sQhO7+%lOOQO,5;y,5;yOOQO-E9]-E9]OOQW<Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!r`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$_~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$_~!r`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$sYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!r`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!r`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!r`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!r`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!r`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!r`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!r`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!r`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!|S!r`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW#SQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!r`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!r`$jYOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!r`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!r`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!r`$jYOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!r`$jYOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!eYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!r`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!r`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!|SOy%jz;'S%j;'S;=`%{<%lO%jj@uV#PQ!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS#PQ!r`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!r`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!r`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!}WOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!}WOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!r`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!r`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!r`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!r`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!r`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!r`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!r`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$rQ!r`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$fUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU#SQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",tokenizers:[R1,M1,X1,A1,1,2,3,4,new _t("m~RRYZ[z{a~~g~aO$b~~dP!P!Qg~lO$c~~",28,155)],topRules:{StyleSheet:[0,6],Styles:[1,129]},dynamicPrecedences:{97:1},specialized:[{term:150,get:c(n=>E1[n]||-1,"get")},{term:151,get:c(n=>Y1[n]||-1,"get")},{term:4,get:c(n=>z1[n]||-1,"get")},{term:28,get:c(n=>W1[n]||-1,"get")},{term:149,get:c(n=>_1[n]||-1,"get")}],tokenPrec:2444});var Ka=null;function Ja(){if(!Ka&&typeof document=="object"&&document.body){let{style:n}=document.body,e=[],t=new Set;for(let i in n)i!="cssText"&&i!="cssFloat"&&typeof n[i]=="string"&&(/[A-Z]/.test(i)&&(i=i.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),t.has(i)||(e.push(i),t.add(i)));Ka=e.sort().map(i=>({type:"property",label:i,apply:i+": "}))}return Ka||[]}c(Ja,"properties");var CO=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(n=>({type:"class",label:n})),ZO=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(n=>({type:"keyword",label:n})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(n=>({type:"constant",label:n}))),V1=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(n=>({type:"type",label:n})),D1=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(n=>({type:"keyword",label:n})),Qt=/^(\w[\w-]*|-\w[\w-]*|)$/,L1=/^-(-[\w-]*)?$/;function q1(n,e){var t;if((n.name=="("||n.type.isError)&&(n=n.parent||n),n.name!="ArgList")return!1;let i=(t=n.parent)===null||t===void 0?void 0:t.firstChild;return i?.name!="Callee"?!1:e.sliceString(i.from,i.to)=="var"}c(q1,"isVarArg");var XO=new Mi,B1=["Declaration"];function I1(n){for(let e=n;;){if(e.type.isTop)return e;if(!(e=e.parent))return n}}c(I1,"astTop");function AO(n,e,t){if(e.to-e.from>4096){let i=XO.get(e);if(i)return i;let r=[],s=new Set,o=e.cursor(V.IncludeAnonymous);if(o.firstChild())do for(let l of AO(n,o.node,t))s.has(l.label)||(s.add(l.label),r.push(l));while(o.nextSibling());return XO.set(e,r),r}else{let i=[],r=new Set;return e.cursor().iterate(s=>{var o;if(t(s)&&s.matchContext(B1)&&((o=s.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let l=n.sliceString(s.from,s.to);r.has(l)||(r.add(l),i.push({label:l,type:"variable"}))}}),i}}c(AO,"variableNames");var N1=c(n=>e=>{let{state:t,pos:i}=e,r=F(t).resolveInner(i,-1),s=r.type.isError&&r.from==r.to-1&&t.doc.sliceString(r.from,r.to)=="-";if(r.name=="PropertyName"||(s||r.name=="TagName")&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:Ja(),validFor:Qt};if(r.name=="ValueName")return{from:r.from,options:ZO,validFor:Qt};if(r.name=="PseudoClassName")return{from:r.from,options:CO,validFor:Qt};if(n(r)||(e.explicit||s)&&q1(r,t.doc))return{from:n(r)||s?r.from:i,options:AO(t.doc,I1(r),n),validFor:L1};if(r.name=="TagName"){for(let{parent:a}=r;a;a=a.parent)if(a.name=="Block")return{from:r.from,options:Ja(),validFor:Qt};return{from:r.from,options:V1,validFor:Qt}}if(r.name=="AtKeyword")return{from:r.from,options:D1,validFor:Qt};if(!e.explicit)return null;let o=r.resolve(i),l=o.childBefore(i);return l&&l.name==":"&&o.name=="PseudoClassSelector"?{from:i,options:CO,validFor:Qt}:l&&l.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:i,options:ZO,validFor:Qt}:o.name=="Block"||o.name=="Styles"?{from:i,options:Ja(),validFor:Qt}:null},"defineCSSCompletionSource"),G1=N1(n=>n.name=="VariableName"),Ln=At.define({name:"css",parser:TO.configure({props:[oi.add({Declaration:Wi()}),li.add({"Block KeyframeList":ns})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function js(){return new Mt(Ln,Ln.data.of({autocomplete:G1}))}c(js,"css");var U1=55,F1=1,H1=56,K1=2,J1=57,eb=3,RO=4,tb=5,rh=6,VO=7,DO=8,LO=9,qO=10,ib=11,nb=12,rb=13,eh=58,sb=14,ob=15,MO=59,BO=21,lb=23,IO=24,ab=25,ih=27,NO=28,hb=29,cb=32,fb=35,ub=37,db=38,Ob=0,pb=1,mb={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},gb={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},jO={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function Sb(n){return n==45||n==46||n==58||n>=65&&n<=90||n==95||n>=97&&n<=122||n>=161}c(Sb,"nameChar");var EO=null,YO=null,zO=0;function nh(n,e){let t=n.pos+e;if(zO==t&&YO==n)return EO;let i=n.peek(e),r="";for(;Sb(i);)r+=String.fromCharCode(i),i=n.peek(++e);return YO=n,zO=t,EO=r?r.toLowerCase():i==yb||i==bb?void 0:null}c(nh,"tagNameAfter");var GO=60,Es=62,sh=47,yb=63,bb=33,Qb=45;function WO(n,e){this.name=n,this.parent=e}c(WO,"ElementContext");var xb=[rh,qO,VO,DO,LO],wb=new Ii({start:null,shift(n,e,t,i){return xb.indexOf(e)>-1?new WO(nh(i,1)||"",n):n},reduce(n,e){return e==BO&&n?n.parent:n},reuse(n,e,t,i){let r=e.type.id;return r==rh||r==ub?new WO(nh(i,1)||"",n):n},strict:!1}),kb=new ae((n,e)=>{if(n.next!=GO){n.next<0&&e.context&&n.acceptToken(eh);return}n.advance();let t=n.next==sh;t&&n.advance();let i=nh(n,0);if(i===void 0)return;if(!i)return n.acceptToken(t?ob:sb);let r=e.context?e.context.name:null;if(t){if(i==r)return n.acceptToken(ib);if(r&&gb[r])return n.acceptToken(eh,-2);if(e.dialectEnabled(Ob))return n.acceptToken(nb);for(let s=e.context;s;s=s.parent)if(s.name==i)return;n.acceptToken(rb)}else{if(i=="script")return n.acceptToken(VO);if(i=="style")return n.acceptToken(DO);if(i=="textarea")return n.acceptToken(LO);if(mb.hasOwnProperty(i))return n.acceptToken(qO);r&&jO[r]&&jO[r][i]?n.acceptToken(eh,-1):n.acceptToken(rh)}},{contextual:!0}),$b=new ae(n=>{for(let e=0,t=0;;t++){if(n.next<0){t&&n.acceptToken(MO);break}if(n.next==Qb)e++;else if(n.next==Es&&e>=2){t>=3&&n.acceptToken(MO,-2);break}else e=0;n.advance()}});function vb(n){for(;n;n=n.parent)if(n.name=="svg"||n.name=="math")return!0;return!1}c(vb,"inForeignElement");var Pb=new ae((n,e)=>{if(n.next==sh&&n.peek(1)==Es){let t=e.dialectEnabled(pb)||vb(e.context);n.acceptToken(t?tb:RO,2)}else n.next==Es&&n.acceptToken(RO,1)});function oh(n,e,t){let i=2+n.length;return new ae(r=>{for(let s=0,o=0,l=0;;l++){if(r.next<0){l&&r.acceptToken(e);break}if(s==0&&r.next==GO||s==1&&r.next==sh||s>=2&&so?r.acceptToken(e,-o):r.acceptToken(t,-(o-2));break}else if((r.next==10||r.next==13)&&l){r.acceptToken(e,1);break}else s=o=0;r.advance()}})}c(oh,"contentTokenizer");var Tb=oh("script",U1,F1),Cb=oh("style",H1,K1),Zb=oh("textarea",J1,eb),Xb=Xt({"Text RawText IncompleteTag IncompleteCloseTag":S.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":S.angleBracket,TagName:S.tagName,"MismatchedCloseTag/TagName":[S.tagName,S.invalid],AttributeName:S.attributeName,"AttributeValue UnquotedAttributeValue":S.attributeValue,Is:S.definitionOperator,"EntityReference CharacterReference":S.character,Comment:S.blockComment,ProcessingInst:S.processingInstruction,DoctypeDecl:S.documentMeta}),UO=Vt.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:wb,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[Xb],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let h=l.type.id;if(h==hb)return th(l,a,t);if(h==cb)return th(l,a,i);if(h==fb)return th(l,a,r);if(h==BO&&s.length){let f=l.node,u=f.firstChild,d=u&&_O(u,a),O;if(d){for(let p of s)if(p.tag==d&&(!p.attrs||p.attrs(O||(O=FO(u,a))))){let m=f.lastChild,g=m.type.id==db?m.from:f.to;if(g>u.to)return{parser:p.parser,overlay:[{from:u.to,to:g}]}}}}if(o&&h==IO){let f=l.node,u;if(u=f.firstChild){let d=o[a.read(u.from,u.to)];if(d)for(let O of d){if(O.tagName&&O.tagName!=_O(f.parent,a))continue;let p=f.lastChild;if(p.type.id==ih){let m=p.from+1,g=p.lastChild,y=p.to-(g&&g.isError?0:1);if(y>m)return{parser:O.parser,overlay:[{from:m,to:y}],bracketed:!0}}else if(p.type.id==NO)return{parser:O.parser,overlay:[{from:p.from,to:p.to}]}}}}return null})}c(lh,"configureNesting");var Ab=316,Rb=317,HO=1,Mb=2,jb=3,Eb=4,Yb=318,zb=320,Wb=321,_b=5,Vb=6,Db=0,hh=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],KO=125,Lb=59,ch=47,qb=42,Bb=43,Ib=45,Nb=60,Gb=44,Ub=63,Fb=46,Hb=91,Kb=new Ii({start:!1,shift(n,e){return e==_b||e==Vb||e==zb?n:e==Wb},strict:!1}),Jb=new ae((n,e)=>{let{next:t}=n;(t==KO||t==-1||e.context)&&n.acceptToken(Yb)},{contextual:!0,fallback:!0}),eQ=new ae((n,e)=>{let{next:t}=n,i;hh.indexOf(t)>-1||t==ch&&((i=n.peek(1))==ch||i==qb)||t!=KO&&t!=Lb&&t!=-1&&!e.context&&n.acceptToken(Ab)},{contextual:!0}),tQ=new ae((n,e)=>{n.next==Hb&&!e.context&&n.acceptToken(Rb)},{contextual:!0}),iQ=new ae((n,e)=>{let{next:t}=n;if(t==Bb||t==Ib){if(n.advance(),t==n.next){n.advance();let i=!e.context&&e.canShift(HO);n.acceptToken(i?HO:Mb)}}else t==Ub&&n.peek(1)==Fb&&(n.advance(),n.advance(),(n.next<48||n.next>57)&&n.acceptToken(jb))},{contextual:!0});function ah(n,e){return n>=65&&n<=90||n>=97&&n<=122||n==95||n>=192||!e&&n>=48&&n<=57}c(ah,"identifierChar");var nQ=new ae((n,e)=>{if(n.next!=Nb||!e.dialectEnabled(Db)||(n.advance(),n.next==ch))return;let t=0;for(;hh.indexOf(n.next)>-1;)n.advance(),t++;if(ah(n.next,!0)){for(n.advance(),t++;ah(n.next,!1);)n.advance(),t++;for(;hh.indexOf(n.next)>-1;)n.advance(),t++;if(n.next==Gb)return;for(let i=0;;i++){if(i==7){if(!ah(n.next,!0))return;break}if(n.next!="extends".charCodeAt(i))break;n.advance(),t++}}n.acceptToken(Eb,-t)}),rQ=Xt({"get set async static":S.modifier,"for while do if else switch try catch finally return throw break continue default case defer":S.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":S.operatorKeyword,"let var const using function class extends":S.definitionKeyword,"import export from":S.moduleKeyword,"with debugger new":S.keyword,TemplateString:S.special(S.string),super:S.atom,BooleanLiteral:S.bool,this:S.self,null:S.null,Star:S.modifier,VariableName:S.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":S.function(S.variableName),VariableDefinition:S.definition(S.variableName),Label:S.labelName,PropertyName:S.propertyName,PrivatePropertyName:S.special(S.propertyName),"CallExpression/MemberExpression/PropertyName":S.function(S.propertyName),"FunctionDeclaration/VariableDefinition":S.function(S.definition(S.variableName)),"ClassDeclaration/VariableDefinition":S.definition(S.className),"NewExpression/VariableName":S.className,PropertyDefinition:S.definition(S.propertyName),PrivatePropertyDefinition:S.definition(S.special(S.propertyName)),UpdateOp:S.updateOperator,"LineComment Hashbang":S.lineComment,BlockComment:S.blockComment,Number:S.number,String:S.string,Escape:S.escape,ArithOp:S.arithmeticOperator,LogicOp:S.logicOperator,BitOp:S.bitwiseOperator,CompareOp:S.compareOperator,RegExp:S.regexp,Equals:S.definitionOperator,Arrow:S.function(S.punctuation),": Spread":S.punctuation,"( )":S.paren,"[ ]":S.squareBracket,"{ }":S.brace,"InterpolationStart InterpolationEnd":S.special(S.brace),".":S.derefOperator,", ;":S.separator,"@":S.meta,TypeName:S.typeName,TypeDefinition:S.definition(S.typeName),"type enum interface implements namespace module declare":S.definitionKeyword,"abstract global Privacy readonly override":S.modifier,"is keyof unique infer asserts":S.operatorKeyword,JSXAttributeValue:S.attributeValue,JSXText:S.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":S.angleBracket,"JSXIdentifier JSXNameSpacedName":S.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":S.attributeName,"JSXBuiltin/JSXIdentifier":S.standard(S.tagName)}),sQ={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},oQ={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},lQ={__proto__:null,"<":193},JO=Vt.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-EtOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-EPO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-ERQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<VO!l$xO#jROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!OVO!l$xO#jVO!l$xO#jROe!iOpkOrPO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]VO!l$xO#j^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOrROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]WO!l$xO#jgPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{SU+P%]S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mR>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o>UPS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^T)z$u){V+P%]S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SS#q]SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uSSR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:mSR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:oS)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mSS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:mS#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^Q+T%aQ/c*Oo4OP>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^n=rTQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o4OP>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f]>^nZ>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f]>^nZ>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.lPQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.nSR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:Kb,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[rQ],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l^!Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!^!LYP;=`<%l!KS>^!L`P;=`<%l!_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[eQ,tQ,iQ,nQ,2,3,4,5,6,7,8,9,10,11,12,13,14,Jb,new _t("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new _t("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:c(n=>sQ[n]||-1,"get")},{term:343,get:c(n=>oQ[n]||-1,"get")},{term:95,get:c(n=>lQ[n]||-1,"get")}],tokenPrec:15201});var np=[xe("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),xe("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),xe("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),xe("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),xe("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),xe(`try { + \${} +} catch (\${error}) { + \${} +}`,{label:"try",detail:"/ catch block",type:"keyword"}),xe("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),xe(`if (\${}) { + \${} +} else { + \${} +}`,{label:"if",detail:"/ else block",type:"keyword"}),xe(`class \${name} { + constructor(\${params}) { + \${} + } +}`,{label:"class",detail:"definition",type:"keyword"}),xe('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),xe('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],aQ=np.concat([xe("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),xe("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),xe("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),ep=new Mi,rp=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function qn(n){return(e,t)=>{let i=e.node.getChild("VariableDefinition");return i&&t(i,n),!0}}c(qn,"defID");var hQ=["FunctionDeclaration"],cQ={FunctionDeclaration:qn("function"),ClassDeclaration:qn("class"),ClassExpression:c(()=>!0,"ClassExpression"),EnumDeclaration:qn("constant"),TypeAliasDeclaration:qn("type"),NamespaceDeclaration:qn("namespace"),VariableDefinition(n,e){n.matchContext(hQ)||e(n,"variable")},TypeDefinition(n,e){e(n,"type")},__proto__:null};function sp(n,e){let t=ep.get(e);if(t)return t;let i=[],r=!0;function s(o,l){let a=n.sliceString(o.from,o.to);i.push({label:a,type:l})}return c(s,"def"),e.cursor(V.IncludeAnonymous).iterate(o=>{if(r)r=!1;else if(o.name){let l=cQ[o.name];if(l&&l(o,s)||rp.has(o.name))return!1}else if(o.to-o.from>8192){for(let l of sp(n,o.node))i.push(l);return!1}}),ep.set(e,i),i}c(sp,"getScope");var tp=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,op=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function fQ(n){let e=F(n.state).resolveInner(n.pos,-1);if(op.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&tp.test(n.state.sliceDoc(e.from,e.to));if(!t&&!n.explicit)return null;let i=[];for(let r=e;r;r=r.parent)rp.has(r.name)&&(i=i.concat(sp(n.state.doc,r)));return{options:i,from:t?e.from:n.pos,validFor:tp}}c(fQ,"localCompletionSource");var nt=At.define({name:"javascript",parser:JO.configure({props:[oi.add({IfStatement:Wi({except:/^\s*({|else\b)/}),TryStatement:Wi({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:vu,SwitchBody:c(n=>{let e=n.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return n.baseIndent+(t?0:i?1:2)*n.unit},"SwitchBody"),Block:ku({closing:"}"}),ArrowFunction:c(n=>n.baseIndent+n.unit,"ArrowFunction"),"TemplateString BlockComment":c(()=>null,"TemplateString BlockComment"),"Statement Property":Wi({except:/^\s*{/}),JSXElement(n){let e=/^\s*<\//.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},JSXEscape(n){let e=/\s*\}/.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},"JSXOpenTag JSXSelfClosingTag"(n){return n.column(n.node.from)+n.unit}}),li.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":ns,BlockComment(n){return{from:n.from+2,to:n.to-2}},JSXElement(n){let e=n.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=n.lastChild;return{from:e.to,to:t.type.isError?n.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(n){var e;let t=(e=n.firstChild)===null||e===void 0?void 0:e.nextSibling,i=n.lastChild;return!t||t.type.isError?null:{from:t.to,to:i.type.isError?n.to:i.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),lp={test:c(n=>/^JSX/.test(n.name),"test"),facet:Jl({commentTokens:{block:{open:"{/*",close:"*/}"}}})},fh=nt.configure({dialect:"ts"},"typescript"),uh=nt.configure({dialect:"jsx",props:[ts.add(n=>n.isTop?[lp]:void 0)]}),dh=nt.configure({dialect:"jsx ts",props:[ts.add(n=>n.isTop?[lp]:void 0)]},"typescript"),ap=c(n=>({label:n,type:"keyword"}),"kwCompletion"),hp="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(ap),uQ=hp.concat(["declare","implements","private","protected","public"].map(ap));function Ys(n={}){let e=n.jsx?n.typescript?dh:uh:n.typescript?fh:nt,t=n.typescript?aQ.concat(uQ):np.concat(hp);return new Mt(e,[nt.data.of({autocomplete:Fd(op,Xa(t))}),nt.data.of({autocomplete:fQ}),n.jsx?pQ:[]])}c(Ys,"javascript");function dQ(n){for(;;){if(n.name=="JSXOpenTag"||n.name=="JSXSelfClosingTag"||n.name=="JSXFragmentTag")return n;if(n.name=="JSXEscape"||!n.parent)return null;n=n.parent}}c(dQ,"findOpenTag");function ip(n,e,t=n.length){for(let i=e?.firstChild;i;i=i.nextSibling)if(i.name=="JSXIdentifier"||i.name=="JSXBuiltin"||i.name=="JSXNamespacedName"||i.name=="JSXMemberExpression")return n.sliceString(i.from,Math.min(i.to,t));return""}c(ip,"elementName");var OQ=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),pQ=P.inputHandler.of((n,e,t,i,r)=>{if((OQ?n.composing:n.compositionStarted)||n.state.readOnly||e!=t||i!=">"&&i!="/"||!nt.isActiveAt(n.state,e,-1))return!1;let s=r(),{state:o}=s,l=o.changeByRange(a=>{var h;let{head:f}=a,u=F(o).resolveInner(f-1,-1),d;if(u.name=="JSXStartTag"&&(u=u.parent),!(o.doc.sliceString(f-1,f)!=i||u.name=="JSXAttributeValue"&&u.to>f)){if(i==">"&&u.name=="JSXFragmentTag")return{range:a,changes:{from:f,insert:""}};if(i=="/"&&u.name=="JSXStartCloseTag"){let O=u.parent,p=O.parent;if(p&&O.from==f-2&&((d=ip(o.doc,p.firstChild,f))||((h=p.firstChild)===null||h===void 0?void 0:h.name)=="JSXFragmentTag")){let m=`${d}>`;return{range:b.cursor(f+m.length,-1),changes:{from:f,insert:m}}}}else if(i==">"){let O=dQ(u);if(O&&O.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(o.doc.sliceString(f,f+2))&&(d=ip(o.doc,O,f)))return{range:a,changes:{from:f,insert:``}}}}return{range:a}});return l.changes.empty?!1:(n.dispatch([s,o.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var Bn=["_blank","_self","_top","_parent"],Oh=["ascii","utf-8","utf-16","latin1","latin1"],ph=["get","post","put","delete"],mh=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],ze=["true","false"],A={},mQ={a:{attrs:{href:null,ping:null,type:null,media:null,target:Bn,hreflang:null}},abbr:A,address:A,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:A,aside:A,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:A,base:{attrs:{href:null,target:Bn}},bdi:A,bdo:A,blockquote:{attrs:{cite:null}},body:A,br:A,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:mh,formmethod:ph,formnovalidate:["novalidate"],formtarget:Bn,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:A,center:A,cite:A,code:A,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:A,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:A,div:A,dl:A,dt:A,em:A,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:A,figure:A,footer:A,form:{attrs:{action:null,name:null,"accept-charset":Oh,autocomplete:["on","off"],enctype:mh,method:ph,novalidate:["novalidate"],target:Bn}},h1:A,h2:A,h3:A,h4:A,h5:A,h6:A,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:A,hgroup:A,hr:A,html:{attrs:{manifest:null}},i:A,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:mh,formmethod:ph,formnovalidate:["novalidate"],formtarget:Bn,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:A,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:A,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:A,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Oh,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:A,noscript:A,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:A,param:{attrs:{name:null,value:null}},pre:A,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:A,rt:A,ruby:A,samp:A,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Oh}},section:A,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:A,source:{attrs:{src:null,type:null,media:null}},span:A,strong:A,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:A,summary:A,sup:A,table:A,tbody:A,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:A,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:A,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:A,time:{attrs:{datetime:null}},title:A,tr:A,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:A,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:A},dp={accesskey:null,class:null,contenteditable:ze,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:ze,autocorrect:ze,autocapitalize:ze,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":ze,"aria-autocomplete":["inline","list","both","none"],"aria-busy":ze,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":ze,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":ze,"aria-hidden":ze,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":ze,"aria-multiselectable":ze,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":ze,"aria-relevant":null,"aria-required":ze,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},Op="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(n=>"on"+n);for(let n of Op)dp[n]=null;var Ni=class{static{c(this,"Schema")}constructor(e,t){this.tags={...mQ,...e},this.globalAttrs={...dp,...t},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}};Ni.default=new Ni;function ui(n,e,t=n.length){if(!e)return"";let i=e.firstChild,r=i&&i.getChild("TagName");return r?n.sliceString(r.from,Math.min(r.to,t)):""}c(ui,"elementName");function Gi(n,e=!1){for(;n;n=n.parent)if(n.name=="Element")if(e)e=!1;else return n;return null}c(Gi,"findParentElement");function pp(n,e,t){let i=t.tags[ui(n,Gi(e))];return i?.children||t.allTags}c(pp,"allowedChildren");function gh(n,e){let t=[];for(let i=Gi(e);i&&!i.type.isTop;i=Gi(i.parent)){let r=ui(n,i);if(r&&i.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=i.firstChild.to)&&t.push(r)}return t}c(gh,"openTags");var mp=/^[:\-\.\w\u00b7-\uffff]*$/;function cp(n,e,t,i,r){let s=/\s*>/.test(n.sliceDoc(r,r+5))?"":">",o=Gi(t,t.name=="StartTag"||t.name=="TagName");return{from:i,to:r,options:pp(n.doc,o,e).map(l=>({label:l,type:"type"})).concat(gh(n.doc,t).map((l,a)=>({label:"/"+l,apply:"/"+l+s,type:"type",boost:99-a}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}c(cp,"completeTag");function fp(n,e,t,i){let r=/\s*>/.test(n.sliceDoc(i,i+5))?"":">";return{from:t,to:i,options:gh(n.doc,e).map((s,o)=>({label:s,apply:s+r,type:"type",boost:99-o})),validFor:mp}}c(fp,"completeCloseTag");function gQ(n,e,t,i){let r=[],s=0;for(let o of pp(n.doc,t,e))r.push({label:"<"+o,type:"type"});for(let o of gh(n.doc,t))r.push({label:"",type:"type",boost:99-s++});return{from:i,to:i,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}c(gQ,"completeStartTag");function SQ(n,e,t,i,r){let s=Gi(t),o=s?e.tags[ui(n.doc,s)]:null,l=o&&o.attrs?Object.keys(o.attrs):[],a=o&&o.globalAttrs===!1?l:l.length?l.concat(e.globalAttrNames):e.globalAttrNames;return{from:i,to:r,options:a.map(h=>({label:h,type:"property"})),validFor:mp}}c(SQ,"completeAttrName");function yQ(n,e,t,i,r){var s;let o=(s=t.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),l=[],a;if(o){let h=n.sliceDoc(o.from,o.to),f=e.globalAttrs[h];if(!f){let u=Gi(t),d=u?e.tags[ui(n.doc,u)]:null;f=d?.attrs&&d.attrs[h]}if(f){let u=n.sliceDoc(i,r).toLowerCase(),d='"',O='"';/^['"]/.test(u)?(a=u[0]=='"'?/^[^"]*$/:/^[^']*$/,d="",O=n.sliceDoc(r,r+1)==u[0]?"":u[0],u=u.slice(1),i++):a=/^[^\s<>='"]*$/;for(let p of f)l.push({label:p,apply:d+p+O,type:"constant"})}}return{from:i,to:r,options:l,validFor:a}}c(yQ,"completeAttrValue");function bQ(n,e){let{state:t,pos:i}=e,r=F(t).resolveInner(i,-1),s=r.resolve(i);for(let o=i,l;s==r&&(l=r.childBefore(o));){let a=l.lastChild;if(!a||!a.type.isError||a.frombQ(i,r)}c(QQ,"htmlCompletionSourceWith");var xQ=nt.parser.configure({top:"SingleExpression"}),gp=[{tag:"script",attrs:c(n=>n.type=="text/typescript"||n.lang=="ts","attrs"),parser:fh.parser},{tag:"script",attrs:c(n=>n.type=="text/babel"||n.type=="text/jsx","attrs"),parser:uh.parser},{tag:"script",attrs:c(n=>n.type=="text/typescript-jsx","attrs"),parser:dh.parser},{tag:"script",attrs(n){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(n.type)},parser:xQ},{tag:"script",attrs(n){return!n.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(n.type)},parser:nt.parser},{tag:"style",attrs(n){return(!n.lang||n.lang=="css")&&(!n.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(n.type))},parser:Ln.parser}],Sp=[{name:"style",parser:Ln.parser.configure({top:"Styles"})}].concat(Op.map(n=>({name:n,parser:nt.parser}))),yp=At.define({name:"html",parser:UO.configure({props:[oi.add({Element(n){let e=/^(\s*)(<\/)?/.exec(n.textAfter);return n.node.to<=n.pos+e[0].length?n.continue():n.lineIndent(n.node.from)+(e[2]?0:n.unit)},"OpenTag CloseTag SelfClosingTag"(n){return n.column(n.node.from)+n.unit},Document(n){if(n.pos+/\s*/.exec(n.textAfter)[0].lengthn.getChild("TagName"),"OpenTag CloseTag")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),zs=yp.configure({wrap:lh(gp,Sp)});function bp(n={}){let e="",t;n.matchClosingTags===!1&&(e="noMatch"),n.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(n.nestedLanguages&&n.nestedLanguages.length||n.nestedAttributes&&n.nestedAttributes.length)&&(t=lh((n.nestedLanguages||[]).concat(gp),(n.nestedAttributes||[]).concat(Sp)));let i=t?yp.configure({wrap:t,dialect:e}):e?zs.configure({dialect:e}):zs;return new Mt(i,[zs.data.of({autocomplete:QQ(n)}),n.autoCloseTags!==!1?kQ:[],Ys().support,js().support])}c(bp,"html");var up=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" "));function wQ(n,e,t){for(var i;;){if(((i=e.lastChild)===null||i===void 0?void 0:i.name)!="CloseTag")return!1;let r=e.parent;if(!r||ui(n,r)!=t)return!0;e=r}}c(wQ,"isClosed");var kQ=P.inputHandler.of((n,e,t,i,r)=>{if(n.composing||n.state.readOnly||e!=t||i!=">"&&i!="/"||!zs.isActiveAt(n.state,e,-1))return!1;let s=r(),{state:o}=s,l=o.changeByRange(a=>{var h;let f=o.doc.sliceString(a.from-1,a.to)==i,{head:u}=a,d=F(o).resolveInner(u,-1),O;if(f&&i==">"&&d.name=="EndTag"){let p=d.parent;if((O=ui(o.doc,p.parent,u))&&!up.has(O)&&!wQ(o.doc,p.parent,O)){let m=u+(o.doc.sliceString(u,u+1)===">"?1:0),g=``;return{range:a,changes:{from:u,to:m,insert:g}}}}else if(f&&i=="/"&&d.name=="IncompleteCloseTag"){let p=d.parent;if(d.from==u-2&&((h=p.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(O=ui(o.doc,p,u))&&!up.has(O)){let m=u+(o.doc.sliceString(u,u+1)===">"?1:0),g=`${O}>`;return{range:b.cursor(u+g.length,-1),changes:{from:u,to:m,insert:g}}}}return{range:a}});return l.changes.empty?!1:(n.dispatch([s,o.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var bh=Ws(null),In=Ws(null),Sh="editor-loading";function Ui(n){let e=document.querySelector("#html-input-container");if(e)if(n){if(document.getElementById(Sh))return;let t=document.createElement("div");t.id=Sh,t.className="with-icon",t.style.fontSize="var(--fs-sm)",t.innerHTML=' Loading\u2026',e.before(t),e.hidden=!0}else document.getElementById(Sh)?.remove(),e.hidden=!1}c(Ui,"setEditorLoading");function Fw(){let n=document.body.querySelector("#html-input-container");if(!n)throw new Error("Editor container not found");let e=new P({parent:n,doc:` + + +\n `.trim(),\n extensions: [\n basicSetup,\n langHtml(),\n langCss(),\n langJs(),\n autocompletion(),\n ],\n });\n\n $editor.value = editor;\n return editor;\n}\n\n////////////////////////////////////////////\n// FORM\n////////////////////////////////////////////\n\n/**\n * @param {EditorView} editor\n */\nconst onBuildSubmit = (editor) =>\n/**\n * @param {Event} event\n */\nasync (event) => {\n event.preventDefault();\n\n const nameEl = /** @type {HTMLInputElement | null} */ (document.querySelector(\n \"#name-input\",\n ));\n\n const descriptionEl = /** @type {HTMLTextAreaElement | null} */ (\n document.querySelector(\"#description-input\")\n );\n\n const kindEl = /** @type {HTMLSelectElement | null} */ (\n document.querySelector(\"#kind-input\")\n );\n\n const html = editor.state.doc.toString();\n const cid = await CID.create(0x55, new TextEncoder().encode(html));\n const name = nameEl?.value ?? \"nameless\";\n const description = descriptionEl?.value ?? \"\";\n const kind =\n /** @type {\"interactive\" | \"prelude\"} */ (kindEl?.value ?? \"interactive\");\n\n /** @type {Facet} */\n const facet = $editingFacet.value\n ? {\n ...$editingFacet.value,\n cid,\n description,\n html,\n kind,\n name,\n }\n : {\n $type: \"sh.diffuse.output.facet\",\n id: TID.now(),\n cid,\n description,\n html,\n kind,\n name,\n };\n\n $editingFacet.value = facet;\n\n switch (/** @type {any} */ (event).submitter.name) {\n case \"save\":\n await saveFacet(facet);\n break;\n case \"save+open\":\n await saveFacet(facet);\n globalThis.open(`./l/?id=${facet.id}`, \"blank\");\n break;\n }\n};\n\n/**\n * @param {Facet} ogFacet\n */\nasync function editFacet(ogFacet) {\n const facet = { ...ogFacet };\n const nameEl = /** @type {HTMLInputElement | null} */ (document.querySelector(\n \"#name-input\",\n ));\n\n const descriptionEl = /** @type {HTMLTextAreaElement | null} */ (\n document.querySelector(\"#description-input\")\n );\n\n const kindEl = /** @type {HTMLSelectElement | null} */ (\n document.querySelector(\"#kind-input\")\n );\n\n if (!nameEl) return;\n\n // Reset url — remove `id` param if not matching the facet\n const url = new URL(location.href);\n const id = url.searchParams.get(\"id\");\n\n if (id && facet.id !== id) {\n url.searchParams.delete(\"id\");\n history.replaceState(null, \"\", url);\n }\n\n // Scroll to builder\n document.querySelector(\"#code\")?.scrollIntoView();\n\n // Make sure HTML is loaded\n if (!facet.html && facet.uri) {\n setEditorLoading(true);\n const html = await loadURI(facet.uri);\n const cid = await CID.create(0x55, new TextEncoder().encode(html));\n setEditorLoading(false);\n\n facet.html = html;\n facet.cid = cid;\n }\n\n $editingFacet.value = facet;\n nameEl.value = facet.name;\n\n if (kindEl) {\n kindEl.value = facet.kind ?? \"interactive\";\n }\n\n if (descriptionEl) {\n descriptionEl.value = facet.description ?? \"\";\n }\n\n const editor = $editor.value;\n editor?.dispatch({\n changes: { from: 0, to: editor.state.doc.length, insert: facet.html },\n });\n}\n\nexport function handleBuildFormSubmit() {\n const editor = $editor.value;\n if (!editor) return;\n\n document.querySelector(\"#code-form\")?.addEventListener(\n \"submit\",\n onBuildSubmit(editor),\n );\n\n const importBtn = document.querySelector(\"#import-button\");\n const importInput = document.querySelector(\"#import-input\");\n\n importBtn?.addEventListener(\"click\", () => /** @type {HTMLElement} */ (importInput)?.click());\n\n importInput?.addEventListener(\"change\", async (event) => {\n const file = /** @type {HTMLInputElement} */ (event.target).files?.[0];\n if (!file) return;\n\n const html = await file.text();\n const cid = await CID.create(0x55, new TextEncoder().encode(html));\n\n editor.dispatch({\n changes: { from: 0, to: editor.state.doc.length, insert: html },\n });\n });\n}\n\n////////////////////////////////////////////\n// EDIT EXAMPLES\n////////////////////////////////////////////\n\nlet isListening = false;\n\nexport function listenForExamplesEdit() {\n if (isListening) return;\n isListening = true;\n\n document.body.addEventListener(\n \"click\",\n /**\n * @param {MouseEvent} event\n */\n async (event) => {\n const target = /** @type {HTMLElement} */ (event.target);\n const rel = target.getAttribute(\"rel\");\n if (!rel) return;\n\n const uri = target.closest(\"li\")?.getAttribute(\"data-uri\");\n if (!uri) return;\n\n const name = target.closest(\"li\")?.getAttribute(\"data-name\");\n if (!name) return;\n\n const kind = target.closest(\"li\")?.getAttribute(\"data-kind\") ?? undefined;\n\n switch (rel) {\n case \"edit\": {\n setEditorLoading(true);\n const facet = await facetFromURI({ kind, name, uri }, {\n fetchHTML: true,\n });\n setEditorLoading(false);\n editFacet(facet);\n document.querySelector(\"#code\")?.scrollIntoView();\n break;\n }\n }\n },\n );\n}\n\n////////////////////////////////////////////\n// EDIT FACET FROM URL\n////////////////////////////////////////////\n\nexport async function editFacetFromURL() {\n const params = new URLSearchParams(location.search);\n const idParam = params.get(\"id\");\n const uriParam = params.get(\"uri\");\n\n // Reset editing state; if we're loading a specific facet, editFacet() will\n // set it again. Without this, $editingFacet persists across SPA navigations\n // and a subsequent \"save\" will reuse the stale id, silently overwriting the\n // previously edited facet instead of creating a new entry.\n $editingFacet.value = null;\n\n setEditorLoading(true);\n try {\n if (idParam) {\n const out = await output();\n const col = await Output.data(out.facets);\n const facet = col.find((f) => f.id === idParam);\n if (facet) await editFacet(facet);\n } else if (uriParam) {\n const facet = await facetFromURI({\n uri: uriParam,\n name: params.get(\"name\") ?? \"\",\n kind: /** @type {any} */ (params.get(\"kind\") ?? undefined),\n description: params.get(\"description\") ?? undefined,\n }, { fetchHTML: true });\n await editFacet(facet);\n }\n } finally {\n setEditorLoading(false);\n }\n}\n"],"mappings":"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","names":["rangeFrom","rangeTo","numbers","s","i","n","isExtendingChar","code","from","to","mid","__name","isRegionalIndicator","ZWJ","findClusterBreak","str","pos","forward","includeExtending","nextClusterBreak","prevClusterBreak","__name","surrogateLow","surrogateHigh","prev","codePointAt","codePointSize","next","isExtendingChar","isRegionalIndicator","countBefore","i","found","code0","code1","ch","code","Text","_Text","__name","pos","n","from","to","text","clip","parts","TextNode","other","start","end","a","RawTextCursor","b","skip","dir","PartialTextCursor","inner","LineCursor","lines","TextLeaf","_TextLeaf","length","textLength","target","isLine","line","offset","i","string","Line","open","sliceText","prev","joined","appendText","mid","newLen","lineSep","result","part","len","_TextNode","children","child","endLine","childOpen","updated","totalLines","copy","iA","iB","eA","eB","chA","chB","l","ch","flat","chunk","maxChunk","minChunk","chunked","currentLines","currentLen","currentChunk","add","last","node","flush","first","top","offsetValue","size","next","limit","value","done","lineBreak","number","findClusterBreak","str","forward","includeExtending","surrogateLow","surrogateHigh","codePointAt","code0","code1","fromCodePoint","code","codePointSize","DefaultSplit","MapMode","ChangeDesc","_ChangeDesc","sections","ins","f","posA","posB","individual","iterChanges","composeSets","before","mapSet","assoc","mode","endA","json","ChangeSet","_ChangeSet","inserted","doc","fromA","toA","fromB","_toB","index","ranges","resultSections","resultInserted","filteredSections","iter","SectionIter","addSection","addInsert","changes","total","force","set","process","spec","sub","insert","insText","insLen","e","forceJoin","values","desc","endB","setA","setB","mkSet","piece","left","sectionLen","insB","SelectionRange","_SelectionRange","flags","goalColumn","level","change","EditorSelection","head","includeAssoc","_EditorSelection","mainIndex","r","range","main","which","anchor","bidiLevel","checkSelection","selection","docLength","nextID","Facet","_Facet","combine","compareInput","compare","isStatic","enables","config","sameArray","FacetProvider","deps","get","field","x","state","dependencies","facet","type","addresses","_a","getter","id","idx","multi","depDoc","depSel","depAddrs","dep","tr","ensureAll","newVal","compareArray","oldState","oldAddr","oldVal","getAddr","StateField","addrs","changed","addr","ensureAddr","dynamicFacetSlot","providers","providerAddrs","p","providerTypes","dynamic","val","depChanged","oldProviders","oldValue","initField","_StateField","createF","updateF","compareF","init","oldInit","reInit","create","Prec_","prec","ext","PrecExtension","Prec","Compartment","_Compartment","CompartmentInstance","content","compartment","Configuration","_Configuration","base","compartments","dynamicSlots","address","staticValues","facets","fields","newCompartments","flatten","oldFacets","extension","seen","known","found","status","languageData","allowMultipleSelections","v","lineSeparator","changeFilter","transactionFilter","transactionExtender","readOnly","Annotation","AnnotationType","StateEffectType","map","StateEffect","_StateEffect","mapping","mapped","effects","effect","Transaction","_Transaction","startState","annotations","scrollIntoView","ann","event","joinRanges","mergeTransaction","sequential","mapForA","mapForB","resolveTransactionInner","docSize","sel","asArray","resolveTransaction","specs","filter","s","seq","extendTransaction","filterTransaction","back","filtered","filters","extenders","none","CharCategory","nonASCIISingleCaseWordChar","wordChar","hasWordChar","makeCategorizer","wordChars","char","EditorState","_EditorState","computeSlot","require","conf","key","startValues","slot","result1","newChanges","newMapped","j","mapBy","prop","fieldInit","configuration","phrase","m","name","side","provider","at","chars","cat","kA","kB","k","combineConfig","configs","defaults","current","RangeValue","Range","cmpVal","_Range","cmpRange","Chunk","_Chunk","maxPoint","startAt","arr","lo","hi","diff","newPos","curFrom","curTo","newFrom","newTo","RangeSet","_RangeSet","chunkPos","nextLayer","updateSpec","sort","filterFrom","filterTo","cur","LayerCursor","spill","builder","RangeSetBuilder","chunks","touch","HeapCursor","sets","oldSets","newSets","textDiff","comparator","minPointSize","sharedChunks","findSharedChunks","sideA","SpanCursor","sideB","sameValues","iterator","cursor","openRanges","active","openCount","build","lazySort","layer","_RangeSetBuilder","newArrays","inA","shared","minPoint","rank","rangeIndex","_HeapCursor","heap","heapBubble","childIndex","remove","findMinIndex","trackOpen","wasPoint","nextVal","startA","startB","dPos","bounds","boundChange","dEnd","clipEnd","array","foundPos","countColumn","tabSize","findColumn","col","strict","COUNT","SET","top","StyleModule","__name","spec","options","finish","splitSelector","selector","render","selectors","target","isKeyframes","local","isAt","keyframes","prop","value","part","sel","a","b","l","id","root","modules","set","nonce","StyleSet","adoptedSet","doc","win","adopted","sheet","pos","j","i","mod","index","k","text","base","shift","mac","ie","i","code","keyName","event","ignoreKey","name","__name","crelt","elt","i","next","name","value","add","__name","child","nav","doc","ie_edge","ie_upto10","ie_11up","ie","gecko","chrome","webkit","safari","ios","browser","combineAttrs","source","target","name","__name","noAttrs","attrsEq","a","b","ignore","keysA","keysB","key","setAttrs","dom","attrs","i","value","updateAttrs","prev","changed","getAttrs","attr","WidgetType","widget","view","from","other","event","pos","side","BlockType","Decoration","RangeValue","startSide","endSide","spec","MarkDecoration","block","PointDecoration","start","end","getInclusive","LineDecoration","of","sort","RangeSet","_MarkDecoration","to","_LineDecoration","MapMode","_PointDecoration","isReplace","widgetsEq","addRange","ranges","margin","last","BlockWrapper","_BlockWrapper","tagName","attributes","rank","getSelection","root","contains","node","hasSelection","selection","clientRectsFor","textRange","isEquivalentPosition","off","targetNode","targetOff","scanFor","domIndex","index","isBlockElement","dir","maxOffset","parent","flattenRect","rect","toLeft","left","right","x","windowRect","win","vp","getScale","elt","scaleX","scaleY","scrollRectIntoView","y","xMargin","yMargin","ltr","cur","stop","bounding","top","moveX","moveY","rectHeight","boundingHeight","movedX","movedY","scrollableParents","getX","DOMSelectionState","domSel","range","anchorNode","focusNode","anchorOffset","focusOffset","getScrollStack","stack","restoreScrollStack","vert","preventScrollSupported","focusPreventScroll","scratchRange","dispatchKey","code","mods","options","down","up","getRoot","atElementStart","offset","isScrolledToBottom","textNodeBefore","startNode","startOffset","textNodeAfter","DOMPos","_DOMPos","precise","Direction","LTR","RTL","dec","str","result","LowTypes","ArabicTypes","Brackets","BracketStack","p","l","r","charType","ch","BidiRE","BidiSpan","level","forward","order","assoc","maybe","span","isolatesEq","iA","iB","types","computeCharTypes","line","rFrom","rTo","isolates","outerType","iI","prevType","prevStrong","type","replace","j","processBracketPairs","oppositeType","sI","context","br","sJ","flags","embed","processNeutrals","beforeL","afterL","jI","fromJ","emitSpans","baseLevel","ourType","iCh","sameDir","isNum","next","recurse","localLevel","iScan","run","iso","upto","dirSwap","computeSectionOrder","computeOrder","direction","trivialOrder","length","movedOver","moveVisually","_a","startIndex","spanI","spanEnd","nextI","nextIndex","findClusterBreak","nextSpan","EditorSelection","autoDirection","text","clickAddsSelectionRange","Facet","dragMovesSelection$1","mouseSelectionStyle","exceptionSink","updateListener","inputHandler","focusChangeEffect","clipboardInputFilter","clipboardOutputFilter","perLineTextDirection","values","nativeSelectionHidden","scrollHandler","ScrollTarget","_ScrollTarget","isSnapshot","changes","state","scrollIntoView","StateEffect","t","setEditContextFormatting","logException","exception","handler","editable","nextPluginID","viewPlugin","plugins","ViewPlugin","_ViewPlugin","id","create","domEventHandlers","domEventObservers","buildExtensions","arg","eventHandlers","eventObservers","provide","deco","plugin","ext","decorations","pluginInst","cls","PluginInstance","update","e","editorAttributes","contentAttributes","blockWrappers","outerDecorations","atomicRanges","bidiIsolatedRanges","getIsolatedRanges","sets","fromDoc","toDoc","active","open","add","scrollMargins","getScrollMargins","bottom","m","styleModule","ChangedRange","_ChangedRange","fromA","toA","fromB","toB","set","me","diff","dI","rI","nextD","nextR","ViewUpdate","_ViewUpdate","transactions","ChangeSet","tr","changedRanges","noChildren","Tile","track","tile","child","rtl","after","DocTile","CompositeTile","tracking","rm$1","f","BlockWrapperTile","before","beforeOff","afterOff","_BlockWrapperTile","wrapper","LineTile","_LineTile","keepAttrs","forCoords","scan","onSameLine","found","fallbackRect","saw","rects","posA","posB","MarkTile","_MarkTile","mark","TextTile","_TextTile","flatten","WidgetTile","_WidgetTile","custom","fromBack","Text","WidgetBufferTile","img","TilePointer","dist","walker","beforeBreak","parents","brk","len","take","OpenWrapper","TileBuilder","cache","marks","openStart","composition","freeNode","head","nw","oldTile","noSpace","lineBaseAttrs","hasContent","BreakWidget","wrap","TextStream","maxLen","lineBreak","done","chars","buckets","TileCache","bucket","test","widgets","pass","TileUpdate","old","disallowBlockEffectsFor","compositionContext","skipA","incStart","incEnd","activeMarks","getMarks","openMarks","pendingLineAttrs","markCount","openEnd","NullWidget","widgetFlags","addLineDeco","requireText","ptr","tag","DocView","readCompositionAt","touchesComposition","findCompositionRange","prevDeco","prevWrappers","decoDiff","findChangedDeco","blockDiff","findChangedWrappers","observer","builder","destroyDropped","gaps","BlockGapWidget","effect","mustRead","fromPointer","activeElt","focused","selectionNotFocus","force","main","anchor","betweenUneditable","dummy","inUneditable","rawSel","nextTo","nextToUneditable","sel","cursor","lineStart","newRange","bias","beforeBad","afterBad","viewport","contentWidth","isWider","widest","spaceAbove","measureBounds","childRect","height","width","lineMeasure","totalWidth","textHeight","lineHeight","charWidth","vs","allDeco","d","dynamicOuter","outerDeco","dynamic","v","ref","margins","targetRect","offsetWidth","offsetHeight","reused","findCompositionNode","headPos","textBefore","textAfter","textNode","tileAfter","tileBefore","inv","DecorationComparator$1","comp","WrapperComparator","inside","touched","groupAt","categorize","linePos","cat","posAtCoordsImprecise","contentRect","into","content","findColumn","blockAt","best","moveToLineBoundary","includeWrap","coords","editorRect","moveByChar","by","spans","check","char","byGroup","nextCat","CharCategory","moveVertically","distance","startPos","goal","startY","startCoords","docTop","resolvedGoal","halfText","posAtCoords","posCoords","mid","skipAtomicRanges","atoms","moved","skipAtomsForSelection","updated","skipAtoms","oldPos","newPos","PosAssoc","scanY","yOffset","halfLine","InlineCoordsScan","baseDir","positions","getRects","recursed","lo","hi","seen","bidi","above","below","closestI","closestDx","closestRect","search","adjust","dx","LineBreakPlaceholder","DOMReader","points","EditorState","oldLen","nextTile","isEmptyToEnd","point","re","nextBreak","breakSize","fromView","isAtEnd","w","override","DOMPoint","DOMChange","typeOver","iHead","iAnchor","curSel","domBoundsAround","selPoints","selectionPoints","reader","selectionFromPoints","offFrom","offTo","fromI","fromStart","toI","toEnd","prevEnd","applyDOMChange","domChange","change","newSel","lastKey","preferredPos","preferredSide","cmp","selEnd","findDiff","sameSelPos","applyDOMChangeInner","userEvent","defaultTr","defaultInsert","applyDefaultInsert","h","startState","inAtomic","mainSel","replaced","compositionRange","dLen","rangeChanges","selOff","minLen","move","base","InputState","origin","firefoxCopyCutHack","eventBelongsToEditor","handlers","computeHandlers","passive","exists","modifierCodes","PendingKeys","EmacsyPendingKeys","iosVirtualKeyboardOpen","mouseSelection","bindHandler","record","observers","dragScrollMargin","dragScrollSpeed","MouseSelection","startEvent","style","mustSelect","addsSelectionRange","isInPrimarySelection","getClickType","sx","sy","facet","dragMovesSelection","brokenClipboardAPI","capturePaste","doPaste","textFilter","filter","input","byLine","lastLinewiseCopy","lastLine","insert","iState","touch","makeStyle","basicMouseSelection","mustFocus","mouseSel","rangeForClick","visual","BadMouseDetail","lastMouseDown","lastMouseDownCount","lastMouseDownTime","lastTime","startSel","extend","multiple","removed","startRange","removeRangeAround","inputState","dropText","direct","dropPos","draggedContent","del","ins","files","read","finishFile","s","data","captureCopy","copiedRange","linewise","isFocusChange","Annotation","focusChangeTransaction","focus","effects","getEffect","updateForFocusChange","_b","pending","startViewHeight","appliedFirefoxHack","wrappingWhiteSpace","heightChangeFlag","clearHeightChangeFlag","HeightOracle","lineWrapping","lines","whiteSpace","lineHeights","newHeight","lineLength","knownHeights","MeasuredHeights","heights","BlockInfo","_BlockInfo","_content","QueryType","Epsilon","HeightMap","_HeightMap","_from","_to","nodes","oldDoc","oracle","NodeBuilder","HeightMapText","split","HeightMapBranch","val","SpaceDeco","HeightMapBlock","_oracle","_value","_type","measured","_force","_HeightMapText","HeightMapGap","_HeightMapGap","firstLine","perLine","perChar","totalPerLine","guess","lineTop","linesAbove","first","singleHeight","rightTop","rightOffset","subQuery","rightStart","mergeGaps","rebalance","around","relevantWidgetHeight","_NodeBuilder","breaks","gap","heightRelevantDecoChanges","DecorationComparator","visiblePixelRange","paddingTop","parentRect","inWindow","fullPixelRange","LineGap","size","displaySize","gA","gB","viewState","wrapping","LineGapWidget","vertical","ViewState","IdScaler","guessWrapping","staticDeco","viewports","Viewport","scaler","BigScaler","scaleBlock","scrollTarget","contentChanges","heightChanges","prevHeight","scrollAnchor","viewportChange","refresh","domRect","measureContent","paddingBottom","scrollParent","scrollOffset","pixelViewport","dTop","dBottom","inView","marginTop","map","visibleTop","visibleBottom","viewHeight","topPos","mapped","current","mayMeasure","halfMargin","doubleMargin","addGap","structure","avoid","find","checkLine","lineStructure","viewFrom","viewTo","marginHeight","bot","targetFrac","findFraction","spaceFrac","findPosition","marginWidth","horizOffset","pxLeft","pxRight","fraction","stateDeco","total","ratio","counted","array","outer","_BigScaler","heightMap","vpHeight","domBase","obj","n","bTop","bBottom","theme","strs","darkTheme","baseThemeID","StyleModule","baseLightID","baseDarkID","lightDarkIDs","buildTheme","scopes","baseTheme$1","observeOptions","useCharData","DOMObserver","mutations","mut","EditContextManager","entries","g","wasChanged","safariSelectionRangeHack","local","keyCode","flush","records","readSelection","handled","rec","childBefore","findChild","childAfter","_c","curTile","buildSelectionRangeFromRange","curAnchor","deletes","newLen","format","lineStyle","thickness","drifted","abort","_fromB","_toB","reverted","contextPos","clipLen","c","editorPos","EditorView","_EditorView","config","dispatch","trs","Transaction","redrawn","attrsChanged","focusFlag","dispatchFocus","pendingKey","CachedOrder","listener","newState","hadFocus","prevSpecs","specs","newPlugins","scroll","scrollAnchorPos","scrollAnchorHeight","measuring","BadMeasure","editorAttrs","attrsFromFacet","contentAttrs","changedContent","changedEditor","div","nonce","request","known","initial","MaxBidiLine","entry","_d","scrollTop","scrollLeft","prefix","Prec","inputs","_CachedOrder","fresh","lastDir","sources","currentPlatform","normalizeKeyName","platform","parts","alt","ctrl","shift","meta","mod","modifiers","handleKeyEvents","runHandlers","getKeymap","keymap","Keymaps","bindings","buildKeymap","runScopeHandlers","scope","storedPrefix","PrefixTimeout","bound","isPrefix","checkPrefix","is","command","preventDefault","stopPropagation","scopeObj","k","ourObj","full","binding","any","currentKeyEvent","keyName","charCode","codePointAt","isChar","codePointSize","prevented","ran","runFor","cmd","baseName","shiftName","RectangleMarker","_RectangleMarker","className","getBase","rectanglesForRange","wrappedLine","lineElt","leftSide","rightSide","startBlock","endBlock","visualStart","visualEnd","pieces","drawForLine","drawForWidget","between","piece","horizontal","addSpan","fromOpen","toOpen","fromCoords","toCoords","endPos","docLine","spanFrom","spanTo","sameMarker","LayerView","layer","layerOrder","markers","oldI","marker","selectionConfig","configs","combineConfig","drawSelection","cursorLayer","selectionLayer","hideNativeSelection","configChanged","update","selectionConfig","__name","cursorLayer","layer","view","state","conf","cursors","prim","browser","className","cursor","EditorSelection","piece","RectangleMarker","dom","tr","confChange","setBlinkRate","selectionLayer","markers","main","ranges","marker","selectionBg","hideNativeSelection","Prec","EditorView","setDropCursorPos","StateEffect","pos","mapping","dropCursorPos","StateField","e","drawDropCursor","ViewPlugin","_a","cursorPos","rect","outer","scaleX","scaleY","event","dropCursor","iterMatches","doc","re","from","to","f","m","matchRanges","maxLength","visible","result","MatchDecorator","config","regexp","decoration","decorate","boundary","match","add","deco","_view","build","RangeSetBuilder","changeFrom","changeTo","_f","_t","updateFrom","updateTo","r","fromLine","toLine","start","end","UnicodeRegexpSupport","Specials","Names","_supportsTabSize","supportsTabSize","styles","specialCharConfig","Facet","configs","combineConfig","highlightSpecialChars","specialCharPlugin","_plugin","Decoration","code","codePointAt","line","size","col","countColumn","TabWidget","SpecialCharWidget","v","DefaultPlaceholder","placeholder$1","WidgetType","options","other","ph","desc","custom","span","width","highlightActiveLine","activeLineHighlighter","__name","lineDeco","Decoration","ViewPlugin","view","update","lastLineStart","deco","r","line","v","MaxOff","rectangleFor","state","a","b","startLine","endLine","ranges","startOff","endOff","i","line","EditorSelection","startCol","endCol","start","findColumn","end","__name","absoluteColumn","view","x","ref","getPos","event","offset","off","col","countColumn","rectangleSelectionStyle","startSel","update","newStart","newLine","_extend","multiple","cur","rectangularSelection","options","filter","e","EditorView","keys","showCrosshair","crosshairCursor","code","getter","plugin","ViewPlugin","isDown","_a","Outside","TooltipViewManager","facet","createTooltipView","removeTooltipView","t","prev","above","input","tooltips","tooltipViews","newAbove","tip","known","other","tooltipView","val","windowSpace","view","docElt","__name","tooltipConfig","Facet","values","_a","_b","_c","browser","conf","knownHeight","tooltipPlugin","ViewPlugin","config","TooltipViewManager","showTooltip","p","entries","tooltip","update","updated","shouldMeasure","newConfig","t","prev","tooltipView","before","arrow","Outside","scaleX","scaleY","makeAbsolute","dom","rect","visible","margins","getScrollMargins","i","tv","measured","space","others","tView","pos","size","arrowHeight","width","height","offset","noOffset","ltr","Direction","left","above","spaceVert","top","right","r","setLeftStyle","arrowLeft","elt","value","current","baseTheme","EditorView","showHoverTooltip","inputs","a","HoverTooltipHost","_HoverTooltipHost","hostedView","name","given","showHoverTooltipHost","state","tooltips","hoverPlugin","HoverPlugin","source","field","locked","setHover","hoverTime","hovered","lastMove","tile","side","posCoords","bidi","s","rtl","open","done","pending","result","e","logException","plugin","index","event","active","isInTooltip","end","isOverRange","watch","tooltipMargin","bottom","arrowRect","from","to","x","y","margin","docBottom","hoverTooltip","options","StateEffect","hoverState","StateField","tr","lock","v","mapped","newPos","MapMode","copy","effect","closeHoverTooltipEffect","f","activateHover","plugins","found","getTooltip","closeHoverTooltipEffect","StateEffect","panelConfig","Facet","configs","topContainer","bottomContainer","c","getPanel","view","panel","plugin","panelPlugin","index","__name","ViewPlugin","showPanel","s","spec","conf","panelConfig","PanelGroup","p","update","input","specs","x","panels","top","bottom","mount","known","EditorView","value","container","parent","curDOM","rm","cls","node","next","Facet","showDialog","config","resolve","promise","r","panelCtor","createDialog","dialogField","openDialogEffect","StateEffect","close","closeDialogEffect","form","f","dialogField","StateField","dialogs","tr","e","openDialogEffect","closeDialogEffect","d","__name","f","showPanel","state","StateEffect","createDialog","view","config","result","content","done","crelt","input","forms","i","form","event","panel","focus","GutterMarker","RangeValue","other","dom","MapMode","gutterLineClass","Facet","gutterWidgetClass","defaults","RangeSet","activeGutters","gutter","gutters","unfixGutters","values","x","gutterView","ViewPlugin","conf","SingleGutterView","update","vpA","vpB","vpOverlap","min","detach","after","lineClasses","classSet","contexts","UpdateContext","line","first","b","BlockType","advanceCursor","cx","prev","cur","change","known","g","plugin","EditorView","value","before","Direction","asArray","val","cursor","collect","pos","viewport","height","block","markers","above","newElt","GutterElement","extraMarkers","localMarkers","forLine","marker","cls","last","prop","target","y","rect","prevMarkers","updated","vp","elt","sameMarkers","domPos","iNew","iOld","skipTo","matched","c","next","a","lineNumberMarkers","lineNumberWidgetMarker","lineNumberConfig","combineConfig","exists","add","NumberMarker","number","formatNumber","lineNumberGutter","others","m","widget","maxLineNumber","spacer","max","lineNumbers","lines","activeLineGutterMarker","activeLineGutterHighlighter","marks","range","linePos","highlightActiveLineGutter","nextPropID","Range","__name","from","to","NodeProp","config","match","NodeType","type","result","str","value","MountedTree","tree","overlay","parser","bracketed","noProps","_NodeType","name","props","id","flags","spec","src","prop","group","map","direct","node","groups","i","found","NodeSet","_NodeSet","types","newTypes","newProps","source","add","CachedNode","CachedInnerNode","IterMode","Tree","_Tree","children","positions","length","mounted","ch","mode","TreeCursor","pos","side","scope","cursor","TreeNode","resolveNode","stackIterator","enter","leave","anon","c","entered","balanceRange","data","buildTree","FlatBufferCursor","_FlatBufferCursor","buffer","index","TreeBuffer","_TreeBuffer","set","endIndex","startIndex","dir","pick","checkSide","startI","endI","b","copy","len","j","overlays","_a","parent","scan","inner","BaseNode","before","after","getChildren","context","matchNodeContext","last","_TreeNode","_tree","_parent","e","next","start","BufferNode","BufferContext","hasChild","rPos","enterBracketed","val","cur","p","_BufferNode","parentStart","iterStack","heads","picked","newHeads","StackIterator","layers","mount","root","n","d","child","cache","depth","mustLeave","nodeSet","maxBufferLength","reused","minRepeatType","contextHash","lookAhead","takeNode","minPos","inRepeat","end","size","lookAheadAtStart","contextAtStart","startPos","findBufferSize","endPos","copyToBuffer","localChildren","localPositions","localInRepeat","lastGroup","lastEnd","makeRepeatLeaf","takeFlatNode","make","makeBalanced","makeTree","nodes","nodeCount","stopAt","lastI","lookAheadProp","base","pair","maxSize","fork","skip","minStart","nodeSize","localSkipped","nodeStart","bufferStart","nodeSizeCache","balanceType","mkTop","mkTree","total","maxChild","divide","offset","groupFrom","groupStart","groupSize","nextSize","only","NodeWeakMap","TreeFragment","_TreeFragment","openStart","openEnd","fragments","partial","f","changes","minGap","fI","nextF","cI","off","nextC","nextPos","cut","fFrom","fTo","Parser","input","ranges","StringInput","parse","done","string","parseMixed","nest","MixedParse","InnerParse","target","checkRanges","r","ActiveOverlay","predicate","mounts","prev","stoppedInner","fragmentCursor","FragmentCursor","covered","isCovered","range","m","checkCover","materialize","oldMounts","punchRanges","enterFragments","sliceBuf","buf","stack","newStack","split","innerOffset","stackPos","targetI","StructureCursor","first","frag","outer","current","gapFrom","gapTo","findCoverChanges","a","iA","iB","inA","inB","nextA","nextB","nextTagID","Tag","_Tag","__name","name","set","base","modified","mod","nameOrParent","parent","tag","t","Modifier","a","b","nextModifierID","_Modifier","mods","exists","sameArray","m","configs","powerSet","config","x","array","sets","i","j","e","styleTags","spec","byName","prop","tags","part","pieces","mode","rest","pos","next","last","inner","rule","Rule","ruleNodeProp","NodeProp","cur","root","take","copy","context","other","tagHighlighter","options","map","style","scope","all","cls","sub","tagClass","highlightTags","highlighters","result","highlighter","value","highlightTree","tree","putStyle","from","to","builder","HighlightBuilder","HighlightBuilder","__name","at","highlighters","span","cls","to","cursor","from","inheritedClass","type","start","end","h","rule","getStyleTags","Rule","tagCls","highlightTags","mounted","NodeProp","inner","innerHighlighters","hasChild","i","pos","next","nextPos","rangeFrom","rangeTo","node","ruleNodeProp","t","Tag","comment","name","typeName","propertyName","literal","string","number","content","heading","keyword","operator","punctuation","bracket","meta","tags","val","classHighlighter","tagHighlighter","_a","languageDataProp","NodeProp","defineLanguageFacet","baseData","Facet","values","__name","sublanguageProp","Language","data","parser","extraExtensions","name","EditorState","syntaxTree","language","state","pos","side","top","topNodeAt","base","sub","innerNode","sublang","lang","result","explore","tree","from","mount","r","size","i","ch","Tree","StateEffect","topLang","node","IterMode","LRLanguage","_LRLanguage","spec","type","options","field","DocInput","__name","doc","pos","from","to","stringStart","currentContext","ParseContext","_ParseContext","parser","state","fragments","tree","treeLen","viewport","skipped","scheduleOn","Tree","until","upto","_a","endTime","done","TreeFragment","f","prev","r","cutFragments","changes","newState","ranges","fromA","toA","fromB","toB","startLen","Parser","input","cx","NodeType","frags","LanguageState","_LanguageState","context","tr","newCx","vpTo","parseState","language","Language","StateField","value","e","requestIdle","callback","timeout","idle","isInputPending","parseWorker","ViewPlugin","view","update","field","deadline","now","viewportFirst","err","logException","Facet","languages","EditorView","lang","LanguageSupport","support","indentService","Facet","indentUnit","__name","values","unit","e","getIndentUnit","state","indentString","cols","result","ts","ch","i","getIndentation","context","pos","EditorState","IndentContext","service","tree","syntaxTree","syntaxIndentation","IndentContext","__name","state","options","getIndentUnit","pos","bias","line","simulateBreak","simulateDoubleBreak","text","from","result","override","countColumn","overriden","indentNodeProp","NodeProp","syntaxIndentation","cx","ast","stack","inner","add","cur","i","indentFor","strategy","indentStrategy","TreeIndentContext","ignoreClosed","tree","first","close","last","closed","delimitedStrategy","topIndent","_TreeIndentContext","base","context","node","atBreak","isParent","parent","of","bracketedAligned","openToken","sim","openLine","lineEnd","next","space","delimitedIndent","closing","align","units","closedAt","after","aligned","flatIndent","continuedIndent","except","matchExcept","DontIndentBeyond","indentOnInput","EditorState","tr","rules","doc","head","lineStart","r","changes","indent","getIndentation","norm","indentString","foldService","Facet","foldNodeProp","foldInside","syntaxFolding","start","end","syntaxTree","found","iter","prop","isUnfinished","value","ch","foldable","service","mapRange","range","mapping","to","foldEffect","StateEffect","unfoldEffect","selectedLines","view","lines","l","foldState","StateField","Decoration","folded","fromA","toA","clearTouchedFolds","rangesToFold","e","foldExists","preparePlaceholder","foldConfig","decorations","PreparedFoldWidget","foldWidget","f","EditorView","ranges","touched","a","b","findFold","state","from","to","_a","found","foldState","__name","foldExists","folded","a","b","maybeEnable","other","StateEffect","codeFolding","foldCode","view","line","selectedLines","range","foldable","foldEffect","announceFold","unfoldCode","effects","unfoldEffect","fold","lineFrom","lineTo","EditorView","foldAll","pos","unfoldAll","field","foldKeymap","foldCode","unfoldCode","foldAll","unfoldAll","defaultConfig","foldConfig","Facet","values","combineConfig","codeFolding","config","result","foldState","baseTheme$1","__name","widgetToDOM","view","prepared","state","conf","onclick","event","line","folded","findFold","unfoldEffect","element","foldWidget","Decoration","WidgetType","PreparedFoldWidget","value","other","foldGutterDefaults","FoldMarker","GutterMarker","open","span","foldGutter","fullConfig","canFold","canUnfold","markers","ViewPlugin","update","language","syntaxTree","builder","RangeSetBuilder","mark","foldable","domEventHandlers","gutter","_a","RangeSet","range","foldEffect","EditorView","HighlightStyle","_HighlightStyle","specs","options","modSpec","def","spec","cls","StyleModule","all","scopeOpt","Language","type","languageDataProp","tagHighlighter","style","highlighterFacet","fallbackHighlighter","getHighlighters","main","syntaxHighlighting","highlighter","ext","treeHighlighter","themeType","TreeHighlighter","__name","view","syntaxTree","getHighlighters","update","tree","highlighters","styleChange","viewport","decoratedToMapped","Decoration","builder","RangeSetBuilder","from","to","highlightTree","style","treeHighlighter","Prec","ViewPlugin","v","defaultHighlightStyle","HighlightStyle","tags","baseTheme","EditorView","DefaultScanDist","DefaultBrackets","bracketMatchingConfig","Facet","configs","combineConfig","defaultRenderMatch","matchingMark","nonmatchingMark","match","decorations","mark","bracketDeco","state","config","range","matchBrackets","bracketMatcher","bracketMatchingUnique","bracketMatching","bracketMatchingHandle","NodeProp","matchingNodes","node","dir","brackets","byProp","index","findHandle","hasHandle","pos","maxScanDistance","cur","matches","handle","matchMarkedBrackets","matchPlainBrackets","_state","_pos","token","matching","parent","firstToken","depth","cursor","endHandle","tokenType","startCh","bracket","startToken","iter","distance","text","basePos","end","found","noTokens","typeArray","NodeType","warned","byTag","defaultTable","legacyName","name","createTokenType","noTokens","warnForPart","part","msg","warned","__name","createTokenType","extra","tagStr","tags$1","name","found","value","tags","tag","key","t","known","byTag","type","NodeType","typeArray","styleTags","marks","Decoration","Direction","toggleComment","__name","target","state","line","config","getConfig","toggleLineComment","toggleBlockCommentByLine","command","f","option","dispatch","tr","changeLineComment","toggleBlockComment","command","changeBlockComment","toggleBlockCommentByLine","command","o","s","changeBlockComment","selectedLineRanges","getConfig","state","pos","data","__name","SearchMargin","findBlockComment","open","close","from","to","textBefore","textAfter","spaceBefore","spaceAfter","beforeOff","startText","endText","startSpace","endSpace","endOff","ranges","r","fromLine","toLine","last","option","tokens","c","comments","i","range","changes","comment","token","changeLineComment","lines","prevLine","startI","minIndent","line","indent","empty","l","single","changeSet","fromHistory","Annotation","isolateHistory","invertedEffects","Facet","historyConfig","configs","combineConfig","_t","isAdjacent","a","b","tr","adj","historyField_","StateField","HistoryState","config","fromHist","item","HistEvent","other","updateBranch","addSelection","isolate","Transaction","event","time","userEvent","value","json","history","EditorView","view","undo","redo","cmd","side","selection","state","dispatch","historyState","historyField_","tr","__name","undo","redo","undoSelection","redoSelection","HistEvent","_HistEvent","__name","changes","effects","mapped","startSelection","selectionsAfter","after","_a","_b","_c","s","json","ChangeSet","ChangeDesc","EditorSelection","tr","selection","none","invert","invertedEffects","result","selections","updateBranch","branch","to","maxLen","newEvent","start","newBranch","isAdjacent","a","b","ranges","f","t","_f","_t","i","from","eqSelectionShape","r","conc","MaxSelectionsPerEvent","addSelection","lastEvent","sels","popSelection","last","addMappingToBranch","mapping","length","event","mapEvent","extraSelections","mappedChanges","before","fullMapping","StateEffect","joinableUserEvent","HistoryState","_HistoryState","done","undone","prevTime","prevUserEvent","time","userEvent","config","newGroupDelay","side","state","onlySelection","fromHistory","rest","historyKeymap","undo","redo","undoSelection","redoSelection","updateSel","sel","by","setSel","moveSel","dispatch","how","rangeEnd","range","forward","cursorByChar","view","ltrAtCursor","Direction","cursorCharLeft","cursorCharRight","cursorByGroup","view","forward","moveSel","range","rangeEnd","__name","cursorGroupLeft","ltrAtCursor","cursorGroupRight","segmenter","interestingNode","state","node","bracketProp","len","__name","moveBySyntax","start","forward","pos","syntaxTree","NodeProp","at","next","bracket","match","newPos","matchBrackets","EditorSelection","cursorSyntaxLeft","view","moveSel","range","ltrAtCursor","cursorSyntaxRight","cursorByLine","rangeEnd","moved","cursorLineUp","cursorLineDown","pageInfo","selfScroll","marginTop","marginBottom","height","source","EditorView","margins","cursorByPage","page","selection","updateSel","effect","startPos","scrollRect","scrollTop","scrollBottom","setSel","cursorPageUp","cursorPageDown","moveByLineBoundary","line","space","cursorLineBoundaryForward","cursorLineBoundaryBackward","cursorLineBoundaryLeft","cursorLineBoundaryRight","cursorLineStart","cursorLineEnd","toMatchingBracket","dispatch","extend","found","matching","head","cursorMatchingBracket","extendSel","target","forward","how","selection","updateSel","range","EditorSelection","head","setSel","__name","selectByChar","view","selectCharLeft","ltrAtCursor","selectCharRight","selectByGroup","view","forward","extendSel","range","__name","selectGroupLeft","ltrAtCursor","selectGroupRight","selectSyntaxLeft","__name","view","forward","ltrAtCursor","extendSel","range","moveBySyntax","selectSyntaxRight","selectByLine","selectLineUp","selectLineDown","selectByPage","pageInfo","selectPageUp","selectPageDown","selectLineBoundaryForward","moveByLineBoundary","selectLineBoundaryBackward","selectLineBoundaryLeft","selectLineBoundaryRight","selectLineStart","EditorSelection","selectLineEnd","cursorDocStart","state","dispatch","setSel","cursorDocEnd","selectDocStart","selectDocEnd","selectAll","selectLine","ranges","selectedLineBlocks","from","to","selectParentSyntax","selection","updateSel","tree","syntaxTree","stack","stackBefore","cur","node","addCursorVertically","sel","line","next","r","addCursorAbove","addCursorBelow","simplifySelection","deleteBy","target","by","event","changes","towards","skipAtomic","EditorView","pos","f","deleteByChar","byIndentUnit","before","targetPos","col","countColumn","drop","getIndentUnit","i","findClusterBreak","deleteCharBackward","deleteCharForward","__name","view","deleteByChar","deleteByGroup","target","forward","deleteBy","range","pos","state","line","categorize","cat","next","findClusterBreak","nextChar","nextCat","deleteGroupBackward","deleteGroupForward","deleteToLineEnd","__name","view","deleteBy","range","lineEnd","deleteLineBoundaryBackward","__name","view","deleteBy","range","lineStart","deleteLineBoundaryForward","splitLine","__name","state","dispatch","changes","range","Text","EditorSelection","transposeChars","pos","line","from","findClusterBreak","to","selectedLineBlocks","blocks","upto","startLine","endLine","prev","moveLine","forward","ranges","block","nextLine","size","r","moveLineUp","moveLineDown","copyLine","changeSet","copyLineUp","copyLineDown","deleteLine","view","selection","updateSel","dist","isBetweenBrackets","state","pos","context","syntaxTree","before","after","closedBy","NodeProp","__name","insertNewlineAndIndent","newlineAndIndent","insertBlankLine","atEof","dispatch","changes","range","from","to","line","explode","cx","IndentContext","indent","getIndentation","countColumn","insert","indentString","Text","EditorSelection","changeBySelectedLine","f","atLine","changeSet","indentSelection","updated","start","found","cur","norm","indentMore","indentUnit","indentLess","space","col","keep","getIndentUnit","toggleTabFocusMode","view","emacsStyleKeymap","cursorCharLeft","selectCharLeft","cursorCharRight","selectCharRight","cursorLineUp","selectLineUp","cursorLineDown","selectLineDown","cursorLineStart","selectLineStart","cursorLineEnd","selectLineEnd","deleteCharForward","deleteCharBackward","deleteToLineEnd","deleteGroupBackward","splitLine","transposeChars","cursorPageDown","standardKeymap","cursorGroupLeft","selectGroupLeft","cursorLineBoundaryLeft","selectLineBoundaryLeft","cursorGroupRight","selectGroupRight","cursorLineBoundaryRight","selectLineBoundaryRight","cursorDocStart","selectDocStart","cursorPageUp","selectPageUp","cursorDocEnd","selectDocEnd","selectPageDown","cursorLineBoundaryBackward","selectLineBoundaryBackward","cursorLineBoundaryForward","selectLineBoundaryForward","insertNewlineAndIndent","selectAll","deleteGroupForward","deleteLineBoundaryBackward","deleteLineBoundaryForward","b","defaultKeymap","cursorSyntaxLeft","selectSyntaxLeft","cursorSyntaxRight","selectSyntaxRight","moveLineUp","copyLineUp","moveLineDown","copyLineDown","addCursorAbove","addCursorBelow","simplifySelection","insertBlankLine","selectLine","selectParentSyntax","indentLess","indentMore","indentSelection","deleteLine","cursorMatchingBracket","toggleComment","toggleBlockComment","toggleTabFocusMode","basicNormalize","x","SearchCursor","__name","text","query","from","to","normalize","test","codePointAt","next","str","fromCodePoint","start","codePointSize","norm","i","pos","posPrecise","code","match","end","endPrecise","partial","keep","empty","baseFlags","RegExpCursor","options","MultilineRegExpCursor","startLine","toCharEnd","skip","off","flattened","FlattenedDoc","_FlattenedDoc","doc","cached","flat","cachedFrom","validRegExp","source","line","gotoLine","view","state","close","result","showDialog","form","sign","ln","cl","percent","col","pc","docLine","selection","EditorSelection","EditorView","defaultHighlightOptions","highlightConfig","Facet","combineConfig","a","b","highlightSelectionMatches","ext","defaultTheme","matchHighlighter","matchDeco","Decoration","mainMatchDeco","insideWordBoundaries","check","CharCategory","insideWord","ViewPlugin","update","conf","sel","range","word","len","deco","part","cursor","v","selectWord","dispatch","newSel","findNextOccurrence","main","ranges","fullWord","cycled","r","selectNextOccurrence","searchedText","searchConfigFacet","configs","SearchPanel","SearchQuery","__name","config","validRegExp","text","_","ch","other","RegExpQuery","StringQuery","state","from","to","st","EditorState","regexpCursor","stringCursor","QueryType","spec","wrapStringTest","test","inner","buffer","bufferPos","match","stringWordTest","SearchCursor","x","doc","categorizer","buf","bufPos","charBefore","CharCategory","charAfter","curFrom","curTo","cursor","end","pos","start","range","found","_result","limit","ranges","add","wrapRegexpTest","regexpWordTest","RegExpCursor","str","index","findClusterBreak","_from","_to","size","result","m","l","n","setSearchQuery","StateEffect","togglePanel","searchState","StateField","SearchState","defaultQuery","value","tr","effect","createSearchPanel","f","showPanel","val","SearchState","__name","query","panel","matchMark","Decoration","selectedMatchMark","searchHighlighter","ViewPlugin","view","searchState","update","state","builder","RangeSetBuilder","i","ranges","l","from","to","selected","r","v","searchCommand","f","openSearchPanel","findNext","next","selection","EditorSelection","config","searchConfigFacet","announceMatch","selectSearchInput","findPrevious","prev","selectMatches","selectSelectionMatches","dispatch","sel","main","cur","SearchCursor","replaceNext","match","changes","replacement","effects","EditorView","changeSet","replaceAll","precise","announceText","createSearchPanel","defaultQuery","fallback","_a","_b","_c","_d","_e","selText","SearchQuery","getSearchInput","getPanel","input","searchInput","setSearchQuery","togglePanel","StateEffect","searchExtensions","closeSearchPanel","searchKeymap","gotoLine","selectNextOccurrence","SearchPanel","crelt","phrase","button","name","onclick","content","e","runScopeHandlers","tr","effect","AnnounceMargin","Break","line","lineEnd","start","end","text","baseTheme","Prec","CompletionContext","__name","state","pos","explicit","view","types","token","syntaxTree","expr","line","start","str","found","ensureAnchor","type","listener","options","toSet","chars","flat","words","prefixMatch","first","rest","label","i","source","completeFromList","list","o","validFor","match","context","ifNotIn","nodes","source","context","pos","syntaxTree","__name","Option","completion","match","score","cur","state","ensureAnchor","expr","start","_a","addStart","addEnd","pickedCompletion","Annotation","insertCompletionText","text","from","to","main","fromOff","toOff","range","lines","EditorSelection","SourceCache","asSource","known","completeFromList","startCompletionEffect","StateEffect","closeCompletionEffect","FuzzyMatcher","pattern","p","char","codePointAt","size","codePointSize","part","upper","matched","word","chars","folded","any","precise","byWord","first","firstSize","direct","len","anyTo","i","e","next","preciseTo","byWordTo","byWordFolded","adjacentTo","adjacentStart","adjacentEnd","hasLower","wordAdjacent","prevType","ch","type","fromCodePoint","positions","result","StrictMatcher","completionConfig","Facet","configs","combineConfig","defaultPositionInfo","a","b","c","joinClass","view","list","option","info","space","tooltip","rtl","Direction","left","narrow","side","offset","maxWidth","spaceLeft","spaceRight","infoWidth","infoHeight","spaceBelow","scaleY","scaleX","setSelectedEffect","optionContent","config","content","icon","cls","_s","_v","labelElt","label","off","j","span","detailElt","rangeAroundSelected","total","selected","max","CompletionTooltip","stateField","applyCompletion","cState","options","dom","move","id","update","prevState","disabled","open","newSel","infoResult","obj","logException","wrap","destroy","set","opt","scrollIntoView","sel","listRect","infoRect","selRect","docElt","ul","curSection","section","name","header","li","node","completionTooltip","container","element","parent","self","sortOptions","active","sections","dynamicSectionScore","addOption","s","conf","getMatch","matcher","sectionOrder","cmp","prev","compare","CompletionDialog","_CompletionDialog","attrs","timestamp","makeAttrs","didSetActive","selectedValue","createTooltip","changes","CompletionState","_CompletionState","none","tr","ActiveSource","didSet","setActiveEffect","sameResults","effect","baseAttrs","noAttrs","iA","iB","endA","endB","getUpdateType","typing","_ActiveSource","explicit","value","ActiveResult","_ActiveResult","limit","checkValid","CompletionContext","mapping","validFor","sources","completionState","StateField","f","showTooltip","val","EditorView","apply","moveCompletionSelection","forward","by","step","getTooltip","length","acceptCompletion","startCompletion","closeCompletion","RunningQuery","MaxUpdateCount","MinAbortTime","completionPlugin","ViewPlugin","doesReset","query","handler","delay","q","r","pending","err","updated","current","event","dialog","windows","commitCharacters","Prec","field","commitChars","baseTheme","FieldPos","line","FieldRange","_FieldRange","MapMode","Snippet","_Snippet","fieldPositions","lineStart","lineObj","baseIndent","indent","tabs","indentUnit","ranges","template","fields","m","seq","rawName","found","snip","_","brace","index","fieldMarker","Decoration","WidgetType","fieldRange","ActiveSnippet","_ActiveSnippet","mapped","setActive","moveToField","snippetState","fieldSelection","snippet","editor","spec","Text","Transaction","effects","addSnippetKeymap","snippetPointerHandler","moveField","dir","dispatch","last","clearSnippet","nextSnippetField","prevSnippetField","defaultSnippetKeymap","nextSnippetField","prevSnippetField","clearSnippet","snippetKeymap","Facet","maps","addSnippetKeymap","Prec","keymap","state","snippetCompletion","template","completion","snippet","__name","snippetPointerHandler","EditorView","event","view","active","snippetState","pos","match","r","fieldSelection","setActive","ActiveSnippet","defaults","closeBracketEffect","StateEffect","value","mapping","mapped","MapMode","closedBracket","RangeValue","bracketState","StateField","RangeSet","tr","line","__name","from","effect","closeBrackets","inputHandler","definedClosing","closing","ch","i","fromCodePoint","config","state","pos","android","EditorView","view","to","insert","sel","codePointSize","codePointAt","insertBracket","deleteBracketPair","dispatch","tokens","dont","changes","range","before","prevChar","token","nextChar","EditorSelection","closeBracketsKeymap","bracket","conf","tok","closed","handleSame","handleOpen","closedBracketAt","handleClose","found","doc","next","prev","open","close","closeBefore","_open","allowTriple","stringPrefixes","start","nodeStart","content","canStartStringAt","CharCategory","probablyInString","tree","syntaxTree","quoteToken","prefixes","node","maxPrefix","m","p","quotePos","first","parent","charCat","prefix","autocompletion","commitCharacters","completionState","completionConfig","completionPlugin","completionKeymapExt","baseTheme","completionKeymap","startCompletion","closeCompletion","moveCompletionSelection","acceptCompletion","Prec","keymap","SelectedDiagnostic","__name","from","to","diagnostic","LintState","_LintState","diagnostics","panel","selected","state","diagnosticFilter","lintConfig","sorted","a","b","deco","RangeSetBuilder","active","pos","scan","scanPos","docLen","i","next","p","d","widget","behind","check","sev","maxSeverity","Decoration","DiagnosticWidget","markClass","c","set","findDiagnostic","after","found","spec","hideTooltip","tr","tooltip","result","line","e","setDiagnosticsEffect","maybeEnableLint","effects","lintState","StateEffect","lintExtensions","setDiagnosticsEffect","StateEffect","togglePanel","movePanelSelection","lintState","StateField","LintState","Decoration","value","tr","mapped","selected","panel","selPos","findDiagnostic","lintConfig","effect","LintPanel","__name","f","showPanel","val","EditorView","s","activeMark","Decoration","lintTooltip","view","pos","side","diagnostics","lintState","found","start","end","from","to","spec","diagnosticFilter","lintConfig","diagnosticsTooltip","__name","crelt","d","renderDiagnostic","openLintPanel","field","maybeEnableLint","togglePanel","panel","getPanel","LintPanel","closeLintPanel","nextDiagnostic","sel","next","findDiagnostic","activateHover","lintHover","tr","lintKeymap","openLintPanel","nextDiagnostic","lintConfig","Facet","input","i","x","combineConfig","__name","combineFilter","a","b","u","t","y","d","s","assignKeys","actions","assigned","name","ch","c","__name","renderDiagnostic","view","diagnostic","inPanel","_a","keys","crelt","action","i","fired","click","e","found","findDiagnostic","lintState","keyIndex","nameElt","markClass","DiagnosticWidget","WidgetType","sev","other","PanelItem","LintPanel","_LintPanel","onkeydown","event","closeLintPanel","onclick","selected","diagnostics","needsSync","newSelectedItem","seen","_start","_end","spec","item","j","sel","panel","scaleY","domPos","rm","prev","selectedIndex","field","selection","movePanelSelection","svg","content","attrs","underline","color","baseTheme","EditorView","severityWeight","maxSeverity","weight","d","w","lintHover","hoverTooltip","lintTooltip","hideTooltip","lintExtensions","lintState","EditorView","state","selected","panel","Decoration","activeMark","baseTheme","basicSetup","lineNumbers","highlightActiveLineGutter","highlightSpecialChars","history","foldGutter","drawSelection","dropCursor","EditorState","indentOnInput","syntaxHighlighting","defaultHighlightStyle","bracketMatching","closeBrackets","autocompletion","rectangularSelection","crosshairCursor","highlightActiveLine","highlightSelectionMatches","keymap","closeBracketsKeymap","defaultKeymap","searchKeymap","historyKeymap","foldKeymap","completionKeymap","lintKeymap","Stack","_Stack","__name","p","stack","state","reducePos","pos","score","buffer","bufferBase","curContext","lookAhead","parent","_","i","cx","StackContext","start","action","_a","depth","type","parser","lookaheadRecord","dPrec","base","size","count","baseStateID","term","end","mustSink","top","index","mustMove","scan","nextState","skipped","next","nextStart","nextEnd","value","off","isNode","sim","SimulatedStack","nextStates","best","s","v","result","reduce","target","backup","seen","explore","rDepth","found","other","dialectID","last","context","newCx","tracker","goto","StackBufferCursor","_StackBufferCursor","decodeArray","input","Type","array","out","stop","digit","CachedToken","nullToken","InputStream","ranges","offset","assoc","range","idx","resolved","token","endOffset","endPos","chunk","chunkPos","nextChunk","n","from","to","TokenGroup","data","id","readToken","LocalTokenGroup","precTable","elseToken","atEof","nextPos","ExternalTokenizer","options","group","precOffset","groupMask","dialect","accEnd","overrides","low","high","mid","findOffset","prev","tableData","tableOffset","iPrev","verbose","stackIDs","cutAt","tree","side","cursor","IterMode","FragmentCursor","fragments","nodeSet","fr","Tree","NodeProp","TokenCache","stream","actionIndex","main","tokenizers","mask","tokenizer","startIndex","set","pair","Parse","stacks","newStacks","stopped","stoppedTokens","tok","finished","findFinished","maxRemaining","a","b","outer","j","split","strictCx","cxHash","cached","match","inner","defaultReduce","actions","localStack","pushStackDedup","tokens","restarted","tokenEnd","force","forceBase","insert","Dialect","source","flags","disabled","x","ContextTracker","spec","LRParser","_LRParser","Parser","nodeNames","topTerms","r","nodeProps","setProp","nodeID","prop","propSpec","NodeSet","name","NodeType","tokenArray","getSpecializer","parse","w","loose","table","groupTag","terminal","slot","flag","deflt","config","copy","info","t","prec","values","part","descendantOp","Unit","identifier","callee","VariableName","queryIdentifier","queryVariableName","QueryCallee","space","colon","parenL","underscore","bracketL","dash","period","hash","percent","ampersand","backslash","newline","asterisk","isAlpha","ch","__name","isDigit","isHex","identifierTokens","id","varName","input","stack","inside","dashes","i","next","identifiers","ExternalTokenizer","queryIdentifiers","descendant","unitToken","cssHighlighting","styleTags","tags","spec_callee","spec_queryIdentifier","spec_QueryCallee","spec_AtKeyword","spec_identifier","parser","LRParser","LocalTokenGroup","value","_properties","properties","style","names","seen","prop","ch","name","__name","pseudoClasses","values","tags","atRules","label","identifier","variable","isVarArg","node","doc","_a","callee","VariablesByNode","NodeWeakMap","declSelector","astTop","cur","variableNames","isVariable","known","result","cursor","IterMode","option","defineCSSCompletionSource","context","state","pos","syntaxTree","isDash","parent","above","before","cssCompletionSource","cssLanguage","LRLanguage","parser","indentNodeProp","continuedIndent","foldNodeProp","foldInside","css","LanguageSupport","scriptText","StartCloseScriptTag","styleText","StartCloseStyleTag","textareaText","StartCloseTextareaTag","EndTag","SelfClosingEndTag","StartTag","StartScriptTag","StartStyleTag","StartTextareaTag","StartSelfClosingTag","StartCloseTag","NoMatchStartCloseTag","MismatchedStartCloseTag","missingCloseTag","IncompleteTag","IncompleteCloseTag","commentContent$1","Element","TagName","Attribute","AttributeName","AttributeValue","UnquotedAttributeValue","ScriptText","StyleText","TextareaText","OpenTag","CloseTag","Dialect_noMatch","Dialect_selfClosing","selfClosers","implicitlyClosed","closeOnOpen","nameChar","ch","__name","cachedName","cachedInput","cachedPos","tagNameAfter","input","offset","pos","next","name","question","bang","lessThan","greaterThan","slash","dash","ElementContext","parent","startTagTerms","elementContext","ContextTracker","context","term","stack","node","type","tagStart","ExternalTokenizer","close","cx","commentContent","dashes","i","inForeignElement","endTag","selfClosing","contentTokenizer","tag","textToken","endToken","lastState","state","matchedLen","scriptTokens","styleTokens","textareaTokens","htmlHighlighting","styleTags","tags","parser","LRParser","getAttrs","openTag","attrs","att","value","findTagName","tagNameNode","maybeNest","configureNesting","attributes","script","style","textarea","other","attr","parseMixed","id","n","open","tagName","to","nameNode","matches","from","last","noSemi","noSemiType","incdec","incdecPrefix","questionDot","JSXStartTag","insertSemi","spaces","newline","LineComment","BlockComment","Dialect_jsx","space","braceR","semicolon","slash","star","plus","minus","lt","comma","question","dot","bracketL","trackNewline","ContextTracker","context","term","insertSemicolon","ExternalTokenizer","input","stack","next","noSemicolon","after","noSemicolonType","operatorToken","mayPostfix","identifierChar","ch","start","__name","jsx","back","jsHighlight","styleTags","tags","spec_identifier","spec_word","spec_LessThan","parser","LRParser","LocalTokenGroup","value","snippets","snippetCompletion","typescriptSnippets","cache","NodeWeakMap","ScopeNodes","defID","type","node","def","id","__name","functionContext","gatherCompletions","getScope","doc","cached","completions","top","name","IterMode","gather","c","Identifier","dontComplete","localCompletionSource","context","inner","syntaxTree","isWord","options","pos","javascriptLanguage","LRLanguage","parser","indentNodeProp","continuedIndent","flatIndent","__name","context","after","closed","isCase","delimitedIndent","cx","foldNodeProp","foldInside","tree","open","close","_a","name","jsxSublanguage","node","defineLanguageFacet","typescriptLanguage","jsxLanguage","sublanguageProp","tsxLanguage","kwCompletion","keywords","typescriptKeywords","javascript","config","lang","completions","typescriptSnippets","snippets","LanguageSupport","ifNotIn","dontComplete","completeFromList","localCompletionSource","autoCloseTags","findOpenTag","elementName","doc","max","ch","android","EditorView","view","from","to","text","defaultInsert","base","state","closeTags","range","head","around","syntaxTree","empty","insert","EditorSelection","openTag","Targets","Charsets","Methods","Encs","Bool","S","Tags","GlobalAttrs","eventAttributes","a","Schema","__name","extraTags","extraAttrs","elementName","doc","tree","max","tag","name","findParentElement","skip","allowedChildren","schema","parentInfo","openTags","open","parent","tagName","identifier","completeTag","state","from","to","end","i","completeCloseTag","completeStartTag","pos","options","level","completeAttrName","elt","info","localAttrs","names","attrName","completeAttrValue","_a","nameNode","token","attrs","base","quoteStart","quoteEnd","value","htmlCompletionFor","context","syntaxTree","around","scan","before","last","htmlCompletionSourceWith","config","extraTags","extraAttrs","schema","Schema","context","htmlCompletionFor","__name","jsonParser","javascriptLanguage","defaultNesting","attrs","typescriptLanguage","jsxLanguage","tsxLanguage","cssLanguage","defaultAttrs","eventAttributes","name","htmlPlain","LRLanguage","parser","indentNodeProp","after","endElt","close","cur","last","foldNodeProp","node","first","bracketMatchingHandle","htmlLanguage","configureNesting","html","dialect","wrap","lang","LanguageSupport","autoCloseTags","javascript","css","selfClosers","isClosed","doc","elt","_a","next","elementName","EditorView","view","from","to","text","insertTransaction","base","state","closeTags","range","didType","head","syntaxTree","tag","insert","EditorSelection","$editor","signal","$editingFacet","LOADING_EL_ID","setEditorLoading","loading","container","el","__name","renderEditor","editorContainer","editor","EditorView","basicSetup","html","css","javascript","autocompletion","onBuildSubmit","event","nameEl","descriptionEl","kindEl","cid","create","name","description","kind","facet","now","saveFacet","editFacet","ogFacet","url","id","loadURI","handleBuildFormSubmit","importBtn","importInput","file","isListening","listenForExamplesEdit","target","rel","uri","facetFromURI","editFacetFromURL","params","idParam","uriParam","out","output","data","f"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-H4L773TT.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js new file mode 120000 index 00000000..cc0509ae --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-H4ULOOR2.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js.br new file mode 120000 index 00000000..4374222c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-H4ULOOR2.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js.map new file mode 120000 index 00000000..5562bda7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-H4ULOOR2.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-H4ULOOR2.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js new file mode 120000 index 00000000..46716a30 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-HCA2HGAZ.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js.br new file mode 120000 index 00000000..68644397 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-HCA2HGAZ.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js.map new file mode 120000 index 00000000..73454d66 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HCA2HGAZ.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-HCA2HGAZ.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js new file mode 100644 index 00000000..f3b5e1c1 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js @@ -0,0 +1,3 @@ +import{b as n,e as i,f as s}from"./chunk-IA3NIKPO.js";import{a as e,c}from"./chunk-75KFZLU6.js";var a={};c(a,{CLASS:()=>u,NAME:()=>o,default:()=>p});var t=class extends n{static{e(this,"InputArtwork")}static NAME="diffuse/artwork/input";static WORKER_URL="components/artwork/input/worker.js";constructor(){super();let r=this.workerProxy();this.get=r.get}async connectedCallback(){super.connectedCallback(),this.input=s(this,"input-selector"),await customElements.whenDefined(this.input.localName)}dependencies(){if(!this.input)throw new Error("Input element not defined yet");return{input:this.input}}},p=t,u=t,o="da-input";i(o,t);export{p as a,u as b,o as c,a as d}; + +//# sourceMappingURL=./chunk-HYQATFQM.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js.br new file mode 100644 index 0000000000000000000000000000000000000000..53221f44ac72872bfd4a125e3e42839ea2c8bb3e GIT binary patch literal 388 zcmb21&BX8|X4U_?IQ2M%*f)K>FJ{cXp(1_elt$8{7`p=#&*>@^nsc4n^ws|SkHsZl zRu!|0e`J<9`@(8}ri-V}ax)KpsZjRcHzwA$S$TGCdgW@HGxz=aJ9Fai-4$c@|KaB# zr?F;@qIC9jb@}k~uMOtbdrUN1zv4(q#n%5ncKFV`(OI#%zSia{&#$JEttW#nH~qM1 zEhh4$>O!ZQ>dGJg-HO)DmiQJsL&{u5C;CD|jrW9I_g}iK_o_5hm6Uo|c0Vp(Uaw!i zZod3FmX&9AD7OV7ypP7RB?`owJnZjTQ?Rzb@{UoT!Ia>e{0ms$D60N;%KtRc z>(c63Oopv05B3;E=so2OuYIcNz4C@}-C?KmGc_|zTa%wloibtH#O*MfVb}R92H}k% y2Mjn9xA2xJJ@4t|kZ^TS_Rx(^T=8w?!2>&Hb#i3nbQW@KyQm?mb$X?7JOcpA^|xRE literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js.map new file mode 100644 index 00000000..63f846e8 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-HYQATFQM.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/artwork/input/element.js"],"sourcesContent":["import { defineElement, DiffuseElement, query } from \"~/common/element.js\";\n\n/**\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {InputElement} from \"@specs/components/input/types.d.ts\"\n * @import {Actions} from \"@specs/components/artwork/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n */\nclass InputArtwork extends DiffuseElement {\n static NAME = \"diffuse/artwork/input\";\n static WORKER_URL = \"components/artwork/input/worker.js\";\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n const p = this.workerProxy();\n\n this.get = p.get;\n }\n\n // LIFECYCLE\n\n /** @override */\n async connectedCallback() {\n super.connectedCallback();\n\n /** @type {InputElement} */\n this.input = query(this, \"input-selector\");\n\n await customElements.whenDefined(this.input.localName);\n }\n\n // WORKERS\n\n /**\n * @override\n */\n dependencies() {\n if (!this.input) throw new Error(\"Input element not defined yet\");\n return { input: this.input };\n }\n}\n\nexport default InputArtwork;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = InputArtwork;\nexport const NAME = \"da-input\";\n\ndefineElement(NAME, InputArtwork);\n"],"mappings":"gGAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAeA,IAAMC,EAAN,cAA2BC,CAAe,CAf1C,MAe0C,CAAAC,EAAA,qBACxC,OAAO,KAAO,wBACd,OAAO,WAAa,qCAEpB,aAAc,CACZ,MAAM,EAGN,IAAMC,EAAI,KAAK,YAAY,EAE3B,KAAK,IAAMA,EAAE,GACf,CAKA,MAAM,mBAAoB,CACxB,MAAM,kBAAkB,EAGxB,KAAK,MAAQC,EAAM,KAAM,gBAAgB,EAEzC,MAAM,eAAe,YAAY,KAAK,MAAM,SAAS,CACvD,CAOA,cAAe,CACb,GAAI,CAAC,KAAK,MAAO,MAAM,IAAI,MAAM,+BAA+B,EAChE,MAAO,CAAE,MAAO,KAAK,KAAM,CAC7B,CACF,EAEOC,EAAQL,EAMFM,EAAQN,EACRO,EAAO,WAEpBC,EAAcD,EAAMP,CAAY","names":["element_exports","__export","CLASS","NAME","element_default","InputArtwork","DiffuseElement","__name","p","query","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-HYQATFQM.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IA3NIKPO.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IA3NIKPO.js new file mode 100644 index 00000000..980e4ed7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IA3NIKPO.js @@ -0,0 +1,3 @@ +import{a as E}from"./chunk-7NEQFE27.js";import{d as $,e as x,f as L,i as R}from"./chunk-NYGD7JS5.js";import{a as v}from"./chunk-OBMOK4KY.js";import{a as k,g as A}from"./chunk-HCA2HGAZ.js";import{m as y,o as b}from"./chunk-XILA3E7E.js";import{a as i}from"./chunk-75KFZLU6.js";var N="default",g=class extends HTMLElement{static{i(this,"DiffuseElement")}$connected=b(!1);#s=Promise.withResolvers();#t=[];constructor(){super(),this.worker=this.worker.bind(this),this.workerLink=this.workerLink.bind(this)}attributeChangedCallback(e,t,o){t!==o&&this.#r()}effect(e){let t=y(e);return this.#t.push(t),t}forceRender(){return this.#r()}get group(){return this.getAttribute("group")??N}get identifier(){let e=this.namespace;return`${this.constructor.prototype.constructor.NAME}/${this.group}${e?.length?"/"+e:""}`}get label(){return this.getAttribute("label")??this.id??this.localName}get namespace(){return this.getAttribute("namespace")?this.getAttribute("namespace"):void 0}root(){return this.shadowRoot??this}get selector(){return this.id.length?`#${this.id}`:this.localName}whenConnected(){return this.#s.promise}whenDefined(){return customElements.whenDefined(this.localName)}#r(){if(!("render"in this&&typeof this.render=="function"))return;let e=this.render({html:k,state:"state"in this?this.state:void 0});A(e,this.root())}connectedCallback(){this.$connected.value=!0,this.#s.resolve(null),"render"in this&&typeof this.render=="function"&&this.effect(()=>{"render"in this&&typeof this.render=="function"&&this.#r()})}disconnectedCallback(){this.$connected.value=!1,this.#e()}#e(){this.#t.forEach(e=>e())}#n;createWorker(){let e=this.constructor.prototype.constructor.NAME,t=this.constructor.prototype.constructor.WORKER_URL;if(!e)throw new Error("Missing `NAME` static property");if(!t)throw new Error("Missing `WORKER_URL` static property");let o=E.stringify("workerQuery"in this&&typeof this.workerQuery=="function"?this.workerQuery():{}),l=this.identifier,a=import.meta.resolve("./"+t)+`?${o}`,n;return this.hasAttribute("group")&&typeof SharedWorker<"u"?n=new SharedWorker(a,{name:l,type:"module"}):n=new Worker(a,{name:l,type:"module"}),n}dependencies(){return null}worker(){return this.#n??=this.createWorker(),this.#n}workerLink(){let e=this.worker();return $(e)}workerProxy(e){return x(()=>this.workerTunnel(e).port)}workerTunnel({forceNew:e}={}){let t=e===!0||typeof e=="object"&&e.self===!0?()=>this.createWorker():()=>this.worker(),o=this.dependencies(),l;return o&&(l=i(async n=>{let d=Object.entries(o).map(([h,c])=>{let s=typeof e=="object"?e.dependencies?.[h]??!1:!1;return[h,c.workerTunnel({forceNew:s})]}),p={data:Array.isArray(n.args)?n.args[0]:n.args,ports:Object.fromEntries(d.map(([h,c])=>[h,c.port]))};return this.#t.push(()=>{d.forEach(([h,c])=>c.disconnect())}),{data:{...n,args:Array.isArray(n.args)?[p,...n.args.slice(1)]:n.args},transfer:d.map(([h,c])=>c.port)}},"toWorker")),L(t,{toWorker:l})}},O=class extends g{static{i(this,"BroadcastableDiffuseElement")}broadcasted=!1;#s={};#t;broadcastingStatus;#r=Promise.withResolvers();#e=Promise.withResolvers();constructor(){super(),this.broadcast=this.broadcast.bind(this),this.#t=b(this.#e.promise),this.broadcastingStatus=this.#t.get}broadcast(e,t,o){if(this.broadcasted)return;o&&(this.#s=o);let l=new BroadcastChannel(e),a=new MessageChannel;this.broadcasted=!0,this.channelName=e;let n=crypto.randomUUID(),d=R(a.port2,Object.fromEntries(Object.entries(t).map(([s,f])=>[s,f.fn.bind(this)])));l.addEventListener("message",async s=>{s.data?.__sender!==n&&(s.data?.method?.startsWith("leader:")?(await this.#e.promise).leader&&a.port1.postMessage({...s.data,method:s.data.method.slice(7)}):a.port1.postMessage(s.data))}),a.port1.addEventListener("message",s=>l.postMessage({...s.data,__sender:n})),a.port1.start(),a.port2.start();let p=new v(a.port2),h=p.getAPI(),c={};return Object.entries(t).forEach(([s,{fn:f,strategy:M}])=>{let m=f.bind(this),w=m;switch(M){case"leaderOnly":w=i(async(...u)=>(await this.#e.promise).leader?m(...u):p.callMethod(`leader:${s}`,u),"wrapFn");break;case"replicate":w=i((...u)=>(h[s](...u).catch(()=>{}),m(...u)),"wrapFn");break}c[s]=w}),c}async isLeader(){return this.broadcasted?(await this.broadcastingStatus()).leader:!0}connectedCallback(){if(super.connectedCallback(),!this.broadcasted)return;let e=this.#s?.assumeLeadership;e===void 0||e===!0?typeof navigator.locks?.request=="function"?navigator.locks.request(`${this.channelName}/lock`,e===!0?{steal:!0}:{ifAvailable:!0},t=>{if(this.#e.resolve(t?{leader:!0,initialLeader:!0}:{leader:!1}),t)return this.#r.promise}):this.#e.resolve({leader:!0,initialLeader:!0}):this.#e.resolve({leader:!1}),this.#e.promise.then(t=>{t.leader?console.log(`\u{1F9D9} Elected leader for: ${this.channelName}`):console.log(`\u{1F52E} Watching leader: ${this.channelName}`),t.leader===!1&&navigator.locks.request(`${this.channelName}/lock`,()=>(this.#e=Promise.withResolvers(),this.#e.resolve({leader:!0,initialLeader:!1}),this.#t.value=this.#e.promise,this.#r.promise))})}disconnectedCallback(){super.disconnectedCallback(),this.#r.resolve()}};function T(r,e){let t=document.querySelector(e?`${r.NAME}#${e}`:r.NAME);if(!t)throw new Error(`Element for selector '${r.NAME}' not found.`);return t}i(T,"component");function U(r,e){customElements.get(r)?console.warn(`The '${r}' element was asked to be defined again, this should be avoided. The code may have been executed multiple times.`):customElements.define(r,e)}i(U,"defineElement");function D(r,e){let t=r.getAttribute(e);if(!t)throw new Error(`Missing required '${e}' attribute`);let o=document.querySelector(t);if(!o)throw new Error(`Missing required '${t}' element`);return o}i(D,"query");function Q(r,e){let t=r.getAttribute(e);return t?document.querySelector(t):null}i(Q,"queryOptional");function F(r){Object.values(r).forEach(e=>{e instanceof Worker&&e.terminate()})}i(F,"terminateWorkers");async function I(r){await Promise.all(Object.values(r).map(e=>customElements.whenDefined(e.localName)))}i(I,"whenElementsDefined");export{N as a,g as b,O as c,T as d,U as e,D as f,Q as g,F as h,I as i}; + +//# sourceMappingURL=./chunk-IA3NIKPO.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IA3NIKPO.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IA3NIKPO.js.br new file mode 100644 index 0000000000000000000000000000000000000000..e7a6bdb3081a10f000791fecde026739eed10ac4 GIT binary patch literal 2208 zcmb0>BhK(7YT4KO=ed)ox37Dtdi+jCXOZRiw^Euxr_+?V#UHE|`B%4YOLg>xxhtgZ zbG4qE|9a2&M5fuf8J5+XOBjB9)@S$SbYR?Q;;=5ZE!bSDQ9^NYow}3E)n_{2a|9;t zpLBX_l1;YVzrUr1JM1KK{!RK{J@3G=(=q%ngCmoc&RN*GLowj|(a#V6t)F~b{zL}r z=jeTRZ1>yzt@~9o`}cv1rAPR@Y~8D^XS=ss>woOrH^2F8Hqnw;`)ba$8&6!G{9d*yZJt7wOwxHi zyH2madREdCO7`w6Doe8Qbp6*Z{b}30$)A}fv5AtT=^@e;->; zRpgd6%$P7$ZT^Itm-U`*j@#`kk{V>?@geuX(Q`i))-6;x-ghHg^DKwl^iQV$riwf_ ze9inT?uVbUNX+B4>8Ii^NGmQ;)V%lf!xM`qiUl5yZYy`1sz&!O^mUuo((|f!>q7Gz z?7NI-c&wg1MYH`~YV686=cgD3FK)<4dndW|&8>G;kboT#tk}8NF}qG_ITL$=g}tE=Q)YLW+v%13CAVxe z|0yf`KJnQWH1nCl%|Z^9rboWcU(((gvUzxa_`KwfyT``OeMyFM`d>eKQnXvRz~c({ zO6E95#;Vmzo7R=@RG4;*Kjos^OqL_^9B)?datyo1`zcAsBY$GSpS;O$BHZeEEQI9e zvc})hl`xR|T2WbSwc}@Xeetx2lh*}WHg4v=cA<%P&St+4r{yB^+;o)RrRjLBKmYFv zS3C2&RcwuCw}>Rvgsx^cTAE>g)$4;pwcvH*BJHOg4vf66%NQQBtT1D`#w2(sj40@OS{qXl)0x^KB)4(!EYn4wO{}BpRc%;QORO9)wM5o z$H|pag0V-7JGJ^32&A#xYVfsr_#&`XQJ(*Ra!_HS;X#i_=9yW1j++;K+Yu_PZrZul zu*-*M>pTSqjd;u5bGAqr*S_>qdZzp?&DVLW!i1u<^(Ec+&Sgy2&seDO%IsW|ut)aY z$p3#tGJCf?`yG+>^sn8?DSVBSG_6n0SQKKuis=HMo6=U1Yt6e>zWwgHw)aM4=)Q~5 za|^xa%DnotWog4#G47&C{;d_V$%ZT^WGn7o%?(caekEjIUwh`Qn*noqw>hLGFR_{S zi{mhtUum`1i;Y>wch;!({;#aOc;Zg4&62Cvzb>r05^!W*_}(@Z9m5xuE|u+f7#|*S zZkUms;NUauVMlU)=m`h*k0)8*q^u9~x|!g9=!^MxD_4V@i%);8)i7J|+3!f|?T=bT ztF}K`X@8`{CW6)f8AF8{)3#pAQ1=BZPKOv3O>toRrpOYx=g;Kz%uy?^%`+MRIOZN%x{8zrE(@eMc%u&aW5eLs#pI#;Su#}%sVdeFrc@Mfx zr!Rhgz4EsAX1(Q~-ro;>nNlRXc6MESj?!rt-Lsj;c0Z8!mEhiY=g+h*XRS}Jc}$ll zD=xfKSD)~$EhaeVVCJDl4tD1EJXf7=22S7kK)+*whX6~72b)mY8uh1N!|pPhy;>Y1 z+^E2JO(eJ5Jh1uK6{a&g_uXPRUNtN5`z|Z7hF1BD0>-_!TDEVLyS*w<^w;K<5>AV! zTJ?V{o!_}GX5p?2lT)tRI?i#9elkzQ;K!zw;W4_4e#8m{osxW^J9o!Rma?8%rynk3 z*dj7NKfO`rIFawKfEcr-Cr{{PQ$ydL13YTnpHJ-HV0!XapUXG1Y;(SUZ~k|_xi1v7 zV3Ombo3r0|7;cnRV0KM8*?+e2TgI9R3oh%mE=Wj;9Vkwp2^)*zKe5S`Pp6-M7VcXY_Q|pwHVhE;wdh z%hp!jm^U?PS(KCRETPCcCatGiTTOmDt@zVwD)wMaWbmmqNhW4eh3$JbO#aN+^v3PQ zt3%b1TN6%nG!-PoC5!LOb}2JgE35l+$ZJt<&cy1lb#u?_{oi)*)#lgJe^0r3(fZj& zFAK5m(;;4Nyr&kXZ}i-kZ| z*KJ?l#SwnvriGAc^z0_q>Aj1K-jp8Uu1wozz`HnBc|tsMS)9P?1v{;zZ@b@W3|xE6 z^z!dxOZQ&BT6Dqu(JaQhxu4A{&uWxCaI|(^tStMuwb`rXzR>PD$IF6Uii>!)4Q+(y zY|8xfKybnQ8;tpC6GG1`&b(%E{DGoQz_cT@SX}A3LYQ27ngMW&l+;m@`e~bW7y+ void>} */ ([]);\n\n /** */\n constructor() {\n super();\n\n this.worker = this.worker.bind(this);\n this.workerLink = this.workerLink.bind(this);\n }\n\n /**\n * @param {string} _name\n * @param {string} oldValue\n * @param {string} newValue\n */\n attributeChangedCallback(_name, oldValue, newValue) {\n if (oldValue !== newValue) this.#render();\n }\n\n /**\n * Effect helper that automatically is disposes\n * when this element is removed from the DOM.\n *\n * @param {() => void} fn\n */\n effect(fn) {\n const unregister = effect(fn);\n this.#disposables.push(unregister);\n return unregister;\n }\n\n /** */\n forceRender() {\n return this.#render();\n }\n\n /** */\n get group() {\n return this.getAttribute(\"group\") ?? DEFAULT_GROUP;\n }\n\n /** */\n get identifier() {\n const ns = this.namespace;\n return `${this.constructor.prototype.constructor.NAME}/${this.group}${\n ns?.length ? \"/\" + ns : \"\"\n }`;\n }\n\n /** */\n get label() {\n return this.getAttribute(\"label\") ?? this.id ?? this.localName;\n }\n\n /** */\n get namespace() {\n return this.getAttribute(\"namespace\")\n ? this.getAttribute(\"namespace\")\n : undefined;\n }\n\n /** */\n root() {\n return (this.shadowRoot ?? this);\n }\n\n /** */\n get selector() {\n return this.id.length ? `#${this.id}` : this.localName;\n }\n\n /** */\n whenConnected() {\n return this.#connected.promise;\n }\n\n /** */\n whenDefined() {\n return customElements.whenDefined(this.localName);\n }\n\n /**\n * Avoid replacing the whole subtree,\n * morph the existing DOM into the new given tree.\n */\n #render() {\n if (!(\"render\" in this && typeof this.render === \"function\")) return;\n\n const tmp = this.render({\n html: html,\n state: \"state\" in this ? this.state : undefined,\n });\n\n render(tmp, this.root());\n }\n\n // LIFECYCLE\n\n connectedCallback() {\n this.$connected.value = true;\n this.#connected.resolve(null);\n\n if (!(\"render\" in this && typeof this.render === \"function\")) return;\n\n this.effect(() => {\n if (!(\"render\" in this && typeof this.render === \"function\")) return;\n this.#render();\n });\n }\n\n disconnectedCallback() {\n this.$connected.value = false;\n this.#teardown();\n }\n\n #teardown() {\n this.#disposables.forEach((fn) => fn());\n }\n\n // WORKERS\n\n /** @type {undefined | Worker | SharedWorker} */\n #worker;\n\n createWorker() {\n const NAME = this.constructor.prototype.constructor.NAME;\n const WORKER_URL = this.constructor.prototype.constructor.WORKER_URL;\n\n if (!NAME) throw new Error(\"Missing `NAME` static property\");\n if (!WORKER_URL) throw new Error(\"Missing `WORKER_URL` static property\");\n\n // Query\n const query = QS.stringify(\n \"workerQuery\" in this && typeof this.workerQuery === \"function\"\n ? this.workerQuery()\n : {},\n );\n\n // Setup worker\n const name = this.identifier;\n const url = import.meta.resolve(\"./\" + WORKER_URL) + `?${query}`;\n\n let worker;\n\n if (this.hasAttribute(\"group\") && typeof SharedWorker !== \"undefined\") {\n worker = new SharedWorker(url, { name, type: \"module\" });\n } else {\n worker = new Worker(url, { name, type: \"module\" });\n }\n\n return worker;\n }\n\n /**\n * @returns {Record | null}\n */\n dependencies() {\n return null;\n }\n\n worker() {\n this.#worker ??= this.createWorker();\n return this.#worker;\n }\n\n workerLink() {\n const worker = this.worker();\n return workerLink(worker);\n }\n\n /**\n * @template {Record any>} Actions\n * @param {WorkerOpts} [opts]\n * @returns {ProxiedActions}\n */\n workerProxy(opts) {\n return workerProxy(\n () => this.workerTunnel(opts).port,\n );\n }\n\n /**\n * Creates a MessagePort that is connected to the worker.\n * All the dependencies are added automatically.\n *\n * @param {WorkerOpts} [opts]\n */\n workerTunnel({ forceNew } = {}) {\n const worker = forceNew === true ||\n (typeof forceNew === \"object\" && forceNew.self === true)\n ? () => this.createWorker()\n : () => this.worker();\n const deps = this.dependencies();\n\n let toWorker;\n\n if (deps) {\n toWorker =\n /**\n * @param {any} msg\n */\n async (msg) => {\n /** @type {Array<[string, Tunnel]>} */\n const ports = Object.entries(deps).map(\n /** @param {[string, DiffuseElement]} _ */\n ([k, v]) => {\n const n = typeof forceNew === \"object\"\n ? forceNew.dependencies?.[k] ?? false\n : false;\n return [k, v.workerTunnel({ forceNew: n })];\n },\n );\n\n const data = {\n data: Array.isArray(msg.args) ? msg.args[0] : msg.args,\n ports: Object.fromEntries(ports.map(([k, v]) => {\n return [k, v.port];\n })),\n };\n\n this.#disposables.push(() => {\n ports.forEach(([_k, v]) => v.disconnect());\n });\n\n return {\n data: {\n ...msg,\n args: Array.isArray(msg.args)\n ? [data, ...msg.args.slice(1)]\n : msg.args,\n },\n transfer: ports.map(([_k, v]) => v.port),\n };\n };\n }\n\n const tunnel = workerTunnel(worker, { toWorker });\n return tunnel;\n }\n}\n\n/**\n * Broadcastable version of the base class.\n *\n * Share the state of an element across multiple tabs\n * of the same origin and have one instance be the leader.\n */\nexport class BroadcastableDiffuseElement extends DiffuseElement {\n broadcasted = false;\n\n /** @type {{ assumeLeadership?: boolean }} */\n #broadcastingOptions = {};\n\n #broadcastingStatus;\n broadcastingStatus;\n\n /** @type {PromiseWithResolvers} */\n #lock = Promise.withResolvers();\n\n /** @type {PromiseWithResolvers} */\n #status = Promise.withResolvers();\n\n constructor() {\n super();\n\n this.broadcast = this.broadcast.bind(this);\n\n /** @type {Signal>} */\n this.#broadcastingStatus = signal(this.#status.promise);\n this.broadcastingStatus = this.#broadcastingStatus.get;\n }\n\n /**\n * @template {Record any }>} ActionsWithStrategy\n * @template {{ [K in keyof ActionsWithStrategy]: ActionsWithStrategy[K][\"fn\"] }} Actions\n * @param {string} channelName\n * @param {ActionsWithStrategy} actionsWithStrategy\n * @param {{ assumeLeadership?: boolean }} [options]\n */\n broadcast(channelName, actionsWithStrategy, options) {\n if (this.broadcasted) return;\n if (options) this.#broadcastingOptions = options;\n\n const channel = new BroadcastChannel(channelName);\n const msg = new MessageChannel();\n\n /**\n * @typedef {{ [K in keyof ActionsWithStrategy]: ActionsWithStrategy[K][\"fn\"] }} A\n */\n\n this.broadcasted = true;\n this.channelName = channelName;\n\n // A message sent on the channel is echoed back to its sender, which\n // would execute a replicated/forwarded action twice (once via the local\n // `ogFn`, once via the echo). Tag outgoing messages so each instance\n // can ignore its own echoes.\n const senderId = crypto.randomUUID();\n\n /** @type {RpcChannel<{}, Actions>} */\n const _rpc = rpc(\n msg.port2,\n /** @type {Actions} */ (\n Object.fromEntries(\n Object.entries(actionsWithStrategy).map(([k, v]) => {\n return [k, v.fn.bind(this)];\n }),\n )\n ),\n );\n\n channel.addEventListener(\n \"message\",\n async (event) => {\n if (event.data?.__sender === senderId) return;\n if (event.data?.method?.startsWith(\"leader:\")) {\n const status = await this.#status.promise;\n if (status.leader) {\n msg.port1.postMessage({\n ...event.data,\n method: event.data.method.slice(\"leader:\".length),\n });\n }\n } else {\n msg.port1.postMessage(event.data);\n }\n },\n );\n\n msg.port1.addEventListener(\n \"message\",\n (event) => channel.postMessage({ ...event.data, __sender: senderId }),\n );\n\n msg.port1.start();\n msg.port2.start();\n\n /** @type {RpcChannel<{}, Actions>} */\n const proxyChannel = new RpcChannel(msg.port2);\n\n /** @type {ProxiedActions} */\n const proxy = proxyChannel.getAPI();\n\n /** @type {any} */\n const actions = {};\n\n Object.entries(actionsWithStrategy).forEach(\n ([action, { fn, strategy }]) => {\n const ogFn = fn.bind(this);\n let wrapFn = ogFn;\n\n switch (strategy) {\n case \"leaderOnly\":\n /** @param {Parameters} args */\n wrapFn = async (...args) => {\n const status = await this.#status.promise;\n return status.leader\n ? ogFn(...args)\n : proxyChannel.callMethod(`leader:${action}`, args);\n };\n break;\n\n case \"replicate\":\n // Replicated actions run locally through `ogFn` and are also\n // forwarded so the other instances (including the leader, the\n // only one that persists) run them too. The sender ignores its\n // own echo, so the action isn't executed twice in this tab.\n // Forwarding unconditionally, rather than only when some lock\n // happens to be pending, is what keeps a follower's writes from\n // being silently lost.\n /** @param {Parameters} args */\n wrapFn = (...args) => {\n proxy[action](...args).catch(() => {});\n return ogFn(...args);\n };\n break;\n }\n\n actions[action] = wrapFn;\n },\n );\n\n return /** @type {ProxiedActions} */ (actions);\n }\n\n async isLeader() {\n if (this.broadcasted) {\n const status = await this.broadcastingStatus();\n return status.leader;\n } else {\n return true;\n }\n }\n\n // LIFECYCLE\n\n /**\n * @override\n */\n connectedCallback() {\n super.connectedCallback();\n\n if (!this.broadcasted) return;\n\n // Grab a lock if it isn't acquired yet and if needed,\n // and hold it until `this.lock.promise` resolves.\n const assumeLeadership = this.#broadcastingOptions?.assumeLeadership;\n\n if (assumeLeadership === undefined || assumeLeadership === true) {\n if (typeof navigator.locks?.request === \"function\") {\n navigator.locks.request(\n `${this.channelName}/lock`,\n assumeLeadership === true ? { steal: true } : { ifAvailable: true },\n (lock) => {\n this.#status.resolve(\n lock ? { leader: true, initialLeader: true } : { leader: false },\n );\n if (lock) return this.#lock.promise;\n },\n );\n } else {\n this.#status.resolve(\n { leader: true, initialLeader: true },\n );\n }\n } else {\n this.#status.resolve(\n { leader: false },\n );\n }\n\n // When the lock status is initially determined, log its status.\n // Additionally, wait for lock if needed.\n this.#status.promise.then((status) => {\n if (status.leader) {\n console.log(`🧙 Elected leader for: ${this.channelName}`);\n } else {\n console.log(`🔮 Watching leader: ${this.channelName}`);\n }\n\n // Wait for leadership\n if (status.leader === false) {\n navigator.locks.request(\n `${this.channelName}/lock`,\n () => {\n this.#status = Promise.withResolvers();\n this.#status.resolve({ leader: true, initialLeader: false });\n\n this.#broadcastingStatus.value = this.#status.promise;\n\n return this.#lock.promise;\n },\n );\n }\n });\n }\n\n /**\n * @override\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#lock.resolve();\n }\n}\n\n/**\n * Component DOM selector.\n *\n * Basically `document.querySelector` but returns the element\n * with the correct type based on the element module given.\n *\n * ```\n * import * as QueryEngine from \"~/components/engine/query/element.js\"\n *\n * const instance = component(QueryEngine)\n * ```\n *\n * @template {abstract new (...args: any[]) => any} C\n * @param {{ CLASS: C; NAME: string }} elementModule\n * @param {string} [id] Optional id to select\n */\nexport function component(elementModule, id) {\n const el = document.querySelector(\n id ? `${elementModule.NAME}#${id}` : elementModule.NAME,\n );\n if (!el) {\n throw new Error(`Element for selector '${elementModule.NAME}' not found.`);\n }\n return /** @type {InstanceType} */ (el);\n}\n\n/**\n * Defines a custom element, guarding against double-registration.\n *\n * @param {string} name\n * @param {CustomElementConstructor} constructor\n */\nexport function defineElement(name, constructor) {\n if (!customElements.get(name)) customElements.define(name, constructor);\n else {console.warn(\n `The '${name}' element was asked to be defined again, this should be avoided. The code may have been executed multiple times.`,\n );}\n}\n\n/**\n * @template {HTMLElement} T\n * @param {DiffuseElement} parent\n * @param {string} attribute\n * @returns {T}\n */\nexport function query(parent, attribute) {\n const selector = parent.getAttribute(attribute);\n\n if (!selector) {\n throw new Error(`Missing required '${attribute}' attribute`);\n }\n\n /** @type {T | null} */\n const element = document.querySelector(selector);\n if (!element) throw new Error(`Missing required '${selector}' element`);\n return element;\n}\n\n/**\n * @template {HTMLElement} T\n * @param {DiffuseElement} parent\n * @param {string} attribute\n */\nexport function queryOptional(parent, attribute) {\n const selector = parent.getAttribute(attribute);\n\n if (!selector) {\n return null;\n }\n\n /** @type {T | null} */\n const elementOrNull = document.querySelector(selector);\n return elementOrNull;\n}\n\n/**\n * @param {Record} workers\n */\nexport function terminateWorkers(workers) {\n Object.values(workers).forEach((worker) => {\n if (worker instanceof Worker) worker.terminate();\n });\n}\n\n/**\n * @template {Record} T\n * @param {T} elements\n */\nexport async function whenElementsDefined(elements) {\n await Promise.all(\n Object.values(elements).map((element) =>\n customElements.whenDefined(element.localName)\n ),\n );\n}\n"],"mappings":"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","names":["DEFAULT_GROUP","DiffuseElement","__name","signal","#connected","#disposables","_name","oldValue","newValue","#render","fn","unregister","effect","ns","tmp","T","B","#teardown","#worker","NAME","WORKER_URL","query","query_string_default","name","url","worker","workerLink","opts","workerProxy","forceNew","deps","toWorker","msg","ports","k","v","n","data","_k","workerTunnel","BroadcastableDiffuseElement","#broadcastingOptions","#broadcastingStatus","#lock","#status","channelName","actionsWithStrategy","options","channel","senderId","_rpc","rpc","event","proxyChannel","RpcChannel","proxy","actions","action","strategy","ogFn","wrapFn","args","assumeLeadership","lock","status","component","elementModule","id","el","defineElement","constructor","parent","attribute","selector","element","queryOptional","terminateWorkers","workers","whenElementsDefined","elements"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-IA3NIKPO.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IGEBMN5P.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IGEBMN5P.js new file mode 100644 index 00000000..cb617022 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IGEBMN5P.js @@ -0,0 +1,3 @@ +import{c,e as i}from"./chunk-WE3IOYGI.js";import{a as n}from"./chunk-75KFZLU6.js";async function h(o,e,r){let t=await c(o);if(!t)throw new Error("Dropbox access token could not be refreshed. Please reconnect.");let a=await fetch("https://content.dropboxapi.com/2/files/upload",{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/octet-stream","Dropbox-API-Arg":JSON.stringify({path:e,mode:"overwrite",mute:!0}).replace(/[^\x00-\x7F]/g,s=>"\\u"+("0000"+s.charCodeAt(0).toString(16)).slice(-4))},body:r});if(!a.ok){if((await a.json().catch(()=>null))?.error?.[".tag"]==="expired_access_token")throw new Error("Dropbox access token has expired. Please reconnect.");return null}return await a.json()}n(h,"uploadFile");async function l(o,e){let r=await c(o);if(!r)throw new Error("Dropbox access token could not be refreshed. Please reconnect.");let t=await fetch("https://api.dropboxapi.com/2/files/delete_v2",{method:"POST",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json"},body:JSON.stringify({path:e})});if(!t.ok)throw(await t.json().catch(()=>null))?.error?.[".tag"]==="expired_access_token"?new Error("Dropbox access token has expired. Please reconnect."):new Error(`Failed to delete "${e}" from Dropbox`);return!0}n(l,"deleteFile");function f(o,e,r){return r||`${o.directoryPath==="/"?"":o.directoryPath}/${e.name}`}n(f,"resolveDestinationPath");function u(o){let e=i(o);if(!e)throw new Error(`Invalid Dropbox URI: ${o}`);return{refreshToken:e.refreshToken,directoryPath:e.directoryPath}}n(u,"accountFromURI");export{h as a,l as b,f as c,u as d}; + +//# sourceMappingURL=./chunk-IGEBMN5P.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IGEBMN5P.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IGEBMN5P.js.br new file mode 100644 index 0000000000000000000000000000000000000000..9ca929fee98f9463846b059f249eaffea0dc0d08 GIT binary patch literal 657 zcmb2PV`F#{wd(Kt&xfjc)i{E*{9d|7M2U(|bUe{(Q0V(NzQN|@0ja%8hDN$v?Yr5d zR9%@5Ehyssnw<1!Wl-bYhZS3=2f4;P67F-kzJy19zi^9B*Rofx{_Nc9;rj0Ci=v%( zn?&bFX!T58y7}<+&+VyQ*LZr@sk55O>`dL)-?xL;_R>;iPE(nGSBlPvUhDB_RW3?c zyHVuZ+Mn-c7*6bU-lL~{*x6YpD(!HHK<5*&$N=W-@V0BglDn3iSa410>HF*6u2KDN z_0ykuK3lptX61UZ9n+&0HI&$$_cdP}R=2$H|Dt(KuU$poFWQ!IQvSWunSbt13I80Ag)LbJ^b zme^0spa1^x&6_W3_Z0n5ERM_1IrO`l*;pj$6|+Hb_mT@`=a=kw{6a@q`EK_)U1K$- ztCCW>Mq(Ammk6gen`dt^uzhyACrI~bREvUbs?yGRt($t!<}*Y}+!mS>dqXH+Va~aS z$;rvgL17-3^`$4q_cCnHZC!WLx@f};vjr!8AGE&adHaP^RM+AM=jRP?lnwL*YhSfp z{kJ&wLqQ5pvEn4DLbpGrbMA9)OxakGP|e41ifJ+9Lyb)r_=I*Z%WDi+6lWwT|H>$s zHFOIHQ@stFLSUDB)`R0Oj%-PDcKt2Wb(te^!@={9M0?jt{QfNb|D)R({dvdy)@{|U zV)H&E)=>2$c|yHSmlwamk%fyS*}J#C}X>} The uploaded file metadata, or null on failure.\n */\nexport async function uploadFile(refreshToken, destinationPath, file) {\n const accessToken = await getAccessToken(refreshToken);\n if (!accessToken) {\n throw new Error(\"Dropbox access token could not be refreshed. Please reconnect.\");\n }\n\n const resp = await fetch(\n \"https://content.dropboxapi.com/2/files/upload\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/octet-stream\",\n // `overwrite` is safe because uploads are content-addressed: the\n // filename is `.`, so the same bytes always map to the same\n // path (overwrite is a no-op) and different bytes get a different path\n // (no conflict). This makes re-uploads idempotent instead of spawning\n // autorenamed duplicates.\n \"Dropbox-API-Arg\": JSON.stringify({\n path: destinationPath,\n mode: \"overwrite\",\n mute: true,\n }).replace(/[^\\x00-\\x7F]/g, (ch) =>\n \"\\\\u\" + (\"0000\" + ch.charCodeAt(0).toString(16)).slice(-4)\n ),\n },\n body: file,\n },\n );\n\n if (!resp.ok) {\n /** @type {{ error?: { \".tag\"?: string } } | null} */\n const body = await resp.json().catch(() => null);\n if (body?.error?.[\".tag\"] === \"expired_access_token\") {\n throw new Error(\"Dropbox access token has expired. Please reconnect.\");\n }\n return null;\n }\n\n /** @type {{ path_lower: string; name: string }} */\n const data = await resp.json();\n return data;\n}\n\n/**\n * Delete a file from Dropbox.\n *\n * @param {string} refreshToken\n * @param {string} filePath Full Dropbox path (e.g. \"/Music/song.mp3\").\n * @returns {Promise}\n */\nexport async function deleteFile(refreshToken, filePath) {\n const accessToken = await getAccessToken(refreshToken);\n if (!accessToken) {\n throw new Error(\"Dropbox access token could not be refreshed. Please reconnect.\");\n }\n\n const resp = await fetch(\n \"https://api.dropboxapi.com/2/files/delete_v2\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ path: filePath }),\n },\n );\n\n if (!resp.ok) {\n /** @type {{ error?: { \".tag\"?: string } } | null} */\n const body = await resp.json().catch(() => null);\n if (body?.error?.[\".tag\"] === \"expired_access_token\") {\n throw new Error(\"Dropbox access token has expired. Please reconnect.\");\n }\n throw new Error(`Failed to delete \"${filePath}\" from Dropbox`);\n }\n\n return true;\n}\n\n////////////////////////////////////////////\n// PATH HELPERS\n////////////////////////////////////////////\n\n/**\n * Resolve the destination path for an upload.\n *\n * If `path` is provided it is used as-is (a full Dropbox path).\n * Otherwise the file is placed inside the account's directory.\n *\n * @param {Account} account\n * @param {File} file\n * @param {string} [path]\n * @returns {string}\n */\nexport function resolveDestinationPath(account, file, path) {\n if (path) return path;\n\n const dir = account.directoryPath === \"/\"\n ? \"\"\n : account.directoryPath;\n return `${dir}/${file.name}`;\n}\n\n/**\n * Extract the account info from an account URI.\n * Throws if the URI is not a valid Dropbox account URI.\n *\n * @param {string} uri\n * @returns {Account}\n */\nexport function accountFromURI(uri) {\n const parsed = parseURI(uri);\n if (!parsed) {\n throw new Error(`Invalid Dropbox URI: ${uri}`);\n }\n return { refreshToken: parsed.refreshToken, directoryPath: parsed.directoryPath };\n}\n"],"mappings":"kFAmBA,eAAsBA,EAAWC,EAAcC,EAAiBC,EAAM,CACpE,IAAMC,EAAc,MAAMC,EAAeJ,CAAY,EACrD,GAAI,CAACG,EACH,MAAM,IAAI,MAAM,gEAAgE,EAGlF,IAAME,EAAO,MAAM,MACjB,gDACA,CACE,OAAQ,OACR,QAAS,CACP,cAAiB,UAAUF,CAAW,GACtC,eAAgB,2BAMhB,kBAAmB,KAAK,UAAU,CAChC,KAAMF,EACN,KAAM,YACN,KAAM,EACR,CAAC,EAAE,QAAQ,gBAAkBK,GAC3B,OAAS,OAASA,EAAG,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAC3D,CACF,EACA,KAAMJ,CACR,CACF,EAEA,GAAI,CAACG,EAAK,GAAI,CAGZ,IADa,MAAMA,EAAK,KAAK,EAAE,MAAM,IAAM,IAAI,IACrC,QAAQ,MAAM,IAAM,uBAC5B,MAAM,IAAI,MAAM,qDAAqD,EAEvE,OAAO,IACT,CAIA,OADa,MAAMA,EAAK,KAAK,CAE/B,CA1CsBE,EAAAR,EAAA,cAmDtB,eAAsBS,EAAWR,EAAcS,EAAU,CACvD,IAAMN,EAAc,MAAMC,EAAeJ,CAAY,EACrD,GAAI,CAACG,EACH,MAAM,IAAI,MAAM,gEAAgE,EAGlF,IAAME,EAAO,MAAM,MACjB,+CACA,CACE,OAAQ,OACR,QAAS,CACP,cAAiB,UAAUF,CAAW,GACtC,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CAAE,KAAMM,CAAS,CAAC,CACzC,CACF,EAEA,GAAI,CAACJ,EAAK,GAGR,MADa,MAAMA,EAAK,KAAK,EAAE,MAAM,IAAM,IAAI,IACrC,QAAQ,MAAM,IAAM,uBACtB,IAAI,MAAM,qDAAqD,EAEjE,IAAI,MAAM,qBAAqBI,CAAQ,gBAAgB,EAG/D,MAAO,EACT,CA5BsBF,EAAAC,EAAA,cA6Cf,SAASE,EAAuBC,EAAST,EAAMU,EAAM,CAC1D,OAAIA,GAKG,GAHKD,EAAQ,gBAAkB,IAClC,GACAA,EAAQ,aACC,IAAIT,EAAK,IAAI,EAC5B,CAPgBK,EAAAG,EAAA,0BAgBT,SAASG,EAAeC,EAAK,CAClC,IAAMC,EAASC,EAASF,CAAG,EAC3B,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,wBAAwBD,CAAG,EAAE,EAE/C,MAAO,CAAE,aAAcC,EAAO,aAAc,cAAeA,EAAO,aAAc,CAClF,CANgBR,EAAAM,EAAA","names":["uploadFile","refreshToken","destinationPath","file","accessToken","getAccessToken","resp","ch","__name","deleteFile","filePath","resolveDestinationPath","account","path","accountFromURI","uri","parsed","parseURI"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-IGEBMN5P.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js new file mode 120000 index 00000000..9dd72ac1 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-IUBFNQRH.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js.br new file mode 120000 index 00000000..035b1746 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-IUBFNQRH.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js.map new file mode 120000 index 00000000..5a9e0a70 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IUBFNQRH.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-IUBFNQRH.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js new file mode 120000 index 00000000..e6fc5fb2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-IYPBPO5F.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js.br new file mode 120000 index 00000000..e5b64c4d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-IYPBPO5F.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js.map new file mode 120000 index 00000000..ecd2686c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-IYPBPO5F.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-IYPBPO5F.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js new file mode 120000 index 00000000..bb11d3f0 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-J3G2CW6Q.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js.br new file mode 120000 index 00000000..d1927d07 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-J3G2CW6Q.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js.map new file mode 120000 index 00000000..3459210e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-J3G2CW6Q.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-J3G2CW6Q.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JINXEQM7.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JINXEQM7.js new file mode 100644 index 00000000..6b3103d7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JINXEQM7.js @@ -0,0 +1,3 @@ +import{a as b,b as m,c}from"./chunk-RQUYKOSL.js";import{c as d,e as f}from"./chunk-IA3NIKPO.js";import{j as u,o as r}from"./chunk-XILA3E7E.js";import{a as h,c as g}from"./chunk-75KFZLU6.js";var _={};g(_,{CLASS:()=>y,NAME:()=>p,default:()=>k});var w="https://api.listenbrainz.org/1/",o="diffuse/supplement/listenbrainz/session",l=class extends d{static{h(this,"ListenBrainzScrobbler")}static NAME="diffuse/supplement/listenbrainz";#e=r(null);#t=r(null);#s=r(!1);handle=this.#e.get;isAuthenticated=u(()=>this.#t.value!==null);isAuthenticating=this.#s.get;connectedCallback(){if(this.hasAttribute("group")){let t=this.broadcast(this.identifier,{nowPlaying:{strategy:"leaderOnly",fn:this.nowPlaying},scrobble:{strategy:"leaderOnly",fn:this.scrobble},setHandle:{strategy:"replicate",fn:this.#e.set},setUserToken:{strategy:"replicate",fn:this.#t.set}});t&&(this.nowPlaying=t.nowPlaying,this.scrobble=t.scrobble,this.#e.set=t.setHandle,this.#t.set=t.setUserToken)}super.connectedCallback(),this.#a()}async#a(){await this.whenConnected();let t=await b(this,o);if(t)try{let{token:s,username:e}=JSON.parse(t);await this.isLeader()?(this.#t.set(s),this.#e.set(e)):(this.#t.value=s,this.#e.value=e)}catch{await c(this,o)}}async signIn(t){this.#s.set(!0);try{let s=await this.#r(t);this.#t.set(t),this.#e.set(s),await m(this,o,JSON.stringify({token:t,username:s}))}catch(s){throw console.warn("listenbrainz: failed to authenticate",s),s}finally{this.#s.set(!1)}}async signOut(){this.#t.set(null),this.#e.set(null),await c(this,o)}async nowPlaying(t){return this.#i("playing_now",[{track_metadata:this.#n(t)}])}async scrobble(t,s,e){return this.#i("single",[{listened_at:Math.floor(s/1e3),track_metadata:this.#n(t,e?.duration)}])}#n(t,s){let e=t.tags??{},i={submission_client:"Diffuse"},n=t.stats?.duration??s;n!=null&&(i.duration_ms=n),e.track?.no!=null&&(i.tracknumber=e.track.no);let a={additional_info:i};return e.title&&(a.track_name=e.title),e.artist&&(a.artist_name=e.artist),e.album&&(a.release_name=e.album),a}async#r(t){let e=await(await fetch(`${w}validate-token`,{headers:{Authorization:`Token ${t}`}})).json();if(!e.valid)throw new Error(`listenbrainz: invalid token \u2014 ${e.message??"unknown error"}`);return e.user_name}async#i(t,s){let e=this.#t.value;if(!e)throw new Error("Not authenticated with ListenBrainz");let n=await(await fetch(`${w}submit-listens`,{method:"POST",headers:{Authorization:`Token ${e}`,"Content-Type":"application/json"},body:JSON.stringify({listen_type:t,payload:s})})).json();if(n.code&&n.code!==200)throw new Error(`listenbrainz error ${n.code}: ${n.error}`);return n}},k=l,y=l,p="ds-listenbrainz-scrobbler";f(p,y);export{k as a,y as b,p as c,_ as d}; + +//# sourceMappingURL=./chunk-JINXEQM7.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JINXEQM7.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JINXEQM7.js.br new file mode 100644 index 0000000000000000000000000000000000000000..42a3cd6985d563f410fe4ccfa88b64383bd4f3b0 GIT binary patch literal 1171 zcmb2H;$nCbllFD~`R)ti9-^0QpX-Uuwp@2xvCuN{Q9`$t_G`yK_vhSdDyXbG7BXY6 zm-+Aa@xQKle+=?F7NRg^?dg`3Yipj}d2%O*>vXxK=z?~i*$ah&H;d0ZB6aQfPUajh z?fX;GHs0(lw6FjF?(%l=e7ij+^&VkUd88LI=3IQIR#Eo;*z0utd;1Lk2)eyEtMdPP zy8d+K{&zM}LeqZmS!HdEoq1>H*GC_}PoJN6IN|StvYjE(q0V(5KHY2Q56k?1pJn~~ zy;WbX88<9>qVb-4!gsm3cMSQ@J>axwxy+i>laO9t_;uy#)|PuG)waC#*s-8c!iqa9 zN~FHf(L>~y#=_$N)8?ss*yph5Wb>)dd}|da=&zP~Z~r@S@~^ME4y%-EW{K*AUr*h! z#_xja*VX1yv2#B}+v=WKSCT3aR$hN)&Vrjt;f?QlZ`8INK4xr|7qaR=&>UWsDKm?6 zMW=^5-h`?2kFa7Xm)Ov#s$+b2(DOZuf&Ho3*@R@0>{#!JbeUyp1`Waap|vaf5^S#=q! zw<2>6`CSnB^lq7*;IjU|a*r>bXxHBL=yUPW_X{5Ln=mKa9iQ&@Lf%8^aPI}qOFBJ; zv44E5jjgsk+Y`QPhh2sEyuTOO#X<_azp;mkE?s@`kkcipt!wy2ve#JpHlN&do;R}T zez;fXzXq}H&zH}*2(3+u{VK@yrO0NBm;O`%<*qGj*tM?Q(z5v_BYLR6GT{6o7u5~< z5>vVg)^l>*{-L9FO>)D9ACKMyg`eT)E;_T*Uue5)&dkJClaP(FRmln(Y!i-N@bi*< z9IyvAKi!x;QS_9f z&yF8`^13U{bCxqqTwo<7zp=4(!4n6+)yef!J}9>vhW%%g|2fs2tMbCm?SHa@TRsYk zFf+z|59qkfC+!j|)8YH}rk|7Fq|WT1EjtcLOYP!jkC~O`W6AV#mVnA9!vyyUYAHI? zcRCbQ*2z4YvD8XUJIwCOn&M3kTaj5^kd zj#*otFMs`U!@`|yshlpM&D*ORtgi|)G6%13TI9MVZ>`_wjZbWH`d+UTeG(bboKkEs z<9+at)%33i>#UnWJkC$EVO)i~oKqJ+JmW&qeO4iqmEl z_Kk~I7&7V4e7?!|5|^-1UaH+4(HH*hauYb`md=y!^U&UGbm6sXYGdhrpKI?E_OJQ3 z^@+RA;RnmteeeCOX{hinL&*B)pFdwY&&=6fS7~XnqQG^|v#dQgwzmXWaQqkWZruAi tp-7g;&&(wMxLrAuzgpzhtOn2UAN5-4H@M}NJ& this.#userToken.value !== null);\n isAuthenticating = this.#isAuthenticating.get;\n\n // LIFECYCLE\n\n /** @override */\n connectedCallback() {\n if (this.hasAttribute(\"group\")) {\n const actions = this.broadcast(this.identifier, {\n nowPlaying: { strategy: \"leaderOnly\", fn: this.nowPlaying },\n scrobble: { strategy: \"leaderOnly\", fn: this.scrobble },\n\n setHandle: { strategy: \"replicate\", fn: this.#handle.set },\n setUserToken: { strategy: \"replicate\", fn: this.#userToken.set },\n });\n\n if (actions) {\n this.nowPlaying = actions.nowPlaying;\n this.scrobble = actions.scrobble;\n\n this.#handle.set = actions.setHandle;\n this.#userToken.set = actions.setUserToken;\n }\n }\n\n super.connectedCallback();\n\n this.#tryRestore();\n }\n\n async #tryRestore() {\n await this.whenConnected();\n\n const stored = await readSession(this, STORAGE_KEY);\n\n if (stored) {\n try {\n const { token, username } = JSON.parse(stored);\n\n if (await this.isLeader()) {\n this.#userToken.set(token);\n this.#handle.set(username);\n } else {\n this.#userToken.value = token;\n this.#handle.value = username;\n }\n } catch {\n await clearSession(this, STORAGE_KEY);\n }\n }\n }\n\n // AUTH\n\n /**\n * Validate a ListenBrainz user token and store the session.\n *\n * @param {string} token\n */\n async signIn(token) {\n this.#isAuthenticating.set(true);\n try {\n const username = await this.#validateToken(token);\n this.#userToken.set(token);\n this.#handle.set(username);\n await saveSession(this, STORAGE_KEY, JSON.stringify({ token, username }));\n } catch (err) {\n console.warn(\"listenbrainz: failed to authenticate\", err);\n throw err;\n } finally {\n this.#isAuthenticating.set(false);\n }\n }\n\n /**\n * Clear the stored session.\n */\n async signOut() {\n this.#userToken.set(null);\n this.#handle.set(null);\n await clearSession(this, STORAGE_KEY);\n }\n\n // SCROBBLE ACTIONS\n\n /**\n * @param {Track} track\n */\n async nowPlaying(track) {\n return this.#submit(\"playing_now\", [\n { track_metadata: this.#trackMetadata(track) },\n ]);\n }\n\n /**\n * @param {Track} track\n * @param {number} startedAt Unix timestamp in milliseconds\n * @param {{ duration?: number }} [options] duration in milliseconds\n */\n async scrobble(track, startedAt, options) {\n return this.#submit(\"single\", [\n {\n listened_at: Math.floor(startedAt / 1000),\n track_metadata: this.#trackMetadata(track, options?.duration),\n },\n ]);\n }\n\n // API\n\n /**\n * @param {Track} track\n * @param {number} [durationMs]\n * @returns {Record}\n */\n #trackMetadata(track, durationMs) {\n const tags = track.tags ?? {};\n /** @type {Record} */\n const additional_info = { submission_client: \"Diffuse\" };\n\n const duration = track.stats?.duration ?? durationMs;\n if (duration != null) {\n additional_info.duration_ms = duration;\n }\n if (tags.track?.no != null) {\n additional_info.tracknumber = tags.track.no;\n }\n\n /** @type {Record} */\n const metadata = { additional_info };\n\n if (tags.title) metadata.track_name = tags.title;\n if (tags.artist) metadata.artist_name = tags.artist;\n if (tags.album) metadata.release_name = tags.album;\n\n return metadata;\n }\n\n /**\n * @param {string} token\n * @returns {Promise} username\n */\n async #validateToken(token) {\n const response = await fetch(`${API_BASE}validate-token`, {\n headers: { Authorization: `Token ${token}` },\n });\n const data = await response.json();\n\n if (!data.valid) {\n throw new Error(\n `listenbrainz: invalid token — ${data.message ?? \"unknown error\"}`,\n );\n }\n\n return data.user_name;\n }\n\n /**\n * @param {string} listen_type\n * @param {unknown[]} payload\n * @returns {Promise}\n */\n async #submit(listen_type, payload) {\n const token = this.#userToken.value;\n if (!token) throw new Error(\"Not authenticated with ListenBrainz\");\n\n const response = await fetch(`${API_BASE}submit-listens`, {\n method: \"POST\",\n headers: {\n Authorization: `Token ${token}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ listen_type, payload }),\n });\n\n const data = await response.json();\n\n if (data.code && data.code !== 200) {\n throw new Error(`listenbrainz error ${data.code}: ${data.error}`);\n }\n\n return data;\n }\n}\n\nexport default ListenBrainzScrobbler;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = ListenBrainzScrobbler;\nexport const NAME = \"ds-listenbrainz-scrobbler\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","API_BASE","STORAGE_KEY","ListenBrainzScrobbler","BroadcastableDiffuseElement","__name","#handle","signal","#userToken","#isAuthenticating","computed","actions","#tryRestore","stored","readSession","token","username","clearSession","#validateToken","saveSession","err","track","#submit","#trackMetadata","startedAt","options","durationMs","tags","additional_info","duration","metadata","data","listen_type","payload","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-JINXEQM7.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js new file mode 120000 index 00000000..8314cc21 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-JL66OXVZ.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js.br new file mode 120000 index 00000000..e45beefb --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-JL66OXVZ.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js.map new file mode 120000 index 00000000..85b66aac --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JL66OXVZ.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-JL66OXVZ.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js new file mode 120000 index 00000000..67c7b312 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-JULAOCV6.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js.br new file mode 120000 index 00000000..e60c8a90 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-JULAOCV6.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js.map new file mode 120000 index 00000000..8e602dae --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JULAOCV6.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-JULAOCV6.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js new file mode 100644 index 00000000..4174849f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js @@ -0,0 +1,3 @@ +import{a as t}from"./chunk-75KFZLU6.js";var a=null;async function p(){return a??=import("./core@0.72-7M5IIQHZ.js").then(async n=>n.Panproto.init()),a}t(p,"panproto");async function i(n,e){return(await p()).compileLensDocument(n,s(n),"json").instantiate(e)}t(i,"compileLens");async function u(n){return(await p()).parseLexicon(n)}t(u,"parseLexicon");async function l(n,e,o){return(await i(n,e)).getJson(o,s(n))}t(l,"get");async function y(n,e,o,r){return(await i(n,e)).putJson(o,r,s(n))}t(y,"put");function s(n){return`${n.target??n.source}:body`}t(s,"bodyVertex");export{i as a,u as b,l as c,y as d}; + +//# sourceMappingURL=./chunk-JZBHDDIW.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js.br new file mode 100644 index 0000000000000000000000000000000000000000..4233fddc0c8bca2cbd590b97deedd7dcf3acdaf1 GIT binary patch literal 317 zcmb1+U}8w|US2)zWa{6!hYY4>8oi8~EI0SV5!0{TN(T*YD_NcjJ6pe5@|@CCwx!RP zC8|8Sk}SfZSccM-z)IM9_ zQ1`H3hWqB6=3^eAw~jUNuJW2$l5{-m=W^?HcQ<`{U31P<+gtczqR6R=$MP}}HhOWt dRUT*5>Kxk=XC5HL5|MUOpxEq?ub})fQ2_JNnlk_Z literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js.map new file mode 100644 index 00000000..1f9d6b7e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZBHDDIW.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/common/panproto.js"],"sourcesContent":["/**\n * panproto (`@panproto/core`) connection point.\n *\n * The pure-JS migration engine (`~/common/lens.js`) projects records between\n * schema NSIDs by interpreting an authored lens document's `steps` — sufficient\n * for the additive/rename migrations diffuse ships. panproto's WASM engine is the\n * *complement* path: it produces and consumes the opaque `complement` so that\n * fields a migration discarded can be written back losslessly (see design doc\n * open items).\n *\n * This module loads `@panproto/core` lazily (its WASM is only needed when the\n * complement path actually runs), and exposes helpers for the flat-record JSON\n * call shape confirmed in the design spike:\n *\n * - include the record's `$type` and root at the record's object/body vertex;\n * - `chain.instantiate(schema)` needs only the *target* schema;\n * - `getJson` produces `{ view, complement }`; `putJson(view, complement)`\n * reconstructs the source losslessly.\n *\n * @import {LensDocument} from \"~/common/lens-registry.js\"\n */\n\nlet promise = null;\n\n/**\n * Lazily obtain a panproto instance.\n *\n * @returns {Promise}\n */\nasync function panproto() {\n promise ??= import(\"@panproto/core\").then(\n /** @param {any} m */\n async (m) => m.Panproto.init(),\n );\n return promise;\n}\n\n/**\n * Compile an authored lens document and instantiate it against the target schema.\n *\n * @param {LensDocument} doc\n * @param {unknown} schema - a `BuiltSchema` from `parseLexicon`\n * @returns {Promise} an instantiated `LensHandle`\n *\n * @example Compiles a lens and round-trips a record losslessly\n * ```ts\n * import { compileLens, parseLexicon, get } from \"~/common/panproto.js\";\n *\n * const NEW_LEXICON = {\n * lexicon: 1, id: \"sh.diffuse.output.facet2\",\n * defs: { main: { type: \"record\", record: { type: \"object\", properties: {\n * $type: { type: \"string\" }, id: { type: \"string\" }, name: { type: \"string\" },\n * starred: { type: \"boolean\" }, description: { type: \"string\" },\n * } } } },\n * };\n * const schema = await parseLexicon(NEW_LEXICON);\n * const doc = {\n * id: \"f-to-f2\", source: \"sh.diffuse.output.facet\", target: \"sh.diffuse.output.facet2\",\n * steps: [{ rename_field: { old: \"favourite\", new: \"starred\" } }],\n * };\n * await compileLens(doc, schema);\n * const record = { $type: \"sh.diffuse.output.facet\", id: \"a\", name: \"x\", favourite: true };\n * const { view, complement } = await get(doc, schema, record);\n * if (view === undefined) throw new Error(\"expected a projected view\");\n * if (!(complement instanceof Uint8Array) || complement.length === 0) throw new Error(\"expected a complement\");\n * ```\n */\nexport async function compileLens(doc, schema) {\n const pp = await panproto();\n const chain = pp.compileLensDocument(doc, bodyVertex(doc), \"json\");\n return chain.instantiate(schema);\n}\n\n/**\n * Parse an atproto lexicon (a diffuse `lexicons/output/*.json` object) into a\n * `BuiltSchema` usable for instantiating a lens.\n *\n * @param {object | string} lexicon\n * @returns {Promise} a `BuiltSchema`\n */\nexport async function parseLexicon(lexicon) {\n const pp = await panproto();\n return pp.parseLexicon(lexicon);\n}\n\n/**\n * Forward projection: extract the view + complement from a source record.\n *\n * @param {LensDocument} doc\n * @param {unknown} schema\n * @param {unknown} record\n * @returns {Promise<{ view: unknown; complement: Uint8Array }>}\n */\nexport async function get(doc, schema, record) {\n const lens = await compileLens(doc, schema);\n return lens.getJson(record, bodyVertex(doc));\n}\n\n/**\n * Backward put: reconstruct a source record from an edited view + complement,\n * losslessly (GetPut).\n *\n * @param {LensDocument} doc\n * @param {unknown} schema\n * @param {unknown} view\n * @param {Uint8Array} complement\n * @returns {Promise}\n */\nexport async function put(doc, schema, view, complement) {\n const lens = await compileLens(doc, schema);\n return lens.putJson(view, complement, bodyVertex(doc));\n}\n\n/**\n * The record's object/body vertex of the target schema the lens projects to\n * (used as the root for `getJson`/`putJson`). Field steps attach to this vertex.\n *\n * @param {LensDocument} doc\n * @returns {string}\n */\nfunction bodyVertex(doc) {\n return `${doc.target ?? doc.source}:body`;\n}"],"mappings":"wCAsBA,IAAIA,EAAU,KAOd,eAAeC,GAAW,CACxB,OAAAD,IAAY,OAAO,yBAAgB,EAAE,KAEnC,MAAOE,GAAMA,EAAE,SAAS,KAAK,CAC/B,EACOF,CACT,CANeG,EAAAF,EAAA,YAsCf,eAAsBG,EAAYC,EAAKC,EAAQ,CAG7C,OAFW,MAAML,EAAS,GACT,oBAAoBI,EAAKE,EAAWF,CAAG,EAAG,MAAM,EACpD,YAAYC,CAAM,CACjC,CAJsBH,EAAAC,EAAA,eAatB,eAAsBI,EAAaC,EAAS,CAE1C,OADW,MAAMR,EAAS,GAChB,aAAaQ,CAAO,CAChC,CAHsBN,EAAAK,EAAA,gBAatB,eAAsBE,EAAIL,EAAKC,EAAQK,EAAQ,CAE7C,OADa,MAAMP,EAAYC,EAAKC,CAAM,GAC9B,QAAQK,EAAQJ,EAAWF,CAAG,CAAC,CAC7C,CAHsBF,EAAAO,EAAA,OAetB,eAAsBE,EAAIP,EAAKC,EAAQO,EAAMC,EAAY,CAEvD,OADa,MAAMV,EAAYC,EAAKC,CAAM,GAC9B,QAAQO,EAAMC,EAAYP,EAAWF,CAAG,CAAC,CACvD,CAHsBF,EAAAS,EAAA,OAYtB,SAASL,EAAWF,EAAK,CACvB,MAAO,GAAGA,EAAI,QAAUA,EAAI,MAAM,OACpC,CAFSF,EAAAI,EAAA","names":["promise","panproto","m","__name","compileLens","doc","schema","bodyVertex","parseLexicon","lexicon","get","record","put","view","complement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-JZBHDDIW.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZVPDEYM.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZVPDEYM.js new file mode 100644 index 00000000..962fcc29 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZVPDEYM.js @@ -0,0 +1,34 @@ +import{a as o}from"./chunk-KQX3HL46.js";import{a as i,b as n,e as d}from"./chunk-IA3NIKPO.js";import{a as r,c as a}from"./chunk-75KFZLU6.js";var g={};a(g,{CLASS:()=>s,NAME:()=>p,default:()=>c});var u=class extends n{static{r(this,"OutputOrchestrator")}static NAME="diffuse/orchestrator/output";get output(){let t=this.root().querySelector("#do-output__output");if(!t)throw new Error("Output orchestrator did not render yet.");return t}get outputConfigurator(){let t=this.root().querySelector("#do-output__dc-output");if(!t)throw new Error("Output orchestrator did not render yet.");return t}get facets(){return this.output.facets}get playlistItems(){return this.output.playlistItems}get settings(){return this.output.settings}get tracks(){return this.output.tracks}get ready(){return this.output.ready}get activated(){return this.outputConfigurator.activated.bind(this.outputConfigurator)}get deselect(){return this.outputConfigurator.deselect.bind(this.outputConfigurator)}get hasDefault(){return this.outputConfigurator.hasDefault.bind(this.outputConfigurator)}get hasSelected(){return this.outputConfigurator.hasSelected.bind(this.outputConfigurator)}get loadSelected(){return this.outputConfigurator.loadSelected.bind(this.outputConfigurator)}get options(){return this.outputConfigurator.options.bind(this.outputConfigurator)}get select(){return this.outputConfigurator.select.bind(this.outputConfigurator)}get selected(){return this.outputConfigurator.selected.bind(this.outputConfigurator)}get waitForOption(){return this.outputConfigurator.waitForOption.bind(this.outputConfigurator)}render({html:t}){let e=this.group===i?void 0:this.group;return t` + + + + + + + + + + + + `}},c=u,s=u,p="do-output";d(p,s);export{c as a,s as b,p as c,g as d}; + +//# sourceMappingURL=./chunk-JZVPDEYM.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZVPDEYM.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-JZVPDEYM.js.br new file mode 100644 index 0000000000000000000000000000000000000000..cb1090311b7cb51b8b864262067e072267f2b809 GIT binary patch literal 757 zcmb2v<6?Mn{;$`5x4owW|2-&tnE#EzaErsw$$O6aktUr{Zi zC28>K#kB_yMI87f1Je7pAD))FLR(Gv4$tf7#hq&v-Pd-AhPP~*Yp(r%{lX>tJWTfd z?)%xkduK3}la z_1$VF_p_^vQlnOG-Rd<}BF1+0t*K1jOMB|-wzWI8EWGf1@BigDuk@Vx$#QgSy4iI9 z4o|;2A)yq77raK#d9McUIJ+$D>}0=dS_dMvAK6a-ULO9vd_#3*VL?qr{pQ;8%F8;! zyFMy~`Rn?rBpPO$^Ip2~Jbka9vt9<|M&lI?p-#i*=E!GF6l4Xc`mX_y_uzJ z!Sbck16pN`RNpux?F!\n\n \n \n \n \n\n \n \n\n \n `;\n }\n}\n\nexport default OutputOrchestrator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = OutputOrchestrator;\nexport const NAME = \"do-output\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"6IAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IA6BA,IAAMC,EAAN,cAAiCC,CAAe,CA7BhD,MA6BgD,CAAAC,EAAA,2BAC9C,OAAO,KAAO,8BAOd,IAAI,QAAS,CAEX,IAAMC,EAAS,KAAK,KAAK,EAAE,cAAc,oBAAoB,EAE7D,GAAI,CAACA,EAAQ,MAAM,IAAI,MAAM,yCAAyC,EACtE,OAAOA,CACT,CAKA,IAAI,oBAAqB,CAEvB,IAAMC,EAAqB,KAAK,KAAK,EAAE,cACrC,uBACF,EAEA,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,yCAAyC,EAG3D,OAAOA,CACT,CAIA,IAAI,QAAS,CACX,OAAO,KAAK,OAAO,MACrB,CAEA,IAAI,eAAgB,CAClB,OAAO,KAAK,OAAO,aACrB,CAEA,IAAI,UAAW,CACb,OAAO,KAAK,OAAO,QACrB,CAEA,IAAI,QAAS,CACX,OAAO,KAAK,OAAO,MACrB,CAEA,IAAI,OAAQ,CACV,OAAO,KAAK,OAAO,KACrB,CAIA,IAAI,WAAY,CACd,OAAO,KAAK,mBAAmB,UAAU,KAAK,KAAK,kBAAkB,CACvE,CAEA,IAAI,UAAW,CACb,OAAO,KAAK,mBAAmB,SAAS,KAAK,KAAK,kBAAkB,CACtE,CAEA,IAAI,YAAa,CACf,OAAO,KAAK,mBAAmB,WAAW,KAAK,KAAK,kBAAkB,CACxE,CAEA,IAAI,aAAc,CAChB,OAAO,KAAK,mBAAmB,YAAY,KAAK,KAAK,kBAAkB,CACzE,CAEA,IAAI,cAAe,CACjB,OAAO,KAAK,mBAAmB,aAAa,KAAK,KAAK,kBAAkB,CAC1E,CAEA,IAAI,SAAU,CACZ,OAAO,KAAK,mBAAmB,QAAQ,KAAK,KAAK,kBAAkB,CACrE,CAEA,IAAI,QAAS,CACX,OAAO,KAAK,mBAAmB,OAAO,KAAK,KAAK,kBAAkB,CACpE,CAEA,IAAI,UAAW,CACb,OAAO,KAAK,mBAAmB,SAAS,KAAK,KAAK,kBAAkB,CACtE,CAEA,IAAI,eAAgB,CAClB,OAAO,KAAK,mBAAmB,cAAc,KAAK,KAAK,kBAAkB,CAC3E,CAOA,OAAO,CAAE,KAAAC,CAAK,EAAG,CACf,IAAMC,EAAQ,KAAK,QAAUC,EAAgB,OAAY,KAAK,MAE9D,OAAOF;AAAA;AAAA;AAAA,qBAGU,KAAK,UAAY,KAAK,UAAY,IAAM,EAAE;AAAA,iBAC9C,EAAUC,CAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAOhB,EAAUA,CAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAkBhB,EAAUA,CAAK,CAAC;AAAA;AAAA,KAG/B,CACF,EAEOE,EAAQR,EAMFS,EAAQT,EACRU,EAAO,YAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","OutputOrchestrator","DiffuseElement","__name","output","outputConfigurator","html","group","DEFAULT_GROUP","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-JZVPDEYM.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js new file mode 100644 index 00000000..7420c545 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js @@ -0,0 +1,7 @@ +import{a as $,b as q,c as G,d as K}from"./chunk-G3G2PH4F.js";import{b as T,d as O,e as H,f as g,g as R,h as b,i as E}from"./chunk-5EUZQD32.js";import{a as F}from"./chunk-YA42HS5K.js";import{a as _}from"./chunk-KQX3HL46.js";import{a as U}from"./chunk-BTSSVB7R.js";import{d as D}from"./chunk-ELB3AQIW.js";import{i as w,j as M}from"./chunk-J3G2CW6Q.js";import{e as x}from"./chunk-IA3NIKPO.js";import{j as s,o as S}from"./chunk-XILA3E7E.js";import{a as u,c as Y}from"./chunk-75KFZLU6.js";var z={};Y(z,{CLASS:()=>P,NAME:()=>V,automergeEntry:()=>v,default:()=>j,loadDocument:()=>L});var I=class extends U{static{u(this,"AutomergeBytesOutputTransformer")}constructor(){super();let t=this.base(),c=this.#e.get,i=u((r,e,o)=>s(()=>{let h=r(),y=t.ready()?e():void 0,f=L(h?.state==="loaded"?h.data:void 0),m=y?.state==="loaded"?L(y.data):void 0,A=y?.state==="loaded";if(m){if(!f)return{doc:m,diverged:!0,local:!0,remote:!1,remoteLoaded:A}}else return f?{doc:f,diverged:!0,local:!1,remote:!0,remoteLoaded:A}:{doc:o,diverged:!1,local:!1,remote:!1,remoteLoaded:A};let k=b(f)[0],C=b(m)[0],N=k!==C;return{doc:N?R(T(f),T(m)):m,diverged:N,local:E(m,[k]),remote:E(f,[C]),remoteLoaded:A}}),"state"),d=i(s(()=>c()?.facets?.collection()??{state:"loading"}),t.facets.collection,$),n=i(s(()=>c()?.playlistItems?.collection()??{state:"loading"}),t.playlistItems.collection,q),l=i(s(()=>c()?.settings?.collection()??{state:"loading"}),t.settings.collection,G),p=i(s(()=>c()?.tracks?.collection()??{state:"loading"}),t.tracks.collection,K);this.facets=v(s(()=>c()?.facets),t.facets,s(()=>d().doc),{stripUndefined:!0},"facets"),this.playlistItems=v(s(()=>c()?.playlistItems),t.playlistItems,s(()=>n().doc),void 0,"playlistItems"),this.settings=v(s(()=>c()?.settings),t.settings,s(()=>l().doc),void 0,"settings"),this.tracks=v(s(()=>c()?.tracks),t.tracks,s(()=>p().doc),void 0,"tracks"),this.ready=()=>!0,this.effect(()=>{let r=c();r&&(this.effect(()=>{if(!d().remoteLoaded)return;let e=d();if(e.diverged){let o=g(e.doc);r&&e.local&&r.facets.save(o),e.remote&&t.facets.save(o)}}),this.effect(()=>{if(!n().remoteLoaded)return;let e=n();if(e.diverged){let o=g(e.doc);r&&e.local&&r.playlistItems.save(o),e.remote&&t.playlistItems.save(o)}}),this.effect(()=>{if(!l().remoteLoaded)return;let e=l();if(e.diverged){let o=g(e.doc);r&&e.local&&r.settings.save(o),e.remote&&t.settings.save(o)}}),this.effect(()=>{if(!p().remoteLoaded)return;let e=p();if(e.diverged){let o=g(e.doc);r&&e.local&&r.tracks.save(o),e.remote&&t.tracks.save(o)}}))})}#e=S(void 0);connectedCallback(){super.connectedCallback();let t=this.root().querySelector("dop-indexed-db");if(!t)throw new Error("Can't find local output");customElements.whenDefined(t.localName).then(()=>{this.#e.value=t})}render({html:t}){return t` + + `}},j=I;function L(a){if(F(a))return H(a);if(a==null)return;throw new Error("Invalid data type")}u(L,"loadDocument");function v(a,t,c,i,d){return{collection:s(()=>{let n=a()?.collection();return!n||n.state!=="loaded"?{state:n?.state??"loading"}:{state:"loaded",data:c().collection}}),reload:t.reload,save:u(async n=>{let l=d?D(d):null,p=O(c(),e=>{e.collection=n.map(o=>{let h=M(o);return i?.stripUndefined?w(h):h}),l&&(e.$schema=l)}),r=g(p);await a()?.save(r)},"save")}}u(v,"automergeEntry");var P=I,V="dtob-automerge";x(V,P);export{j as a,L as b,v as c,P as d,V as e,z as f}; + +//# sourceMappingURL=./chunk-K3ALFZSR.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js.br new file mode 100644 index 0000000000000000000000000000000000000000..266c6b4cf3a015e4c8d9c1ece1113ec3db27e128 GIT binary patch literal 1303 zcmb0x;AMESY31L~l_$M!&%HU}(!-RPS2MpfO)PMiIZ-C#H#yttXV&Ju9-(Fbw4Ga@ z_@4gBCo!qWD(T@h&ds5G5ff(_hcZh$udVKEaCvg;zfR7PrLHFq&B+b;&+#vi<(A4~ z+tVMr@7(Nd`<$}rvR#gROnG0_Ig96V%u^=cPZtbdGHsFb$0(kR4?=e?34F<1l38SG znP<1>o(UiS1g}|Qxd-&GE^a<|xA6Sg@B@2iKR@hOQ1a;6!6jw&<=-Q$_qravU@}eZ z?1Hk0y)W$+Zt76&jnC5CG~AK$oqFO4uSiYoqpx|Irq)P zs`j0!%QiJ;si{S)s)&VnUZ_1cW0}i(87f`Cs#FC{SQt<})?X?L()<)xGQ!7Jaq8KGis& z%`J&an}!%8Pp$h|Mb(xEuCte^ zd~f%Qk8Sy6v}9&P?i+@%-wMZ9U40soFLIctyG&2;v4lsOc#!+Mo@a{rzZ^WbZ*lMA zy1(Y!6(8xR)4pxjc`&7Pb=ei|uFlwmf9I0#YlS7lwTg|4g2D6CY{>)cU7R#1F@46^6y+(z`La7Y5xSj z!&ghD%w890e6C2(v*F|Uvs1PmZ2i1UQe~UlZQrg#o`PjFVs_oI{bIu|{hVRrhPP~& z3%$&rNcUY444ODQXNsN5L%wUf*QomC6{}p^R4O9$BxS2==bmRRJ3>{}mrPo*R>Ucz zE5-NFt+!Jy1+2Rf(Z&6*rdgBIe!J$f1>#pOxv&)O+45bp?~8Pls=L~vTXEaAvZ`!Y z+MqW5Pos&<3E|ySCp6rebgEFVt)^A1`Fyffl3Z}#{;j#WseTQ=-pH`_F1ay(`_|M+ z3ok#tcJlX;`JIPqi&jmWt!2-3XutVy=>{ROo8Ul|ge_8FqGBo{&8JD%FZvuXIWRf%D?v*=uhLB zmAGuWPN4U-Ge);GzZ%>$<0&^Pd&HxXZduhZwPteHGd_)Hy=tm_%kBt#cE8AY^TsNZ z3+(Q@t|aS3J&|sGG~07_w$2^-v}e`5wi*9kcm+u~f8>zp=hzomvvWbq+~5N%-7FV9 zoq1mK|IO4>r#fHnTf21Qi>d>+_!M})?bYSjxVwBaU(2*j&WgV#t9e$P&)S&xX{qud z2iD}jbK(zQJg2D8x2>#DBtz%ggoPb$D!l<=TfRQk<0?{73TfdH+UD+c^8bI%tU|4e z1xcz6Y17}cPvbJbQlfp5Q+sY7gR8^+1M!=c^gcA@D~0%;-&HKJch*#m?Il`E?lW|* zEB)uOaz_)#gee;0T~DnhT5L98?R|Mm&p}-2lv|Zokp{0F9 z#B_HkkAkayOq=pyp5{BpPb@le|LWn3w=8u!7AKs0_;&I2Mc(~Q-iv=*yYv>kXP0{^ eW&5@HuA@iei_4ExJ6=e6RIzl`?M`~VmJt94JC4@? literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js.map new file mode 100644 index 00000000..a9b41ca5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-K3ALFZSR.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/transformer/output/bytes/automerge/element.js"],"sourcesContent":["import * as Automerge from \"@automerge/automerge\";\nimport { ifDefined } from \"lit-html/directives/if-defined.js\";\nimport { isUint8Array } from \"iso-base/utils\";\n\nimport \"~/components/output/polymorphic/indexed-db/element.js\";\n\nimport { computed, signal } from \"~/common/signal.js\";\nimport {\n recursivelyCloneRecords,\n removeUndefinedValuesFromRecord,\n} from \"~/common/utils.js\";\nimport { OutputTransformer } from \"../../base.js\";\nimport { collectionSchema } from \"~/common/self-describing.js\";\nimport { defineElement } from \"~/common/element.js\";\nimport {\n INITIAL_FACETS_DOCUMENT,\n INITIAL_PLAYLIST_ITEMS_DOCUMENT,\n INITIAL_SETTINGS_DOCUMENT,\n INITIAL_TRACKS_DOCUMENT,\n} from \"./constants.js\";\n\n/**\n * @import { RenderArg } from \"~/common/element.d.ts\"\n * @import { SignalReader } from \"~/common/signal.d.ts\";\n * @import { OutputElement } from \"@specs/components/output/types.d.ts\";\n */\n\n/**\n * @extends {OutputTransformer}\n */\nclass AutomergeBytesOutputTransformer extends OutputTransformer {\n constructor() {\n super();\n\n const remote = this.base();\n const local = this.#localOutput.get;\n\n /**\n * @template T\n * @param {SignalReader<{ state: \"loading\" } | { state: \"loaded\"; data: Uint8Array | undefined } | { state: \"error\" }>} localCollection\n * @param {SignalReader<{ state: \"loading\" } | { state: \"loaded\"; data: Uint8Array | undefined } | { state: \"error\" }>} remoteCollection\n * @param {Automerge.Doc} initial\n * @returns {SignalReader<{ doc: Automerge.Doc; diverged: boolean; local: boolean; remote: boolean; remoteLoaded: boolean; }>}\n */\n const state = (localCollection, remoteCollection, initial) =>\n computed(() => {\n const lc = localCollection();\n const rc = remote.ready() ? remoteCollection() : undefined;\n\n const l = loadDocument(lc?.state === \"loaded\" ? lc.data : undefined);\n const r = rc?.state === \"loaded\" ? loadDocument(rc.data) : undefined;\n const remoteLoaded = rc?.state === \"loaded\";\n\n if (!r) {\n return l\n ? {\n doc: l,\n diverged: true,\n local: false,\n remote: true,\n remoteLoaded,\n }\n : {\n doc: initial,\n diverged: false,\n local: false,\n remote: false,\n remoteLoaded,\n };\n } else if (!l) {\n return {\n doc: r,\n diverged: true,\n local: true,\n remote: false,\n remoteLoaded,\n };\n }\n\n const lh = Automerge.getHeads(l)[0];\n const rh = Automerge.getHeads(r)[0];\n const diverged = lh !== rh;\n\n return {\n doc: diverged\n ? Automerge.merge(Automerge.clone(l), Automerge.clone(r))\n : r,\n diverged,\n local: Automerge.hasHeads(r, [lh]),\n remote: Automerge.hasHeads(l, [rh]),\n remoteLoaded,\n };\n });\n\n const facets = state(\n computed(() => local()?.facets?.collection() ?? { state: \"loading\" }),\n remote.facets.collection,\n INITIAL_FACETS_DOCUMENT,\n );\n\n const playlistItems = state(\n computed(() =>\n local()?.playlistItems?.collection() ?? { state: \"loading\" }\n ),\n remote.playlistItems.collection,\n INITIAL_PLAYLIST_ITEMS_DOCUMENT,\n );\n\n const settings = state(\n computed(() => local()?.settings?.collection() ?? { state: \"loading\" }),\n remote.settings.collection,\n INITIAL_SETTINGS_DOCUMENT,\n );\n\n const tracks = state(\n computed(() => local()?.tracks?.collection() ?? { state: \"loading\" }),\n remote.tracks.collection,\n INITIAL_TRACKS_DOCUMENT,\n );\n\n this.facets = automergeEntry(\n computed(() => local()?.facets),\n remote.facets,\n computed(() => facets().doc),\n {\n stripUndefined: true,\n },\n \"facets\",\n );\n\n this.playlistItems = automergeEntry(\n computed(() => local()?.playlistItems),\n remote.playlistItems,\n computed(() => playlistItems().doc),\n undefined,\n \"playlistItems\",\n );\n\n this.settings = automergeEntry(\n computed(() => local()?.settings),\n remote.settings,\n computed(() => settings().doc),\n undefined,\n \"settings\",\n );\n\n this.tracks = automergeEntry(\n computed(() => local()?.tracks),\n remote.tracks,\n computed(() => tracks().doc),\n undefined,\n \"tracks\",\n );\n\n this.ready = () => true;\n\n // Effects\n this.effect(() => {\n const l = local();\n if (!l) return;\n\n this.effect(() => {\n if (!facets().remoteLoaded) return;\n const s = facets();\n if (s.diverged) {\n const bytes = Automerge.save(s.doc);\n if (l && s.local) l.facets.save(bytes);\n if (s.remote) remote.facets.save(bytes);\n }\n });\n\n this.effect(() => {\n if (!playlistItems().remoteLoaded) return;\n const s = playlistItems();\n if (s.diverged) {\n const bytes = Automerge.save(s.doc);\n if (l && s.local) l.playlistItems.save(bytes);\n if (s.remote) remote.playlistItems.save(bytes);\n }\n });\n\n this.effect(() => {\n if (!settings().remoteLoaded) return;\n const s = settings();\n if (s.diverged) {\n const bytes = Automerge.save(s.doc);\n if (l && s.local) l.settings.save(bytes);\n if (s.remote) remote.settings.save(bytes);\n }\n });\n\n this.effect(() => {\n if (!tracks().remoteLoaded) return;\n const s = tracks();\n if (s.diverged) {\n const bytes = Automerge.save(s.doc);\n if (l && s.local) l.tracks.save(bytes);\n if (s.remote) remote.tracks.save(bytes);\n }\n });\n });\n }\n\n // SIGNALS\n\n #localOutput = signal(\n /** @type {OutputElement | undefined} */ (undefined),\n );\n\n // LIFECYCLE\n\n /**\n * @override\n */\n connectedCallback() {\n super.connectedCallback();\n\n /** @type {OutputElement | null} */\n const local = this.root().querySelector(\"dop-indexed-db\");\n if (!local) throw new Error(\"Can't find local output\");\n\n // When defined\n customElements.whenDefined(local.localName).then(() => {\n this.#localOutput.value = local;\n });\n }\n\n // RENDER\n\n /**\n * @param {RenderArg} _\n */\n render({ html }) {\n return html`\n \n `;\n }\n}\n\nexport default AutomergeBytesOutputTransformer;\n\n////////////////////////////////////////////\n// 🛠️\n////////////////////////////////////////////\n\n/**\n * @template T\n * @param {Uint8Array | undefined} value\n * @returns {Automerge.Doc | undefined}\n */\nexport function loadDocument(value) {\n if (isUint8Array(value)) {\n return Automerge.load(value);\n } else if (value == undefined) {\n return undefined;\n } else {\n throw new Error(\"Invalid data type\");\n }\n}\n\n/**\n * @template {Record} T\n * @param {SignalReader<{ collection: SignalReader<{ state: \"loading\" } | { state: \"loaded\"; data: Uint8Array | undefined } | { state: \"error\" }>, reload: () => Promise, save: (bytes: Uint8Array) => Promise } | undefined>} local\n * @param {{ collection: SignalReader<{ state: \"loading\" } | { state: \"loaded\"; data: Uint8Array | undefined } | { state: \"error\" }>, reload: () => Promise, save: (bytes: Uint8Array) => Promise }} remote\n * @param {SignalReader} document\n * @param {{ stripUndefined?: boolean }} [opts]\n * @param {import(\"~/common/self-describing.js\").CollectionName} [name]\n * @returns {{ collection: SignalReader<{ state: \"loading\" } | { state: \"loaded\"; data: T[] } | { state: \"error\" }>, reload: () => Promise, save: (items: T[]) => Promise }}\n */\nexport function automergeEntry(local, remote, document, opts, name) {\n return {\n collection: computed(() => {\n const col = local()?.collection();\n if (!col || col.state !== \"loaded\") {\n return { state: col?.state ?? \"loading\" };\n }\n return { state: \"loaded\", data: document().collection };\n }),\n reload: remote.reload,\n save: async (/** @type {T[]} */ newItems) => {\n const schema = name ? collectionSchema(name) : null;\n const doc = Automerge.change(document(), (d) => {\n d.collection = newItems.map((item) => {\n const cloned = recursivelyCloneRecords(item);\n return opts?.stripUndefined\n ? removeUndefinedValuesFromRecord(cloned)\n : cloned;\n });\n if (schema) {\n d.$schema = schema;\n }\n });\n\n const bytes = Automerge.save(doc);\n await local()?.save(bytes);\n },\n };\n}\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = AutomergeBytesOutputTransformer;\nexport const NAME = \"dtob-automerge\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","automergeEntry","element_default","loadDocument","AutomergeBytesOutputTransformer","OutputTransformer","__name","remote","local","#localOutput","state","localCollection","remoteCollection","initial","computed","lc","rc","l","loadDocument","r","remoteLoaded","lh","le","rh","diverged","it","Ze","It","facets","INITIAL_FACETS_DOCUMENT","playlistItems","INITIAL_PLAYLIST_ITEMS_DOCUMENT","settings","INITIAL_SETTINGS_DOCUMENT","tracks","INITIAL_TRACKS_DOCUMENT","automergeEntry","s","bytes","st","signal","html","o","element_default","value","isUint8Array","ot","document","opts","name","col","newItems","schema","collectionSchema","doc","tt","d","item","cloned","recursivelyCloneRecords","removeUndefinedValuesFromRecord","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-K3ALFZSR.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js new file mode 100644 index 00000000..66b5f999 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js @@ -0,0 +1,3 @@ +import{a as d,b as f}from"./chunk-QAEP7ICV.js";import{c as u,d as h,h as l}from"./chunk-ZVWOBRJZ.js";import{e as o}from"./chunk-IA3NIKPO.js";import{j as c,o as a}from"./chunk-XILA3E7E.js";import{a as e,c as m}from"./chunk-75KFZLU6.js";var k={};m(k,{CLASS:()=>y,NAME:()=>p,default:()=>g});var n="diffuse/output/bytes/s3",i=class extends d{static{e(this,"S3Output")}static NAME="diffuse/output/bytes/s3";static WORKER_URL="components/output/bytes/s3/worker.js";#e;constructor(){super(),this.proxy=this.workerProxy(),this.#e=f({facets:{empty:e(()=>{},"empty"),get:e(()=>this.#s("facets"),"get"),put:e(t=>this.#i("facets",t),"put")},init:e(()=>this.whenConnected(),"init"),playlistItems:{empty:e(()=>{},"empty"),get:e(()=>this.#s("playlistItems"),"get"),put:e(t=>this.#i("playlistItems",t),"put")},settings:{empty:e(()=>{},"empty"),get:e(()=>this.#s("settings"),"get"),put:e(t=>this.#i("settings",t),"put")},tracks:{empty:e(()=>{},"empty"),get:e(()=>this.#s("tracks"),"get"),put:e(t=>this.#i("tracks",t),"put")}}),this.facets=this.#e.facets,this.playlistItems=this.#e.playlistItems,this.settings=this.#e.settings,this.tracks=this.#e.tracks}#n=a(navigator.onLine);ready=c(()=>this.#t.value!==void 0&&this.#n.value);async connectedCallback(){this.replicateSavedData(this.#e),super.connectedCallback();let t=await u(`${n}/bucket`);t&&(this.#t.value=t),globalThis.addEventListener("online",this.#u),globalThis.addEventListener("offline",this.#a)}disconnectedCallback(){globalThis.removeEventListener("online",this.#u),globalThis.removeEventListener("offline",this.#a)}#a=e(()=>this.#n.set(!1),"#offline");#u=e(()=>this.#n.set(!0),"#online");#t=a(void 0);bucket=this.#t.get;async getBucket(){if(!this.#t.value){let t=await u(`${n}/bucket`);return t&&(this.#t.value=t),t}return this.#t.value}async setBucket(t){this.#t.value=t,await h(`${n}/bucket`,t)}async unsetBucket(){this.#t.value=void 0,await l(`${n}/bucket`)}#s=e(async t=>{let s=await this.getBucket();if(s)return this.proxy.get({bucket:s,name:this.#r(t)})},"#get");#i=e(async(t,s)=>{let r=await this.getBucket();if(r)return this.proxy.put({bucket:r,data:s,name:this.#r(t)})},"#put");#r(t){let s=this.namespace;return`${s?.length?s+"/":""}${t}`}},g=i,y=i,p="dob-s3";o(p,i);export{g as a,y as b,p as c,k as d}; + +//# sourceMappingURL=./chunk-KCS3LSBQ.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js.br new file mode 100644 index 0000000000000000000000000000000000000000..432b5086996bf656a1892d4a7f9979200bb0252c GIT binary patch literal 834 zcmb2X$ieU=YSrKOpMwIpthZ-QRa{!8vo#CiD&=o^#6Zz|8=l#w%y*Ji%%I{ zGryK;&8)d#$;VqYk2VX=UiX+kDn_N~(VYaL$CG8GS7#W1s#rc__W7vV>ofP>w%!$M zZ(T7jyLzF=mYJ81+uS~MEu&j+>8anJPoMqw_vh|u+cY+6rB|Q6o-V%K{8pLS;i5gQ zih-53yYEEXMcFs~I?nO+)*^GG==i-Bb^B|gm?!>qb#Gr$wW;~xgQE8j6TO@6$vysh z@9M>)F0FZut1ARI|5IJ=nm7CGzU4o6?6^q`>m z{P#7oITd*~3kA$PxO0`BdvdMd#mfBkDjoZ#lmxfAtlfB@>*V~qN-sO2IyBZv3pTJ8 zax0yw)_msANL+6RqgsCIr2}10vZ?&@86JpEcW%! zo|Vg`ymi+qvY*lLs#>yjvMb%aCm)*oxST5bYrO#pN*6!rFl9G>iR(-wHa;^E&vy+Fu zl+3;-%l37x?v8Wc0_zfX-CZ?pvcQ4&D_6d{b;iJU2IJHAw%!nRwj0Gc=I;OaL#JCL z=C&Oxx-@q^r+f4cJT6KS3|PWq-sJV$;jYsK-`8t;d6H$OSQo}^ zsaU7Lm%3KrUjBJ6j_rIA;qzsjGCl~z$t+ZHXSw{Uzsc9`K*0J9JSZ0O4_c;S-bYCUZ{Q8>W6nfl}-PSG;i-BZOXZ_bd_JEx!8Dkjp)_Uo3Dp~X3~4OXjDZmfJ3_?H;~ DqJ5l0 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js.map new file mode 100644 index 00000000..9e96579f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KCS3LSBQ.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/output/bytes/s3/element.js"],"sourcesContent":["import * as IDB from \"idb-keyval\";\n\nimport { computed, signal } from \"~/common/signal.js\";\nimport { BroadcastedOutputElement, outputManager } from \"../../common.js\";\nimport { defineElement } from \"~/common/element.js\";\n\nconst STORAGE_PREFIX = \"diffuse/output/bytes/s3\";\n\n/**\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {OutputElement, OutputManager} from \"@specs/components/output/types.d.ts\"\n * @import {Bucket} from \"@specs/components/input/s3/types.d.ts\"\n * @import {S3OutputElement, S3OutputWorkerActions} from \"@specs/components/output/bytes/s3/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {OutputElement}\n * @implements {S3OutputElement}\n */\nclass S3Output extends BroadcastedOutputElement {\n static NAME = \"diffuse/output/bytes/s3\";\n static WORKER_URL = \"components/output/bytes/s3/worker.js\";\n\n #manager;\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n this.proxy = this.workerProxy();\n\n /** @type {OutputManager} */\n this.#manager = outputManager({\n facets: {\n empty: () => undefined,\n get: () => this.#get(\"facets\"),\n put: (data) => this.#put(\"facets\", data),\n },\n init: () => this.whenConnected(),\n playlistItems: {\n empty: () => undefined,\n get: () => this.#get(\"playlistItems\"),\n put: (data) => this.#put(\"playlistItems\", data),\n },\n settings: {\n empty: () => undefined,\n get: () => this.#get(\"settings\"),\n put: (data) => this.#put(\"settings\", data),\n },\n tracks: {\n empty: () => undefined,\n get: () => this.#get(\"tracks\"),\n put: (data) => this.#put(\"tracks\", data),\n },\n });\n\n this.facets = this.#manager.facets;\n this.playlistItems = this.#manager.playlistItems;\n this.settings = this.#manager.settings;\n this.tracks = this.#manager.tracks;\n }\n\n // SIGNALS\n\n #isOnline = signal(navigator.onLine);\n\n // STATE\n\n ready = computed(() => {\n return this.#bucket.value !== undefined && this.#isOnline.value;\n });\n\n // LIFECYCLE\n\n /**\n * @override\n */\n async connectedCallback() {\n this.replicateSavedData(this.#manager);\n\n super.connectedCallback();\n\n /** @type {Bucket | undefined} */\n const stored = await IDB.get(`${STORAGE_PREFIX}/bucket`);\n if (stored) this.#bucket.value = stored;\n\n globalThis.addEventListener(\"online\", this.#online);\n globalThis.addEventListener(\"offline\", this.#offline);\n }\n\n /** @override */\n disconnectedCallback() {\n globalThis.removeEventListener(\"online\", this.#online);\n globalThis.removeEventListener(\"offline\", this.#offline);\n }\n\n #offline = () => this.#isOnline.set(false);\n #online = () => this.#isOnline.set(true);\n\n // BUCKET\n\n #bucket = signal(/** @type {Bucket | undefined} */ (undefined));\n\n bucket = this.#bucket.get;\n\n /** @returns {Promise} */\n async getBucket() {\n if (!this.#bucket.value) {\n /** @type {Bucket | undefined} */\n const stored = await IDB.get(`${STORAGE_PREFIX}/bucket`);\n if (stored) this.#bucket.value = stored;\n return stored;\n }\n\n return this.#bucket.value;\n }\n\n /**\n * @param {Bucket} bucket\n */\n async setBucket(bucket) {\n this.#bucket.value = bucket;\n await IDB.set(`${STORAGE_PREFIX}/bucket`, bucket);\n }\n\n async unsetBucket() {\n this.#bucket.value = undefined;\n await IDB.del(`${STORAGE_PREFIX}/bucket`);\n }\n\n // GET & PUT\n\n /** @param {string} name */\n #get = async (name) => {\n const bucket = await this.getBucket();\n if (!bucket) return undefined;\n return this.proxy.get({ bucket, name: this.#cat(name) });\n };\n\n /** @param {string} name; @param {any} data */\n #put = async (name, data) => {\n const bucket = await this.getBucket();\n if (!bucket) return undefined;\n return this.proxy.put({ bucket, data, name: this.#cat(name) });\n };\n\n // 🛠️\n\n /** @param {string} name */\n #cat(name) {\n const ns = this.namespace;\n return `${ns?.length ? ns + \"/\" : \"\"}${name}`;\n }\n}\n\nexport default S3Output;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = S3Output;\nexport const NAME = \"dob-s3\";\n\ndefineElement(NAME, S3Output);\n"],"mappings":"2OAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAMA,IAAMC,EAAiB,0BAiBjBC,EAAN,cAAuBC,CAAyB,CAvBhD,MAuBgD,CAAAC,EAAA,iBAC9C,OAAO,KAAO,0BACd,OAAO,WAAa,uCAEpBC,GAEA,aAAc,CACZ,MAAM,EAGN,KAAK,MAAQ,KAAK,YAAY,EAG9B,KAAKA,GAAWC,EAAc,CAC5B,OAAQ,CACN,MAAOF,EAAA,IAAG,GAAH,SACP,IAAKA,EAAA,IAAM,KAAKG,GAAK,QAAQ,EAAxB,OACL,IAAKH,EAACI,GAAS,KAAKC,GAAK,SAAUD,CAAI,EAAlC,MACP,EACA,KAAMJ,EAAA,IAAM,KAAK,cAAc,EAAzB,QACN,cAAe,CACb,MAAOA,EAAA,IAAG,GAAH,SACP,IAAKA,EAAA,IAAM,KAAKG,GAAK,eAAe,EAA/B,OACL,IAAKH,EAACI,GAAS,KAAKC,GAAK,gBAAiBD,CAAI,EAAzC,MACP,EACA,SAAU,CACR,MAAOJ,EAAA,IAAG,GAAH,SACP,IAAKA,EAAA,IAAM,KAAKG,GAAK,UAAU,EAA1B,OACL,IAAKH,EAACI,GAAS,KAAKC,GAAK,WAAYD,CAAI,EAApC,MACP,EACA,OAAQ,CACN,MAAOJ,EAAA,IAAG,GAAH,SACP,IAAKA,EAAA,IAAM,KAAKG,GAAK,QAAQ,EAAxB,OACL,IAAKH,EAACI,GAAS,KAAKC,GAAK,SAAUD,CAAI,EAAlC,MACP,CACF,CAAC,EAED,KAAK,OAAS,KAAKH,GAAS,OAC5B,KAAK,cAAgB,KAAKA,GAAS,cACnC,KAAK,SAAW,KAAKA,GAAS,SAC9B,KAAK,OAAS,KAAKA,GAAS,MAC9B,CAIAK,GAAYC,EAAO,UAAU,MAAM,EAInC,MAAQC,EAAS,IACR,KAAKC,GAAQ,QAAU,QAAa,KAAKH,GAAU,KAC3D,EAOD,MAAM,mBAAoB,CACxB,KAAK,mBAAmB,KAAKL,EAAQ,EAErC,MAAM,kBAAkB,EAGxB,IAAMS,EAAS,MAAUC,EAAI,GAAGd,CAAc,SAAS,EACnDa,IAAQ,KAAKD,GAAQ,MAAQC,GAEjC,WAAW,iBAAiB,SAAU,KAAKE,EAAO,EAClD,WAAW,iBAAiB,UAAW,KAAKC,EAAQ,CACtD,CAGA,sBAAuB,CACrB,WAAW,oBAAoB,SAAU,KAAKD,EAAO,EACrD,WAAW,oBAAoB,UAAW,KAAKC,EAAQ,CACzD,CAEAA,GAAWb,EAAA,IAAM,KAAKM,GAAU,IAAI,EAAK,EAA9B,YACXM,GAAUZ,EAAA,IAAM,KAAKM,GAAU,IAAI,EAAI,EAA7B,WAIVG,GAAUF,EAA0C,MAAU,EAE9D,OAAS,KAAKE,GAAQ,IAGtB,MAAM,WAAY,CAChB,GAAI,CAAC,KAAKA,GAAQ,MAAO,CAEvB,IAAMC,EAAS,MAAUC,EAAI,GAAGd,CAAc,SAAS,EACvD,OAAIa,IAAQ,KAAKD,GAAQ,MAAQC,GAC1BA,CACT,CAEA,OAAO,KAAKD,GAAQ,KACtB,CAKA,MAAM,UAAUK,EAAQ,CACtB,KAAKL,GAAQ,MAAQK,EACrB,MAAUC,EAAI,GAAGlB,CAAc,UAAWiB,CAAM,CAClD,CAEA,MAAM,aAAc,CAClB,KAAKL,GAAQ,MAAQ,OACrB,MAAUO,EAAI,GAAGnB,CAAc,SAAS,CAC1C,CAKAM,GAAOH,EAAA,MAAOiB,GAAS,CACrB,IAAMH,EAAS,MAAM,KAAK,UAAU,EACpC,GAAKA,EACL,OAAO,KAAK,MAAM,IAAI,CAAE,OAAAA,EAAQ,KAAM,KAAKI,GAAKD,CAAI,CAAE,CAAC,CACzD,EAJO,QAOPZ,GAAOL,EAAA,MAAOiB,EAAMb,IAAS,CAC3B,IAAMU,EAAS,MAAM,KAAK,UAAU,EACpC,GAAKA,EACL,OAAO,KAAK,MAAM,IAAI,CAAE,OAAAA,EAAQ,KAAAV,EAAM,KAAM,KAAKc,GAAKD,CAAI,CAAE,CAAC,CAC/D,EAJO,QASPC,GAAKD,EAAM,CACT,IAAME,EAAK,KAAK,UAChB,MAAO,GAAGA,GAAI,OAASA,EAAK,IAAM,EAAE,GAAGF,CAAI,EAC7C,CACF,EAEOG,EAAQtB,EAMFuB,EAAQvB,EACRwB,EAAO,SAEpBC,EAAcD,EAAMxB,CAAQ","names":["element_exports","__export","CLASS","NAME","element_default","STORAGE_PREFIX","S3Output","BroadcastedOutputElement","__name","#manager","outputManager","#get","data","#put","#isOnline","signal","computed","#bucket","stored","get","#online","#offline","bucket","set","del","name","#cat","ns","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-KCS3LSBQ.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KOYRYCQG.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KOYRYCQG.js new file mode 100644 index 00000000..693b83af --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KOYRYCQG.js @@ -0,0 +1,3 @@ +import{b as s,e as o}from"./chunk-IA3NIKPO.js";import{a as e,c as n}from"./chunk-75KFZLU6.js";var i={};n(i,{CLASS:()=>c,NAME:()=>r,default:()=>a});var t=class extends s{static{e(this,"LastFmArtwork")}static NAME="diffuse/artwork/last.fm";static WORKER_URL="components/artwork/last.fm/worker.js";constructor(){super();let f=this.workerProxy();this.get=f.get}},a=t,c=t,r="da-lastfm";o(r,t);export{a,c as b,r as c,i as d}; + +//# sourceMappingURL=./chunk-KOYRYCQG.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KOYRYCQG.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KOYRYCQG.js.br new file mode 100644 index 0000000000000000000000000000000000000000..b34fa30359c86ab48720d3e0678915c0258551f3 GIT binary patch literal 277 zcmb1M%*gO$&e~tuT28Dd@4P!{JyZN^sC0#D%)BZFXQ>Sue80GRJ9l2tI1#bPRB!98 zpwihM)7PIcnZ1vdQ|P!^N@JRoQ0Uy#A17AVO{w2{^+!f_U0q30<-@77RttzcU{Uh& z*3qB$#(w@iT|=XKk&L-nu8d{ROI|-q^Yw`7e^B!}CqJ^uYsahuyt7PyoV7mrYh?Xx9=l7Le<-rMojtgVY2tDy8kU9?`Em81;4&$ m$#KD}\n */\nclass LastFmArtwork extends DiffuseElement {\n static NAME = \"diffuse/artwork/last.fm\";\n static WORKER_URL = \"components/artwork/last.fm/worker.js\";\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n const p = this.workerProxy();\n\n this.get = p.get;\n }\n}\n\nexport default LastFmArtwork;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = LastFmArtwork;\nexport const NAME = \"da-lastfm\";\n\ndefineElement(NAME, LastFmArtwork);\n"],"mappings":"8FAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAcA,IAAMC,EAAN,cAA4BC,CAAe,CAd3C,MAc2C,CAAAC,EAAA,sBACzC,OAAO,KAAO,0BACd,OAAO,WAAa,uCAEpB,aAAc,CACZ,MAAM,EAGN,IAAMC,EAAI,KAAK,YAAY,EAE3B,KAAK,IAAMA,EAAE,GACf,CACF,EAEOC,EAAQJ,EAMFK,EAAQL,EACRM,EAAO,YAEpBC,EAAcD,EAAMN,CAAa","names":["element_exports","__export","CLASS","NAME","element_default","LastFmArtwork","DiffuseElement","__name","p","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-KOYRYCQG.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js new file mode 120000 index 00000000..e87d65c4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-KQX3HL46.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js.br new file mode 120000 index 00000000..d463df8e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-KQX3HL46.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js.map new file mode 120000 index 00000000..622632ea --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KQX3HL46.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-KQX3HL46.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js new file mode 100644 index 00000000..377c6d45 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js @@ -0,0 +1,3 @@ +import{b as o}from"./chunk-75KFZLU6.js";var p=o((r,e)=>{e.exports={}});export{p as a}; + +//# sourceMappingURL=./chunk-KZNIRR3C.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js.br new file mode 120000 index 00000000..cd2d5a77 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-FESDLVUC.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js.map new file mode 100644 index 00000000..53ab9d03 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-KZNIRR3C.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node-modules-polyfills-empty:node:fs/promises"],"sourcesContent":["module.exports = {}"],"mappings":"wCAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,CAAAA,EAAO,QAAU,CAAC","names":["require_promises","__commonJSMin","exports","module"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-KZNIRR3C.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-L2DWBBFR.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-L2DWBBFR.js new file mode 100644 index 00000000..32365647 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-L2DWBBFR.js @@ -0,0 +1,58 @@ +import{b as s,e as o}from"./chunk-IA3NIKPO.js";import{a as i}from"./chunk-75KFZLU6.js";var e=class extends s{static{i(this,"WindowElement")}static observedAttributes=["open"];constructor(){super(),this.id=this.id?.length?this.id:crypto.randomUUID(),this.attachShadow({mode:"open"})}activate(){this.shadowRoot?.querySelector(".title-bar")?.classList.remove("inactive")}deactivate(){this.shadowRoot?.querySelector(".title-bar")?.classList.add("inactive")}render({html:t}){return t` + + + + + + +
+
+
+ +
+
+ +
+
+ + + +
+
+
+ +
+
+
+ `}titleBarMouseDown(t){let l=new CustomEvent("dtw-window-start-move",{bubbles:!0,composed:!0,detail:{element:this,x:t.x,xElement:t.layerX,y:t.y,yElement:t.layerY}});this.dispatchEvent(l)}},d=e,c=e,a="dtw-window";o(a,e);export{d as a,c as b,a as c}; + +//# sourceMappingURL=./chunk-L2DWBBFR.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-L2DWBBFR.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-L2DWBBFR.js.br new file mode 100644 index 0000000000000000000000000000000000000000..9d4b8ddf4e0efdd091da592aa234e8aef07cbb35 GIT binary patch literal 812 zcmb21%)#&^YSrJ*mAPg+ttGZekt~bi(LJYJu7xEcAPDn_s_!G zW}n4*>2}r5$i53Z%{+@amDPKL&Zmw? z?9-2${f(J=_m%OhT9)|J_6>HaI*$*Y&pZ}9ZEMWxtKVy1hu+<8x6SuTnb{Y$`OAL2 zefyAaZoxkv_4x9oM#5sh+$K)==J_P>T3r89^<&I-z6U31C;zFEix#Q4e9Y)fdCZ5D z{V9_lzTWwCtMJ=Dx1tkQu=B*5DE4<%$WQgU8x+zKdE(Zd4~C-44%F)$SnZcKKX>M) zN+0IboR9DG3wN0~ZFJ)>l>M$(sqXW|;amIB{re*;M71&{rNU1ff8g&a)oftG@iaNc zp@46Shs2(CmKxc#NJ+tfO&K`;$0kS!%sh&tZuidHB;fX%fm3n#f{3^AI%$UZszH7Z7x}JH}d6#H8Un| zTg+a2UgFQ5OP8#xX8pST?|X*U18LE{^3j@UXC;#T-+fg%x$aRBi}fh`h zBdj1QGmAm6G4F_?{Q~ZT`pFe$*A_XS@|oiB=F_w-%L6X=S;wbuJoV=B#AcPKg|iQB zRu+(4^gZMJkF~Kcn*t7Nvj!ZEDqLo|Ybx944HAx#H(!e6daN@3CUf%r@{ErC#cN(# zCSEAIu*#TW?b&OgHdmSNUN64c@+k86)qQaW8^ZlckGy+prqaA&Xxo>XS5?b~rO|-pV8^_lQUk>P9waVR3r_ML~vb>c0tK@Br0X{8l zhm^xoU$6Y|(`0U1%X#T(-))x|Kl~hN)$D6~?1cCKlqqF\n \n\n \n\n \n
\n \n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n \n
\n \n
\n `;\n }\n\n // EVENTS\n\n /**\n * @param {MouseEvent} mouse\n */\n titleBarMouseDown(mouse) {\n const event = new CustomEvent(\"dtw-window-start-move\", {\n bubbles: true,\n composed: true,\n detail: {\n element: this,\n x: mouse.x,\n xElement: mouse.layerX,\n y: mouse.y,\n yElement: mouse.layerY,\n },\n });\n\n this.dispatchEvent(event);\n }\n}\n\nexport default WindowElement;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = WindowElement;\nexport const NAME = \"dtw-window\";\n\ndefineElement(NAME, WindowElement);\n"],"mappings":"uFAUA,IAAMA,EAAN,cAA4BC,CAAe,CAV3C,MAU2C,CAAAC,EAAA,sBACzC,OAAO,mBAAqB,CAAC,MAAM,EAEnC,aAAc,CACZ,MAAM,EAEN,KAAK,GAAK,KAAK,IAAI,OAAS,KAAK,GAAK,OAAO,WAAW,EACxD,KAAK,aAAa,CAAE,KAAM,MAAO,CAAC,CACpC,CAIA,UAAW,CACT,KAAK,YAAY,cAAc,YAAY,GAAG,UAAU,OAAO,UAAU,CAC3E,CAEA,YAAa,CACX,KAAK,YAAY,cAAc,YAAY,GAAG,UAAU,IAAI,UAAU,CACxE,CAOA,OAAO,CAAE,KAAAC,CAAK,EAAG,CACf,OAAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAgCY,KAAK,aAAa,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,0BAItB,KAAK,kBAAkB,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mDAWR,IACnC,KAAK,gBAAgB,MAAM,CAAC;AAAA;AAAA;AAAA,4CAGA,KAAK,aAAa,cAAc,GAChE,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,KAMZ,CAOA,kBAAkBC,EAAO,CACvB,IAAMC,EAAQ,IAAI,YAAY,wBAAyB,CACrD,QAAS,GACT,SAAU,GACV,OAAQ,CACN,QAAS,KACT,EAAGD,EAAM,EACT,SAAUA,EAAM,OAChB,EAAGA,EAAM,EACT,SAAUA,EAAM,MAClB,CACF,CAAC,EAED,KAAK,cAAcC,CAAK,CAC1B,CACF,EAEOC,EAAQN,EAMFO,EAAQP,EACRQ,EAAO,aAEpBC,EAAcD,EAAMR,CAAa","names":["WindowElement","DiffuseElement","__name","html","mouse","event","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-L2DWBBFR.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js new file mode 100644 index 00000000..9ba7dca5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js @@ -0,0 +1,3 @@ +import{d as x,j as _}from"./chunk-FHQAE777.js";import{A,B as g,F as B,G as L,H as N,I as v,d as z,f as O,g as u,h as D,j as m,n as i}from"./chunk-PHFIOWBZ.js";import{a as n,d as M}from"./chunk-75KFZLU6.js";var S=M(O());var G=/^[\x21-\x7e©][\x20-\x7e\x00()]{3}/,F={len:4,get:n((t,e)=>{let r=u(t.subarray(e,e+F.len),"latin1");if(!r.match(G))throw new B(`FourCC contains invalid characters: ${_(r)} "${r}"`);return r},"get"),put:n((t,e,r)=>{let a=D(r,"latin1");if(a.length!==4)throw new L("Invalid length");return t.set(a,e),e+4},"put")};var T={text_utf8:0,binary:1,external_info:2,reserved:3},P={len:52,get:n((t,e)=>({ID:F.get(t,e),version:i.get(t,e+4)/1e3,descriptorBytes:i.get(t,e+8),headerBytes:i.get(t,e+12),seekTableBytes:i.get(t,e+16),headerDataBytes:i.get(t,e+20),apeFrameDataBytes:i.get(t,e+24),apeFrameDataBytesHigh:i.get(t,e+28),terminatingDataBytes:i.get(t,e+32),fileMD5:new A(16).get(t,e+36)}),"get")},H={len:24,get:n((t,e)=>({compressionLevel:m.get(t,e),formatFlags:m.get(t,e+2),blocksPerFrame:i.get(t,e+4),finalFrameBlocks:i.get(t,e+8),totalFrames:i.get(t,e+12),bitsPerSample:m.get(t,e+16),channel:m.get(t,e+18),sampleRate:i.get(t,e+20)}),"get")},s={len:32,get:n((t,e)=>({ID:new g(8,"ascii").get(t,e),version:i.get(t,e+8),size:i.get(t,e+12),fields:i.get(t,e+16),flags:f(i.get(t,e+20))}),"get")},E={len:8,get:n((t,e)=>({size:i.get(t,e),flags:f(i.get(t,e+4))}),"get")};function f(t){return{containsHeader:y(t,31),containsFooter:y(t,30),isHeader:y(t,29),readOnly:y(t,0),dataType:(t&6)>>1}}n(f,"parseTagFlags");function y(t,e){return(t&1<1?e.blocksPerFrame*(e.totalFrames-1):0;return r+=e.finalFrameBlocks,r/e.sampleRate}static async findApeFooterOffset(e,r){let a=new Uint8Array(s.len),d=e.position;if(r<=s.len){p(`Offset is too small to read APE footer: offset=${r}`);return}if(r>s.len){await e.readBuffer(a,{position:r-s.len}),e.setPosition(d);let o=s.get(a,0);if(o.ID==="APETAGEX")return o.flags.isHeader?p(`APE Header found at offset=${r-s.len}`):(p(`APE Footer found at offset=${r-s.len}`),r-=o.size),{footer:o,offset:r}}}static parseTagFooter(e,r,a){let d=s.get(r,r.length-s.len);if(d.ID!==C)throw new h("Unexpected APEv2 Footer ID preamble value");return z(r),new t(e,z(r),a).parseTags(d)}async tryParseApeHeader(){if(this.tokenizer.fileInfo.size&&this.tokenizer.fileInfo.size-this.tokenizer.position0?this.parseDescriptorExpansion(r):this.parseHeader());return this.metadata.setAudioOnly(),await this.tokenizer.ignore(a.forwardBytes),this.tryParseApeHeader()}async parseTags(e){let r=new Uint8Array(256),a=e.size-s.len;p(`Parse APE tags at offset=${this.tokenizer.position}, size=${a}`);for(let d=0;dthis.metadata.addTag($,c,I)));break}case T.binary:if(this.options.skipCovers)await this.tokenizer.ignore(o.size);else{let l=new Uint8Array(o.size);await this.tokenizer.readBuffer(l),k=x(l);let w=u(l.subarray(0,k),"utf-8"),I=l.subarray(k+1);await this.metadata.addTag($,c,{description:w,data:I})}break;case T.external_info:p(`Ignore external info ${c}`),await this.tokenizer.ignore(o.size);break;case T.reserved:p(`Ignore external info ${c}`),this.metadata.addWarning(`APEv2 header declares a reserved datatype for "${c}"`),await this.tokenizer.ignore(o.size);break}}}async parseDescriptorExpansion(e){return await this.tokenizer.ignore(e),this.parseHeader()}async parseHeader(){let e=await this.tokenizer.readToken(H);if(this.metadata.setFormat("lossless",!0),this.metadata.setFormat("container","Monkey's Audio"),this.metadata.setFormat("bitsPerSample",e.bitsPerSample),this.metadata.setFormat("sampleRate",e.sampleRate),this.metadata.setFormat("numberOfChannels",e.channel),this.metadata.setFormat("duration",t.calculateDuration(e)),!this.ape.descriptor)throw new h("Missing APE descriptor");return{forwardBytes:this.ape.descriptor.seekTableBytes+this.ape.descriptor.headerDataBytes+this.ape.descriptor.apeFrameDataBytes+this.ape.descriptor.terminatingDataBytes}}};export{F as a,h as b,ae as c,U as d}; + +//# sourceMappingURL=./chunk-LINMKWZS.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js.br new file mode 100644 index 0000000000000000000000000000000000000000..4660e94d18b2251bc4a259cc15a4af598af91be7 GIT binary patch literal 2032 zcmb1k7G-!+KR4{J>C`p8zn=HYsLA#0;VWEho|=7zy||gx|HQ=Qn|3VQYk$2e`k%wE zDQhQ`macpEeXol3VfHWP)!*3#CcTk+8`~HlXu;I^cr{Po`zzN1Y^>8=Tv_DaczCz$ z*wZ(2-3`J2d;9-?tgTUTcx?I!CKX(&~ii?&1udTRpME1diTfT)=f|8GPK5;#t zXuiYa&BpsDB!$20E>qofxYttd%-uzriZ^FeN1j{Wy*<9|eyMNvtT^X5^P5kfy?XlP z_iF#^8!9&2ueknbEkoN&=+0SX zr7j$oRetMBej+Y==aRIF8O)DV*@ESnd&vTf`4dK2aX>1df5 z3z?<6u5P(;^Wuy6>0p2X8#1G3&6{W9wBDY}ftg;GXyK_|~sAOT%a1YqC*2&Ujij zKXc3W@(WoyI_kUh%Kh&yTX^MZ@_p@t;?BZS?fjp2`h`7dabsHYY^i(PI~jKU1Nr|} zWVyS4Pk%n?_J-c?GcSGYH(wGht0)Q)e45YbFSKIKn|CFQwX^;O{=Ulct@N^X-`30h zxp&R3tM1hLfBSB1oZ0zHys>w6|LyR#G42jDeY@)IqHcTRD}SqMMAx0vWxlwRt!rQQ zhYdI89p5SN{l?xWuajOg)hTJ8(Y_Tdm*?7LzoX3j?XsPIt5?lS6ThJSCB%EvD&e|87wuUZxN zg0JK4dcUK(MX_r)_cUuA>_|U#?ugkh+of3&ohSJGS)wnMURL?CO@r;@+cl3qo$8!Z zU?<48?9DAr0g)*Ac`b*#`4U7K_vejsNlXrJI+ly5C!%veR}yLw<|e zldUC9*VM1cluPe>&KYr(uR;E$iHvfqXu#sX4HJTz@?AcBX?jHUx79#A(e#p!(X5&haS)X+?qE&SJH!9A5!J)*QA24a! z&iu(NECGvHB0eOl7{4oHs7hn4Fivvaq_ZgV?tpL?4Uir-0r%7kLysN6`3wN`$S|t3?(Mb?rz+IuR-qFY`s#9Xm zryr5x>o*_q;*p%hpPs%+=#9dPV<+W5UtTVfcu+Jt=eghBqCdWdQ$L;krQ`0V#@D6t z;$qUwb~E+6-uj+i^QSC!Si|5hv}n>|&#a{WEr<6j+9pbEW>XPRNePH|F=PolpT@OZ z&T$#fE1`&xGod1}a~@_~>5HxY&*}Ya`}!77)}vx)zN!a)_7m&MnW}7h)?eRf}c&M@##ZfQa!KKnwnCI-)d4Zx&j=n02Ffxwc8_k!c{;6c&@?L(0 zp55%*WeOIq@~_V*WBV|7XY6i?4!<5}0Xrc*n~Fpe_pXwi%SBcnHOURTeqh(l$5p+| ztfyV&9KH8(zucpsy!61;xDVo+dxDReyq4`1sF&t?=lN>SdFEp~*M8aX;C04U8x@Ox zVFKTNS$UT2;n;E6BD}irhVz?iejjYTZ!F)fblfevNlEkU^|T33PsG1}^eJ7`xhbmB z+p=}v9OaYEj?&zQwtG0-oAynRwSS*$Cl!VE`K9TlGv_p{XWH?y zzG04mCJSdt)SR%u!wFkA92eNRI(Vz+vRk)5)`z@*@WcMM-T4pq+)M5><;<8>^?%cE SIn&xV>por%Eq}9kKLY?Hqx7Kw literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js.map new file mode 100644 index 00000000..82a15a55 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LINMKWZS.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/apev2/APEv2Parser.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/common/FourCC.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/apev2/APEv2Token.js"],"sourcesContent":["import initDebug from 'debug';\nimport * as strtok3 from 'strtok3';\nimport { StringType } from 'token-types';\nimport * as util from '../common/Util.js';\nimport { BasicParser } from '../common/BasicParser.js';\nimport { DataType, DescriptorParser, Header, TagFooter, TagItemHeader } from './APEv2Token.js';\nimport { makeUnexpectedFileContentError } from '../ParseError.js';\nimport { textDecode } from '@borewit/text-codec';\nconst debug = initDebug('music-metadata:parser:APEv2');\nconst tagFormat = 'APEv2';\nconst preamble = 'APETAGEX';\nexport class ApeContentError extends makeUnexpectedFileContentError('APEv2') {\n}\nexport function tryParseApeHeader(metadata, tokenizer, options) {\n const apeParser = new APEv2Parser(metadata, tokenizer, options);\n return apeParser.tryParseApeHeader();\n}\nexport class APEv2Parser extends BasicParser {\n constructor() {\n super(...arguments);\n this.ape = {};\n }\n /**\n * Calculate the media file duration\n * @param ah ApeHeader\n * @return {number} duration in seconds\n */\n static calculateDuration(ah) {\n let duration = ah.totalFrames > 1 ? ah.blocksPerFrame * (ah.totalFrames - 1) : 0;\n duration += ah.finalFrameBlocks;\n return duration / ah.sampleRate;\n }\n /**\n * Calculates the APEv1 / APEv2 first field offset\n * @param tokenizer\n * @param offset\n */\n static async findApeFooterOffset(tokenizer, offset) {\n // Search for APE footer header at the end of the file\n const apeBuf = new Uint8Array(TagFooter.len);\n const position = tokenizer.position;\n if (offset <= TagFooter.len) {\n debug(`Offset is too small to read APE footer: offset=${offset}`);\n return undefined;\n }\n if (offset > TagFooter.len) {\n await tokenizer.readBuffer(apeBuf, { position: offset - TagFooter.len });\n tokenizer.setPosition(position);\n const tagFooter = TagFooter.get(apeBuf, 0);\n if (tagFooter.ID === 'APETAGEX') {\n if (tagFooter.flags.isHeader) {\n debug(`APE Header found at offset=${offset - TagFooter.len}`);\n }\n else {\n debug(`APE Footer found at offset=${offset - TagFooter.len}`);\n offset -= tagFooter.size;\n }\n return { footer: tagFooter, offset };\n }\n }\n }\n static parseTagFooter(metadata, buffer, options) {\n const footer = TagFooter.get(buffer, buffer.length - TagFooter.len);\n if (footer.ID !== preamble)\n throw new ApeContentError('Unexpected APEv2 Footer ID preamble value');\n strtok3.fromBuffer(buffer);\n const apeParser = new APEv2Parser(metadata, strtok3.fromBuffer(buffer), options);\n return apeParser.parseTags(footer);\n }\n /**\n * Parse APEv1 / APEv2 header if header signature found\n */\n async tryParseApeHeader() {\n if (this.tokenizer.fileInfo.size && this.tokenizer.fileInfo.size - this.tokenizer.position < TagFooter.len) {\n debug(\"No APEv2 header found, end-of-file reached\");\n return;\n }\n const footer = await this.tokenizer.peekToken(TagFooter);\n if (footer.ID === preamble) {\n await this.tokenizer.ignore(TagFooter.len);\n return this.parseTags(footer);\n }\n debug(`APEv2 header not found at offset=${this.tokenizer.position}`);\n if (this.tokenizer.fileInfo.size) {\n // Try to read the APEv2 header using just the footer-header\n const remaining = this.tokenizer.fileInfo.size - this.tokenizer.position; // ToDo: take ID3v1 into account\n const buffer = new Uint8Array(remaining);\n await this.tokenizer.readBuffer(buffer);\n return APEv2Parser.parseTagFooter(this.metadata, buffer, this.options);\n }\n }\n async parse() {\n const descriptor = await this.tokenizer.readToken(DescriptorParser);\n if (descriptor.ID !== 'MAC ')\n throw new ApeContentError('Unexpected descriptor ID');\n this.ape.descriptor = descriptor;\n const lenExp = descriptor.descriptorBytes - DescriptorParser.len;\n const header = await (lenExp > 0 ? this.parseDescriptorExpansion(lenExp) : this.parseHeader());\n this.metadata.setAudioOnly();\n await this.tokenizer.ignore(header.forwardBytes);\n return this.tryParseApeHeader();\n }\n async parseTags(footer) {\n const keyBuffer = new Uint8Array(256); // maximum tag key length\n let bytesRemaining = footer.size - TagFooter.len;\n debug(`Parse APE tags at offset=${this.tokenizer.position}, size=${bytesRemaining}`);\n for (let i = 0; i < footer.fields; i++) {\n if (bytesRemaining < TagItemHeader.len) {\n this.metadata.addWarning(`APEv2 Tag-header: ${footer.fields - i} items remaining, but no more tag data to read.`);\n break;\n }\n // Only APEv2 tag has tag item headers\n const tagItemHeader = await this.tokenizer.readToken(TagItemHeader);\n bytesRemaining -= TagItemHeader.len + tagItemHeader.size;\n await this.tokenizer.peekBuffer(keyBuffer, { length: Math.min(keyBuffer.length, bytesRemaining) });\n let zero = util.findZero(keyBuffer);\n const key = await this.tokenizer.readToken(new StringType(zero, 'ascii'));\n await this.tokenizer.ignore(1);\n bytesRemaining -= key.length + 1;\n switch (tagItemHeader.flags.dataType) {\n case DataType.text_utf8: { // utf-8 text-string\n const value = await this.tokenizer.readToken(new StringType(tagItemHeader.size, 'utf8'));\n const values = value.split(/\\x00/g);\n await Promise.all(values.map(val => this.metadata.addTag(tagFormat, key, val)));\n break;\n }\n case DataType.binary: // binary (probably artwork)\n if (this.options.skipCovers) {\n await this.tokenizer.ignore(tagItemHeader.size);\n }\n else {\n const picData = new Uint8Array(tagItemHeader.size);\n await this.tokenizer.readBuffer(picData);\n zero = util.findZero(picData);\n const description = textDecode(picData.subarray(0, zero), 'utf-8');\n const data = picData.subarray(zero + 1);\n await this.metadata.addTag(tagFormat, key, {\n description,\n data\n });\n }\n break;\n case DataType.external_info:\n debug(`Ignore external info ${key}`);\n await this.tokenizer.ignore(tagItemHeader.size);\n break;\n case DataType.reserved:\n debug(`Ignore external info ${key}`);\n this.metadata.addWarning(`APEv2 header declares a reserved datatype for \"${key}\"`);\n await this.tokenizer.ignore(tagItemHeader.size);\n break;\n }\n }\n }\n async parseDescriptorExpansion(lenExp) {\n await this.tokenizer.ignore(lenExp);\n return this.parseHeader();\n }\n async parseHeader() {\n const header = await this.tokenizer.readToken(Header);\n // ToDo before\n this.metadata.setFormat('lossless', true);\n this.metadata.setFormat('container', 'Monkey\\'s Audio');\n this.metadata.setFormat('bitsPerSample', header.bitsPerSample);\n this.metadata.setFormat('sampleRate', header.sampleRate);\n this.metadata.setFormat('numberOfChannels', header.channel);\n this.metadata.setFormat('duration', APEv2Parser.calculateDuration(header));\n if (!this.ape.descriptor) {\n throw new ApeContentError('Missing APE descriptor');\n }\n return {\n forwardBytes: this.ape.descriptor.seekTableBytes + this.ape.descriptor.headerDataBytes +\n this.ape.descriptor.apeFrameDataBytes + this.ape.descriptor.terminatingDataBytes\n };\n }\n}\n","import { textDecode, textEncode } from '@borewit/text-codec';\nimport * as util from './Util.js';\nimport { InternalParserError, FieldDecodingError } from '../ParseError.js';\nconst validFourCC = /^[\\x21-\\x7e©][\\x20-\\x7e\\x00()]{3}/;\n/**\n * Token for read FourCC\n * Ref: https://en.wikipedia.org/wiki/FourCC\n */\nexport const FourCcToken = {\n len: 4,\n get: (buf, off) => {\n const id = textDecode(buf.subarray(off, off + FourCcToken.len), 'latin1');\n if (!id.match(validFourCC)) {\n throw new FieldDecodingError(`FourCC contains invalid characters: ${util.a2hex(id)} \"${id}\"`);\n }\n return id;\n },\n put: (buffer, offset, id) => {\n const str = textEncode(id, 'latin1');\n if (str.length !== 4)\n throw new InternalParserError('Invalid length');\n buffer.set(str, offset);\n return offset + 4;\n }\n};\n","import * as Token from 'token-types';\nimport { FourCcToken } from '../common/FourCC.js';\nexport const DataType = {\n text_utf8: 0,\n binary: 1,\n external_info: 2,\n reserved: 3\n};\n/**\n * APE_DESCRIPTOR: defines the sizes (and offsets) of all the pieces, as well as the MD5 checksum\n */\nexport const DescriptorParser = {\n len: 52,\n get: (buf, off) => {\n return {\n // should equal 'MAC '\n ID: FourCcToken.get(buf, off),\n // versionIndex number * 1000 (3.81 = 3810) (remember that 4-byte alignment causes this to take 4-bytes)\n version: Token.UINT32_LE.get(buf, off + 4) / 1000,\n // the number of descriptor bytes (allows later expansion of this header)\n descriptorBytes: Token.UINT32_LE.get(buf, off + 8),\n // the number of header APE_HEADER bytes\n headerBytes: Token.UINT32_LE.get(buf, off + 12),\n // the number of header APE_HEADER bytes\n seekTableBytes: Token.UINT32_LE.get(buf, off + 16),\n // the number of header data bytes (from original file)\n headerDataBytes: Token.UINT32_LE.get(buf, off + 20),\n // the number of bytes of APE frame data\n apeFrameDataBytes: Token.UINT32_LE.get(buf, off + 24),\n // the high order number of APE frame data bytes\n apeFrameDataBytesHigh: Token.UINT32_LE.get(buf, off + 28),\n // the terminating data of the file (not including tag data)\n terminatingDataBytes: Token.UINT32_LE.get(buf, off + 32),\n // the MD5 hash of the file (see notes for usage... it's a little tricky)\n fileMD5: new Token.Uint8ArrayType(16).get(buf, off + 36)\n };\n }\n};\n/**\n * APE_HEADER: describes all of the necessary information about the APE file\n */\nexport const Header = {\n len: 24,\n get: (buf, off) => {\n return {\n // the compression level (see defines I.E. COMPRESSION_LEVEL_FAST)\n compressionLevel: Token.UINT16_LE.get(buf, off),\n // any format flags (for future use)\n formatFlags: Token.UINT16_LE.get(buf, off + 2),\n // the number of audio blocks in one frame\n blocksPerFrame: Token.UINT32_LE.get(buf, off + 4),\n // the number of audio blocks in the final frame\n finalFrameBlocks: Token.UINT32_LE.get(buf, off + 8),\n // the total number of frames\n totalFrames: Token.UINT32_LE.get(buf, off + 12),\n // the bits per sample (typically 16)\n bitsPerSample: Token.UINT16_LE.get(buf, off + 16),\n // the number of channels (1 or 2)\n channel: Token.UINT16_LE.get(buf, off + 18),\n // the sample rate (typically 44100)\n sampleRate: Token.UINT32_LE.get(buf, off + 20)\n };\n }\n};\n/**\n * APE Tag Header/Footer Version 2.0\n * TAG: describes all the properties of the file [optional]\n */\nexport const TagFooter = {\n len: 32,\n get: (buf, off) => {\n return {\n // should equal 'APETAGEX'\n ID: new Token.StringType(8, 'ascii').get(buf, off),\n // equals CURRENT_APE_TAG_VERSION\n version: Token.UINT32_LE.get(buf, off + 8),\n // the complete size of the tag, including this footer (excludes header)\n size: Token.UINT32_LE.get(buf, off + 12),\n // the number of fields in the tag\n fields: Token.UINT32_LE.get(buf, off + 16),\n // reserved for later use (must be zero),\n flags: parseTagFlags(Token.UINT32_LE.get(buf, off + 20))\n };\n }\n};\n/**\n * APE Tag v2.0 Item Header\n */\nexport const TagItemHeader = {\n len: 8,\n get: (buf, off) => {\n return {\n // Length of assigned value in bytes\n size: Token.UINT32_LE.get(buf, off),\n // reserved for later use (must be zero),\n flags: parseTagFlags(Token.UINT32_LE.get(buf, off + 4))\n };\n }\n};\nexport function parseTagFlags(flags) {\n return {\n containsHeader: isBitSet(flags, 31),\n containsFooter: isBitSet(flags, 30),\n isHeader: isBitSet(flags, 29),\n readOnly: isBitSet(flags, 0),\n dataType: (flags & 6) >> 1\n };\n}\n/**\n * @param num {number}\n * @param bit 0 is least significant bit (LSB)\n * @return {boolean} true if bit is 1; otherwise false\n */\nexport function isBitSet(num, bit) {\n return (num & 1 << bit) !== 0;\n}\n"],"mappings":"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","names":["import_debug","validFourCC","FourCcToken","__name","buf","off","id","textDecode","FieldDecodingError","a2hex","buffer","offset","str","textEncode","InternalParserError","DataType","DescriptorParser","__name","buf","off","FourCcToken","UINT32_LE","Uint8ArrayType","Header","UINT16_LE","TagFooter","StringType","parseTagFlags","TagItemHeader","flags","isBitSet","num","bit","debug","initDebug","tagFormat","preamble","ApeContentError","makeUnexpectedFileContentError","__name","tryParseApeHeader","metadata","tokenizer","options","APEv2Parser","_APEv2Parser","BasicParser","ah","duration","offset","apeBuf","TagFooter","position","tagFooter","buffer","footer","fromBuffer","remaining","descriptor","DescriptorParser","lenExp","header","keyBuffer","bytesRemaining","i","TagItemHeader","tagItemHeader","zero","findZero","key","StringType","DataType","values","val","picData","description","textDecode","data","Header"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-LINMKWZS.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js new file mode 100644 index 00000000..35c873f7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js @@ -0,0 +1,3 @@ +import{c as m,e as g,f as c,g as l}from"./chunk-IA3NIKPO.js";import{o as f}from"./chunk-XILA3E7E.js";import{a as d,c as k}from"./chunk-75KFZLU6.js";var b={};k(b,{CLASS:()=>S,NAME:()=>p,default:()=>v});var o=class extends m{static{d(this,"MediaSessionOrchestrator")}static NAME="diffuse/orchestrator/media-session";#t=null;#e=f(!0);async connectedCallback(){this.hasAttribute("group")&&this.broadcast(this.identifier,{}),super.connectedCallback(),"mediaSession"in navigator&&(this.audio=c(this,"audio-engine-selector"),this.queue=c(this,"queue-engine-selector"),this.output=l(this,"output-selector"),this.artwork=l(this,"artwork-selector"),await Promise.all([customElements.whenDefined(this.audio.localName),customElements.whenDefined(this.queue.localName),this.output&&customElements.whenDefined(this.output.localName),this.artwork&&customElements.whenDefined(this.artwork.localName)].filter(Boolean)),this.effect(()=>{this.isLeader()?.then(i=>this.#e.set(i))}),this.#n(),this.effect(()=>this.#i()),this.effect(()=>this.#a()),this.effect(()=>this.#s()))}async#i(){if(!this.queue)return;let t=this.queue.now(),i=this.output?.tracks.collection(),a=t&&i?.state==="loaded"?i.data.find(r=>r.id===t.id):void 0;if(!a){this.#t&&(URL.revokeObjectURL(this.#t),this.#t=null),navigator.mediaSession.metadata=null;return}let e=a.tags??{};if(navigator.mediaSession.metadata=new MediaMetadata({title:e.title??"",artist:e.artist??e.albumartist??"",album:e.album??"",artwork:[]}),this.artwork){let r=this.artwork,n=null;try{n=await r.get(a)}catch{n=null}if(n&&navigator.mediaSession.metadata){let h=q(n),w=new Blob([n.buffer],{type:h}),u=URL.createObjectURL(w);if(this.queue.now()?.id!==t?.id){URL.revokeObjectURL(u);return}this.#t&&URL.revokeObjectURL(this.#t),this.#t=u,navigator.mediaSession.metadata=new MediaMetadata({title:e.title??"",artist:e.artist??e.albumartist??"",album:e.album??"",artwork:[{src:u,type:h}]})}}}#a(){this.audio&&(navigator.mediaSession.playbackState=this.audio.isPlaying()?"playing":"paused")}#s(){if(!this.audio||!this.queue)return;let t=this.queue.now();if(!t)return;let i=this.audio.state(t.id);if(!i)return;let a=i.duration(),e=i.progress();if(!(!a||isNaN(a)||a===0)&&navigator.mediaSession.playbackState!=="none")try{navigator.mediaSession.setPositionState({duration:a,position:Math.min(a*e,a),playbackRate:1})}catch{}}#n(){navigator.mediaSession.setActionHandler("play",()=>{if(!this.audio||!this.queue||!this.#e.value)return;let t=this.queue.now();t&&this.audio.play({audioId:t.id})}),navigator.mediaSession.setActionHandler("pause",()=>{if(!this.audio||!this.queue||!this.#e.value)return;let t=this.queue.now();t&&this.audio.pause({audioId:t.id})}),navigator.mediaSession.setActionHandler("previoustrack",()=>{this.queue&&this.#e.value&&this.queue.unshift()}),navigator.mediaSession.setActionHandler("nexttrack",()=>{this.queue&&this.#e.value&&this.queue.shift()}),navigator.mediaSession.setActionHandler("seekto",t=>{if(!this.audio||!this.queue||!this.#e.value)return;let i=this.queue.now();if(!i||t.seekTime==null)return;let e=this.audio.state(i.id)?.duration();!e||e===0||this.audio.seek({audioId:i.id,percentage:t.seekTime/e})})}},v=o;function q(s){return s[0]===255&&s[1]===216?"image/jpeg":s[0]===137&&s[1]===80?"image/png":s[0]===71&&s[1]===73?"image/gif":s[0]===82&&s[1]===73?"image/webp":"image/jpeg"}d(q,"detectMime");var S=o,p="do-media-session";g(p,o);export{v as a,S as b,p as c,b as d}; + +//# sourceMappingURL=./chunk-LNJMJLZE.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js.br new file mode 100644 index 0000000000000000000000000000000000000000..ecb395c651f809dc6e568257aa0bd156955f2241 GIT binary patch literal 1227 zcmb1+=4E&iwe8pY=b{_6Sfh1cotYcr|Lo4=9fn)F+)prEoU8O_>$mLt%ams|g=cSZ zdAzpfc618s_mq9*9bOs&C)G|0tu<)z;b}Q#x$TSb%H3ky5(U)wdP|qpY-8PZOeaAu z_^?w>Q0M%Vq8R<%X|`2$r9YniJYAmu^wj1}4D;uv&oi5ze?C4|_TJokKc`$_$e&j_ zO=bCU{rP_?zW!wCe86qovohwh%2mfO7A($_h~YL4SiJ)_)bpU+*su`D@x z-pYyk3!A4NZkU^pr_tV0Y&WAL=wyZ354|P%SJDnYE7DV9+WREv=jsKulZ-n}3?@GR z$f%ec^ZDta2W{thEjv6LtaMel@AKw(U(rmPwdS?^J&&%#vsP|=#>ltPE$gg1H=CnA z+sTc;3m)HH;Z4`(NhDfm0%vftw6D>&DbH0WY&lo%bzbDX$;Qg?{Yz#0o?X9|=V7`i z;*rdun3bK^VzU2e2hEZZpZdj~_s#>?C$Y|x<}sN&E&0RFBONEyX*=cNqZz(WzXqvn zbz9o9__UeDsiQ%mdiv%fn;Pcq+qAJ-?|{PZ6xG;;-!A>+PW~vn$l%G&l}ldkb?G=^ z7M6KwjnSt3*oa;0&5PT`{iJ$39Hn%-=9*f~p7Nt0HF7<#^SsaJ<>Nfvt#_-1-~96P zu=cz|=arK-s514W^qI)3?OvgH{F1Yx(xz;gHtmcR zF9q*7=UlktX1R00fvFKXQ$>SYg=3>ne%59*&guNVM{tAsm#43L=YE{uJE!!s<<9#8 zzkSMdr+GTG8!bFN%k%g*QGWMQ$so_g>>Urkw<(?4wBU7W_=FU@uZQd3JH+f=TwZ#S zv3l1ZKc%H9m75ot-wv7gI<$6oApgF3wI;&K*RwDED3|`4FpE`OH2eRy%}rZZsRf*K zF-ka`QMm8z%WCdpYG&$7W+w|Aa67%j_t6!}Ga9XKug+;Y=c}1)3UlKAfA@#O*S#O} zuSl4`cZkdvrp|)EupFxmTPi z{Rcec{!h2R-l}mZ)5*X$L&^2$<#LwvXYXQV-uArJir*EdoO595hd(baDl|=cGmGuO zr@{#~sG0Np-}5i^ zm%l7Yy6tqcdQVp7!LE|d%ZD#N+I%uG^tOzb-}3g3%g%SE-k*B;rsLarX>T){e^p)j zBR6B2Lup0swj)u(_Fn{bx187_d-YGdeg${flrQ^3AKyNz@gu^n`CGaV@8+txr`!P( C;%_Vf literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js.map new file mode 100644 index 00000000..fa68e565 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LNJMJLZE.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/orchestrator/media-session/element.js"],"sourcesContent":["import {\n BroadcastableDiffuseElement,\n defineElement,\n query,\n queryOptional,\n} from \"~/common/element.js\";\nimport { signal } from \"~/common/signal.js\";\n\n/**\n * @import {OutputElement} from \"@specs/components/output/types.d.ts\"\n * @import ArtworkOrchestrator from \"~/components/orchestrator/artwork/element.js\"\n * @import {default as AudioEngine} from \"~/components/engine/audio/element.js\"\n * @import {default as QueueEngine} from \"~/components/engine/queue/element.js\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * Keeps the browser/OS Media Session in sync with queue and audio engine state.\n *\n * Forwards play, pause, seek and track-skip actions from the OS back to the engines.\n */\nclass MediaSessionOrchestrator extends BroadcastableDiffuseElement {\n static NAME = \"diffuse/orchestrator/media-session\";\n\n // SIGNALS\n\n /** @type {string | null} */\n #artworkUrl = null;\n\n #isLeader = signal(true);\n\n // LIFECYCLE\n\n /**\n * @override\n */\n async connectedCallback() {\n if (this.hasAttribute(\"group\")) {\n this.broadcast(this.identifier, {});\n }\n\n super.connectedCallback();\n\n if (!(\"mediaSession\" in navigator)) return;\n\n /** @type {AudioEngine} */\n this.audio = query(this, \"audio-engine-selector\");\n /** @type {QueueEngine} */\n this.queue = query(this, \"queue-engine-selector\");\n /** @type {OutputElement | null} */\n this.output = queryOptional(this, \"output-selector\");\n /** @type {ArtworkOrchestrator | null} */\n this.artwork = queryOptional(this, \"artwork-selector\");\n\n await Promise.all([\n customElements.whenDefined(this.audio.localName),\n customElements.whenDefined(this.queue.localName),\n this.output && customElements.whenDefined(this.output.localName),\n this.artwork && customElements.whenDefined(this.artwork.localName),\n ].filter(Boolean));\n\n this.effect(() => {\n const promise = this.isLeader();\n promise?.then((b) => this.#isLeader.set(b));\n });\n\n this.#registerActionHandlers();\n\n this.effect(() => this.#syncMetadata());\n this.effect(() => this.#syncPlaybackState());\n this.effect(() => this.#syncPositionState());\n }\n\n // 🛠️\n\n async #syncMetadata() {\n if (!this.queue) return;\n\n const now = this.queue.now();\n const tracksCol = this.output?.tracks.collection();\n const track = now && tracksCol?.state === \"loaded\"\n ? tracksCol.data.find((t) => t.id === now.id)\n : undefined;\n\n if (!track) {\n if (this.#artworkUrl) {\n URL.revokeObjectURL(this.#artworkUrl);\n this.#artworkUrl = null;\n }\n navigator.mediaSession.metadata = null;\n return;\n }\n\n const tags = track.tags ?? {};\n\n navigator.mediaSession.metadata = new MediaMetadata({\n title: tags.title ?? \"\",\n artist: tags.artist ?? tags.albumartist ?? \"\",\n album: tags.album ?? \"\",\n artwork: [],\n });\n\n // Optionally fetch and attach artwork\n if (this.artwork) {\n const artworkOrchestrator = this.artwork;\n\n /** @type {Uint8Array | null} */\n let bytes = null;\n\n try {\n bytes = await artworkOrchestrator.get(track);\n } catch {\n bytes = null;\n }\n\n if (bytes && navigator.mediaSession.metadata) {\n const mime = detectMime(bytes);\n const blob = new Blob([/** @type {ArrayBuffer} */ (bytes.buffer)], {\n type: mime,\n });\n\n const url = URL.createObjectURL(blob);\n const nowLater = this.queue.now();\n\n // If in the meantime the now-playing track has changed,\n // don't set the artwork.\n if (nowLater?.id !== now?.id) {\n URL.revokeObjectURL(url);\n return;\n }\n\n if (this.#artworkUrl) URL.revokeObjectURL(this.#artworkUrl);\n this.#artworkUrl = url;\n\n navigator.mediaSession.metadata = new MediaMetadata({\n title: tags.title ?? \"\",\n artist: tags.artist ?? tags.albumartist ?? \"\",\n album: tags.album ?? \"\",\n artwork: [{ src: url, type: mime }],\n });\n }\n }\n }\n\n #syncPlaybackState() {\n if (!this.audio) return;\n navigator.mediaSession.playbackState = this.audio.isPlaying()\n ? \"playing\"\n : \"paused\";\n }\n\n #syncPositionState() {\n if (!this.audio || !this.queue) return;\n\n const now = this.queue.now();\n if (!now) return;\n\n const state = this.audio.state(now.id);\n if (!state) return;\n\n const duration = state.duration();\n const progress = state.progress();\n\n if (!duration || isNaN(duration) || duration === 0) return;\n if (navigator.mediaSession.playbackState === \"none\") return;\n\n try {\n navigator.mediaSession.setPositionState({\n duration,\n position: Math.min(duration * progress, duration),\n playbackRate: 1,\n });\n } catch {\n // setPositionState may throw if duration is not finite\n }\n }\n\n #registerActionHandlers() {\n navigator.mediaSession.setActionHandler(\"play\", () => {\n if (!this.audio || !this.queue) return;\n if (!this.#isLeader.value) return;\n const now = this.queue.now();\n if (now) this.audio.play({ audioId: now.id });\n });\n\n navigator.mediaSession.setActionHandler(\"pause\", () => {\n if (!this.audio || !this.queue) return;\n if (!this.#isLeader.value) return;\n const now = this.queue.now();\n if (now) this.audio.pause({ audioId: now.id });\n });\n\n navigator.mediaSession.setActionHandler(\"previoustrack\", () => {\n if (!this.queue) return;\n if (!this.#isLeader.value) return;\n this.queue.unshift();\n });\n\n navigator.mediaSession.setActionHandler(\"nexttrack\", () => {\n if (!this.queue) return;\n if (!this.#isLeader.value) return;\n this.queue.shift();\n });\n\n navigator.mediaSession.setActionHandler(\"seekto\", (details) => {\n if (!this.audio || !this.queue) return;\n if (!this.#isLeader.value) return;\n const now = this.queue.now();\n if (!now || details.seekTime == null) return;\n const state = this.audio.state(now.id);\n const duration = state?.duration();\n if (!duration || duration === 0) return;\n this.audio.seek({\n audioId: now.id,\n percentage: details.seekTime / duration,\n });\n });\n }\n}\n\nexport default MediaSessionOrchestrator;\n\n////////////////////////////////////////////\n// 🛠️\n////////////////////////////////////////////\n\n/**\n * @param {Uint8Array} bytes\n * @returns {string}\n */\nfunction detectMime(bytes) {\n if (bytes[0] === 0xFF && bytes[1] === 0xD8) return \"image/jpeg\";\n if (bytes[0] === 0x89 && bytes[1] === 0x50) return \"image/png\";\n if (bytes[0] === 0x47 && bytes[1] === 0x49) return \"image/gif\";\n if (bytes[0] === 0x52 && bytes[1] === 0x49) return \"image/webp\";\n return \"image/jpeg\";\n}\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = MediaSessionOrchestrator;\nexport const NAME = \"do-media-session\";\n\ndefineElement(NAME, MediaSessionOrchestrator);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","MediaSessionOrchestrator","BroadcastableDiffuseElement","__name","#artworkUrl","#isLeader","signal","query","queryOptional","b","#registerActionHandlers","#syncMetadata","#syncPlaybackState","#syncPositionState","now","tracksCol","track","t","tags","artworkOrchestrator","bytes","mime","detectMime","blob","url","state","duration","progress","details","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-LNJMJLZE.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LRSJBPOP.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LRSJBPOP.js new file mode 100644 index 00000000..1558e2b2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LRSJBPOP.js @@ -0,0 +1,3 @@ +import{a as s,h as g,i as c,k as _,l as k}from"./chunk-2QN2TM5L.js";import{a as i}from"./chunk-6BX44RWC.js";import{a as u,b as h,c as d,d as m,e as f}from"./chunk-QWRQDER6.js";import{a as n}from"./chunk-75KFZLU6.js";var S={client_id:"https://diffuse.sh/latest/components/supplement/rocksky/oauth-client-metadata.json",client_name:"Rocksky | Diffuse",client_uri:"https://diffuse.sh",redirect_uris:["https://diffuse.sh/oauth/callback"],scope:"atproto repo?collection=app.rocksky.scrobble",grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"none",application_type:"web",dpop_bound_access_tokens:!0};var o="diffuse/supplement/rocksky/atproto/did",y="diffuse/supplement/rocksky",I=S.scope,r=location.origin+location.pathname+location.search,w=r.startsWith("http://127.0.0.1");w||(r=location.origin+"/oauth/callback");var v=w?`http://localhost/?redirect_uri=${encodeURIComponent(r)}&scope=${encodeURIComponent(I)}`:import.meta.env?.ROCKSKY_ATPROTO_CLIENT_ID??"https://diffuse.sh/latest/components/supplement/rocksky/oauth-client-metadata.json",l={metadata:{client_id:v,redirect_uri:r},storageName:"diffuse/supplement/rocksky/atcute/oauth",identityResolver:new u({handleResolver:new f({serviceUrl:"https://public.api.bsky.app"}),didDocumentResolver:new h({methods:{plc:new d,web:new m}})})};s(l);function x(e){return i(async()=>{s(l),localStorage.setItem("oauth/callback/redirect_path",location.pathname+location.search),localStorage.setItem("oauth/pending-client",y);let t=await _({target:{type:"account",identifier:e},scope:I});location.assign(t.toString())})}n(x,"login");function E(){return i(async()=>{s(l);let e=globalThis.location,t=new URLSearchParams(e.hash.slice(1));if(t.has("code")&&localStorage.getItem("oauth/pending-client")===y){localStorage.removeItem("oauth/pending-client");let a=await k(t);return history.replaceState(null,"",e.pathname+e.search),localStorage.setItem(o,a.session.info.sub),a.session}let p=localStorage.getItem(o);if(p)try{return await g(p)}catch(a){return console.warn(a),b(),null}return null})}n(E,"restoreOrFinalize");function b(){let e=localStorage.getItem(o);e&&c(e),localStorage.removeItem(o)}n(b,"clearStoredSession");async function L(e){let t=localStorage.getItem(o);try{await e.signOut()}catch{t&&c(t)}localStorage.removeItem(o)}n(L,"logout");export{o as a,x as b,E as c,b as d,L as e}; + +//# sourceMappingURL=./chunk-LRSJBPOP.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LRSJBPOP.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LRSJBPOP.js.br new file mode 100644 index 0000000000000000000000000000000000000000..e4bed0df295e6afc24487b8499cfc974395daf5e GIT binary patch literal 1009 zcmb34;AD7me*UZa`h6>QEqUF2V#cE>8|UWq_qnp#NLMP{Jw`)qj&6Mv2EK<)58Z~`nCvSTc zuVi!X^sZSsIs5H$zsrA@`*CCPl6kBpYp(r%ZeLcu`@TMtX^QxU78$XC1CkGz4s)-K z-(McDzkb(m?hx@;?A70|@0VknaV)^!Y!8o5siKEulj;BDRyn@x{yWnRFP*e7-|Xwz zl_vlD)~%JH6=%*W*KO+RUFEzpaORC0r<}h1D|qK&-l!I(ZR+f}t2O9ibji&g#b+08 zy|jCA?rfiFP4x=#{l7hTC3Lb1s?Tgqvp;h*@=S78|_AAA_*^`-B)8Wq|Fin28vO+4`-E*xf-B&h#`y8-LfXQmz z|3e~kxLHvS1+%-wbRD(qhpHJ?DgkF=gqbk z|51Br>x1UPtd`5ajaY83+{1TcUHgF}KQhJl&OCRqlS@3%clOEpKjjB56kIrJ%WQ5c zJNKv5j!m=D&sDfZdPlLf>WOXmXxcc*YuCx{V}764i*rXLe7kvi^R`soY+?W9Ix}OH zy}Mrf8(b>csu`fxKih+G%V{|V`vbOZeg`B~vo;=UNKDP^ZwOc(xOIy+d-7XvmN1=} zNgYig+)JIOTzWRcOYdUEl(pPdM{c)E%{@@I>ttEfv@Z!uKE?HGNmZPBuz+WBlIwJb zX&ZO4%vu|JQTvj*_^GcQId3yqxYV;?@0 zda5t~`{wiW?xpxjgKgVqyPoBoYquX>o_RBpn*MwCCQY{sl2 cbv {\n configureOAuth(OAUTH_CONFIG);\n\n localStorage.setItem(\n \"oauth/callback/redirect_path\",\n location.pathname + location.search,\n );\n\n localStorage.setItem(\"oauth/pending-client\", CLIENT_KEY);\n\n const authUrl = await createAuthorizationUrl({\n target: { type: \"account\", identifier: /** @type {any} */ (handle) },\n scope: SCOPE,\n });\n\n location.assign(authUrl.toString());\n });\n}\n\n// SESSION RESTORE / CALLBACK\n// ==========================\n\n/**\n * Attempt to restore an existing Rocksky session or finalize an OAuth callback.\n * Returns the session if successful, or null if no session is available.\n *\n * @returns {Promise}\n */\nexport function restoreOrFinalize() {\n return withOAuthLock(async () => {\n configureOAuth(OAUTH_CONFIG);\n\n const loc = globalThis.location;\n const params = new URLSearchParams(loc.hash.slice(1));\n\n if (\n params.has(\"code\") &&\n localStorage.getItem(\"oauth/pending-client\") === CLIENT_KEY\n ) {\n localStorage.removeItem(\"oauth/pending-client\");\n\n const result = await finalizeAuthorization(params);\n\n history.replaceState(null, \"\", loc.pathname + loc.search);\n localStorage.setItem(DID_STORAGE_KEY, result.session.info.sub);\n\n return result.session;\n }\n\n const did = localStorage.getItem(DID_STORAGE_KEY);\n\n if (did) {\n try {\n return await getSession(/** @type {`did:${string}:${string}`} */ (did));\n } catch (err) {\n console.warn(err);\n clearStoredSession();\n return null;\n }\n }\n\n return null;\n });\n}\n\n// CLEAR SESSION\n// =============\n\nexport function clearStoredSession() {\n const did = localStorage.getItem(DID_STORAGE_KEY);\n\n if (did) {\n deleteStoredSession(/** @type {`did:${string}:${string}`} */ (did));\n }\n\n localStorage.removeItem(DID_STORAGE_KEY);\n}\n\n// LOGOUT\n// ======\n\n/**\n * @param {OAuthUserAgent} agent\n */\nexport async function logout(agent) {\n const did = localStorage.getItem(DID_STORAGE_KEY);\n\n try {\n await agent.signOut();\n } catch {\n if (did) {\n deleteStoredSession(/** @type {`did:${string}:${string}`} */ (did));\n }\n }\n\n localStorage.removeItem(DID_STORAGE_KEY);\n}\n"],"mappings":"wNAAA,IAAAA,EAAA,CACE,UAAa,qFACb,YAAe,oBACf,WAAc,qBACd,cAAiB,CAAC,mCAAmC,EACrD,MAAS,+CACT,YAAe,CAAC,qBAAsB,eAAe,EACrD,eAAkB,CAAC,MAAM,EACzB,2BAA8B,OAC9B,iBAAoB,MACpB,yBAA4B,EAC9B,ECiBO,IAAMC,EAAkB,yCACzBC,EAAa,6BAEbC,EAAQC,EAAS,MAKnBC,EAAe,SAAS,OAAS,SAAS,SAAW,SAAS,OAE5DC,EAAaD,EAAa,WAAW,kBAAkB,EAExDC,IACHD,EAAe,SAAS,OAAS,mBAGnC,IAAME,EAAYD,EACd,kCAAkC,mBAAmBD,CAAY,CAAC,UAClE,mBAAmBF,CAAK,CAC1B,GACsB,YAAa,KAAK,2BACtC,qFAEEK,EAAe,CACnB,SAAU,CAAE,UAAAD,EAAW,aAAAF,CAAa,EACpC,YAAa,0CACb,iBAAkB,IAAII,EAAmB,CACvC,eAAgB,IAAIC,EAAmB,CACrC,WAAY,6BACd,CAAC,EACD,oBAAqB,IAAIC,EAA6B,CACpD,QAAS,CACP,IAAK,IAAIC,EACT,IAAK,IAAIC,CACX,CACF,CAAC,CACH,CAAC,CACH,EAEAC,EAAeN,CAAY,EAWpB,SAASO,EAAMC,EAAQ,CAC5B,OAAOC,EAAc,SAAY,CAC/BH,EAAeN,CAAY,EAE3B,aAAa,QACX,+BACA,SAAS,SAAW,SAAS,MAC/B,EAEA,aAAa,QAAQ,uBAAwBN,CAAU,EAEvD,IAAMgB,EAAU,MAAMC,EAAuB,CAC3C,OAAQ,CAAE,KAAM,UAAW,WAAgCH,CAAQ,EACnE,MAAOb,CACT,CAAC,EAED,SAAS,OAAOe,EAAQ,SAAS,CAAC,CACpC,CAAC,CACH,CAlBgBE,EAAAL,EAAA,SA6BT,SAASM,GAAoB,CAClC,OAAOJ,EAAc,SAAY,CAC/BH,EAAeN,CAAY,EAE3B,IAAMc,EAAM,WAAW,SACjBC,EAAS,IAAI,gBAAgBD,EAAI,KAAK,MAAM,CAAC,CAAC,EAEpD,GACEC,EAAO,IAAI,MAAM,GACjB,aAAa,QAAQ,sBAAsB,IAAMrB,EACjD,CACA,aAAa,WAAW,sBAAsB,EAE9C,IAAMsB,EAAS,MAAMC,EAAsBF,CAAM,EAEjD,eAAQ,aAAa,KAAM,GAAID,EAAI,SAAWA,EAAI,MAAM,EACxD,aAAa,QAAQrB,EAAiBuB,EAAO,QAAQ,KAAK,GAAG,EAEtDA,EAAO,OAChB,CAEA,IAAME,EAAM,aAAa,QAAQzB,CAAe,EAEhD,GAAIyB,EACF,GAAI,CACF,OAAO,MAAMC,EAAqDD,CAAI,CACxE,OAASE,EAAK,CACZ,eAAQ,KAAKA,CAAG,EAChBC,EAAmB,EACZ,IACT,CAGF,OAAO,IACT,CAAC,CACH,CAnCgBT,EAAAC,EAAA,qBAwCT,SAASQ,GAAqB,CACnC,IAAMH,EAAM,aAAa,QAAQzB,CAAe,EAE5CyB,GACFI,EAA8DJ,CAAI,EAGpE,aAAa,WAAWzB,CAAe,CACzC,CARgBmB,EAAAS,EAAA,sBAgBhB,eAAsBE,EAAOC,EAAO,CAClC,IAAMN,EAAM,aAAa,QAAQzB,CAAe,EAEhD,GAAI,CACF,MAAM+B,EAAM,QAAQ,CACtB,MAAQ,CACFN,GACFI,EAA8DJ,CAAI,CAEtE,CAEA,aAAa,WAAWzB,CAAe,CACzC,CAZsBmB,EAAAW,EAAA","names":["oauth_client_metadata_default","DID_STORAGE_KEY","CLIENT_KEY","SCOPE","oauth_client_metadata_default","redirect_uri","isLocalDev","client_id","OAUTH_CONFIG","LocalActorResolver","XrpcHandleResolver","CompositeDidDocumentResolver","PlcDidDocumentResolver","WebDidDocumentResolver","configureOAuth","login","handle","withOAuthLock","authUrl","createAuthorizationUrl","__name","restoreOrFinalize","loc","params","result","finalizeAuthorization","did","getSession","err","clearStoredSession","deleteStoredSession","logout","agent"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-LRSJBPOP.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js new file mode 120000 index 00000000..a62290c6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-LUE74EM5.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js.br new file mode 120000 index 00000000..f1c8324b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-LUE74EM5.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js.map new file mode 120000 index 00000000..f68cef92 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-LUE74EM5.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-LUE74EM5.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js new file mode 120000 index 00000000..07a1371a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-M3YB5K5O.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js.br new file mode 120000 index 00000000..dd810e69 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-M3YB5K5O.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js.map new file mode 120000 index 00000000..d0a069b9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M3YB5K5O.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-M3YB5K5O.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js new file mode 120000 index 00000000..accc0b53 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-M5LB6FBL.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js.br new file mode 120000 index 00000000..d3d993bf --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-M5LB6FBL.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js.map new file mode 120000 index 00000000..0c4f4e8c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-M5LB6FBL.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-M5LB6FBL.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js new file mode 120000 index 00000000..336aa8d1 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MJSTYRUI.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js.br new file mode 120000 index 00000000..3a083ac2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MJSTYRUI.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js.map new file mode 120000 index 00000000..addb6ed6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MJSTYRUI.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MJSTYRUI.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js new file mode 120000 index 00000000..76a6e75c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MKIFSH6R.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js.br new file mode 120000 index 00000000..9cca7364 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MKIFSH6R.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js.map new file mode 120000 index 00000000..023fdaf9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MKIFSH6R.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MKIFSH6R.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js new file mode 120000 index 00000000..01e0aa08 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MO4SFPUT.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js.br new file mode 120000 index 00000000..d690192d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MO4SFPUT.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js.map new file mode 120000 index 00000000..145a6adb --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MO4SFPUT.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MO4SFPUT.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js new file mode 100644 index 00000000..0046b5b1 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js @@ -0,0 +1,3 @@ +import{b as s,e as n}from"./chunk-IA3NIKPO.js";import{a as o,c as a}from"./chunk-75KFZLU6.js";var m={};a(m,{CLASS:()=>f,NAME:()=>c,default:()=>i});var r=class extends s{static{o(this,"ArtworkConfigurator")}static NAME="diffuse/configurator/artwork";static WORKER_URL="components/configurator/artwork/worker.js";constructor(){super();let t=this.workerProxy();this.get=t.get}dependencies(){return Object.fromEntries(Array.from(this.children).map(t=>{let e=t;return[e.localName,e]}))}},i=r,f=r,c="dc-artwork";n(c,r);export{i as a,f as b,c,m as d}; + +//# sourceMappingURL=./chunk-MSCS7ZYG.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js.br new file mode 100644 index 0000000000000000000000000000000000000000..feb10de49ca2ea98bd9a26e5437239afd5bc6190 GIT binary patch literal 335 zcmb1EU}AVOXXWncoQ91h&w{NEX>PsrZ+B-y$dMNkJZLA_u%I&L+zoS##m*^)1r!dFSTK%EiywY?knjNwsJJ zr%-g9&An=?ow17&>LgrF#Y|$n^zG!cuV1AWCIub3`Rrw$r^%WY&pS^Xy!ZTgHn;bY zI=_a>ghfwo+-KSI@^Sy?yW3{(Yc-g9vC?Pr!cMgx+8Z)YebT<+bbZH!eVospReygT zetdWM`|aWCOxflt>bm~PAB?$GH`Nty?!MvuoYS|ayXDh8H<6=CxoP^b72kimYrNOf zl6JkaXO7?H7suFyc9<=?nbP65`?AaQLWSA)PVbM~Ryuv+cBh*P_MRe>O>{S81^NHV xk^KFIBbN2|EX}i$QV$o3$Za{`*6%oBxl8l%JO4IuNvkZ>5y_B{nt8H@1pt3Br&Is{ literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js.map new file mode 100644 index 00000000..268de2fe --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSCS7ZYG.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/configurator/artwork/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\n\n/**\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {ArtworkElement} from \"@specs/components/artwork/types.d.ts\"\n * @import {Actions} from \"@specs/components/configurator/artwork/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n */\nclass ArtworkConfigurator extends DiffuseElement {\n static NAME = \"diffuse/configurator/artwork\";\n static WORKER_URL = \"components/configurator/artwork/worker.js\";\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n const proxy = this.workerProxy();\n\n this.get = proxy.get;\n }\n\n // WORKERS\n\n /**\n * @override\n */\n dependencies() {\n return Object.fromEntries(\n Array.from(this.children).map((element) => {\n const artwork = /** @type {ArtworkElement} */ (element);\n return [artwork.localName, artwork];\n }),\n );\n }\n}\n\nexport default ArtworkConfigurator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = ArtworkConfigurator;\nexport const NAME = \"dc-artwork\";\n\ndefineElement(NAME, ArtworkConfigurator);\n"],"mappings":"8FAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAeA,IAAMC,EAAN,cAAkCC,CAAe,CAfjD,MAeiD,CAAAC,EAAA,4BAC/C,OAAO,KAAO,+BACd,OAAO,WAAa,4CAEpB,aAAc,CACZ,MAAM,EAGN,IAAMC,EAAQ,KAAK,YAAY,EAE/B,KAAK,IAAMA,EAAM,GACnB,CAOA,cAAe,CACb,OAAO,OAAO,YACZ,MAAM,KAAK,KAAK,QAAQ,EAAE,IAAKC,GAAY,CACzC,IAAMC,EAAyCD,EAC/C,MAAO,CAACC,EAAQ,UAAWA,CAAO,CACpC,CAAC,CACH,CACF,CACF,EAEOC,EAAQN,EAMFO,EAAQP,EACRQ,EAAO,aAEpBC,EAAcD,EAAMR,CAAmB","names":["element_exports","__export","CLASS","NAME","element_default","ArtworkConfigurator","DiffuseElement","__name","proxy","element","artwork","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-MSCS7ZYG.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js new file mode 120000 index 00000000..04fb7cfd --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MSROODAH.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js.br new file mode 120000 index 00000000..aca9266b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MSROODAH.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js.map new file mode 120000 index 00000000..bd6ea5ba --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MSROODAH.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MSROODAH.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js new file mode 120000 index 00000000..2438ff71 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MZPCBJ4D.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js.br new file mode 120000 index 00000000..65b6034a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MZPCBJ4D.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js.map new file mode 120000 index 00000000..d3e883ef --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-MZPCBJ4D.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-MZPCBJ4D.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-N4UC4CSU.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-N4UC4CSU.js new file mode 100644 index 00000000..3b9fed46 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-N4UC4CSU.js @@ -0,0 +1,3 @@ +import{a as R}from"./chunk-BF2A4D4Q.js";import{a as z}from"./chunk-LINMKWZS.js";import{a as _}from"./chunk-C5GF5WSP.js";import{c as x,h as T}from"./chunk-FHQAE777.js";import{A as y,B as I,H as P,f as L,g as b,i as S,k as w,m as g,n as o,o as m}from"./chunk-PHFIOWBZ.js";import{a as i,d as A}from"./chunk-75KFZLU6.js";var $=A(L());var d=class a{static{i(this,"VorbisPictureToken")}static fromBase64(e){return a.fromBuffer(Uint8Array.from(atob(e),t=>t.charCodeAt(0)))}static fromBuffer(e){return new a(e.length).get(e,0)}constructor(e){this.len=e}get(e,t){let r=_[m.get(e,t)];t+=4;let s=m.get(e,t);t+=4;let c=new I(s,"utf-8").get(e,t);t+=s;let n=m.get(e,t);t+=4;let C=new I(n,"utf-8").get(e,t);t+=n;let F=m.get(e,t);t+=4;let E=m.get(e,t);t+=4;let V=m.get(e,t);t+=4;let G=m.get(e,t);t+=4;let K=m.get(e,t);t+=4;let W=e.slice(t,t+K);return{type:r,format:c,description:C,width:F,height:E,colour_depth:V,indexed_color:G,data:W}}},u={len:7,get:i((a,e)=>({packetType:S.get(a,e),vorbis:new I(6,"ascii").get(a,e+1)}),"get")},O={len:23,get:i((a,e)=>({version:o.get(a,e+0),channelMode:S.get(a,e+4),sampleRate:o.get(a,e+5),bitrateMax:o.get(a,e+9),bitrateNominal:o.get(a,e+13),bitrateMin:o.get(a,e+17)}),"get")};var M=A(L());var h=class{static{i(this,"VorbisDecoder")}constructor(e,t){this.data=e,this.offset=t}readInt32(){let e=o.get(this.data,this.offset);return this.offset+=4,e}readStringUtf8(){let e=this.readInt32(),t=b(this.data.subarray(this.offset,this.offset+e),"utf-8");return this.offset+=e,t}parseUserComment(){let e=this.offset,t=this.readStringUtf8(),r=t.indexOf("=");return{key:t.substring(0,r).toUpperCase(),value:t.substring(r+1),len:this.offset-e}}};var p=(0,M.default)("music-metadata:parser:ogg:vorbis1"),k=class extends P("Vorbis"){static{i(this,"VorbisContentError")}},U=class a{static{i(this,"VorbisStream")}constructor(e,t){this.pageSegments=[],this.durationOnLastPage=!0,this.metadata=e,this.options=t}async parsePage(e,t){if(this.lastPageHeader=e,e.headerType.firstPage)this.parseFirstPage(e,t);else{if(e.headerType.continued){if(this.pageSegments.length===0)throw new k("Cannot continue on previous page");this.pageSegments.push(t)}if(e.headerType.lastPage||!e.headerType.continued){if(this.pageSegments.length>0){let r=a.mergeUint8Arrays(this.pageSegments);await this.parseFullPage(r)}this.pageSegments=e.headerType.lastPage?[]:[t]}}}static mergeUint8Arrays(e){let t=e.reduce((s,c)=>s+c.length,0),r=new Uint8Array(t);return e.forEach((s,c,n)=>{let C=n.slice(0,c).reduce((F,E)=>F+E.length,0);r.set(s,C)}),r}async flush(){await this.parseFullPage(a.mergeUint8Arrays(this.pageSegments))}async parseUserComment(e,t){let s=new h(e,t).parseUserComment();return await this.addTag(s.key,s.value),s.len}async addTag(e,t){if(e==="METADATA_BLOCK_PICTURE"&&typeof t=="string"){if(this.options.skipCovers){p("Ignore picture");return}t=d.fromBase64(t),p(`Push picture: id=${e}, format=${t.format}`)}else p(`Push tag: id=${e}, value=${t}`);await this.metadata.addTag("vorbis",e,t)}calculateDuration(e){this.lastPageHeader&&(e||this.lastPageHeader.headerType.lastPage)&&this.metadata.format.sampleRate&&this.lastPageHeader.absoluteGranulePosition>=0&&(this.metadata.setFormat("numberOfSamples",this.lastPageHeader.absoluteGranulePosition),this.metadata.setFormat("duration",this.lastPageHeader.absoluteGranulePosition/this.metadata.format.sampleRate))}parseFirstPage(e,t){this.metadata.setFormat("codec","Vorbis I"),this.metadata.setFormat("hasAudio",!0),p("Parse first page");let r=u.get(t,0);if(r.vorbis!=="vorbis")throw new k("Metadata does not look like Vorbis");if(r.packetType===1){let s=O.get(t,u.len);this.metadata.setFormat("sampleRate",s.sampleRate),this.metadata.setFormat("bitrate",s.bitrateNominal),this.metadata.setFormat("numberOfChannels",s.channelMode),p("sample-rate=%s[hz], bitrate=%s[b/s], channel-mode=%s",s.sampleRate,s.bitrateNominal,s.channelMode)}else throw new k("First Ogg page should be type 1: the identification header")}async parseFullPage(e){let t=u.get(e,0);switch(p("Parse full page: type=%s, byteLength=%s",t.packetType,e.byteLength),t.packetType){case 3:return this.parseUserCommentList(e,u.len);case 1:case 5:break}}async parseUserCommentList(e,t){let r=o.get(e,t);t+=4,t+=r;let s=o.get(e,t);for(t+=4;s-- >0;)t+=await this.parseUserComment(e,t)}};var l={STREAMINFO:0,PADDING:1,APPLICATION:2,SEEKTABLE:3,VORBIS_COMMENT:4,CUESHEET:5,PICTURE:6},H={len:4,get:i((a,e)=>({lastBlock:x(a,e,7),type:T(a,e,1,7),length:g.get(a,e+1)}),"get")},N={len:34,get:i((a,e)=>({minimumBlockSize:w.get(a,e),maximumBlockSize:w.get(a,e+2)/1e3,minimumFrameSize:g.get(a,e+4),maximumFrameSize:g.get(a,e+7),sampleRate:g.get(a,e+10)>>4,channels:T(a,e+12,4,3)+1,bitsPerSample:T(a,e+12,7,5)+1,totalSamples:T(a,e+13,4,36),fileMD5:new y(16).get(a,e+18)}),"get")};var q=(0,$.default)("music-metadata:parser:FLAC"),B=class extends P("FLAC"){static{i(this,"FlacContentError")}},D=class extends R{static{i(this,"FlacParser")}constructor(){super(...arguments),this.vorbisParser=new U(this.metadata,this.options)}async postId3v2Parse(){if((await this.tokenizer.readToken(z)).toString()!=="fLaC")throw new B("Invalid FLAC preamble");let t;do t=await this.tokenizer.readToken(H),await this.parseDataBlock(t);while(!t.lastBlock);if(this.tokenizer.fileInfo.size&&this.metadata.format.duration){let r=this.tokenizer.fileInfo.size-this.tokenizer.position;this.metadata.setFormat("bitrate",8*r/this.metadata.format.duration)}}async parseDataBlock(e){switch(q(`blockHeader type=${e.type}, length=${e.length}`),e.type){case l.STREAMINFO:return this.readBlockStreamInfo(e.length);case l.PADDING:break;case l.APPLICATION:break;case l.SEEKTABLE:break;case l.VORBIS_COMMENT:return this.readComment(e.length);case l.CUESHEET:break;case l.PICTURE:await this.parsePicture(e.length);return;default:this.metadata.addWarning(`Unknown block type: ${e.type}`)}return this.tokenizer.ignore(e.length).then()}async readBlockStreamInfo(e){if(e!==N.len)throw new B("Unexpected block-stream-info length");let t=await this.tokenizer.readToken(N);this.metadata.setFormat("container","FLAC"),this.processsStreamInfo(t)}processsStreamInfo(e){this.metadata.setFormat("codec","FLAC"),this.metadata.setFormat("hasAudio",!0),this.metadata.setFormat("lossless",!0),this.metadata.setFormat("numberOfChannels",e.channels),this.metadata.setFormat("bitsPerSample",e.bitsPerSample),this.metadata.setFormat("sampleRate",e.sampleRate),e.totalSamples>0&&this.metadata.setFormat("duration",e.totalSamples/e.sampleRate)}async readComment(e){let t=await this.tokenizer.readToken(new y(e));return this.parseComment(t)}async parseComment(e){let t=new h(e,0),r=t.readStringUtf8();r.length>0&&this.metadata.setFormat("tool",r);let s=t.readInt32(),c=new Array(s);for(let n=0;n(n.key==="ENCODER"&&this.metadata.setFormat("tool",n.value),this.addTag(n.key,n.value))))}async parsePicture(e){return this.options.skipCovers?this.tokenizer.ignore(e):this.addPictureTag(await this.tokenizer.readToken(new d(e)))}addPictureTag(e){return this.addTag("METADATA_BLOCK_PICTURE",e)}addTag(e,t){return this.vorbisParser.addTag(e,t)}};export{d as a,U as b,l as c,H as d,N as e,D as f}; + +//# sourceMappingURL=./chunk-N4UC4CSU.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-N4UC4CSU.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-N4UC4CSU.js.br new file mode 100644 index 0000000000000000000000000000000000000000..86b53ec26187a456e1fdbdbd03baca2c22848762 GIT binary patch literal 2528 zcmb1Um0@^Ne>w8|-Z>(^lc)7FEm^lGXog3^Q^iGWQ^eZmey2f$e|D4E& zA3fV&1bz#Qx3x9i`f^{^_s8$rWzy2#@9^=t*vRx)lV7a$XwHrzZI=a!%I15;=N$2z zs&;GQX@@`kD{lCkEv;Nt&bIc)hVlxKJ%8(-noq0xlGx)oHNT<{cmySY&Dfw+n{tZ z?254dIrhUpW1nB=*u!(_w2I-$EOqzC2iKoGYk1?-hx1x#!pE+=N3Qy3wfB+t>RZe6 zrb@o%S+Kn|Htih0?{2+$7XsvdNxB?c(^pnebK*i*?IPF9;is>1>Fz$+W8b^>YQFh@ z*30`MjGjCQz1^L%ICr~;;kPvhEz?sJWBN>fIGH%FSN}J$b9*8OuiUwadpaHtg)bu3 z8r<1?{j-+4|C*{Fdza36^RxCz_A7&|J4aVqKRo6+<-&bABlay{R{zp`Dq9?rScG-C|+q_-D8WU=HK0nBQytw|%s|3UND2s|U!PPSv5~|E@|Ln-R z$;zQ8e;_e3PoD4ANAKSaOZM$)6@8odtKfFZQ%RY~Z<9aiwJ8&E ztU9X|QglJNM|*upYqM=3y!YYCoX3!PIIIJ6ddZNB<$dvTn^BA!4F4YT`) zPMNnpZqqZnzWS<_Opg15tRr_6-DiFa^h~Tt^YUr+OkOnap|00Tw(ru>dv^2$&y#rj zFJ9tOKPiGEKQN741<+d;VeKw1pI|`cZ5&rvec-4A>6mL3&*D|I)S%l(Ik z+)MGfl}4d;GoPEgZ?t)HB_TDv{(r50{qNrbdsatnYpvQ^(fa7Q-QIpfcFyqJaPJcS zM(%5CIgb?bICtr{uj9IX{p7Q4+&tmA+e~9q@AySC3+W}^WcU@$oAuY+CCuW>8AoxG z-0Y-tTK9#2A6vb$qfSkD$3d?bhmx5u^Pazx#w$yaGzC4G?ws!j+&C_$ ztl6=8eY|8{jS1VVZ-PIruYXi1PW-WaG?eWZ$|8Ddjt8BRXMaxy;l7{~ZVaqV1C0^?{ zT-4LMyr$rr)Ul@*T1_S|usR%k#9}p%Z9-*vx^`M?=#_Vxsq$QNwk>D!_R!*dxzy8( z`HZ)cv0_V3sF&&W4YuN$Q&vw%s(PT%veK%jY4#3|ZvWpD}S%nF%0NlbHIgbsZ8rmW=&0FBW zhi@k6NpI+=-uv*4kC|eej@se88rwPNQ@Gdt`unl;&de`Q8Sk9aw?4eO{auaK+w<$5 zDwgE`3V;6h-&Px@<(G8(nddC`^yJTHNcZ@8X5#wWvmdlL3uVOR8_xRvV#asJb)VPY ziTuR;F5v9v?N7gb6brv;eQG*Sf7te>Tj^J#YW8=sA7~7@E5@ZYMP?t{HxHYWPhE~y zOYgaB=fj|De!~39EM1Eh=D6%-Qtv)=p}lu@Y5US|1%EXO#gBDUf{l} zSJK&X>Z?5cgY6#w_enf$XMZ$7s9dw%ud8A0sfPb&nq$;oI&P9{pE7+)N~o5w_w;bp z{bp({EA|AoI3IEI;$ae<7j%x-!pBE*j{GwA^SV)!j~ai>iJicdk@(GTlSNSQryJJi zPZ=yOmM9lnzE*8lwfL(Y&cV-2PMmR2xW8)q={xW5$jdKf{pfW?@VuqYg=O=;-Lg_# zb#%V(?PK5eMCcs(zM`T@(&6dXsFu_B45bqJ<|%p|$(eN3`i6D={KO|S&prN2c>wtTU{kOaqT=8 zt7{MUX%ul?tI9pzbyaiYr2bUy)2%rXyZ^85J@MzYQt;}JPqyz2xBGqE^2fDS-EA|S z7k-|jnzXw7%nCE(_Y-c}Z~wQ(`u$h^mD3V~brfnd5BWrVe5SG|<)CBxd_JY0F&p(J zoGbsJ@jOT_l|5&%2g}~%{*lE&%;YvPk}# 0) {\n this.metadata.setFormat('duration', streamInfo.totalSamples / streamInfo.sampleRate);\n }\n }\n /**\n * Read VORBIS_COMMENT from tokenizer\n * Ref: https://www.xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-640004.2.3\n */\n async readComment(dataLen) {\n const data = await this.tokenizer.readToken(new Uint8ArrayType(dataLen));\n return this.parseComment(data);\n }\n /**\n * Parse VORBIS_COMMENT\n * Ref: https://www.xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-640004.2.3\n */\n async parseComment(data) {\n const decoder = new VorbisDecoder(data, 0);\n const vendor = decoder.readStringUtf8();\n if (vendor.length > 0) {\n this.metadata.setFormat('tool', vendor);\n }\n const commentListLength = decoder.readInt32();\n const tags = new Array(commentListLength);\n for (let i = 0; i < commentListLength; i++) {\n tags[i] = decoder.parseUserComment();\n }\n await Promise.all(tags.map(tag => {\n if (tag.key === 'ENCODER') {\n this.metadata.setFormat('tool', tag.value);\n }\n return this.addTag(tag.key, tag.value);\n }));\n }\n async parsePicture(dataLen) {\n if (this.options.skipCovers) {\n return this.tokenizer.ignore(dataLen);\n }\n return this.addPictureTag(await this.tokenizer.readToken(new VorbisPictureToken(dataLen)));\n }\n addPictureTag(picture) {\n return this.addTag('METADATA_BLOCK_PICTURE', picture);\n }\n addTag(id, value) {\n return this.vorbisParser.addTag(id, value);\n }\n}\n","import * as Token from 'token-types';\nimport { AttachedPictureType } from '../../id3v2/ID3v2Token.js';\n/**\n * Parse the METADATA_BLOCK_PICTURE\n * Ref: https://wiki.xiph.org/VorbisComment#METADATA_BLOCK_PICTURE\n * Ref: https://xiph.org/flac/format.html#metadata_block_picture\n * // ToDo: move to ID3 / APIC?\n */\nexport class VorbisPictureToken {\n static fromBase64(base64str) {\n return VorbisPictureToken.fromBuffer(Uint8Array.from(atob(base64str), c => c.charCodeAt(0)));\n }\n static fromBuffer(buffer) {\n const pic = new VorbisPictureToken(buffer.length);\n return pic.get(buffer, 0);\n }\n constructor(len) {\n this.len = len;\n }\n get(buffer, offset) {\n const type = AttachedPictureType[Token.UINT32_BE.get(buffer, offset)];\n offset += 4;\n const mimeLen = Token.UINT32_BE.get(buffer, offset);\n offset += 4;\n const format = new Token.StringType(mimeLen, 'utf-8').get(buffer, offset);\n offset += mimeLen;\n const descLen = Token.UINT32_BE.get(buffer, offset);\n offset += 4;\n const description = new Token.StringType(descLen, 'utf-8').get(buffer, offset);\n offset += descLen;\n const width = Token.UINT32_BE.get(buffer, offset);\n offset += 4;\n const height = Token.UINT32_BE.get(buffer, offset);\n offset += 4;\n const colour_depth = Token.UINT32_BE.get(buffer, offset);\n offset += 4;\n const indexed_color = Token.UINT32_BE.get(buffer, offset);\n offset += 4;\n const picDataLen = Token.UINT32_BE.get(buffer, offset);\n offset += 4;\n const data = buffer.slice(offset, offset + picDataLen);\n return {\n type,\n format,\n description,\n width,\n height,\n colour_depth,\n indexed_color,\n data\n };\n }\n}\n/**\n * Comment header decoder\n * Ref: https://xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-620004.2.1\n */\nexport const CommonHeader = {\n len: 7,\n get: (buf, off) => {\n return {\n packetType: Token.UINT8.get(buf, off),\n vorbis: new Token.StringType(6, 'ascii').get(buf, off + 1)\n };\n }\n};\n/**\n * Identification header decoder\n * Ref: https://xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-630004.2.2\n */\nexport const IdentificationHeader = {\n len: 23,\n get: (uint8Array, off) => {\n return {\n version: Token.UINT32_LE.get(uint8Array, off + 0),\n channelMode: Token.UINT8.get(uint8Array, off + 4),\n sampleRate: Token.UINT32_LE.get(uint8Array, off + 5),\n bitrateMax: Token.UINT32_LE.get(uint8Array, off + 9),\n bitrateNominal: Token.UINT32_LE.get(uint8Array, off + 13),\n bitrateMin: Token.UINT32_LE.get(uint8Array, off + 17)\n };\n }\n};\n","import * as Token from 'token-types';\nimport debugInit from 'debug';\nimport { VorbisDecoder } from './VorbisDecoder.js';\nimport { CommonHeader, IdentificationHeader, VorbisPictureToken } from './Vorbis.js';\nimport { makeUnexpectedFileContentError } from '../../ParseError.js';\nconst debug = debugInit('music-metadata:parser:ogg:vorbis1');\nexport class VorbisContentError extends makeUnexpectedFileContentError('Vorbis') {\n}\n/**\n * Vorbis 1 Parser.\n * Used by OggStream\n */\nexport class VorbisStream {\n constructor(metadata, options) {\n this.pageSegments = [];\n this.durationOnLastPage = true;\n this.metadata = metadata;\n this.options = options;\n }\n /**\n * Vorbis 1 parser\n * @param header Ogg Page Header\n * @param pageData Page data\n */\n async parsePage(header, pageData) {\n this.lastPageHeader = header;\n if (header.headerType.firstPage) {\n this.parseFirstPage(header, pageData);\n }\n else {\n if (header.headerType.continued) {\n if (this.pageSegments.length === 0) {\n throw new VorbisContentError('Cannot continue on previous page');\n }\n this.pageSegments.push(pageData);\n }\n if (header.headerType.lastPage || !header.headerType.continued) {\n // Flush page segments\n if (this.pageSegments.length > 0) {\n const fullPage = VorbisStream.mergeUint8Arrays(this.pageSegments);\n await this.parseFullPage(fullPage);\n }\n // Reset page segments\n this.pageSegments = header.headerType.lastPage ? [] : [pageData];\n }\n }\n }\n static mergeUint8Arrays(arrays) {\n const totalSize = arrays.reduce((acc, e) => acc + e.length, 0);\n const merged = new Uint8Array(totalSize);\n arrays.forEach((array, i, _arrays) => {\n const offset = _arrays.slice(0, i).reduce((acc, e) => acc + e.length, 0);\n merged.set(array, offset);\n });\n return merged;\n }\n async flush() {\n await this.parseFullPage(VorbisStream.mergeUint8Arrays(this.pageSegments));\n }\n async parseUserComment(pageData, offset) {\n const decoder = new VorbisDecoder(pageData, offset);\n const tag = decoder.parseUserComment();\n await this.addTag(tag.key, tag.value);\n return tag.len;\n }\n async addTag(id, value) {\n if (id === 'METADATA_BLOCK_PICTURE' && (typeof value === 'string')) {\n if (this.options.skipCovers) {\n debug(\"Ignore picture\");\n return;\n }\n value = VorbisPictureToken.fromBase64(value);\n debug(`Push picture: id=${id}, format=${value.format}`);\n }\n else {\n debug(`Push tag: id=${id}, value=${value}`);\n }\n await this.metadata.addTag('vorbis', id, value);\n }\n calculateDuration(enfOfStream) {\n if (this.lastPageHeader && (enfOfStream || this.lastPageHeader.headerType.lastPage) && this.metadata.format.sampleRate && this.lastPageHeader.absoluteGranulePosition >= 0) {\n // Calculate duration\n this.metadata.setFormat('numberOfSamples', this.lastPageHeader.absoluteGranulePosition);\n this.metadata.setFormat('duration', this.lastPageHeader.absoluteGranulePosition / this.metadata.format.sampleRate);\n }\n }\n /**\n * Parse first Ogg/Vorbis page\n * @param _header\n * @param pageData\n */\n parseFirstPage(_header, pageData) {\n this.metadata.setFormat('codec', 'Vorbis I');\n this.metadata.setFormat('hasAudio', true);\n debug('Parse first page');\n // Parse Vorbis common header\n const commonHeader = CommonHeader.get(pageData, 0);\n if (commonHeader.vorbis !== 'vorbis')\n throw new VorbisContentError('Metadata does not look like Vorbis');\n if (commonHeader.packetType === 1) {\n const idHeader = IdentificationHeader.get(pageData, CommonHeader.len);\n this.metadata.setFormat('sampleRate', idHeader.sampleRate);\n this.metadata.setFormat('bitrate', idHeader.bitrateNominal);\n this.metadata.setFormat('numberOfChannels', idHeader.channelMode);\n debug('sample-rate=%s[hz], bitrate=%s[b/s], channel-mode=%s', idHeader.sampleRate, idHeader.bitrateNominal, idHeader.channelMode);\n }\n else\n throw new VorbisContentError('First Ogg page should be type 1: the identification header');\n }\n async parseFullPage(pageData) {\n // New page\n const commonHeader = CommonHeader.get(pageData, 0);\n debug('Parse full page: type=%s, byteLength=%s', commonHeader.packetType, pageData.byteLength);\n switch (commonHeader.packetType) {\n case 3: // type 3: comment header\n return this.parseUserCommentList(pageData, CommonHeader.len);\n case 1: // type 1: the identification header\n case 5: // type 5: setup header type\n break; // ignore\n }\n }\n /**\n * Ref: https://xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-840005.2\n */\n async parseUserCommentList(pageData, offset) {\n const strLen = Token.UINT32_LE.get(pageData, offset);\n offset += 4;\n // const vendorString = new Token.StringType(strLen, 'utf-8').get(pageData, offset);\n offset += strLen;\n let userCommentListLength = Token.UINT32_LE.get(pageData, offset);\n offset += 4;\n while (userCommentListLength-- > 0) {\n offset += (await this.parseUserComment(pageData, offset));\n }\n }\n}\n","import * as Token from 'token-types';\nimport { textDecode } from '@borewit/text-codec';\nexport class VorbisDecoder {\n constructor(data, offset) {\n this.data = data;\n this.offset = offset;\n }\n readInt32() {\n const value = Token.UINT32_LE.get(this.data, this.offset);\n this.offset += 4;\n return value;\n }\n readStringUtf8() {\n const len = this.readInt32();\n const value = textDecode(this.data.subarray(this.offset, this.offset + len), 'utf-8');\n this.offset += len;\n return value;\n }\n parseUserComment() {\n const offset0 = this.offset;\n const v = this.readStringUtf8();\n const idx = v.indexOf('=');\n return {\n key: v.substring(0, idx).toUpperCase(),\n value: v.substring(idx + 1),\n len: this.offset - offset0\n };\n }\n}\n","import * as util from '../common/Util.js';\nimport { UINT16_BE, UINT24_BE, Uint8ArrayType } from 'token-types';\n/**\n * FLAC supports up to 128 kinds of metadata blocks; currently the following are defined:\n * ref: https://xiph.org/flac/format.html#metadata_block\n */\nexport const BlockType = {\n STREAMINFO: 0, // STREAMINFO\n PADDING: 1, // PADDING\n APPLICATION: 2, // APPLICATION\n SEEKTABLE: 3, // SEEKTABLE\n VORBIS_COMMENT: 4, // VORBIS_COMMENT\n CUESHEET: 5, // CUESHEET\n PICTURE: 6 // PICTURE\n};\nexport const BlockHeader = {\n len: 4,\n get: (buf, off) => {\n return {\n lastBlock: util.getBit(buf, off, 7),\n type: util.getBitAllignedNumber(buf, off, 1, 7),\n length: UINT24_BE.get(buf, off + 1)\n };\n }\n};\n/**\n * METADATA_BLOCK_DATA\n * Ref: https://xiph.org/flac/format.html#metadata_block_streaminfo\n */\nexport const BlockStreamInfo = {\n len: 34,\n get: (buf, off) => {\n return {\n // The minimum block size (in samples) used in the stream.\n minimumBlockSize: UINT16_BE.get(buf, off),\n // The maximum block size (in samples) used in the stream.\n // (Minimum blocksize == maximum blocksize) implies a fixed-blocksize stream.\n maximumBlockSize: UINT16_BE.get(buf, off + 2) / 1000,\n // The minimum frame size (in bytes) used in the stream.\n // May be 0 to imply the value is not known.\n minimumFrameSize: UINT24_BE.get(buf, off + 4),\n // The maximum frame size (in bytes) used in the stream.\n // May be 0 to imply the value is not known.\n maximumFrameSize: UINT24_BE.get(buf, off + 7),\n // Sample rate in Hz. Though 20 bits are available,\n // the maximum sample rate is limited by the structure of frame headers to 655350Hz.\n // Also, a value of 0 is invalid.\n sampleRate: UINT24_BE.get(buf, off + 10) >> 4,\n // probably slower: sampleRate: common.getBitAllignedNumber(buf, off + 10, 0, 20),\n // (number of channels)-1. FLAC supports from 1 to 8 channels\n channels: util.getBitAllignedNumber(buf, off + 12, 4, 3) + 1,\n // bits per sample)-1.\n // FLAC supports from 4 to 32 bits per sample. Currently the reference encoder and decoders only support up to 24 bits per sample.\n bitsPerSample: util.getBitAllignedNumber(buf, off + 12, 7, 5) + 1,\n // Total samples in stream.\n // 'Samples' means inter-channel sample, i.e. one second of 44.1Khz audio will have 44100 samples regardless of the number of channels.\n // A value of zero here means the number of total samples is unknown.\n totalSamples: util.getBitAllignedNumber(buf, off + 13, 4, 36),\n // the MD5 hash of the file (see notes for usage... it's a littly tricky)\n fileMD5: new Uint8ArrayType(16).get(buf, off + 18)\n };\n }\n};\n"],"mappings":"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","names":["import_debug","VorbisPictureToken","_VorbisPictureToken","__name","base64str","c","buffer","len","offset","type","AttachedPictureType","UINT32_BE","mimeLen","format","StringType","descLen","description","width","height","colour_depth","indexed_color","picDataLen","data","CommonHeader","buf","off","UINT8","IdentificationHeader","uint8Array","UINT32_LE","import_debug","VorbisDecoder","__name","data","offset","value","UINT32_LE","len","textDecode","offset0","v","idx","debug","debugInit","VorbisContentError","makeUnexpectedFileContentError","__name","VorbisStream","_VorbisStream","metadata","options","header","pageData","fullPage","arrays","totalSize","acc","e","merged","array","i","_arrays","offset","tag","VorbisDecoder","id","value","VorbisPictureToken","enfOfStream","_header","commonHeader","CommonHeader","idHeader","IdentificationHeader","strLen","UINT32_LE","userCommentListLength","BlockType","BlockHeader","__name","buf","off","getBit","getBitAllignedNumber","UINT24_BE","BlockStreamInfo","UINT16_BE","Uint8ArrayType","debug","initDebug","FlacContentError","makeUnexpectedFileContentError","__name","FlacParser","AbstractID3Parser","VorbisStream","FourCcToken","blockHeader","BlockHeader","dataSize","BlockType","dataLen","BlockStreamInfo","streamInfo","data","Uint8ArrayType","decoder","VorbisDecoder","vendor","commentListLength","tags","i","tag","VorbisPictureToken","picture","id","value"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-N4UC4CSU.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js new file mode 120000 index 00000000..43cc07e9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-NKBMV7UG.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js.br new file mode 120000 index 00000000..e49a594c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-NKBMV7UG.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js.map new file mode 120000 index 00000000..d12f941e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NKBMV7UG.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-NKBMV7UG.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js new file mode 100644 index 00000000..1fe7e73a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js @@ -0,0 +1,3 @@ +import{a as g,b as h}from"./chunk-53ATAZ4X.js";import{a as d}from"./chunk-BR5FNG6K.js";import{d as S}from"./chunk-J3G2CW6Q.js";import{c as D,e as k,f as m}from"./chunk-IA3NIKPO.js";import{b as w}from"./chunk-ZGMMU2IC.js";import{a as v}from"./chunk-AHHIFJPO.js";import{o as u}from"./chunk-XILA3E7E.js";import{a as b,c as M}from"./chunk-75KFZLU6.js";var O={};M(O,{CLASS:()=>x,NAME:()=>C,default:()=>N});var p=class extends D{static{b(this,"Sources")}static NAME="diffuse/orchestrator/sources";#t=u({});#e=u([]);sources=this.#t.get;disabled=this.#e.get;#s=u(null);isDisabled(t){return this.#e.get().includes(g(t))}async toggle(t){let s=g(t),n=this.#s.value;if(!n){console.warn("Output element is not available yet.");return}let a=await w(n.settings),i=a.find(e=>e.key===d),o=h(a);o.includes(s)?o=o.filter(e=>e!==s):o=[...o,s];let r=JSON.stringify(o),c=i?a.map(e=>e.key===d?{...e,value:r}:e):[...a,{$type:"sh.diffuse.output.setting",id:crypto.randomUUID(),key:d,value:r}];await n.settings.save(c)}async connectedCallback(){super.connectedCallback();let t=m(this,"input-selector"),s=m(this,"output-selector");await customElements.whenDefined(t.localName),await customElements.whenDefined(s.localName),this.#s.value=s,this.effect(()=>{let i=s.settings.collection();if(i.state!=="loaded"){this.#e.value=[];return}this.#e.value=h(i.data)});let n=!!t.SCHEME,a=n?{}:t.dependencies();this.effect(()=>{let i=s.tracks.collection(),o=i.state==="loaded"?i.data:[],r=S(o),c={};Object.entries(r).map(([e,f])=>{let l;if(n)t.SCHEME===e?l=t.sources(f):l=[];else{let y=a[e];y?l=y.sources(f):l=f.map(E=>({label:E.uri,uri:E.uri}))}c[e]=l}),v(this.#t.value,c)&&(this.#t.value=c)})}},N=p,x=p,C="do-sources";k(C,x);export{N as a,x as b,C as c,O as d}; + +//# sourceMappingURL=./chunk-NO5VWJVI.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js.br new file mode 100644 index 0000000000000000000000000000000000000000..0d35f89ef27ee829e3a881c4b2843fb30d45eb51 GIT binary patch literal 852 zcmb2%%f|2|X4c>LpNsZ{OJo{pe(h27TiLs{a9VCeTdtE&jGuJ(e3J=PTk2<>HO>6U z!n^z2^<a3j^>T0)c+Ivl^*Yn(G)#M{8)7YnKO#hScJE(k7ul>?30VQsS@BO)T z>fGORuU{FL#%hIDP03X(%fHU2-+%4AhUy8~BQH-~{B-Z~FW#jF?-$=YYr7`SmTi`R zy0!Ln_4MoEJB}*|-&pT1F3x{iy;|Y1WLaOoKc9bYkj@E?Z=X;8Ja_8gvBqV+ecyKk zB;Jm&wyv?Qk2t>I%R$k04gDjcZF@h@-M!m~A>a37(epV$O`6$|4@GtF|@Y*|ap{ zpsC+^L+cYd`voVuepjpxGCva>^k|yvvRRzm5gSf!KiRmd|BQ{m#AAia(tXdEq+GM% zI{e;ibHub=d~4@VnbG?G*D(>_nWAUce47@L_WtnUllvInyo?Nsx>|R_(R{9u*6T~% zNvstmQCaf619lx0f{d`B>cf^X#XSfrx(T zD%p(-s^XXP`D@yI6n6X6%$QZMGi*=BO z;w_7Z`o||1o^4t9w7Gd{C0f*soJPS7-m5uzAn<&C@2W>OR4k-#MYlEQQ@9i>FVj zc)J4Akw?Du1@)UBM;LI~RR(Wp*k3O{`Nu>K!$+#uEuKn!x6plS6B_#Mh@79}E6w{s VdW@~X#nRvRF|o$&JgrgB2mmy-suutN literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js.map new file mode 100644 index 00000000..2af1260a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NO5VWJVI.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/orchestrator/sources/element.js"],"sourcesContent":["import deepDiff from \"@fry69/deep-diff\";\n\nimport * as Output from \"~/common/output.js\";\nimport { BroadcastableDiffuseElement, defineElement, query } from \"~/common/element.js\";\nimport { groupTracksPerScheme } from \"~/common/utils.js\";\nimport { signal } from \"~/common/signal.js\";\n\nimport { DISABLED_KEY } from \"./constants.js\";\nimport { parseDisabledUris, uriKey } from \"./common.js\";\n\n/**\n * @import {InputElement, Source} from \"@specs/components/input/types.d.ts\"\n * @import {OutputElement} from \"@specs/components/output/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\nclass Sources extends BroadcastableDiffuseElement {\n static NAME = \"diffuse/orchestrator/sources\";\n\n // SIGNALS\n\n #sources = signal(/** @type {{ [scheme: string]: Source[] }} */ ({}));\n #disabled = signal(/** @type {string[]} */ ([]));\n\n // STATE\n\n sources = this.#sources.get;\n disabled = this.#disabled.get;\n\n #output = signal(/** @type {OutputElement | null} */ (null));\n\n // METHODS\n\n /**\n * Returns whether the given source URI is disabled.\n * Strips query params before comparing, matching how {@link toggle} stores keys.\n *\n * @param {string} uri\n * @returns {boolean}\n */\n isDisabled(uri) {\n return this.#disabled.get().includes(uriKey(uri));\n }\n\n /**\n * @param {string} uri\n */\n async toggle(uri) {\n const key = uriKey(uri);\n\n const output = this.#output.value;\n if (!output) {\n console.warn(\"Output element is not available yet.\");\n return;\n }\n\n const settings = await Output.data(output.settings);\n const existing = settings.find((s) => s.key === DISABLED_KEY);\n\n let disabled = parseDisabledUris(settings);\n\n if (disabled.includes(key)) {\n disabled = disabled.filter((u) => u !== key);\n } else {\n disabled = [...disabled, key];\n }\n\n const value = JSON.stringify(disabled);\n const updated = existing\n ? settings.map((s) =>\n s.key === DISABLED_KEY ? { ...s, value } : s\n )\n : [\n ...settings,\n {\n $type: /** @type {\"sh.diffuse.output.setting\"} */ (\n \"sh.diffuse.output.setting\"\n ),\n id: crypto.randomUUID(),\n key: DISABLED_KEY,\n value,\n },\n ];\n\n await output.settings.save(updated);\n }\n\n // LIFECYCLE\n\n /**\n * @override\n */\n async connectedCallback() {\n super.connectedCallback();\n\n /** @type {InputElement} */\n const input = query(this, \"input-selector\");\n\n /** @type {OutputElement} */\n const output = query(this, \"output-selector\");\n\n // Wait until defined\n await customElements.whenDefined(input.localName);\n await customElements.whenDefined(output.localName);\n\n // Signals\n this.#output.value = output;\n\n // Effects\n this.effect(() => {\n const col = output.settings.collection();\n if (col.state !== \"loaded\") { this.#disabled.value = []; return; }\n this.#disabled.value = parseDisabledUris(col.data);\n });\n\n // Single input mode + dependencies\n const singleInputMode = !!input.SCHEME;\n const deps =\n /** @type {{ [k: string]: InputElement }} */ (singleInputMode\n ? {}\n : input.dependencies());\n\n // Effects\n this.effect(() => {\n const col = output.tracks.collection();\n const tracks = col.state === \"loaded\" ? col.data : [];\n const groups = groupTracksPerScheme(tracks);\n\n /** @type {{ [scheme: string]: Source[] }} */\n const record = {};\n\n Object.entries(groups).map(([scheme, tracks]) => {\n /** @type {Source[]} */\n let sources;\n\n if (singleInputMode) {\n if (input.SCHEME === scheme) {\n sources = input.sources(tracks);\n } else {\n sources = [];\n }\n } else {\n const dep = deps[scheme];\n if (!dep) sources = tracks.map((t) => ({ label: t.uri, uri: t.uri }));\n else sources = dep.sources(tracks);\n }\n\n record[scheme] = sources;\n });\n\n if (deepDiff(this.#sources.value, record)) {\n this.#sources.value = record;\n }\n });\n }\n}\n\nexport default Sources;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = Sources;\nexport const NAME = \"do-sources\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"4VAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAmBA,IAAMC,EAAN,cAAsBC,CAA4B,CAnBlD,MAmBkD,CAAAC,EAAA,gBAChD,OAAO,KAAO,+BAIdC,GAAWC,EAAsD,CAAC,CAAE,EACpEC,GAAYD,EAAgC,CAAC,CAAE,EAI/C,QAAU,KAAKD,GAAS,IACxB,SAAW,KAAKE,GAAU,IAE1BC,GAAUF,EAA4C,IAAK,EAW3D,WAAWG,EAAK,CACd,OAAO,KAAKF,GAAU,IAAI,EAAE,SAASG,EAAOD,CAAG,CAAC,CAClD,CAKA,MAAM,OAAOA,EAAK,CAChB,IAAME,EAAMD,EAAOD,CAAG,EAEhBG,EAAS,KAAKJ,GAAQ,MAC5B,GAAI,CAACI,EAAQ,CACX,QAAQ,KAAK,sCAAsC,EACnD,MACF,CAEA,IAAMC,EAAW,MAAaC,EAAKF,EAAO,QAAQ,EAC5CG,EAAWF,EAAS,KAAMG,GAAMA,EAAE,MAAQC,CAAY,EAExDC,EAAWC,EAAkBN,CAAQ,EAErCK,EAAS,SAASP,CAAG,EACvBO,EAAWA,EAAS,OAAQE,GAAMA,IAAMT,CAAG,EAE3CO,EAAW,CAAC,GAAGA,EAAUP,CAAG,EAG9B,IAAMU,EAAQ,KAAK,UAAUH,CAAQ,EAC/BI,EAAUP,EACZF,EAAS,IAAKG,GACdA,EAAE,MAAQC,EAAe,CAAE,GAAGD,EAAG,MAAAK,CAAM,EAAIL,CAC7C,EACE,CACA,GAAGH,EACH,CACE,MACE,4BAEF,GAAI,OAAO,WAAW,EACtB,IAAKI,EACL,MAAAI,CACF,CACF,EAEF,MAAMT,EAAO,SAAS,KAAKU,CAAO,CACpC,CAOA,MAAM,mBAAoB,CACxB,MAAM,kBAAkB,EAGxB,IAAMC,EAAQC,EAAM,KAAM,gBAAgB,EAGpCZ,EAASY,EAAM,KAAM,iBAAiB,EAG5C,MAAM,eAAe,YAAYD,EAAM,SAAS,EAChD,MAAM,eAAe,YAAYX,EAAO,SAAS,EAGjD,KAAKJ,GAAQ,MAAQI,EAGrB,KAAK,OAAO,IAAM,CAChB,IAAMa,EAAMb,EAAO,SAAS,WAAW,EACvC,GAAIa,EAAI,QAAU,SAAU,CAAE,KAAKlB,GAAU,MAAQ,CAAC,EAAG,MAAQ,CACjE,KAAKA,GAAU,MAAQY,EAAkBM,EAAI,IAAI,CACnD,CAAC,EAGD,IAAMC,EAAkB,CAAC,CAACH,EAAM,OAC1BI,EAC0CD,EAC1C,CAAC,EACDH,EAAM,aAAa,EAGzB,KAAK,OAAO,IAAM,CAChB,IAAME,EAAMb,EAAO,OAAO,WAAW,EAC/BgB,EAASH,EAAI,QAAU,SAAWA,EAAI,KAAO,CAAC,EAC9CI,EAASC,EAAqBF,CAAM,EAGpCG,EAAS,CAAC,EAEhB,OAAO,QAAQF,CAAM,EAAE,IAAI,CAAC,CAACG,EAAQJ,CAAM,IAAM,CAE/C,IAAIK,EAEJ,GAAIP,EACEH,EAAM,SAAWS,EACnBC,EAAUV,EAAM,QAAQK,CAAM,EAE9BK,EAAU,CAAC,MAER,CACL,IAAMC,EAAMP,EAAKK,CAAM,EAClBE,EACAD,EAAUC,EAAI,QAAQN,CAAM,EADvBK,EAAUL,EAAO,IAAKO,IAAO,CAAE,MAAOA,EAAE,IAAK,IAAKA,EAAE,GAAI,EAAE,CAEtE,CAEAJ,EAAOC,CAAM,EAAIC,CACnB,CAAC,EAEGG,EAAS,KAAK/B,GAAS,MAAO0B,CAAM,IACtC,KAAK1B,GAAS,MAAQ0B,EAE1B,CAAC,CACH,CACF,EAEOM,EAAQnC,EAMFoC,EAAQpC,EACRqC,EAAO,aAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","Sources","BroadcastableDiffuseElement","__name","#sources","signal","#disabled","#output","uri","uriKey","key","output","settings","data","existing","s","DISABLED_KEY","disabled","parseDisabledUris","u","value","updated","input","query","col","singleInputMode","deps","tracks","groups","groupTracksPerScheme","record","scheme","sources","dep","t","deep_diff_default","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-NO5VWJVI.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js new file mode 100644 index 00000000..ec8e9bcc --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js @@ -0,0 +1,8 @@ +import{f as M,g as R}from"./chunk-MO4SFPUT.js";import{a as L}from"./chunk-KQX3HL46.js";import{a as U}from"./chunk-BTSSVB7R.js";import{d as Y}from"./chunk-ELB3AQIW.js";import{b as q}from"./chunk-RL4C7EJ7.js";import{e as T}from"./chunk-IA3NIKPO.js";import{a as N,b as O}from"./chunk-EIUJL2DK.js";import{a as j}from"./chunk-AHHIFJPO.js";import{a as B}from"./chunk-BD6UIPEI.js";import{j as A,o as x}from"./chunk-XILA3E7E.js";import{a as l,c as H}from"./chunk-75KFZLU6.js";var Q={};H(Q,{CLASS:()=>z,NAME:()=>F,default:()=>K});var J={cid:void 0,data:[],inventory:{current:{},removed:[]}},P=class extends U{static{l(this,"DaslBytesSyncOutputTransformer")}static NAME="diffuse/transformer/output/bytes/dasl-sync";constructor(){super();let e=this.base(),s=this.#e.get,u=l((a,S,k,{saveLocal:g,saveRemote:y})=>{let c=x(J,{compare:O}),h=x(!1),t=x({isBusy:!1,lastCID:"",lastRemoteCID:""},{compare:N});return this.effect(()=>{if(!h.value||t.value.isBusy)return;let o=S(),n=e.ready()?k():void 0,I=o?.state==="loaded"?o.data:void 0,C=n?.state==="loaded"?n.data:void 0,D=n?.state,i=I?M(I):void 0,p=C&&D==="loaded"?M(C):void 0;if(!p)i&&(c.value=i,e.ready()&&D==="loaded"&&this.isLeader().then(d=>{if(!d)return;let b=this.save(i);y(b)}));else if(!i)c.value=p,this.isLeader().then(d=>{if(!d)return;let b=this.save(p);g(b)});else if(D==="loaded"&&this.hasDiverged({local:i,remote:p})){let d=t.value;if(d.lastCID===(i.cid??"")&&d.lastRemoteCID===(p.cid??""))return;this.isLeader().then(b=>{b&&(t.value={isBusy:!0,lastCID:d.lastCID,lastRemoteCID:d.lastRemoteCID},this.merge(i,p).then(async w=>{let $=p.cid??"",G=w.cid??"";try{c.value=w;let E=this.save(w);w.cid!==i.cid&&await g(E),e.ready()&&D==="loaded"&&w.cid!==p.cid&&(await y(E),$=w.cid??"")}catch(E){console.error("Merge failed:",E)}finally{t.value={isBusy:!1,lastCID:G,lastRemoteCID:$}}}).catch(w=>{console.error("Merge failed:",w),t.value={isBusy:!1,lastCID:i.cid??"",lastRemoteCID:p.cid??""}}))})}else c.value=i}),A(()=>(h.get()||(h.value=!0),c.get()))},"state"),f=u("facets",A(()=>s()?.facets.collection()??{state:"loading"}),e.facets.collection,{saveLocal:l(async a=>s()?.facets.save(a),"saveLocal"),saveRemote:e.facets.save}),v=u("playlistItems",A(()=>s()?.playlistItems.collection()??{state:"loading"}),e.playlistItems.collection,{saveLocal:l(async a=>s()?.playlistItems.save(a),"saveLocal"),saveRemote:e.playlistItems.save}),r=u("settings",A(()=>s()?.settings.collection()??{state:"loading"}),e.settings.collection,{saveLocal:l(async a=>s()?.settings.save(a),"saveLocal"),saveRemote:e.settings.save}),m=u("tracks",A(()=>s()?.tracks.collection()??{state:"loading"}),e.tracks.collection,{saveLocal:l(async a=>s()?.tracks.save(a),"saveLocal"),saveRemote:e.tracks.save});this.facets=this.managerProp({save:l(async a=>s()?.facets.save(a),"save")},e.facets,e.ready,f,"facets"),this.playlistItems=this.managerProp({save:l(async a=>s()?.playlistItems.save(a),"save")},e.playlistItems,e.ready,v,"playlistItems"),this.settings=this.managerProp({save:l(async a=>s()?.settings.save(a),"save")},e.settings,e.ready,r,"settings"),this.tracks=this.managerProp({save:l(async a=>s()?.tracks.save(a),"save")},e.tracks,e.ready,m,"tracks"),this.ready=()=>!0}#e=x(void 0);async connectedCallback(){this.hasAttribute("group")&&this.broadcast(this.identifier,{}),super.connectedCallback();let e=this.root().querySelector("dop-indexed-db");if(!e)throw new Error("Can't find local output");customElements.whenDefined(e.localName).then(()=>{this.#e.value=e})}async updateContainer({previous:e,collection:s,name:u}){let f=e.inventory,v=u?Y(u):null,r=s.map(({id:n})=>n),m=new Set(Object.keys(f.current)),a=new Set(r),S=a.difference(m),k=m.difference(a),y=new Set(f.removed).union(k),c={...f.current};k.forEach(n=>{delete c[n]});let h=[];s.forEach(n=>{let I=R(n);h.push((async()=>{let C=await B(113,I);c[n.id]=C})())}),await Promise.all(h);let t={current:c,removed:Array.from(y)},o={cid:await B(113,R(t)),data:s,inventory:t};return v?{...o,$schema:v}:o}hasDiverged({local:e,remote:s}){return e.cid!==s.cid}async merge(e,s){let u=new Set(e.inventory.removed),f=new Set(s.inventory.removed),v=u.union(f),r=e.inventory.current,m=s.inventory.current,a=new Map(e.data.map(t=>[t.id,t])),S=new Map(s.data.map(t=>[t.id,t])),k=new Set([...Object.keys(r),...Object.keys(m)]),g={},y=[],c=[];for(let t of k)if(!v.has(t))if(t in r&&t in m){let o=a.get(t),n=S.get(t);if(!o||!n){console.warn("Should have found both items but didn't!");continue}if(r[t]===m[t]){y.push(o),g[t]=r[t];continue}let I=!!o.updatedAt,C=!!n.updatedAt,D=I&&!C?!0:!I&&C?!1:I&&C?q(o.updatedAt,n.updatedAt)>0:!1,i=D?o:n,d={...D?n:o};j.applyDiff(d,i),y.push(d),c.push(B(113,R(d)).then(b=>{g[t]=b}))}else{let o=a.get(t)??S.get(t);o&&(y.push(o),g[t]=r[t]??m[t])}await Promise.all(c);let h={current:g,removed:Array.from(v)};return{cid:await B(113,R(h)),data:y,inventory:h,$schema:e.$schema}}save(e){return R(e)}managerProp(e,s,u,f,v){return{collection:A(()=>{let r=f();return r.cid===void 0&&u()&&s.collection().state==="loading"?{state:"loading"}:{state:"loaded",data:r.data}}),reload:s.reload,save:l(async r=>{let m=await this.updateContainer({collection:r,previous:f(),name:v}),a=this.save(m);await e.save(a)},"save")}}render({html:e}){return e` + + `}},K=P,z=P,F="dtob-dasl-sync";T(F,z);export{K as a,z as b,F as c,Q as d}; + +//# sourceMappingURL=./chunk-NVG7OXSF.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js.br new file mode 100644 index 0000000000000000000000000000000000000000..7c1191e427b4a4d9a87794f46101b3d9846b9be6 GIT binary patch literal 2106 zcmb1k5@mR@Y3aY;m5gUE+@0AwX^VNuVT)~-Cp<37?@#ZVxM6C-N!FWuinGe!Zv7N> zO*E^h$f-^!&+V=6-%~2n-#mR@HD930Bw@mVNe+zG%~`AZC$9cw=_eS_mLScWR3Fdk zDjjq2(b>B9g*9m^e5alsvw0VPchCGe_x}CRle?vnYZUzEnNZnL@$&um=f>{)pYfo5 z=H&O2PoAIb|K0e~0eR!crze*;@BVZB%$)=E#^0yEZ=Zkc`TVpgjqm;E@ZXDlF23E| z#%dks*2dZDa?kD0>EG|ulPmkY;r^Q6$7Zh! zo@8HB99QwV?zrXmrPEGc%aWA2R5?d#(#xJLmgS)*&0;UTjxu^_yYk`+pJm4HUru{J zRi68d?M*iOs<~xfwr*Uf@49%=T7RqMw>;BN&F+oPzZ2Wr@_dKZDmAD3ZEQaOxZH!n zuPzH^=j)M;nDaNG@5Oe$l#ADX=cb?1*z579DVL%8^lNsX?59jezpUIaSw&&1s{H4u z&eozW52Y3?;Is{@XIrt)J6f!C(}L&A@2{R(s`b+5Q(^y_txwb~mj9c#5ShHsqc0EJ*nnPb|vSr zA7oZ6KL7uugwst1B9PMn&>v}pN>fZs|>y37Syr4_HcNp$HZsCBUl)|qBy zGi*NNZyjRvqcT@);`DBtEl1qBwx+#V=D_=OuI2=#7tTswmhE2geTVz4qF?UUN-tjB zRk|}+yKU*#SwF+BdYJw;vX`n}ctP#m#98MaG(~C^Okz=A7V<-8rQgZK!0VEp5*y~H#xhS|VX5F1cc6#! zwWnQ5qf*V@lg(4Zc)!YNvfY{Npx4ReC})u>$fd)Bfiwx-*lOPU`KqHWJkq+`#OAd&1vF zUbU6G_9j;5N5B8PcUmWB{>qP>3-V8P7EMSBnz*ukfzZM_wuxLTez9d9YUMaz?{9i) z3Rjp%{~oQUTpP1hLcIGKJC!!pvDzq2y~C~8vFG~o{zaS4?$DT?@MFjMjkBAIveM$R zw#R-dnYOKAL6*kzYJ(Yi#T84otQOd0-7aHVbAwYxcJE@D%SBl&(~RY+T24+AJo7nU zdiSNZLawogCoMT%I7@k2e`)hFO{292peKS6r-<&@Eg3DC>d!oIK8Jo7uj$$k4t2pbMufF}?oIBq>&uyOlL(V)u<^`MG zU8&_~-6~@pjZ2Nw;(YJ&{Pv4|ES4F_`s%ugL)Kg#XYHQ<7mFTboJh<#WtVlNQl|Z| zj*ZVDo4)qQiYb5UPt<4Z+BQ?ZpI`Z+Did}oxtePe}q28)L;^5{x6;+$weDpHwTX?-sM|y&7h4dWl(rIqu?{sHPog}NL zQ)*q9S+1wLP3GSD^hKLCMZa@gIG^XZ=+-R@yS61*fA14N>bK$l%rW#!kAlU{c_AonF>J`SPGp&&iTvId8l^Z@XZizUGd?oa86! zQ?|-}GBMeGAuEv4NAu3N1T7=WyjFvCs~jA@_@B}DxV13ez|JCYp7w|Lp&zo%DdQL literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js.map new file mode 100644 index 00000000..f0be0eb5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NVG7OXSF.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/transformer/output/bytes/dasl-sync/element.js"],"sourcesContent":["import { decode, encode } from \"@atcute/cbor\";\nimport { ifDefined } from \"lit-html/directives/if-defined.js\";\nimport deepDiff from \"@fry69/deep-diff\";\n\nimport \"~/components/output/polymorphic/indexed-db/element.js\";\n\nimport * as CID from \"~/common/cid.js\";\nimport { diff, strictEquality } from \"~/common/compare.js\";\nimport { collectionSchema } from \"~/common/self-describing.js\";\nimport { computed, signal } from \"~/common/signal.js\";\nimport { compareTimestamps } from \"~/common/temporal.js\";\nimport { OutputTransformer } from \"../../base.js\";\nimport { defineElement } from \"~/common/element.js\";\n\n/**\n * @import { SignalReader } from \"~/common/signal.d.ts\";\n * @import { RenderArg } from \"~/common/element.d.ts\"\n * @import { OutputElement } from \"@specs/components/output/types.d.ts\"\n *\n * @import { Container } from \"@specs/components/transformer/output/bytes/dasl-sync/types.d.ts\"\n */\n\n/** @type {Container} */\nconst EMPTY = {\n cid: undefined,\n data: [],\n inventory: { current: {}, removed: [] },\n};\n\n/**\n * @extends {OutputTransformer}\n */\nclass DaslBytesSyncOutputTransformer extends OutputTransformer {\n static NAME = \"diffuse/transformer/output/bytes/dasl-sync\";\n\n constructor() {\n super();\n\n const remote = this.base();\n const local = this.#localOutput.get;\n\n /**\n * @template {{ id: string; updatedAt: string }} T\n * @param {string} kind\n * @param {SignalReader<{ state: \"loading\" } | { state: \"loaded\"; data: Uint8Array | undefined } | { state: \"error\" }>} localCollection\n * @param {SignalReader<{ state: \"loading\" } | { state: \"loaded\"; data: Uint8Array | undefined } | { state: \"error\" }>} remoteCollection\n * @param {{ saveLocal: (bytes: Uint8Array) => Promise; saveRemote: (bytes: Uint8Array) => Promise }} sync\n */\n const state = (\n kind,\n localCollection,\n remoteCollection,\n { saveLocal, saveRemote },\n ) => {\n const container = signal(\n /** @type {Container} */ (EMPTY),\n { compare: strictEquality },\n );\n\n const isReady = signal(false);\n const merging = signal(\n { isBusy: false, lastCID: \"\", lastRemoteCID: \"\" },\n { compare: diff },\n );\n\n this.effect(() => {\n if (!isReady.value) return;\n if (merging.value.isBusy) return;\n\n const lc = localCollection();\n const rc = remote.ready() ? remoteCollection() : undefined;\n\n const lb = lc?.state === \"loaded\" ? lc.data : undefined;\n const rb = rc?.state === \"loaded\" ? rc.data : undefined;\n const rs = rc?.state;\n\n /** @type {Container | undefined} */\n const l = lb ? decode(lb) : undefined;\n\n /** @type {Container | undefined} */\n const r = rb && rs === \"loaded\" ? decode(rb) : undefined;\n\n if (!r) {\n if (l) {\n container.value = l;\n\n if (remote.ready() && rs === \"loaded\") {\n this.isLeader().then((isLeader) => {\n if (!isLeader) return;\n const bytes = this.save(l);\n saveRemote(bytes);\n });\n }\n }\n } else if (!l) {\n container.value = r;\n\n this.isLeader().then((isLeader) => {\n if (!isLeader) return;\n const bytes = this.save(r);\n saveLocal(bytes);\n });\n } else if (\n rs === \"loaded\" && this.hasDiverged({ local: l, remote: r })\n ) {\n // If we've already reconciled this exact (local, remote) pair and it\n // made no progress (e.g. the remote write failed, or the merge\n // resolved to the container we already hold), don't re-enter the\n // merge. Re-merging here only toggles `merging`'s busy flag, which\n // re-runs this effect and spins the reactive sync loop, freezing the\n // page. Wait until local or remote actually changes before trying\n // again.\n const prev = merging.value;\n if (prev.lastCID === (l.cid ?? \"\") &&\n prev.lastRemoteCID === (r.cid ?? \"\")) {\n return;\n }\n\n // Async merge\n this.isLeader().then((isLeader) => {\n if (!isLeader) return;\n\n merging.value = {\n isBusy: true,\n lastCID: prev.lastCID,\n lastRemoteCID: prev.lastRemoteCID,\n };\n\n this.merge(l, r).then(async (c) => {\n /**\n * Remote cid after the (possible) push. Stays at the pre-merge\n * remote cid when there's nothing to push or the push fails, so\n * the effect-level guard above knows this reconcile was already\n * attempted and won't retry it in a loop.\n */\n let resolvedRemoteCID = r.cid ?? \"\";\n let reconciledCID = c.cid ?? \"\";\n\n try {\n container.value = c;\n\n const bytes = this.save(c);\n\n if (c.cid !== l.cid) {\n await saveLocal(bytes);\n }\n\n if (remote.ready() && rs === \"loaded\" && c.cid !== r.cid) {\n await saveRemote(bytes);\n resolvedRemoteCID = c.cid ?? \"\";\n }\n } catch (err) {\n console.error(\"Merge failed:\", err);\n } finally {\n merging.value = {\n isBusy: false,\n lastCID: reconciledCID,\n lastRemoteCID: resolvedRemoteCID,\n };\n }\n }).catch((err) => {\n // Merge() itself rejected (before producing a reconciled\n // container). Reset the busy flag so the effect isn't stuck, and\n // record the exact (local, remote) pair we attempted so a\n // persistent failure is skipped rather than spinning forever.\n console.error(\"Merge failed:\", err);\n merging.value = {\n isBusy: false,\n lastCID: l.cid ?? \"\",\n lastRemoteCID: r.cid ?? \"\",\n };\n });\n });\n } else {\n container.value = l;\n }\n });\n\n return computed(() => {\n if (!isReady.get()) isReady.value = true;\n return container.get();\n });\n };\n\n // Container signals\n const facets = state(\n \"facets\",\n computed(() => local()?.facets.collection() ?? { state: \"loading\" }),\n remote.facets.collection,\n {\n saveLocal: async (v) => local()?.facets.save(v),\n saveRemote: remote.facets.save,\n },\n );\n\n const playlistItems = state(\n \"playlistItems\",\n computed(() =>\n local()?.playlistItems.collection() ?? { state: \"loading\" }\n ),\n remote.playlistItems.collection,\n {\n saveLocal: async (v) => local()?.playlistItems.save(v),\n saveRemote: remote.playlistItems.save,\n },\n );\n\n const settings = state(\n \"settings\",\n computed(() => local()?.settings.collection() ?? { state: \"loading\" }),\n remote.settings.collection,\n {\n saveLocal: async (v) => local()?.settings.save(v),\n saveRemote: remote.settings.save,\n },\n );\n\n const tracks = state(\n \"tracks\",\n computed(() => local()?.tracks.collection() ?? { state: \"loading\" }),\n remote.tracks.collection,\n {\n saveLocal: async (v) => local()?.tracks.save(v),\n saveRemote: remote.tracks.save,\n },\n );\n\n // Output manager\n this.facets = this.managerProp(\n { save: async (v) => local()?.facets.save(v) },\n remote.facets,\n remote.ready,\n facets,\n \"facets\",\n );\n\n this.playlistItems = this.managerProp(\n { save: async (v) => local()?.playlistItems.save(v) },\n remote.playlistItems,\n remote.ready,\n playlistItems,\n \"playlistItems\",\n );\n\n this.settings = this.managerProp(\n { save: async (v) => local()?.settings.save(v) },\n remote.settings,\n remote.ready,\n settings,\n \"settings\",\n );\n\n this.tracks = this.managerProp(\n { save: async (v) => local()?.tracks.save(v) },\n remote.tracks,\n remote.ready,\n tracks,\n \"tracks\",\n );\n\n this.ready = () => true;\n }\n\n // SIGNALS\n\n #localOutput = signal(\n /** @type {OutputElement | undefined} */ (undefined),\n );\n\n // LIFECYCLE\n\n /**\n * @override\n */\n async connectedCallback() {\n // Broadcast if needed\n if (this.hasAttribute(\"group\")) {\n this.broadcast(this.identifier, {});\n }\n\n super.connectedCallback();\n\n /** @type {OutputElement | null} */\n const local = this.root().querySelector(\"dop-indexed-db\");\n if (!local) throw new Error(\"Can't find local output\");\n\n customElements.whenDefined(local.localName).then(() => {\n this.#localOutput.value = local;\n });\n }\n\n // DATA FUNCTIONS\n\n /**\n * @template {{ id: string; updatedAt: string }} T\n * @param {{ previous: Container, collection: T[], name?: import(\"~/common/self-describing.js\").CollectionName }} _\n * @returns {Promise>}\n */\n async updateContainer({ previous, collection, name }) {\n const inventory = previous.inventory;\n const schema = name ? collectionSchema(name) : null;\n\n const collIds = collection.map(({ id }) => id);\n\n const currSet = new Set(Object.keys(inventory.current));\n const collSet = new Set(collIds);\n\n const newSet = collSet.difference(currSet);\n const remSet = currSet.difference(collSet);\n\n const alreadyRemoved = new Set(inventory.removed);\n const allRemoved = alreadyRemoved.union(remSet);\n\n /** @type {Record} */\n const current = { ...inventory.current };\n\n remSet.forEach((id) => {\n delete current[id];\n });\n\n /** @type Promise[] */\n const promises = [];\n\n collection.forEach((a) => {\n const encoded = encode(a);\n\n promises.push((async () => {\n const cid = await CID.create(0x71, encoded);\n current[a.id] = cid;\n })());\n });\n\n await Promise.all(promises);\n\n const newInventory = {\n current,\n removed: Array.from(allRemoved),\n };\n\n const container = {\n cid: await CID.create(0x71, encode(newInventory)),\n data: collection,\n inventory: newInventory,\n };\n return schema ? { ...container, $schema: schema } : container;\n }\n\n /**\n * @template {{ id: string; updatedAt: string }} T\n * @param {{ local: Container, remote: Container }} _\n */\n hasDiverged({ local, remote }) {\n return local.cid !== remote.cid;\n }\n\n /**\n * @template {{ id: string; updatedAt: string }} T\n * @param {Container} a\n * @param {Container} b\n * @returns {Promise>}\n */\n async merge(a, b) {\n const removedA = new Set(a.inventory.removed);\n const removedB = new Set(b.inventory.removed);\n const allRemoved = removedA.union(removedB);\n\n const currentA = a.inventory.current;\n const currentB = b.inventory.current;\n\n const mapA = new Map(a.data.map((item) => [item.id, item]));\n const mapB = new Map(b.data.map((item) => [item.id, item]));\n\n // Combine all known ids from both sides\n const allIds = new Set([\n ...Object.keys(currentA),\n ...Object.keys(currentB),\n ]);\n\n /** @type {Record} */\n const current = {};\n\n /** @type {T[]} */\n const data = [];\n\n // Construct `current` and `data`\n /** @type {Promise[]} */\n const cidPromises = [];\n\n for (const id of allIds) {\n if (allRemoved.has(id)) continue;\n\n if (id in currentA && id in currentB) {\n const itemA = mapA.get(id);\n const itemB = mapB.get(id);\n\n if (!itemA || !itemB) {\n console.warn(\"Should have found both items but didn't!\");\n continue;\n }\n\n // Items are identical, no merge or CID recomputation needed\n if (currentA[id] === currentB[id]) {\n data.push(itemA);\n current[id] = currentA[id];\n continue;\n }\n\n const hasAUpdatedAt = Boolean(itemA.updatedAt);\n const hasBUpdatedAt = Boolean(itemB.updatedAt);\n\n // The side that carries an `updatedAt` is the one that was edited, so\n // it should win over a pristine copy that never recorded a change (e.g.\n // a legacy seeded/starting-set facet persisted before it gained a\n // timestamp). Only when both carry one do we compare clocks.\n const isANewerThanB = (hasAUpdatedAt && !hasBUpdatedAt)\n ? true\n : (!hasAUpdatedAt && hasBUpdatedAt)\n ? false\n : hasAUpdatedAt && hasBUpdatedAt\n ? compareTimestamps(itemA.updatedAt, itemB.updatedAt) > 0\n : false;\n\n const newestItem = isANewerThanB ? itemA : itemB;\n const oldItem = isANewerThanB ? itemB : itemA;\n\n /** @type {T} */\n const mergedItem = { ...oldItem };\n\n deepDiff.applyDiff(mergedItem, newestItem);\n\n data.push(mergedItem);\n\n cidPromises.push(\n CID.create(0x71, encode(mergedItem)).then((cid) => {\n current[id] = cid;\n }),\n );\n } else {\n const item = mapA.get(id) ?? mapB.get(id);\n\n if (item) {\n data.push(item);\n current[id] = currentA[id] ?? currentB[id];\n }\n }\n }\n\n await Promise.all(cidPromises);\n\n // New inventory\n const updatedInventory = { current, removed: Array.from(allRemoved) };\n\n return {\n cid: await CID.create(0x71, encode(updatedInventory)),\n data,\n inventory: updatedInventory,\n $schema: a.$schema,\n };\n }\n\n /**\n * @template {{ id: string; updatedAt: string }} T\n * @param {Container} container\n * @returns {Uint8Array}\n */\n save(container) {\n return encode(container);\n }\n\n // OUTPUT MANAGER FUNCTIONS\n\n /**\n * @template {{ id: string; updatedAt: string }} T\n * @param {{ save: (bytes: Uint8Array) => Promise | void }} local\n * @param {{ collection: SignalReader<{ state: \"loading\" } | { state: \"loaded\"; data: Uint8Array | undefined } | { state: \"error\" }>, reload: () => Promise, save: (bytes: Uint8Array) => Promise }} remote\n * @param {SignalReader} remoteReady\n * @param {SignalReader>} container\n * @param {import(\"~/common/self-describing.js\").CollectionName} name\n * @returns {{ collection: SignalReader<{ state: \"loading\" } | { state: \"loaded\"; data: T[] } | { state: \"error\" }>, reload: () => Promise, save: (items: T[]) => Promise }}\n */\n managerProp(local, remote, remoteReady, container, name) {\n return {\n collection: computed(() => {\n const c = container();\n\n if (c.cid === undefined && remoteReady() && remote.collection().state === \"loading\") {\n return { state: \"loading\" };\n }\n\n return { state: \"loaded\", data: c.data };\n }),\n reload: remote.reload,\n save: async (/** @type {T[]} */ newItems) => {\n const adjustedContainer = await this.updateContainer({\n collection: newItems,\n previous: container(),\n name,\n });\n\n const bytes = this.save(adjustedContainer);\n await local.save(bytes);\n },\n };\n }\n\n // RENDER\n\n /**\n * @param {RenderArg} _\n */\n render({ html }) {\n return html`\n \n `;\n }\n}\n\nexport default DaslBytesSyncOutputTransformer;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = DaslBytesSyncOutputTransformer;\nexport const NAME = \"dtob-dasl-sync\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"odAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAuBA,IAAMC,EAAQ,CACZ,IAAK,OACL,KAAM,CAAC,EACP,UAAW,CAAE,QAAS,CAAC,EAAG,QAAS,CAAC,CAAE,CACxC,EAKMC,EAAN,cAA6CC,CAAkB,CAhC/D,MAgC+D,CAAAC,EAAA,uCAC7D,OAAO,KAAO,6CAEd,aAAc,CACZ,MAAM,EAEN,IAAMC,EAAS,KAAK,KAAK,EACnBC,EAAQ,KAAKC,GAAa,IAS1BC,EAAQJ,EAAA,CACZK,EACAC,EACAC,EACA,CAAE,UAAAC,EAAW,WAAAC,CAAW,IACrB,CACH,IAAMC,EAAYC,EACad,EAC7B,CAAE,QAASe,CAAe,CAC5B,EAEMC,EAAUF,EAAO,EAAK,EACtBG,EAAUH,EACd,CAAE,OAAQ,GAAO,QAAS,GAAI,cAAe,EAAG,EAChD,CAAE,QAASI,CAAK,CAClB,EAEA,YAAK,OAAO,IAAM,CAEhB,GADI,CAACF,EAAQ,OACTC,EAAQ,MAAM,OAAQ,OAE1B,IAAME,EAAKV,EAAgB,EACrBW,EAAKhB,EAAO,MAAM,EAAIM,EAAiB,EAAI,OAE3CW,EAAKF,GAAI,QAAU,SAAWA,EAAG,KAAO,OACxCG,EAAKF,GAAI,QAAU,SAAWA,EAAG,KAAO,OACxCG,EAAKH,GAAI,MAGTI,EAAIH,EAAKI,EAAOJ,CAAE,EAAI,OAGtBK,EAAIJ,GAAMC,IAAO,SAAWE,EAAOH,CAAE,EAAI,OAE/C,GAAI,CAACI,EACCF,IACFX,EAAU,MAAQW,EAEdpB,EAAO,MAAM,GAAKmB,IAAO,UAC3B,KAAK,SAAS,EAAE,KAAMI,GAAa,CACjC,GAAI,CAACA,EAAU,OACf,IAAMC,EAAQ,KAAK,KAAKJ,CAAC,EACzBZ,EAAWgB,CAAK,CAClB,CAAC,WAGI,CAACJ,EACVX,EAAU,MAAQa,EAElB,KAAK,SAAS,EAAE,KAAMC,GAAa,CACjC,GAAI,CAACA,EAAU,OACf,IAAMC,EAAQ,KAAK,KAAKF,CAAC,EACzBf,EAAUiB,CAAK,CACjB,CAAC,UAEDL,IAAO,UAAY,KAAK,YAAY,CAAE,MAAOC,EAAG,OAAQE,CAAE,CAAC,EAC3D,CAQA,IAAMG,EAAOZ,EAAQ,MACrB,GAAIY,EAAK,WAAaL,EAAE,KAAO,KAC3BK,EAAK,iBAAmBH,EAAE,KAAO,IACnC,OAIF,KAAK,SAAS,EAAE,KAAMC,GAAa,CAC5BA,IAELV,EAAQ,MAAQ,CACd,OAAQ,GACR,QAASY,EAAK,QACd,cAAeA,EAAK,aACtB,EAEA,KAAK,MAAML,EAAGE,CAAC,EAAE,KAAK,MAAOI,GAAM,CAOjC,IAAIC,EAAoBL,EAAE,KAAO,GAC7BM,EAAgBF,EAAE,KAAO,GAE7B,GAAI,CACFjB,EAAU,MAAQiB,EAElB,IAAMF,EAAQ,KAAK,KAAKE,CAAC,EAErBA,EAAE,MAAQN,EAAE,KACd,MAAMb,EAAUiB,CAAK,EAGnBxB,EAAO,MAAM,GAAKmB,IAAO,UAAYO,EAAE,MAAQJ,EAAE,MACnD,MAAMd,EAAWgB,CAAK,EACtBG,EAAoBD,EAAE,KAAO,GAEjC,OAASG,EAAK,CACZ,QAAQ,MAAM,gBAAiBA,CAAG,CACpC,QAAE,CACAhB,EAAQ,MAAQ,CACd,OAAQ,GACR,QAASe,EACT,cAAeD,CACjB,CACF,CACF,CAAC,EAAE,MAAOE,GAAQ,CAKhB,QAAQ,MAAM,gBAAiBA,CAAG,EAClChB,EAAQ,MAAQ,CACd,OAAQ,GACR,QAASO,EAAE,KAAO,GAClB,cAAeE,EAAE,KAAO,EAC1B,CACF,CAAC,EACH,CAAC,CACH,MACEb,EAAU,MAAQW,CAEtB,CAAC,EAEMU,EAAS,KACTlB,EAAQ,IAAI,IAAGA,EAAQ,MAAQ,IAC7BH,EAAU,IAAI,EACtB,CACH,EAtIc,SAyIRsB,EAAS5B,EACb,SACA2B,EAAS,IAAM7B,EAAM,GAAG,OAAO,WAAW,GAAK,CAAE,MAAO,SAAU,CAAC,EACnED,EAAO,OAAO,WACd,CACE,UAAWD,EAAA,MAAOiC,GAAM/B,EAAM,GAAG,OAAO,KAAK+B,CAAC,EAAnC,aACX,WAAYhC,EAAO,OAAO,IAC5B,CACF,EAEMiC,EAAgB9B,EACpB,gBACA2B,EAAS,IACP7B,EAAM,GAAG,cAAc,WAAW,GAAK,CAAE,MAAO,SAAU,CAC5D,EACAD,EAAO,cAAc,WACrB,CACE,UAAWD,EAAA,MAAOiC,GAAM/B,EAAM,GAAG,cAAc,KAAK+B,CAAC,EAA1C,aACX,WAAYhC,EAAO,cAAc,IACnC,CACF,EAEMkC,EAAW/B,EACf,WACA2B,EAAS,IAAM7B,EAAM,GAAG,SAAS,WAAW,GAAK,CAAE,MAAO,SAAU,CAAC,EACrED,EAAO,SAAS,WAChB,CACE,UAAWD,EAAA,MAAOiC,GAAM/B,EAAM,GAAG,SAAS,KAAK+B,CAAC,EAArC,aACX,WAAYhC,EAAO,SAAS,IAC9B,CACF,EAEMmC,EAAShC,EACb,SACA2B,EAAS,IAAM7B,EAAM,GAAG,OAAO,WAAW,GAAK,CAAE,MAAO,SAAU,CAAC,EACnED,EAAO,OAAO,WACd,CACE,UAAWD,EAAA,MAAOiC,GAAM/B,EAAM,GAAG,OAAO,KAAK+B,CAAC,EAAnC,aACX,WAAYhC,EAAO,OAAO,IAC5B,CACF,EAGA,KAAK,OAAS,KAAK,YACjB,CAAE,KAAMD,EAAA,MAAOiC,GAAM/B,EAAM,GAAG,OAAO,KAAK+B,CAAC,EAAnC,OAAqC,EAC7ChC,EAAO,OACPA,EAAO,MACP+B,EACA,QACF,EAEA,KAAK,cAAgB,KAAK,YACxB,CAAE,KAAMhC,EAAA,MAAOiC,GAAM/B,EAAM,GAAG,cAAc,KAAK+B,CAAC,EAA1C,OAA4C,EACpDhC,EAAO,cACPA,EAAO,MACPiC,EACA,eACF,EAEA,KAAK,SAAW,KAAK,YACnB,CAAE,KAAMlC,EAAA,MAAOiC,GAAM/B,EAAM,GAAG,SAAS,KAAK+B,CAAC,EAArC,OAAuC,EAC/ChC,EAAO,SACPA,EAAO,MACPkC,EACA,UACF,EAEA,KAAK,OAAS,KAAK,YACjB,CAAE,KAAMnC,EAAA,MAAOiC,GAAM/B,EAAM,GAAG,OAAO,KAAK+B,CAAC,EAAnC,OAAqC,EAC7ChC,EAAO,OACPA,EAAO,MACPmC,EACA,QACF,EAEA,KAAK,MAAQ,IAAM,EACrB,CAIAjC,GAAeQ,EACkC,MACjD,EAOA,MAAM,mBAAoB,CAEpB,KAAK,aAAa,OAAO,GAC3B,KAAK,UAAU,KAAK,WAAY,CAAC,CAAC,EAGpC,MAAM,kBAAkB,EAGxB,IAAMT,EAAQ,KAAK,KAAK,EAAE,cAAc,gBAAgB,EACxD,GAAI,CAACA,EAAO,MAAM,IAAI,MAAM,yBAAyB,EAErD,eAAe,YAAYA,EAAM,SAAS,EAAE,KAAK,IAAM,CACrD,KAAKC,GAAa,MAAQD,CAC5B,CAAC,CACH,CASA,MAAM,gBAAgB,CAAE,SAAAmC,EAAU,WAAAC,EAAY,KAAAC,CAAK,EAAG,CACpD,IAAMC,EAAYH,EAAS,UACrBI,EAASF,EAAOG,EAAiBH,CAAI,EAAI,KAEzCI,EAAUL,EAAW,IAAI,CAAC,CAAE,GAAAM,CAAG,IAAMA,CAAE,EAEvCC,EAAU,IAAI,IAAI,OAAO,KAAKL,EAAU,OAAO,CAAC,EAChDM,EAAU,IAAI,IAAIH,CAAO,EAEzBI,EAASD,EAAQ,WAAWD,CAAO,EACnCG,EAASH,EAAQ,WAAWC,CAAO,EAGnCG,EADiB,IAAI,IAAIT,EAAU,OAAO,EACd,MAAMQ,CAAM,EAGxCE,EAAU,CAAE,GAAGV,EAAU,OAAQ,EAEvCQ,EAAO,QAASJ,GAAO,CACrB,OAAOM,EAAQN,CAAE,CACnB,CAAC,EAGD,IAAMO,EAAW,CAAC,EAElBb,EAAW,QAASc,GAAM,CACxB,IAAMC,EAAUC,EAAOF,CAAC,EAExBD,EAAS,MAAM,SAAY,CACzB,IAAMI,EAAM,MAAUC,EAAO,IAAMH,CAAO,EAC1CH,EAAQE,EAAE,EAAE,EAAIG,CAClB,GAAG,CAAC,CACN,CAAC,EAED,MAAM,QAAQ,IAAIJ,CAAQ,EAE1B,IAAMM,EAAe,CACnB,QAAAP,EACA,QAAS,MAAM,KAAKD,CAAU,CAChC,EAEMvC,EAAY,CAChB,IAAK,MAAU8C,EAAO,IAAMF,EAAOG,CAAY,CAAC,EAChD,KAAMnB,EACN,UAAWmB,CACb,EACA,OAAOhB,EAAS,CAAE,GAAG/B,EAAW,QAAS+B,CAAO,EAAI/B,CACtD,CAMA,YAAY,CAAE,MAAAR,EAAO,OAAAD,CAAO,EAAG,CAC7B,OAAOC,EAAM,MAAQD,EAAO,GAC9B,CAQA,MAAM,MAAMmD,EAAGM,EAAG,CAChB,IAAMC,EAAW,IAAI,IAAIP,EAAE,UAAU,OAAO,EACtCQ,EAAW,IAAI,IAAIF,EAAE,UAAU,OAAO,EACtCT,EAAaU,EAAS,MAAMC,CAAQ,EAEpCC,EAAWT,EAAE,UAAU,QACvBU,EAAWJ,EAAE,UAAU,QAEvBK,EAAO,IAAI,IAAIX,EAAE,KAAK,IAAKY,GAAS,CAACA,EAAK,GAAIA,CAAI,CAAC,CAAC,EACpDC,EAAO,IAAI,IAAIP,EAAE,KAAK,IAAKM,GAAS,CAACA,EAAK,GAAIA,CAAI,CAAC,CAAC,EAGpDE,EAAS,IAAI,IAAI,CACrB,GAAG,OAAO,KAAKL,CAAQ,EACvB,GAAG,OAAO,KAAKC,CAAQ,CACzB,CAAC,EAGKZ,EAAU,CAAC,EAGXiB,EAAO,CAAC,EAIRC,EAAc,CAAC,EAErB,QAAWxB,KAAMsB,EACf,GAAI,CAAAjB,EAAW,IAAIL,CAAE,EAErB,GAAIA,KAAMiB,GAAYjB,KAAMkB,EAAU,CACpC,IAAMO,EAAQN,EAAK,IAAInB,CAAE,EACnB0B,EAAQL,EAAK,IAAIrB,CAAE,EAEzB,GAAI,CAACyB,GAAS,CAACC,EAAO,CACpB,QAAQ,KAAK,0CAA0C,EACvD,QACF,CAGA,GAAIT,EAASjB,CAAE,IAAMkB,EAASlB,CAAE,EAAG,CACjCuB,EAAK,KAAKE,CAAK,EACfnB,EAAQN,CAAE,EAAIiB,EAASjB,CAAE,EACzB,QACF,CAEA,IAAM2B,EAAgB,EAAQF,EAAM,UAC9BG,EAAgB,EAAQF,EAAM,UAM9BG,EAAiBF,GAAiB,CAACC,EACrC,GACC,CAACD,GAAiBC,EACnB,GACAD,GAAiBC,EACjBE,EAAkBL,EAAM,UAAWC,EAAM,SAAS,EAAI,EACtD,GAEEK,EAAaF,EAAgBJ,EAAQC,EAIrCM,EAAa,CAAE,GAHLH,EAAgBH,EAAQD,CAGR,EAEhCQ,EAAS,UAAUD,EAAYD,CAAU,EAEzCR,EAAK,KAAKS,CAAU,EAEpBR,EAAY,KACNZ,EAAO,IAAMF,EAAOsB,CAAU,CAAC,EAAE,KAAMrB,GAAQ,CACjDL,EAAQN,CAAE,EAAIW,CAChB,CAAC,CACH,CACF,KAAO,CACL,IAAMS,EAAOD,EAAK,IAAInB,CAAE,GAAKqB,EAAK,IAAIrB,CAAE,EAEpCoB,IACFG,EAAK,KAAKH,CAAI,EACdd,EAAQN,CAAE,EAAIiB,EAASjB,CAAE,GAAKkB,EAASlB,CAAE,EAE7C,CAGF,MAAM,QAAQ,IAAIwB,CAAW,EAG7B,IAAMU,EAAmB,CAAE,QAAA5B,EAAS,QAAS,MAAM,KAAKD,CAAU,CAAE,EAEpE,MAAO,CACL,IAAK,MAAUO,EAAO,IAAMF,EAAOwB,CAAgB,CAAC,EACpD,KAAAX,EACA,UAAWW,EACX,QAAS1B,EAAE,OACb,CACF,CAOA,KAAK1C,EAAW,CACd,OAAO4C,EAAO5C,CAAS,CACzB,CAaA,YAAYR,EAAOD,EAAQ8E,EAAarE,EAAW6B,EAAM,CACvD,MAAO,CACL,WAAYR,EAAS,IAAM,CACzB,IAAMJ,EAAIjB,EAAU,EAEpB,OAAIiB,EAAE,MAAQ,QAAaoD,EAAY,GAAK9E,EAAO,WAAW,EAAE,QAAU,UACjE,CAAE,MAAO,SAAU,EAGrB,CAAE,MAAO,SAAU,KAAM0B,EAAE,IAAK,CACzC,CAAC,EACD,OAAQ1B,EAAO,OACf,KAAMD,EAAA,MAA0BgF,GAAa,CAC3C,IAAMC,EAAoB,MAAM,KAAK,gBAAgB,CACnD,WAAYD,EACZ,SAAUtE,EAAU,EACpB,KAAA6B,CACF,CAAC,EAEKd,EAAQ,KAAK,KAAKwD,CAAiB,EACzC,MAAM/E,EAAM,KAAKuB,CAAK,CACxB,EATM,OAUR,CACF,CAOA,OAAO,CAAE,KAAAyD,CAAK,EAAG,CACf,OAAOA;AAAA;AAAA,iBAEMC,EAAU,KAAK,aAAa,OAAO,CAAC,CAAC;AAAA,qBACjCA,EAAU,KAAK,aAAa,WAAW,CAAC,CAAC;AAAA;AAAA,KAG5D,CACF,EAEOC,EAAQtF,EAMFuF,EAAQvF,EACRwF,EAAO,iBAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","EMPTY","DaslBytesSyncOutputTransformer","OutputTransformer","__name","remote","local","#localOutput","state","kind","localCollection","remoteCollection","saveLocal","saveRemote","container","signal","strictEquality","isReady","merging","diff","lc","rc","lb","rb","rs","l","decode","r","isLeader","bytes","prev","c","resolvedRemoteCID","reconciledCID","err","computed","facets","v","playlistItems","settings","tracks","previous","collection","name","inventory","schema","collectionSchema","collIds","id","currSet","collSet","newSet","remSet","allRemoved","current","promises","a","encoded","encode","cid","create","newInventory","b","removedA","removedB","currentA","currentB","mapA","item","mapB","allIds","data","cidPromises","itemA","itemB","hasAUpdatedAt","hasBUpdatedAt","isANewerThanB","compareTimestamps","newestItem","mergedItem","deep_diff_default","updatedInventory","remoteReady","newItems","adjustedContainer","html","o","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-NVG7OXSF.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js new file mode 100644 index 00000000..fa1cdaa0 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js @@ -0,0 +1,3 @@ +import{a as h}from"./chunk-WMITNTCW.js";import{a as m}from"./chunk-OBMOK4KY.js";import{a as s}from"./chunk-75KFZLU6.js";var Q=Object.getPrototypeOf(Int8Array),w=globalThis.AudioData,A=globalThis.ImageBitmap,C=globalThis.VideoFrame,M=globalThis.OffscreenCanvas,S=globalThis.RTCDataChannel,_=globalThis.MessageChannel,v=globalThis.ReadableStream,k=globalThis.WritableStream,L=globalThis.TransformStream,O="ReadableStream"in globalThis,D="WritableStream"in globalThis,q="TransformStream"in globalThis;var B="MessageChannel"in globalThis,R="MessagePort"in globalThis,P="ArrayBuffer"in globalThis,W="AudioData"in globalThis,I="ImageBitmap"in globalThis,U="VideoFrame"in globalThis,V="OffscreenCanvas"in globalThis,F="RTCDataChannel"in globalThis;var X="structuredClone"in globalThis;function N(e){return typeof e=="object"&&e!==null||typeof e=="function"}s(N,"isObject");function j(e){return ArrayBuffer.isView(e)}s(j,"isTypedArray");function y(e){return O&&e instanceof v||D&&e instanceof k||q&&e instanceof L}s(y,"isStream");function G(e){return B&&e instanceof _}s(G,"isMessageChannel");function H(e){return P&&e instanceof ArrayBuffer||R&&e instanceof MessagePort||W&&e instanceof w||I&&e instanceof A||U&&e instanceof C||V&&e instanceof M||F&&e instanceof S}s(H,"isTransferable");function d(e,t=!1,r=1e4){let n=new Set([]),o=[[e]];for(let l=0;lPromise.resolve().then(e),T=s((e,t)=>{let r=!1,{debounceLimit:n=1e3}=t??{},o;return(...l)=>{if(t?.updateArguments?o=l:o??=l,r)return;if(n--<=0)switch(t?.limitAction){case"ignore":return;case"invoke":return e(...o);default:throw new Error("Maximum debounce limit reached.")}r=!0,b(i);function i(){r?(r=!1,b(i)):(n=t?.debounceLimit??1e3,e(...o))}s(i,"dequeue")}},"debounceMicrotask");function x(e){return e?.constructor?.name==="DedicatedWorkerGlobalScope"}s(x,"isDedicatedWorkerScope");var E=[],f=null;if(x(globalThis)){let e=s((t=>{E.push(t)}),"handler");globalThis.addEventListener("message",e),f=s(()=>{globalThis.removeEventListener("message",e)},"_flushEarlyMessages")}function oe(e,t=globalThis){if(x(t)){if(e(t,!0,crypto.randomUUID()),f){f(),f=null;let n=t;E.splice(0).forEach(o=>{n.dispatchEvent(new MessageEvent("message",{data:o.data,ports:[...o.ports]}))})}return}let r=t;r.__id??=crypto.randomUUID(),t.addEventListener("connect",n=>{let o=n.ports[0];o.start(),e(o,!(r.__initiated??!1),r.__id),r.__initiated=!0})}s(oe,"ostiary");function J(e){return e instanceof SharedWorker?(e.port.start(),e.port):e}s(J,"workerLink");function ae(e){let t;return new Proxy({},{get:s((n,o)=>(...l)=>(t??=new m(e()),t.callMethod(o,l)),"get")})}s(ae,"workerProxy");function ie(e,t={}){let r,n=new MessageChannel;function o(){if(r)return r;let i=e();return r=i instanceof SharedWorker?J(i):i,r.addEventListener("message",l),r}s(o,"ensureLink"),n.port1.addEventListener("message",async i=>{let{data:u,transfer:c}=await t?.toWorker?.(i.data)??{data:i.data};o().postMessage(u,{transfer:c})});let l=s(async i=>{let u=i,{data:c,transfer:a}=await t?.fromWorker?.(u.data)??{data:u.data};n.port1.postMessage(c,{transfer:a})},"workerListener");return n.port1.start(),n.port2.start(),{disconnect:s(()=>{r?.removeEventListener("message",l),n.port1.close(),n.port2.close()},"disconnect"),port:n.port2}}s(ie,"workerTunnel");function le(e,t,r){let n=z(e,t),o=d(n);(r??globalThis).postMessage(n,{transfer:o})}s(le,"announce");function ce(e,t,r=globalThis){let n=r;n.__incoming||(r.addEventListener("message",K(r)),n.__incoming={}),n.__incoming[e]=T(t,{updateArguments:!0})}s(ce,"listen");function ue(e,t){return new m(e,{expose:t})}s(ue,"rpc");var p="announcement";function z(e,t){return{ns:p,name:e,key:h(crypto.randomUUID()),type:p,args:t}}s(z,"announcement");function K(e){return t=>{let{ns:r,type:n}=t.data;if(r!==p||n!==p)return;let o=t.data;e.__incoming[o.name]?.(o.args)}}s(K,"incomingAnnouncementsHandler");export{d as a,T as b,oe as c,J as d,ae as e,ie as f,le as g,ce as h,ue as i}; + +//# sourceMappingURL=./chunk-NYGD7JS5.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js.br new file mode 100644 index 0000000000000000000000000000000000000000..0030c049b83e16994ac6d4e10ea985b07ccd9d52 GIT binary patch literal 1748 zcmb2%CBX0`YSrKOpC?sTOxwvDzDvZ(E7v9J<`JVG3`;%#?EF@_>hm^>fBowPMbq@% zuHFbMjZ4^FGUab;iZ^?UzUJHgObu(+IJtKv)J#=c_)8+^FNfUy8yre{uS%9VoB7TB zFDx8?sxVu) zW{}~ciWjjZhx6`L2OOT(TR(lz_4hLIsog&x^xF%0=ce9S)h9LGVa|c`k!FRf(syi< zvoaU8G~C1TUF@l2?BvIm+PC(-Xi(>P_M>F!tiGum#qM8vaMe1r`y(@^l#=qs&$`no5t=McMD~m&u<^xIc_E|w5B?ud{5rt z)Fu4>tHPwxv$J$Vo_?^KVCZSIa?ZiYARGOvp74CLFlaQgih>hGnxW=@?Jw^_KWp!oR3 zle49F?bgnE&X}C0ykG3>9&W|m-OoNhpYz_}(p{7C8(zghJDZBO%*pQ-`a658iTTsm z#HPEQ}4fUpA@)KZ=p1|C5Kao+H;d&=a570 zw^Z%9xbF*3ne6*+$|T;Zd7L}b-rSL4Z0SC_#>UBG`YpT3mt3zf6xv$cjGk*gAVm5y-bLHTjAJ4X{3AA+hL{2s@kC+|3` z>PNmj)DYigda@;=C?)Zs^SqBrmv<@gtYYSFRx?!TD^1j3F`3>m*{|StW6PU`dAAJW zF7K-}PpfVG=%V)a#JUU1mdD1IJSlIu*V4Q`;@9`c5~a33CvM)nrd7~q`abJ{h`_fO z1v=OEJ$x4J-LyXD%DMF~i+KF>O2R_aY<4~H?W>F2oHNBkCD(uV#M5f!kJ6gh4z>Jo z;|MCOKNkDQrZD&1B)Pw zp4Vi(;r6Yovv6y0P5Uy{GPVA&=Ioc}<*L4a0`rO*&Lo4n{I|OrATs&uIyeXt)rEIJF{U?PdRl3U*l1|0FJaal= z{zMl3hJ#(T>;DocT8~ewF zdwhcSX9;g!;ZoAebkKF%6R%Vu&&fd#8@i9%O_Jbu?vBlzrhf0IyR_tjXY&&sfWx8 zyqQf}e4<|`%&FQoW!+7Y(5U!`Y6ZF6`?dF*d&=H5JQq>e8PI&^i1_Y>)|Fg>*8TIJ zPgB#lysTvT)Y-RAT=U>vpZtAmhgJX0=5G_`PhFSu-{+gS_R0-R(sp8#t)xFmR-K=I zo>TqHy#9mM2{*P_%wPCz@dWo{vCo)aFVM}qQE8%lb=~c@JK|STC-*S*%9Tx&_pp3j zT^-D7b*RdF58I;nS9ks_u~t3Mc}=B;(VA=Jt}844CSF!oUTRhQW|cZe&#}w1=lZ|M e$n?51?-p0-Bvq5&QN6yoEvdOZxywC|ssjMJv1bGT literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js.map new file mode 100644 index 00000000..b7ed74c6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-NYGD7JS5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["https://jsr.io/@okikio/transferables/1.0.2/src/mod.ts","https://jsr.io/@vicary/debounce-microtask/0.1.8/src/DebounceMicrotask.ts","/common/worker.js"],"sourcesContent":["/// \n\n/**\n * Represents the prototype from which all typed arrays are derived. This can be used to check if an object is a typed array.\n * \n * @example\n * ```ts\n * const isTypedArray = (obj: any): obj is TypedArray => obj instanceof TypedArray;\n * console.log(isTypedArray(new Uint8Array(10))); // true\n * ```\n */\nexport const TypedArray: any = Object.getPrototypeOf(Int8Array);\n\n/**\n * Represents the AudioData interface from the Web Audio API, allowing manipulation of audio data directly.\n * \n * @example\n * ```ts\n * if (AudioData) {\n * console.log(\"AudioData is supported in this environment.\");\n * }\n * ```\n */\nexport const AudioData = globalThis.AudioData;\n\n/**\n * Represents the ImageBitmap interface, enabling manipulation of images in a way that is optimized for performance.\n * \n * @example\n * ```ts\n * createImageBitmap(blob).then((imageBitmap) => {\n * console.log(imageBitmap instanceof ImageBitmap); // true\n * });\n * ```\n */\nexport const ImageBitmap = globalThis.ImageBitmap;\n\n/**\n * Represents the VideoFrame interface, part of the WebCodecs API, allowing low-level manipulation of video frames.\n * \n * @example\n * ```ts\n * if (VideoFrame) {\n * console.log(\"VideoFrame is supported, can manipulate video frames directly.\");\n * }\n * ```\n */\nexport const VideoFrame = globalThis.VideoFrame;\n\n/**\n * Represents the OffscreenCanvas interface, enabling canvas rendering to be done off the main thread.\n * \n * @example\n * ```ts\n * if (OffscreenCanvas) {\n * const offscreen = new OffscreenCanvas(256, 256);\n * console.log(offscreen instanceof OffscreenCanvas); // true\n * }\n * ```\n */\nexport const OffscreenCanvas = globalThis.OffscreenCanvas;\n\n/**\n * Represents the RTCDataChannel interface, used for bidirectional peer-to-peer transfers of arbitrary data.\n * \n * @example\n * ```ts\n * const peerConnection = new RTCPeerConnection();\n * const dataChannel = peerConnection.createDataChannel(\"myLabel\");\n * console.log(dataChannel instanceof RTCDataChannel); // true\n * ```\n */\nexport const RTCDataChannel = globalThis.RTCDataChannel;\n\n/**\n * Represents the MessageChannel interface, providing a way to send data between different parts of your application.\n * \n * @example\n * ```ts\n * const channel = new MessageChannel();\n * channel.port1.onmessage = (event) => console.log(event.data);\n * channel.port2.postMessage(\"Hello, world!\");\n * ```\n */\nexport const MessageChannel = globalThis.MessageChannel;\n\n/**\n * Represents the ReadableStream interface, providing a way to handle streamed data read operations.\n */\nexport const ReadableStream = globalThis.ReadableStream;\n\n/**\n * Represents the WritableStream interface, providing a way to handle streamed data write operations.\n */\nexport const WritableStream = globalThis.WritableStream;\n\n/**\n * Represents the TransformStream interface, allowing data to be transformed as it is passed through the stream.\n */\nexport const TransformStream = globalThis.TransformStream;\n\nconst ReadableStreamExists = \"ReadableStream\" in globalThis;\nconst WritableStreamExists = \"WritableStream\" in globalThis;\nconst TransformStreamExists = \"TransformStream\" in globalThis;\n\nconst StreamExists = (\n ReadableStreamExists &&\n WritableStreamExists &&\n TransformStreamExists\n);\n\nconst MessageChannelExists = \"MessageChannel\" in globalThis;\nconst MessagePortExists = \"MessagePort\" in globalThis;\n\nconst ArrayBufferExists = \"ArrayBuffer\" in globalThis;\nconst AudioDataExists = \"AudioData\" in globalThis;\nconst ImageBitmapExists = \"ImageBitmap\" in globalThis;\nconst VideoFrameExists = \"VideoFrame\" in globalThis;\n\nconst OffscreenCanvasExists = \"OffscreenCanvas\" in globalThis;\nconst RTCDataChannelExists = \"RTCDataChannel\" in globalThis;\n\nconst TransferableExists = (\n ArrayBufferExists &&\n MessagePortExists &&\n AudioDataExists &&\n ImageBitmapExists &&\n VideoFrameExists &&\n OffscreenCanvasExists &&\n RTCDataChannelExists\n);\n\nconst structuredCloneExists = \"structuredClone\" in globalThis;\n\n/**\n * Summary of the available transferable objects in the current JavaScript runtime, useful for feature detection.\n * \n * @example\n * ```ts\n * if (AVAILABLE_TRANSFERABLE_OBJECTS.AudioDataExists) {\n * console.log(\"AudioData is available for use.\");\n * }\n * ```\n */\nexport const AVAILABLE_TRANSFERABLE_OBJECTS = {\n TransferableExists,\n StreamExists,\n\n ReadableStreamExists,\n WritableStreamExists,\n TransformStreamExists,\n\n MessageChannelExists,\n MessagePortExists,\n\n ArrayBufferExists,\n AudioDataExists,\n ImageBitmapExists,\n VideoFrameExists,\n OffscreenCanvasExists,\n RTCDataChannelExists,\n};\n\n/**\n * Type definition for all typed array variants, useful for type checking and TypeScript interfaces.\n * \n * @example\n * ```ts\n * function processTypedArray(typedArray: TypeTypedArray) {\n * console.log(typedArray.byteLength);\n * }\n * ```\n */\nexport type TypeTypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array;\n\n/**\n * Type definition for all transferable object types, supporting efficient data transfer operations.\n * \n * @example\n * ```ts\n * function transferObjects(transferable: TypeTransferable) {\n * postMessage(message, [transferable]);\n * }\n * ```\n */\nexport type TypeTransferable = ArrayBufferLike | ArrayBuffer | MessagePort | ReadableStream | WritableStream | TransformStream | AudioData | ImageBitmap | VideoFrame | OffscreenCanvas | RTCDataChannel;\n\n/**\n * Tests if certain transferable objects are actually supported in a specific js environment when using `structuredClone` and `MessageChannel postMessage`\n */\nexport async function isSupported(): Promise<{\n channel: boolean;\n streams: boolean;\n}> {\n async function getChannels() {\n try {\n if (!MessageChannelExists)\n return false;\n\n const msgChanl = new MessageChannel();\n const obj = { port1: msgChanl.port1 }\n const clonedObj = structuredCloneExists ? structuredClone(obj, {\n transfer: [\n msgChanl.port1,\n ]\n }) : obj;\n\n const messageChannel = new MessageChannel()\n const obj1 = { port1: clonedObj.port1 }\n await new Promise(resolve => {\n messageChannel.port1.postMessage(obj1, [\n obj1.port1,\n ])\n messageChannel.port1.onmessage = () => {\n resolve()\n }\n messageChannel.port2.onmessage = ({ data }) => {\n messageChannel.port2.postMessage(data, [\n data.port1,\n ]);\n }\n })\n messageChannel.port1.close();\n } catch (e) {\n return false;\n }\n\n return true;\n };\n\n async function getStreams() {\n try {\n if (!StreamExists)\n return false;\n\n if (!MessageChannelExists && !structuredCloneExists)\n return false;\n\n const streams = {\n readonly: new ReadableStream(),\n writeonly: new WritableStream(),\n tranformonly: new TransformStream()\n }\n\n const clonedObj = structuredCloneExists ? structuredClone(streams, {\n transfer: [\n streams.readonly as unknown as Transferable,\n streams.writeonly as unknown as Transferable,\n streams.tranformonly as unknown as Transferable,\n ]\n }) : streams;\n\n if (MessageChannelExists) {\n const messageChannel = new MessageChannel()\n const streams1 = clonedObj;\n await new Promise(resolve => {\n messageChannel.port1.postMessage(streams1, [\n streams1.readonly as unknown as Transferable,\n streams1.writeonly as unknown as Transferable,\n streams1.tranformonly as unknown as Transferable,\n ])\n messageChannel.port1.onmessage = () => {\n resolve();\n }\n messageChannel.port2.onmessage = ({ data }) => {\n messageChannel.port2.postMessage(data, [\n data.readonly as unknown as Transferable,\n data.writeonly as unknown as Transferable,\n data.tranformonly as unknown as Transferable,\n ].filter(x => x !== undefined));\n }\n })\n messageChannel.port1.close();\n }\n } catch (e) {\n return false;\n }\n\n return true;\n };\n\n const [channel, streams] = await Promise.all([getChannels(), getStreams()])\n return { channel, streams };\n}\n\n/**\n * Check if an object is an object or a function (because functions also count as objects)\n */\nexport function isObject(obj: unknown): obj is object | Function {\n return (typeof obj === \"object\" && obj !== null) || typeof obj === \"function\";\n}\n\n/**\n * Check if an object is an instanceof [TypedArray](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) or [DataView](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView)\n * \n * > `DataView` a lower level `TypedArray` which can function while ignoring the platforms inherent endianness. Read more on [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView)\n */\nexport function isTypedArray(obj: unknown): obj is TypeTypedArray | DataView {\n return ArrayBuffer.isView(obj);\n}\n\n/**\n * Check's if an object is `ReadableStream`, `WritableStream` and/or `TransformStream`\n * \n * > Note: None of the stream API's are transferables in Safari 😥\n */\nexport function isStream(obj: unknown): obj is ReadableStream | WritableStream | TransformStream {\n return (\n (ReadableStreamExists && obj instanceof ReadableStream) ||\n (WritableStreamExists && obj instanceof WritableStream) ||\n (TransformStreamExists && obj instanceof TransformStream)\n );\n}\n\n/**\n * Check's if an object is `MessageChannel`\n */\nexport function isMessageChannel(obj: unknown): obj is MessageChannel {\n return (\n (MessageChannelExists && obj instanceof MessageChannel)\n );\n}\n\n/**\n * Check if an object is a supported transferable\n */\nexport function isTransferable(obj: unknown): obj is TypeTransferable {\n return (\n (ArrayBufferExists && obj instanceof ArrayBuffer) ||\n (MessagePortExists && obj instanceof MessagePort) ||\n (AudioDataExists && obj instanceof AudioData) ||\n (ImageBitmapExists && obj instanceof ImageBitmap) ||\n (VideoFrameExists && obj instanceof VideoFrame) ||\n (OffscreenCanvasExists && obj instanceof OffscreenCanvas) ||\n (RTCDataChannelExists && obj instanceof RTCDataChannel)\n );\n}\n\n/**\n * Filters out duplicate items\n */\nexport function filterOutDuplicates(array: T[]): T[] {\n return Array.from(new Set(array));\n}\n\n/**\n * Creates an array of transferable objects which exist in a given input, up to a max number of iterations\n * Thanks @aaorris for the help optimizing perf.\n * \n * @param obj Input object\n * @param streams Includes streams as transferable\n * @param maxCount Maximum number of iterations\n * @returns An array of transferable objects\n */\nexport function getTransferables(obj: unknown, streams = false, maxCount = 10_000): TypeTransferable[] {\n const result = new Set([]);\n const queues = [[obj]];\n\n for (let i = 0; i < queues.length; i++) {\n const queue = queues[i];\n const len = queue.length;\n\n for (let j = 0; j < len; j++) {\n const item = queue[j];\n\n if (isTypedArray(item)) {\n result.add(item.buffer);\n } else if (isTransferable(item) || streams && isStream(item)) {\n result.add(item);\n } else if (isMessageChannel(item)) {\n result.add(item.port1);\n result.add(item.port2);\n }\n\n /** \n * Streams are circular objects, to avoid an infinite loop \n * we need to ensure that the object is not a stream \n */\n else if (!isStream(item) && isObject(item)) {\n const values = Array.isArray(item) ? item : Object.values(item);\n if (values.length) queues.push(values);\n }\n\n if (--maxCount <= 0) break;\n }\n }\n\n return Array.from(result);\n}\n\n/**\n * An iterator that contains the transferable objects from the input, up to a max number of iterations\n * Thanks @aaorris for the help optimizing perf.\n * \n * @param obj Input object\n * @param streams Includes streams as transferable\n * @param maxCount Maximum number of iterations\n * @returns Iterator that contains the transferable objects from the input\n */\nexport function* getTransferable(obj: unknown, streams = false, maxCount = 10_000): Generator {\n const seen = new Set([]);\n const queues = [[obj]];\n\n for (let i = 0; i < queues.length; i++) {\n const queue = queues[i];\n const len = queue.length;\n\n for (let j = 0; j < len; j++) {\n const item = queue[j];\n\n if (isTypedArray(item)) {\n const { buffer } = item;\n if (seen.has(buffer)) continue;\n\n yield buffer;\n seen.add(buffer);\n } else if (isTransferable(item) || streams && isStream(item)) {\n if (seen.has(item)) continue;\n\n yield item;\n seen.add(item);\n } else if (isMessageChannel(item)) {\n if (seen.has(item.port1) || seen.has(item.port2)) continue;\n\n yield item.port1;\n yield item.port2;\n\n seen.add(item.port1);\n seen.add(item.port2);\n }\n\n /** \n * Streams are circular objects, to avoid an infinite loop \n * we need to ensure that the object is not a stream \n */\n else if (!isStream(item) && isObject(item)) {\n const values = Array.isArray(item) ? item : Object.values(item);\n if (values.length) queues.push(values);\n }\n\n if (--maxCount <= 0) break;\n }\n }\n\n return null;\n}\n\n/**\n * Quickly checks to see if input contains at least one transferable object, up to a max number of iterations\n * Thanks @aaorris for the help optimizing perf.\n * \n * @param obj Input object\n * @param streams Includes streams as transferable\n * @param maxCount Maximum number of iterations\n * @returns Whether input object contains transferable objects\n */\nexport function hasTransferables(obj: unknown, streams = false, maxCount = 10_000): boolean {\n const queues = [[obj]];\n\n for (let i = 0; i < queues.length; i++) {\n const queue = queues[i];\n const len = queue.length;\n\n for (let j = 0; j < len; j++) {\n const item = queue[j];\n\n if (isTypedArray(item)) {\n return true;\n } else if (isTransferable(item) || (streams && isStream(item))) {\n return true;\n } else if (isMessageChannel(item)) {\n return true;\n }\n\n /** \n * Streams are circular objects, to avoid an infinite loop \n * we need to ensure that the object is not a stream \n */\n else if (!isStream(item) && isObject(item)) {\n const values = Array.isArray(item) ? item : Object.values(item);\n if (values.length) queues.push(values)\n }\n\n if (--maxCount <= 0) break;\n }\n }\n\n return false;\n}\n","/**\n * @module\n *\n * A simple utility to debounce a function to the next microtask.\n */\n\n/** A generic typed function. */\nexport type Function = (\n ...args: TArgs\n) => TReturn;\n\nconst enqueue = typeof queueMicrotask === \"function\"\n ? queueMicrotask\n : (fn: Function): unknown => Promise.resolve().then(fn);\n\n/**\n * Options for the debounceMicrotask function.\n */\nexport type Options = {\n /**\n * Maximum consecutive microtasks to push before bailing out for infinite\n * loops.\n *\n * @default 1000\n */\n debounceLimit?: number;\n\n /**\n * Actions to take when the debounce limit is reached.\n */\n limitAction?: \"ignore\" | \"invoke\" | \"throw\";\n\n /**\n * Enable this to update the arguments of the function to the latest\n * invocation, it uses the arguments from the first invocation by default.\n *\n * @default false\n */\n updateArguments?: boolean;\n};\n\n/**\n * Execute the function in the next microtask, if the function is called again\n * later in the event loop, push back the execution one more microtask\n * in the future.\n */\nexport const debounceMicrotask = (\n fn: Function,\n options?: Options,\n): Function => {\n let queued = false;\n let { debounceLimit = 1000 } = options ?? {};\n let currentArgs: TArgs | undefined;\n\n return (...args: TArgs) => {\n if (options?.updateArguments) {\n currentArgs = args;\n } else {\n currentArgs ??= args;\n }\n\n if (queued) return;\n\n if (debounceLimit-- <= 0) {\n switch (options?.limitAction) {\n case \"ignore\":\n return;\n case \"invoke\":\n return fn(...currentArgs!);\n case \"throw\":\n default:\n throw new Error(`Maximum debounce limit reached.`);\n }\n }\n\n queued = true;\n\n enqueue(dequeue);\n\n function dequeue() {\n if (queued) {\n queued = false;\n\n enqueue(dequeue);\n } else {\n debounceLimit = options?.debounceLimit ?? 1000;\n fn(...currentArgs!);\n }\n }\n };\n};\n","import { getTransferables } from \"@okikio/transferables\";\nimport { debounceMicrotask } from \"@vicary/debounce-microtask\";\nimport { xxh32 } from \"xxh32\";\n\nimport { RpcChannel } from \"./worker/rpc-channel.js\";\n\nexport { getTransferables } from \"@okikio/transferables\";\n\n/**\n * @import {Announcement, MessengerRealm, ProxiedActions, Tunnel} from \"./worker.d.ts\"\n */\n\n// Early message buffer for regular Workers.\n//\n// If a Worker module (or its dependencies) contains a top-level `await`, the\n// browser can deliver queued incoming messages to `globalThis` while the module\n// evaluation is paused — before `ostiary`/`rpc()` has had a chance to register\n// a handler. Those messages would otherwise be silently dropped.\n//\n// This buffer captures such messages the moment this module is imported (which\n// happens before any top-level `await` pause) and replays them once `ostiary`\n// sets up the real handler.\n//\n// Detection: regular Workers are instances of DedicatedWorkerGlobalScope.\n// Previously we checked `globalThis.onmessage === null`, but Safari initialises\n// that property as `undefined` rather than `null`, causing the check to fail.\n\n/**\n * Detects whether we're running inside a dedicated worker's global scope.\n * Uses the constructor name rather than the `DedicatedWorkerGlobalScope`\n * global, so this module doesn't need the `webworker` TS lib (JSR disallows\n * `/// ` in published files).\n *\n * @param {unknown} context\n * @returns {boolean}\n */\nfunction isDedicatedWorkerScope(context) {\n return /** @type {any} */ (context)?.constructor?.name ===\n \"DedicatedWorkerGlobalScope\";\n}\n\n/** @type {MessageEvent[]} */\nconst _earlyMessages = [];\n\n/** @type {null | (() => void)} */\nlet _flushEarlyMessages = null;\n\nif (isDedicatedWorkerScope(globalThis)) {\n const handler = /** @type {EventListener} */ ((event) => {\n _earlyMessages.push(/** @type {MessageEvent} */ (event));\n });\n\n globalThis.addEventListener(\"message\", handler);\n\n _flushEarlyMessages = () => {\n globalThis.removeEventListener(\"message\", handler);\n };\n}\n\n////////////////////////////////////////////\n// MISC\n////////////////////////////////////////////\n\n/**\n * Manage incoming connections for a shared worker.\n * If a regular worker is used instead, it'll just execute the callback immediately.\n *\n * @template {MessagePort | Worker | MessengerRealm} T\n * @param {(context: MessagePort | T, firstConnection: boolean, connectionId: string) => void} callback\n * @param {T} [context] Uses `globalThis` by default.\n */\nexport function ostiary(\n callback,\n context = /** @type {T} */ (/** @type {unknown} */ (globalThis)),\n) {\n if (isDedicatedWorkerScope(context)) {\n callback(context, true, crypto.randomUUID());\n\n // Replay any messages that arrived before the handler was registered.\n if (_flushEarlyMessages) {\n _flushEarlyMessages();\n _flushEarlyMessages = null;\n const ctx = /** @type {EventTarget} */ (/** @type {unknown} */ (context));\n _earlyMessages.splice(0).forEach((e) => {\n ctx.dispatchEvent(\n new MessageEvent(\"message\", { data: e.data, ports: [...e.ports] }),\n );\n });\n }\n\n return;\n }\n\n const c = /** @type {any} */ (context);\n c.__id ??= crypto.randomUUID();\n\n context.addEventListener(\n \"connect\",\n /**\n * @param {any} event\n */\n (event) => {\n /** @type {MessagePort} */\n const port = event.ports[0];\n port.start();\n\n // Initiate setup\n callback(port, !(c.__initiated ?? false), c.__id);\n c.__initiated = true;\n },\n );\n}\n\n/**\n * @param {Worker | SharedWorker} worker\n */\nexport function workerLink(worker) {\n if (worker instanceof SharedWorker) {\n worker.port.start();\n return worker.port;\n } else {\n return worker;\n }\n}\n\n/**\n * @template {Record any>} Actions\n * @param {() => MessagePort | Worker} workerLinkCreator\n * @returns {ProxiedActions}\n */\nexport function workerProxy(workerLinkCreator) {\n /** @type {RpcChannel<{}, Actions> | undefined} */\n let channel;\n\n const proxy = new Proxy(/** @type {any} */ ({}), {\n get: (_target, /** @type {string} */ prop) => {\n /** @param {Parameters} args */\n return (...args) => {\n channel ??= new RpcChannel(workerLinkCreator());\n return channel.callMethod(prop, args);\n };\n },\n });\n\n return /** @type {ProxiedActions} */ (proxy);\n}\n\n/**\n * @param {() => MessagePort | Worker | SharedWorker} workerCreator\n * @param {{ fromWorker?: (message: any) => Promise<{ data: any, transfer?: Transferable[] }>; toWorker?: (message: any) => Promise<{ data: any, transfer?: Transferable[] }> }} [hooks]\n * @returns {Tunnel}\n */\nexport function workerTunnel(workerCreator, hooks = {}) {\n /** @type {MessagePort | Worker | undefined} */\n let link;\n\n const channel = new MessageChannel();\n\n function ensureLink() {\n if (link) return link;\n\n const workerOrLink = workerCreator();\n\n link = workerOrLink instanceof SharedWorker\n ? workerLink(workerOrLink)\n : workerOrLink;\n\n link.addEventListener(\"message\", workerListener);\n\n return link;\n }\n\n channel.port1.addEventListener(\"message\", async (event) => {\n // Send to worker\n const { data, transfer } = await hooks?.toWorker?.(event.data) ??\n { data: event.data };\n ensureLink().postMessage(data, { transfer });\n });\n\n /**\n * @param {Event} event\n */\n const workerListener = async (event) => {\n // Receive from worker\n const msgEvent = /** @type {MessageEvent} */ (event);\n const { data, transfer } = await hooks?.fromWorker?.(msgEvent.data) ??\n { data: msgEvent.data };\n channel.port1.postMessage(data, { transfer });\n };\n\n channel.port1.start();\n channel.port2.start();\n\n return {\n disconnect: () => {\n link?.removeEventListener(\"message\", workerListener);\n channel.port1.close();\n channel.port2.close();\n },\n port: channel.port2,\n };\n}\n\n////////////////////////////////////////////\n// RAW\n////////////////////////////////////////////\n\n/**\n * @template T\n * @param {string} name\n * @param {T} args\n * @param {MessagePort | Worker | MessengerRealm} [context] Uses `globalThis` by default.\n */\nexport function announce(\n name,\n args,\n context,\n) {\n const a = announcement(name, args);\n const transferables = getTransferables(a);\n /** @type {MessengerRealm} */ (/** @type {unknown} */ (context ?? globalThis))\n .postMessage(a, { transfer: transferables });\n}\n\n/**\n * @template T\n * @param {string} name\n * @param {(args: T) => void} fn\n * @param {MessagePort | Worker | MessengerRealm} [context]\n */\nexport function listen(\n name,\n fn,\n context = /** @type {MessengerRealm} */ (globalThis),\n) {\n const c = /** @type {any} */ (context);\n\n if (!c.__incoming) {\n context.addEventListener(\"message\", incomingAnnouncementsHandler(context));\n c.__incoming = {};\n }\n\n c.__incoming[name] = debounceMicrotask(fn, { updateArguments: true });\n}\n\n////////////////////////////////////////////\n// RPC\n////////////////////////////////////////////\n\n/**\n * @template {Record any>} LocalAPI\n * @template {Record any>} RemoteAPI\n * @param {MessagePort | Worker | MessengerRealm} context\n * @param {RemoteAPI} actions\n * @returns {RpcChannel<{}, RemoteAPI>}\n */\nexport function rpc(context, actions) {\n /** @type {RpcChannel<{}, RemoteAPI>} */\n const channel = new RpcChannel(context, { expose: actions });\n return channel;\n}\n\n////////////////////////////////////////////\n// ⛔️\n////////////////////////////////////////////\n\nconst ANNOUNCEMENT = \"announcement\";\n\n/**\n * @template T\n * @param {string} name\n * @param {T} args\n * @returns {Announcement}\n */\nfunction announcement(name, args) {\n return {\n ns: ANNOUNCEMENT,\n name,\n key: xxh32(crypto.randomUUID()),\n\n type: ANNOUNCEMENT,\n args,\n };\n}\n\n/**\n * @param {MessagePort | Worker | MessengerRealm} context\n */\nfunction incomingAnnouncementsHandler(context) {\n /** @param {any} event */\n return (event) => {\n const { ns, type } = event.data;\n if (ns !== ANNOUNCEMENT || type !== ANNOUNCEMENT) return;\n const announcement = /** @type {Announcement} */ (event.data);\n const c = /** @type {any} */ (context);\n c.__incoming[announcement.name]?.(announcement.args);\n };\n}\n"],"mappings":"wHAWO,IAAMA,EAAkB,OAAO,eAAe,SAAA,EAYxCC,EAAY,WAAW,UAYvBC,EAAc,WAAW,YAYzBC,EAAa,WAAW,WAaxBC,EAAkB,WAAW,gBAY7BC,EAAiB,WAAW,eAY5BC,EAAiB,WAAW,eAK5BC,EAAiB,WAAW,eAK5BC,EAAiB,WAAW,eAK5BC,EAAkB,WAAW,gBAEpCC,EAAuB,mBAAoB,WAC3CC,EAAuB,mBAAoB,WAC3CC,EAAwB,oBAAqB,WAQnD,IAAMC,EAAuB,mBAAoB,WAC3CC,EAAoB,gBAAiB,WAErCC,EAAoB,gBAAiB,WACrCC,EAAkB,cAAe,WACjCC,EAAoB,gBAAiB,WACrCC,EAAmB,eAAgB,WAEnCC,EAAwB,oBAAqB,WAC7CC,EAAuB,mBAAoB,WAYjD,IAAMC,EAAwB,oBAAqB,WA4J5C,SAASC,EAASC,EAAY,CACnC,OAAQ,OAAOA,GAAQ,UAAYA,IAAQ,MAAS,OAAOA,GAAQ,UACrE,CAFgBC,EAAAF,EAAA,YAST,SAASG,EAAaF,EAAY,CACvC,OAAO,YAAY,OAAOA,CAAA,CAC5B,CAFgBC,EAAAC,EAAA,gBAST,SAASC,EAASH,EAAY,CACnC,OACGI,GAAwBJ,aAAeK,GACvCC,GAAwBN,aAAeO,GACvCC,GAAyBR,aAAeS,CAE7C,CANgBR,EAAAE,EAAA,YAWT,SAASO,EAAiBV,EAAY,CAC3C,OACGW,GAAwBX,aAAeY,CAE5C,CAJgBX,EAAAS,EAAA,oBAST,SAASG,EAAeb,EAAY,CACzC,OACGc,GAAqBd,aAAe,aACpCe,GAAqBf,aAAe,aACpCgB,GAAmBhB,aAAeiB,GAClCC,GAAqBlB,aAAemB,GACpCC,GAAoBpB,aAAeqB,GACnCC,GAAyBtB,aAAeuB,GACxCC,GAAwBxB,aAAeyB,CAE5C,CAVgBxB,EAAAY,EAAA,kBA4BT,SAASa,EAAiBC,EAAcC,EAAU,GAAOC,EAAW,IAAM,CAC/E,IAAMC,EAAS,IAAI,IAAsB,CAAA,CAAE,EACrCC,EAAS,CAAC,CAACJ,IAEjB,QAASK,EAAI,EAAGA,EAAID,EAAO,OAAQC,IAAK,CACtC,IAAMC,EAAQF,EAAOC,CAAA,EACfE,EAAMD,EAAM,OAElB,QAASE,EAAI,EAAGA,EAAID,EAAKC,IAAK,CAC5B,IAAMC,EAAOH,EAAME,CAAA,EAEnB,GAAIE,EAAaD,CAAA,EACfN,EAAO,IAAIM,EAAK,MAAM,UACbE,EAAeF,CAAA,GAASR,GAAWW,EAASH,CAAA,EACrDN,EAAO,IAAIM,CAAA,UACFI,EAAiBJ,CAAA,EAC1BN,EAAO,IAAIM,EAAK,KAAK,EACrBN,EAAO,IAAIM,EAAK,KAAK,UAOd,CAACG,EAASH,CAAA,GAASK,EAASL,CAAA,EAAO,CAC1C,IAAMM,EAAS,MAAM,QAAQN,CAAA,EAAQA,EAAO,OAAO,OAAOA,CAAA,EACtDM,EAAO,QAAQX,EAAO,KAAKW,CAAA,CACjC,CAEA,GAAI,EAAEb,GAAY,EAAG,KACvB,CACF,CAEA,OAAO,MAAM,KAAKC,CAAA,CACpB,CAlCgBa,EAAAjB,EAAA,oBCvVhB,IAAMkB,EAAU,OAAO,gBAAmB,WACtC,eACCC,GAA8C,QAAQ,QAAO,EAAG,KAAKA,CAAA,EAiC7DC,EAAoBC,EAAA,CAC/BF,EACAG,IAAA,CAEA,IAAIC,EAAS,GACT,CAAE,cAAAC,EAAgB,GAAI,EAAKF,GAAW,CAAC,EACvCG,EAEJ,MAAO,IAAIC,IAAA,CAOT,GANIJ,GAAS,gBACXG,EAAcC,EAEdD,IAAgBC,EAGdH,EAAQ,OAEZ,GAAIC,KAAmB,EACrB,OAAQF,GAAS,YAAA,CACf,IAAK,SACH,OACF,IAAK,SACH,OAAOH,EAAA,GAAMM,CAAA,EAEf,QACE,MAAM,IAAI,MAAM,iCAAiC,CACrD,CAGFF,EAAS,GAETL,EAAQS,CAAA,EAER,SAASA,GAAA,CACHJ,GACFA,EAAS,GAETL,EAAQS,CAAA,IAERH,EAAgBF,GAAS,eAAiB,IAC1CH,EAAA,GAAMM,CAAA,EAEV,CATSJ,EAAAM,EAAA,UAUX,CACF,EA5CiC,qBCVjC,SAASC,EAAuBC,EAAS,CACvC,OAA2BA,GAAU,aAAa,OAChD,4BACJ,CAHSC,EAAAF,EAAA,0BAMT,IAAMG,EAAiB,CAAC,EAGpBC,EAAsB,KAE1B,GAAIJ,EAAuB,UAAU,EAAG,CACtC,IAAMK,EAAwCH,GAACI,GAAU,CACvDH,EAAe,KAAkCG,CAAM,CACzD,GAF8C,WAI9C,WAAW,iBAAiB,UAAWD,CAAO,EAE9CD,EAAsBF,EAAA,IAAM,CAC1B,WAAW,oBAAoB,UAAWG,CAAO,CACnD,EAFsB,sBAGxB,CAcO,SAASE,GACdC,EACAP,EAAoD,WACpD,CACA,GAAID,EAAuBC,CAAO,EAAG,CAInC,GAHAO,EAASP,EAAS,GAAM,OAAO,WAAW,CAAC,EAGvCG,EAAqB,CACvBA,EAAoB,EACpBA,EAAsB,KACtB,IAAMK,EAA0DR,EAChEE,EAAe,OAAO,CAAC,EAAE,QAASO,GAAM,CACtCD,EAAI,cACF,IAAI,aAAa,UAAW,CAAE,KAAMC,EAAE,KAAM,MAAO,CAAC,GAAGA,EAAE,KAAK,CAAE,CAAC,CACnE,CACF,CAAC,CACH,CAEA,MACF,CAEA,IAAMC,EAAwBV,EAC9BU,EAAE,OAAS,OAAO,WAAW,EAE7BV,EAAQ,iBACN,UAICK,GAAU,CAET,IAAMM,EAAON,EAAM,MAAM,CAAC,EAC1BM,EAAK,MAAM,EAGXJ,EAASI,EAAM,EAAED,EAAE,aAAe,IAAQA,EAAE,IAAI,EAChDA,EAAE,YAAc,EAClB,CACF,CACF,CAxCgBT,EAAAK,GAAA,WA6CT,SAASM,EAAWC,EAAQ,CACjC,OAAIA,aAAkB,cACpBA,EAAO,KAAK,MAAM,EACXA,EAAO,MAEPA,CAEX,CAPgBZ,EAAAW,EAAA,cAcT,SAASE,GAAYC,EAAmB,CAE7C,IAAIC,EAYJ,OAVc,IAAI,MAA0B,CAAC,EAAI,CAC/C,IAAKf,EAAA,CAACgB,EAA+BC,IAE5B,IAAIC,KACTH,IAAY,IAAII,EAAWL,EAAkB,CAAC,EACvCC,EAAQ,WAAWE,EAAMC,CAAI,GAJnC,MAOP,CAAC,CAGH,CAfgBlB,EAAAa,GAAA,eAsBT,SAASO,GAAaC,EAAeC,EAAQ,CAAC,EAAG,CAEtD,IAAIC,EAEER,EAAU,IAAI,eAEpB,SAASS,GAAa,CACpB,GAAID,EAAM,OAAOA,EAEjB,IAAME,EAAeJ,EAAc,EAEnC,OAAAE,EAAOE,aAAwB,aAC3Bd,EAAWc,CAAY,EACvBA,EAEJF,EAAK,iBAAiB,UAAWG,CAAc,EAExCH,CACT,CAZSvB,EAAAwB,EAAA,cAcTT,EAAQ,MAAM,iBAAiB,UAAW,MAAOX,GAAU,CAEzD,GAAM,CAAE,KAAAuB,EAAM,SAAAC,CAAS,EAAI,MAAMN,GAAO,WAAWlB,EAAM,IAAI,GAC3D,CAAE,KAAMA,EAAM,IAAK,EACrBoB,EAAW,EAAE,YAAYG,EAAM,CAAE,SAAAC,CAAS,CAAC,CAC7C,CAAC,EAKD,IAAMF,EAAiB1B,EAAA,MAAOI,GAAU,CAEtC,IAAMyB,EAAwCzB,EACxC,CAAE,KAAAuB,EAAM,SAAAC,CAAS,EAAI,MAAMN,GAAO,aAAaO,EAAS,IAAI,GAChE,CAAE,KAAMA,EAAS,IAAK,EACxBd,EAAQ,MAAM,YAAYY,EAAM,CAAE,SAAAC,CAAS,CAAC,CAC9C,EANuB,kBAQvB,OAAAb,EAAQ,MAAM,MAAM,EACpBA,EAAQ,MAAM,MAAM,EAEb,CACL,WAAYf,EAAA,IAAM,CAChBuB,GAAM,oBAAoB,UAAWG,CAAc,EACnDX,EAAQ,MAAM,MAAM,EACpBA,EAAQ,MAAM,MAAM,CACtB,EAJY,cAKZ,KAAMA,EAAQ,KAChB,CACF,CAjDgBf,EAAAoB,GAAA,gBA6DT,SAASU,GACdC,EACAb,EACAnB,EACA,CACA,IAAMiC,EAAIC,EAAaF,EAAMb,CAAI,EAC3BgB,EAAgBC,EAAiBH,CAAC,GACejC,GAAW,YAC/D,YAAYiC,EAAG,CAAE,SAAUE,CAAc,CAAC,CAC/C,CATgBlC,EAAA8B,GAAA,YAiBT,SAASM,GACdL,EACAM,EACAtC,EAAyC,WACzC,CACA,IAAMU,EAAwBV,EAEzBU,EAAE,aACLV,EAAQ,iBAAiB,UAAWuC,EAA6BvC,CAAO,CAAC,EACzEU,EAAE,WAAa,CAAC,GAGlBA,EAAE,WAAWsB,CAAI,EAAIQ,EAAkBF,EAAI,CAAE,gBAAiB,EAAK,CAAC,CACtE,CAbgBrC,EAAAoC,GAAA,UA0BT,SAASI,GAAIzC,EAAS0C,EAAS,CAGpC,OADgB,IAAItB,EAAWpB,EAAS,CAAE,OAAQ0C,CAAQ,CAAC,CAE7D,CAJgBzC,EAAAwC,GAAA,OAUhB,IAAME,EAAe,eAQrB,SAAST,EAAaF,EAAMb,EAAM,CAChC,MAAO,CACL,GAAIwB,EACJ,KAAAX,EACA,IAAKY,EAAM,OAAO,WAAW,CAAC,EAE9B,KAAMD,EACN,KAAAxB,CACF,CACF,CATSlB,EAAAiC,EAAA,gBAcT,SAASK,EAA6BvC,EAAS,CAE7C,OAAQK,GAAU,CAChB,GAAM,CAAE,GAAAwC,EAAI,KAAAC,CAAK,EAAIzC,EAAM,KAC3B,GAAIwC,IAAOF,GAAgBG,IAASH,EAAc,OAClD,IAAMT,EAAiD7B,EAAM,KAC/BL,EAC5B,WAAWkC,EAAa,IAAI,IAAIA,EAAa,IAAI,CACrD,CACF,CATSjC,EAAAsC,EAAA","names":["TypedArray","AudioData","ImageBitmap","VideoFrame","OffscreenCanvas","RTCDataChannel","MessageChannel","ReadableStream","WritableStream","TransformStream","ReadableStreamExists","WritableStreamExists","TransformStreamExists","MessageChannelExists","MessagePortExists","ArrayBufferExists","AudioDataExists","ImageBitmapExists","VideoFrameExists","OffscreenCanvasExists","RTCDataChannelExists","structuredCloneExists","isObject","obj","__name","isTypedArray","isStream","ReadableStreamExists","ReadableStream","WritableStreamExists","WritableStream","TransformStreamExists","TransformStream","isMessageChannel","MessageChannelExists","MessageChannel","isTransferable","ArrayBufferExists","MessagePortExists","AudioDataExists","AudioData","ImageBitmapExists","ImageBitmap","VideoFrameExists","VideoFrame","OffscreenCanvasExists","OffscreenCanvas","RTCDataChannelExists","RTCDataChannel","getTransferables","obj","streams","maxCount","result","queues","i","queue","len","j","item","isTypedArray","isTransferable","isStream","isMessageChannel","isObject","values","__name","enqueue","fn","debounceMicrotask","__name","options","queued","debounceLimit","currentArgs","args","dequeue","isDedicatedWorkerScope","context","__name","_earlyMessages","_flushEarlyMessages","handler","event","ostiary","callback","ctx","e","c","port","workerLink","worker","workerProxy","workerLinkCreator","channel","_target","prop","args","RpcChannel","workerTunnel","workerCreator","hooks","link","ensureLink","workerOrLink","workerListener","data","transfer","msgEvent","announce","name","a","announcement","transferables","getTransferables","listen","fn","incomingAnnouncementsHandler","debounceMicrotask","rpc","actions","ANNOUNCEMENT","xxh32","ns","type"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-NYGD7JS5.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js new file mode 120000 index 00000000..c53f9d64 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-O2AMATPK.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js.br new file mode 120000 index 00000000..a5f326e7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-O2AMATPK.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js.map new file mode 120000 index 00000000..ae3f8397 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-O2AMATPK.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-O2AMATPK.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js new file mode 120000 index 00000000..ba1ae419 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-OBMOK4KY.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js.br new file mode 120000 index 00000000..bad4b9d7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-OBMOK4KY.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js.map new file mode 120000 index 00000000..19e1f41b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OBMOK4KY.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-OBMOK4KY.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js new file mode 120000 index 00000000..fe7daa89 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-OLJU5MZL.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js.br new file mode 120000 index 00000000..b6d4a180 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-OLJU5MZL.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js.map new file mode 120000 index 00000000..305da5d5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OLJU5MZL.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-OLJU5MZL.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js new file mode 100644 index 00000000..61169c72 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js @@ -0,0 +1,3 @@ +import{a as r}from"./chunk-75KFZLU6.js";function f(t,n,e=6e4*5){let o=new Map;return async c=>{let a=n(c),p=Date.now(),u=o.get(a);if(u&&u.expiry>p)return u.value;let i=await t(c);return i==="unsure"?"no":(o.set(a,{value:i,expiry:p+e}),i)}}r(f,"cachedConsult");function s({fileUriOrScheme:t,handleFileUri:n,inputScheme:e,tracks:o}){return t.includes("://")?n({fileURI:t,tracks:o}):t===e?[]:o}r(s,"detach");function w(t,n){return`${t}://${n}`}r(w,"groupKey");function l(t){return t.match(/\.(flac|m4a|mp3|mp4|ogg|opus|wav|webm)$/)}r(l,"isAudioFile");function x(t){return/\.(jpe?g|png|gif|webp)$/i.test(t)}r(x,"isImageFile");async function y(t,n){let e=await fetch(t,{signal:n});return e.ok?new Uint8Array(await e.arrayBuffer()):null}r(y,"bytesFromUrl");function d(t,n){return t.find(e=>/cover/i.test(n(e)))??t.find(e=>/front/i.test(n(e)))??t[0]}r(d,"pickCoverArt");export{f as a,s as b,w as c,l as d,x as e,y as f,d as g}; + +//# sourceMappingURL=./chunk-OO43XB75.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js.br new file mode 100644 index 0000000000000000000000000000000000000000..42f978fd0871c3f78bc431963d0a3489a9acd00e GIT binary patch literal 532 zcmb21!OZX^%J|Ro&qW^1Db1QwrO!>dWf5zub3o*D?th-= z2Q~}atlO~axq8Wh%f3tfe{x@5;Q8iyvQ}sA>Qf;nYP|MM{IJKSZ`tmm=hs#*w~w#i zdG@wLnM3?llP1O~+dn>A8lCgjFfB}K&Svvdk=_ff=T0q>cUmo;aq_^)<627QWy^Tn zGAo-WYFURJ=N5PSH$VC2<$Hz-GL;9v<>g-rI_q^@=hCDvVY*9I77G^1X?ARM2{_HH zcW9QZpwuvsCcvd&=I<}j z3OoX{Q746tB}Ab0N;lWu9=D#EX~x`Yt|P-Y%M|V*CGb%(mfm(CS%bBbIu; z<@Jl@f9$s(Q~C7gPS&OWPhRr4T<;98IJNlq!zvN+e?8CkTdu7R%{%P7mG|8-vmLW% z=gvC2%P?p2tZkC~%+}L4Kgr~GX=hJfn)_J!!z5R?x%aJfW}TgxmR-_&$Rhl{LYYgl z_|g9@S$xcwZMSNy)>#mqd{$a{jib5S*F!27y-(zZ@5sF=p8M!7`@Pk|zAjIacRzR- zas7p6@}trqj+2*#CmhyHs(AJG!_n_=dqUs*ihS}oXqm?MpDC~Bo-q-TOm-Dq>@&CG w_xjcKla`B4*nPH+<+1IDZ%#38J!@-OA9AqISlA+`6~XY3#WZB4+S_vs019&n2LJ#7 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js.map new file mode 100644 index 00000000..d054f563 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OO43XB75.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/input/common.js"],"sourcesContent":["/**\n * @import {ConsultResult} from \"@specs/components/input/types.d.ts\"\n * @import {Track} from \"~/definitions/types.d.ts\"\n */\n\n/**\n * Creates a time-cached version of an async consult function.\n * Results are cached per key for the given TTL.\n *\n * The underlying `fn` returns a {@link ConsultResult}:\n * - `\"yes\"` → server confirmed reachable (cached for the full TTL);\n * - `\"no\"` → server explicitly rejected, or a transient consult\n * failure occurred (cached for the full TTL only when the\n * underlying fn actually returned `\"no\"`; an `\"unsure\"`\n * result is **not** cached — the next consult retries\n * immediately);\n * - `\"unsure\"` → inconclusive (network blip, timeout, aborted fetch).\n *\n * The wrapper normalises `\"unsure\"` to `\"no\"` for the caller: we can't\n * confirm availability, so callers should hide the source's tracks\n * until a real consult succeeds. The key difference vs. a genuine\n * `\"no\"` is purely about caching: `\"unsure\"` is never written to the\n * cache, so the next consult call will retry the underlying fn rather\n * than wait out the TTL.\n *\n * @template T\n * @param {(arg: T) => Promise} fn\n * @param {(arg: T) => string} keyFn\n * @param {number} ttl - Cache TTL in milliseconds\n * @returns {(arg: T) => Promise}\n *\n * @example Caches results and avoids calling fn more than once per key\n * ```js\n * import { cachedConsult } from \"~/components/input/common.js\";\n *\n * let callCount = 0;\n * const cached = cachedConsult(async () => { callCount++; return \"yes\"; }, (k) => k);\n *\n * const r1 = await cached(\"k\");\n * const r2 = await cached(\"k\");\n *\n * if (r1 !== \"yes\" || r2 !== \"yes\") throw new Error(\"should return cached value\");\n * if (callCount !== 1) throw new Error(\"fn should only be called once per key\");\n * ```\n *\n * @example An `\"unsure\"` result is normalised to `\"no\"` and not cached\n * ```js\n * import { cachedConsult } from \"~/components/input/common.js\";\n *\n * let n = 0;\n * const cached = cachedConsult(\n * async () => (n++ === 0 ? \"unsure\" : \"yes\"),\n * (k) => k,\n * );\n *\n * // First call: fn returns \"unsure\". The wrapper returns \"no\" without\n * // caching, so the caller hides the source's tracks until a real\n * // consult succeeds.\n * const r1 = await cached(\"k\");\n * if (r1 !== \"no\") throw new Error(\"first call should normalise \\\"unsure\\\" to \\\"no\\\"\");\n *\n * // Second call: cache is empty so fn runs again and returns \"yes\".\n * const r2 = await cached(\"k\");\n * if (r2 !== \"yes\") throw new Error(\"second call should return the fresh \\\"yes\\\"\");\n * ```\n */\nexport function cachedConsult(fn, keyFn, ttl = 60_000 * 5) {\n /** @type {Map} */\n const cache = new Map();\n\n return async (arg) => {\n const key = keyFn(arg);\n const now = Date.now();\n const cached = cache.get(key);\n\n if (cached && cached.expiry > now) {\n return cached.value;\n }\n\n const value = await fn(arg);\n\n // `\"unsure\"` means we couldn't confirm availability — surface it\n // as `\"no\"` to callers (their tracks shouldn't show until a real\n // consult succeeds), but never cache it so the next consult call\n // retries the underlying fn immediately rather than waiting out\n // the TTL. This is what distinguishes a transient network blip\n // from a server-confirmed `\"no\"`: both look like \"unavailable\" to\n // callers, but only the latter sticks for the cache window.\n if (value === \"unsure\") {\n return \"no\";\n }\n\n cache.set(key, { value, expiry: now + ttl });\n return value;\n };\n}\n\n/**\n * @param {{ fileUriOrScheme: string; handleFileUri: (args: { fileURI: string; tracks: Track[] }) => Track[]; inputScheme: string; tracks: Track[] }} _\n *\n * @example Removes all tracks when given a matching scheme, returns all when scheme doesn't match\n * ```js\n * import { detach } from \"~/components/input/common.js\";\n *\n * const tracks = JSON.parse('[{\"$type\":\"sh.diffuse.output.track\",\"id\":\"1\",\"uri\":\"https://a.com/1.mp3\"},{\"$type\":\"sh.diffuse.output.track\",\"id\":\"2\",\"uri\":\"https://b.com/2.mp3\"}]');\n *\n * // @ts-ignore\n * const removed = detach({ fileUriOrScheme: \"https\", inputScheme: \"https\", handleFileUri: () => [], tracks });\n * if (removed.length !== 0) throw new Error(\"matching scheme should remove all tracks\");\n *\n * // @ts-ignore\n * const kept = detach({ fileUriOrScheme: \"ftp\", inputScheme: \"https\", handleFileUri: () => [], tracks });\n * if (kept.length !== 2) throw new Error(\"non-matching scheme should keep all tracks\");\n * ```\n *\n * @example Delegates to handleFileUri when a full URI is given\n * ```js\n * import { detach } from \"~/components/input/common.js\";\n *\n * const tracks = JSON.parse('[{\"$type\":\"sh.diffuse.output.track\",\"id\":\"1\",\"uri\":\"https://a.com/1.mp3\"},{\"$type\":\"sh.diffuse.output.track\",\"id\":\"2\",\"uri\":\"https://b.com/2.mp3\"}]');\n *\n * // @ts-ignore\n * const result = detach({ fileUriOrScheme: \"https://a.com/1.mp3\", inputScheme: \"https\", handleFileUri: ({ tracks }) => tracks.filter((t) => t.id !== \"1\"), tracks });\n * if (result.length !== 1 || result[0].id !== \"2\") throw new Error(\"handleFileUri should filter by URI\");\n * ```\n */\nexport function detach(\n { fileUriOrScheme, handleFileUri, inputScheme, tracks },\n) {\n if (!fileUriOrScheme.includes(\"://\")) {\n // Delete everything if scheme matches\n if (fileUriOrScheme === inputScheme) return [];\n return tracks;\n }\n\n return handleFileUri({ fileURI: fileUriOrScheme, tracks });\n}\n\n/**\n * @param {string} scheme\n * @param {string} groupId\n *\n * @example Returns scheme://groupId\n * ```js\n * import { groupKey } from \"~/components/input/common.js\";\n *\n * if (groupKey(\"https\", \"example.com\") !== \"https://example.com\") throw new Error(`expected \"https://example.com\"`);\n * ```\n */\nexport function groupKey(scheme, groupId) {\n return `${scheme}://${groupId}`;\n}\n\n/**\n * @param {string} filename\n *\n * @example Returns truthy for audio extensions and falsy for non-audio ones\n * ```js\n * import { isAudioFile } from \"~/components/input/common.js\";\n *\n * const audioExts = [\"track.mp3\", \"track.flac\", \"track.ogg\", \"track.opus\", \"track.wav\", \"track.m4a\", \"track.webm\"];\n * for (const f of audioExts) {\n * if (!isAudioFile(f)) throw new Error(`${f} should be recognised as audio`);\n * }\n *\n * const nonAudio = [\"track.txt\", \"track.jpg\", \"track.pdf\", \"track\"];\n * for (const f of nonAudio) {\n * if (isAudioFile(f)) throw new Error(`${f} should not be recognised as audio`);\n * }\n * ```\n */\nexport function isAudioFile(filename) {\n return filename.match(/\\.(flac|m4a|mp3|mp4|ogg|opus|wav|webm)$/);\n}\n\n/**\n * @param {string} filename\n * @returns {boolean}\n *\n * @example Returns truthy for image extensions and falsy for non-image ones\n * ```js\n * import { isImageFile } from \"~/components/input/common.js\";\n *\n * const images = [\"cover.jpg\", \"folder.jpeg\", \"art.png\", \"scan.gif\", \"pic.webp\", \"Cover.JPG\"];\n * for (const f of images) {\n * if (!isImageFile(f)) throw new Error(`${f} should be recognised as an image`);\n * }\n *\n * const nonImages = [\"cover.txt\", \"audio.mp3\", \"cover\", \"folder\"];\n * for (const f of nonImages) {\n * if (isImageFile(f)) throw new Error(`${f} should not be recognised as an image`);\n * }\n * ```\n */\nexport function isImageFile(filename) {\n return /\\.(jpe?g|png|gif|webp)$/i.test(filename);\n}\n\n/**\n * Fetch a URL and return its body bytes, or `null` if the request failed.\n *\n * @param {string} url\n * @param {AbortSignal} [signal]\n * @returns {Promise}\n */\nexport async function bytesFromUrl(url, signal) {\n const response = await fetch(url, { signal });\n if (!response.ok) return null;\n return new Uint8Array(await response.arrayBuffer());\n}\n\n/**\n * Pick the preferred artwork from a list of image candidates, in fallback order:\n * first one whose name contains \"cover\" (case-insensitive), else one containing\n * \"front\", else the first candidate.\n *\n * @template T\n * @param {T[]} items\n * @param {(item: T) => string} nameOf\n * @returns {T | undefined}\n *\n * @example Prefers the cover-named image over the first one\n * ```js\n * import { pickCoverArt } from \"~/components/input/common.js\";\n *\n * const picked = pickCoverArt([\"a.png\", \"cover.png\", \"b.png\"], (n) => n);\n * if (picked !== \"cover.png\") throw new Error(\"expected cover.png to win\");\n * ```\n *\n * @example Falls back to a front-named image when no cover is present\n * ```js\n * import { pickCoverArt } from \"~/components/input/common.js\";\n *\n * const picked = pickCoverArt([\"a.png\", \"front.jpg\", \"b.png\"], (n) => n);\n * if (picked !== \"front.jpg\") throw new Error(\"expected front.jpg to beat non-cover images\");\n * ```\n *\n * @example Falls back to the first image when neither cover nor front is present\n * ```js\n * import { pickCoverArt } from \"~/components/input/common.js\";\n *\n * const picked = pickCoverArt([\"a.png\", \"b.png\"], (n) => n);\n * if (picked !== \"a.png\") throw new Error(\"expected first image when no cover or front is present\");\n * ```\n */\nexport function pickCoverArt(items, nameOf) {\n return items.find((item) => /cover/i.test(nameOf(item))) ??\n items.find((item) => /front/i.test(nameOf(item))) ??\n items[0];\n}\n"],"mappings":"wCAkEO,SAASA,EAAcC,EAAIC,EAAOC,EAAM,IAAS,EAAG,CAEzD,IAAMC,EAAQ,IAAI,IAElB,MAAO,OAAOC,GAAQ,CACpB,IAAMC,EAAMJ,EAAMG,CAAG,EACfE,EAAM,KAAK,IAAI,EACfC,EAASJ,EAAM,IAAIE,CAAG,EAE5B,GAAIE,GAAUA,EAAO,OAASD,EAC5B,OAAOC,EAAO,MAGhB,IAAMC,EAAQ,MAAMR,EAAGI,CAAG,EAS1B,OAAII,IAAU,SACL,MAGTL,EAAM,IAAIE,EAAK,CAAE,MAAAG,EAAO,OAAQF,EAAMJ,CAAI,CAAC,EACpCM,EACT,CACF,CA7BgBC,EAAAV,EAAA,iBA4DT,SAASW,EACd,CAAE,gBAAAC,EAAiB,cAAAC,EAAe,YAAAC,EAAa,OAAAC,CAAO,EACtD,CACA,OAAKH,EAAgB,SAAS,KAAK,EAM5BC,EAAc,CAAE,QAASD,EAAiB,OAAAG,CAAO,CAAC,EAJnDH,IAAoBE,EAAoB,CAAC,EACtCC,CAIX,CAVgBL,EAAAC,EAAA,UAuBT,SAASK,EAASC,EAAQC,EAAS,CACxC,MAAO,GAAGD,CAAM,MAAMC,CAAO,EAC/B,CAFgBR,EAAAM,EAAA,YAsBT,SAASG,EAAYC,EAAU,CACpC,OAAOA,EAAS,MAAM,yCAAyC,CACjE,CAFgBV,EAAAS,EAAA,eAuBT,SAASE,EAAYD,EAAU,CACpC,MAAO,2BAA2B,KAAKA,CAAQ,CACjD,CAFgBV,EAAAW,EAAA,eAWhB,eAAsBC,EAAaC,EAAKC,EAAQ,CAC9C,IAAMC,EAAW,MAAM,MAAMF,EAAK,CAAE,OAAAC,CAAO,CAAC,EAC5C,OAAKC,EAAS,GACP,IAAI,WAAW,MAAMA,EAAS,YAAY,CAAC,EADzB,IAE3B,CAJsBf,EAAAY,EAAA,gBAwCf,SAASI,EAAaC,EAAOC,EAAQ,CAC1C,OAAOD,EAAM,KAAME,GAAS,SAAS,KAAKD,EAAOC,CAAI,CAAC,CAAC,GACrDF,EAAM,KAAME,GAAS,SAAS,KAAKD,EAAOC,CAAI,CAAC,CAAC,GAChDF,EAAM,CAAC,CACX,CAJgBjB,EAAAgB,EAAA","names":["cachedConsult","fn","keyFn","ttl","cache","arg","key","now","cached","value","__name","detach","fileUriOrScheme","handleFileUri","inputScheme","tracks","groupKey","scheme","groupId","isAudioFile","filename","isImageFile","bytesFromUrl","url","signal","response","pickCoverArt","items","nameOf","item"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-OO43XB75.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js new file mode 100644 index 00000000..3e470e85 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js @@ -0,0 +1,3 @@ +import{a as n}from"./chunk-WE3IOYGI.js";import{a as i,b as l,d as p}from"./chunk-JL66OXVZ.js";import{b as s,e as c}from"./chunk-IA3NIKPO.js";import{a as r,c as d}from"./chunk-75KFZLU6.js";var m={};d(m,{CLASS:()=>h,NAME:()=>u,default:()=>E});var o=class extends s{static{r(this,"DropboxUpload")}static NAME="diffuse/upload/dropbox";static WORKER_URL="components/upload/dropbox/worker.js";SCHEME=i;appKey=l;static observedAttributes=["app-key"];attributeChangedCallback(t,a,e){super.attributeChangedCallback(t,a,e),t==="app-key"&&e!==null&&(this.appKey=e)}constructor(){super(),this.proxy=this.workerProxy(),this.consult=this.proxy.consult,this.upload=this.proxy.upload,this.delete=this.proxy.delete,this.createSource=this.proxy.createSource}async authorize(){localStorage.setItem("oauth/callback/redirect_path",location.pathname+location.search);let{verifier:t,challenge:a}=await n();localStorage.setItem(p,t);let e=new URLSearchParams({response_type:"code",client_id:this.appKey,redirect_uri:location.origin+"/oauth/callback/",token_access_type:"offline",code_challenge:a,code_challenge_method:"S256"});location.assign(`https://www.dropbox.com/oauth2/authorize?${e}`)}},E=o,h=o,u="du-dropbox";c(u,h);export{E as a,h as b,u as c,m as d}; + +//# sourceMappingURL=./chunk-OOCT36X3.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js.br new file mode 100644 index 0000000000000000000000000000000000000000..ce413217991f8325c57ddd3db55a3215e6ab0744 GIT binary patch literal 629 zcmb2X!ou(*YSzEMm5Fau4DL-1S~bJBJhN4J^`(H)Dlz5jN~%dpee&)9auG3o!E?1^)HeJ!oy|8Ch? zzjL3Y2y^(Ze=^VVgBoXEh|;=w>*uf1|Bv2u&78pK;kf79v-$qjvv0Hi?(^XP$a1;j z{=S^`v2W+pEnWF*k=ygBf~Gs_t?T>xl@&jxvsKrZh3m%(A34eQe3gFk^rP)3j5odV z;maw|EZDJcTOPx|{oCK(v75hb>eV*y^^4MDPb-*LPV!-Hy;;!acK_(qN83LCUHtay z;@_7S%Rbq-cDi+^>EjPsJo9tngXB*=d|WTRdiUxX+IP3z{?Zhh|LRuZU&(GWvj?X4 zr=9hxdbmBSkUPsd|KH11r?R^x9GN}CTR*c@v%0yw+41mgbd*cX?Z*|r%dC73?hy0% z^?x4!%{U7V4$dy#-2D0RAA~l(PsiZfnJdpPS{(FG(zfZja* zKcx2dr_Q)gao#gm(Ei_#r`q2?8cvt~YVageS#DEdPJNN)?$xj6e^iz3e4adG#`1by u>recbsv}&vC8K6cn4Q_S;aY^x1W(uVCI{CF@y@L0yX-FHENdR8%K!kuzdMfr literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js.map new file mode 100644 index 00000000..187a0722 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OOCT36X3.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/upload/dropbox/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\nimport { DEFAULT_APP_KEY, PKCE_VERIFIER_KEY, SCHEME } from \"~/components/input/dropbox/constants.js\";\nimport { generatePKCEPair } from \"~/components/input/dropbox/common.js\";\n\n/**\n * @import {UploadActions, UploadSchemeProvider} from \"@specs/components/upload/types.d.ts\"\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n * @implements {UploadSchemeProvider}\n */\nclass DropboxUpload extends DiffuseElement {\n static NAME = \"diffuse/upload/dropbox\";\n static WORKER_URL = \"components/upload/dropbox/worker.js\";\n\n SCHEME = SCHEME;\n\n /** @type {string} */\n appKey = DEFAULT_APP_KEY;\n\n static observedAttributes = [\"app-key\"];\n\n /**\n * @override\n * @param {string} name\n * @param {string} old\n * @param {string} next\n */\n attributeChangedCallback(name, old, next) {\n super.attributeChangedCallback(name, old, next);\n if (name === \"app-key\" && next !== null) this.appKey = next;\n }\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n this.proxy = this.workerProxy();\n\n this.consult = this.proxy.consult;\n this.upload = this.proxy.upload;\n this.delete = this.proxy.delete;\n this.createSource = this.proxy.createSource;\n }\n\n // 🛠️\n\n async authorize() {\n localStorage.setItem(\"oauth/callback/redirect_path\", location.pathname + location.search);\n\n const { verifier, challenge } = await generatePKCEPair();\n localStorage.setItem(PKCE_VERIFIER_KEY, verifier);\n\n const params = new URLSearchParams({\n response_type: \"code\",\n client_id: this.appKey,\n redirect_uri: location.origin + \"/oauth/callback/\",\n token_access_type: \"offline\",\n code_challenge: challenge,\n code_challenge_method: \"S256\",\n });\n\n location.assign(`https://www.dropbox.com/oauth2/authorize?${params}`);\n }\n}\n\nexport default DropboxUpload;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = DropboxUpload;\nexport const NAME = \"du-dropbox\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"4LAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAiBA,IAAMC,EAAN,cAA4BC,CAAe,CAjB3C,MAiB2C,CAAAC,EAAA,sBACzC,OAAO,KAAO,yBACd,OAAO,WAAa,sCAEpB,OAASC,EAGT,OAASC,EAET,OAAO,mBAAqB,CAAC,SAAS,EAQtC,yBAAyBC,EAAMC,EAAKC,EAAM,CACxC,MAAM,yBAAyBF,EAAMC,EAAKC,CAAI,EAC1CF,IAAS,WAAaE,IAAS,OAAM,KAAK,OAASA,EACzD,CAEA,aAAc,CACZ,MAAM,EAGN,KAAK,MAAQ,KAAK,YAAY,EAE9B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,OAAS,KAAK,MAAM,OACzB,KAAK,OAAS,KAAK,MAAM,OACzB,KAAK,aAAe,KAAK,MAAM,YACjC,CAIA,MAAM,WAAY,CAChB,aAAa,QAAQ,+BAAgC,SAAS,SAAW,SAAS,MAAM,EAExF,GAAM,CAAE,SAAAC,EAAU,UAAAC,CAAU,EAAI,MAAMC,EAAiB,EACvD,aAAa,QAAQC,EAAmBH,CAAQ,EAEhD,IAAMI,EAAS,IAAI,gBAAgB,CACjC,cAAe,OACf,UAAW,KAAK,OAChB,aAAc,SAAS,OAAS,mBAChC,kBAAmB,UACnB,eAAgBH,EAChB,sBAAuB,MACzB,CAAC,EAED,SAAS,OAAO,4CAA4CG,CAAM,EAAE,CACtE,CACF,EAEOC,EAAQb,EAMFc,EAAQd,EACRe,EAAO,aAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","DropboxUpload","DiffuseElement","__name","SCHEME","DEFAULT_APP_KEY","name","old","next","verifier","challenge","generatePKCEPair","PKCE_VERIFIER_KEY","params","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-OOCT36X3.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js new file mode 100644 index 00000000..6be8a428 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js @@ -0,0 +1,17 @@ +import{b as _e,c as Qe}from"./chunk-RN5G2ZPZ.js";import{c as rt}from"./chunk-GSVEIULU.js";import{d as it}from"./chunk-LINMKWZS.js";import{b as ie,c as re}from"./chunk-C5GF5WSP.js";import{b as Ce,f as et,k as tt}from"./chunk-FHQAE777.js";import{B as y,D as ee,E as te,G as Je,a as S,b as Ze,c as Q,d as J,e as ve,f as C,g as He,i as Ve,j as h,k as B,n as d,o as Re,s as Ye,u as Ke}from"./chunk-PHFIOWBZ.js";import{a as hi}from"./chunk-KZNIRR3C.js";import{i as Ae}from"./chunk-J3G2CW6Q.js";import{a as je}from"./chunk-TVBOGSPT.js";import{a as s,b as di,d as w}from"./chunk-75KFZLU6.js";var Lt=di(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.format=ir;ce.parse=rr;var Ji=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,Ct=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,er=/[\\"]/g,tr=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,_t=(()=>{let i=s(function(){},"C");return i.prototype=Object.create(null),i})();function ir(i){let{type:e,parameters:t}=i;if(!e||!tr.test(e))throw new TypeError(`Invalid type: ${e}`);let r=e;if(t)for(let n of Object.keys(t)){if(!Ct.test(n))throw new TypeError(`Invalid parameter name: ${n}`);r+=`; ${n}=${cr(t[n])}`}return r}s(ir,"format");function rr(i,e){let t=e?.comma===!0?sr:65536,r=i.length,n=Fe(i,e?.start??0,r),o=n;n=ze(i,n,r,t);let c=Pe(i,o,n),m=i.slice(o,c).toLowerCase();return e?.parameters===!1?{type:m,index:n,parameters:new _t}:or(i,m,n,r,t)}s(rr,"parse");var Dt=32,Mt=9,Bt=59,nr=61,Rt=34,ar=92,sr=44;function or(i,e,t,r,n){let o=new _t;e:for(;te;){let r=i.charCodeAt(t-1);if(r!==Dt&&r!==Mt)break;t--}return t}s(Pe,"trailingOWS");function cr(i){if(Ct.test(i))return i;if(Ji.test(i))return`"${i.replace(er,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${i}`)}s(cr,"qstring")});var ai=w(C());var ot=w(C());var L={LocalFileHeader:67324752,DataDescriptor:134695760,CentralFileHeader:33639248,EndOfCentralDirectory:101010256},De={get(i){return{signature:d.get(i,0),compressedSize:d.get(i,8),uncompressedSize:d.get(i,12)}},len:16},nt={get(i){let e=h.get(i,6);return{signature:d.get(i,0),minVersion:h.get(i,4),dataDescriptor:!!(e&8),compressedMethod:h.get(i,8),compressedSize:d.get(i,18),uncompressedSize:d.get(i,22),filenameLength:h.get(i,26),extraFieldLength:h.get(i,28),filename:null}},len:30},at={get(i){return{signature:d.get(i,0),nrOfThisDisk:h.get(i,4),nrOfThisDiskWithTheStart:h.get(i,6),nrOfEntriesOnThisDisk:h.get(i,8),nrOfEntriesOfSize:h.get(i,10),sizeOfCd:d.get(i,12),offsetOfStartOfCd:d.get(i,16),zipFileCommentLength:h.get(i,20)}},len:22},st={get(i){let e=h.get(i,8);return{signature:d.get(i,0),minVersion:h.get(i,6),dataDescriptor:!!(e&8),compressedMethod:h.get(i,10),compressedSize:d.get(i,20),uncompressedSize:d.get(i,24),filenameLength:h.get(i,28),extraFieldLength:h.get(i,30),fileCommentLength:h.get(i,32),relativeOffsetOfLocalHeader:d.get(i,42),filename:null}},len:46};function ct(i){let e=new Uint8Array(d.len);return d.put(e,0,i),e}s(ct,"signatureToArray");var I=(0,ot.default)("tokenizer:inflate"),Me=256*1024,xi=ct(L.DataDescriptor),ne=ct(L.EndOfCentralDirectory),O=class i{static{s(this,"ZipHandler")}constructor(e){this.tokenizer=e,this.syncBuffer=new Uint8Array(Me)}async isZip(){return await this.peekSignature()===L.LocalFileHeader}peekSignature(){return this.tokenizer.peekToken(d)}async findEndOfCentralDirectoryLocator(){let e=this.tokenizer,t=Math.min(16*1024,e.fileInfo.size),r=this.syncBuffer.subarray(0,t);await this.tokenizer.readBuffer(r,{position:e.fileInfo.size-t});for(let n=r.length-4;n>=0;n--)if(r[n]===ne[0]&&r[n+1]===ne[1]&&r[n+2]===ne[2]&&r[n+3]===ne[3])return e.fileInfo.size-t+n;return-1}async readCentralDirectory(){if(!this.tokenizer.supportsRandomAccess()){I("Cannot reading central-directory without random-read support");return}I("Reading central-directory...");let e=this.tokenizer.position,t=await this.findEndOfCentralDirectoryLocator();if(t>0){I("Central-directory 32-bit signature found");let r=await this.tokenizer.readToken(at,t),n=[];this.tokenizer.setPosition(r.offsetOfStartOfCd);for(let o=0;o=0?a:u;if(o.handler){let l=new Uint8Array(f);await this.tokenizer.readBuffer(l),m.push(l)}else await this.tokenizer.ignore(f)}I(`Found data-descriptor-signature at pos=${this.tokenizer.position}`),o.handler&&await this.inflate(n,Ti(m),o.handler)}else o.handler?(I(`Reading compressed-file-data: ${n.compressedSize} bytes`),c=new Uint8Array(n.compressedSize),await this.tokenizer.readBuffer(c),await this.inflate(n,c,o.handler)):(I(`Ignoring compressed-file-data: ${n.compressedSize} bytes`),await this.tokenizer.ignore(n.compressedSize));if(I(`Reading data-descriptor at pos=${this.tokenizer.position}`),n.dataDescriptor&&(await this.tokenizer.readToken(De)).signature!==134695760)throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position-De.len}`)}while(!r)}async iterateOverCentralDirectory(e,t){for(let r of e){let n=t(r);if(n.handler){this.tokenizer.setPosition(r.relativeOffsetOfLocalHeader);let o=await this.readLocalFileHeader();if(o){await this.tokenizer.ignore(o.extraFieldLength);let c=new Uint8Array(r.compressedSize);await this.tokenizer.readBuffer(c),await this.inflate(o,c,n.handler)}}if(n.stop)break}}async inflate(e,t,r){if(e.compressedMethod===0)return r(t);if(e.compressedMethod!==8)throw new Error(`Unsupported ZIP compression method: ${e.compressedMethod}`);I(`Decompress filename=${e.filename}, compressed-size=${t.length}`);let n=await i.decompressDeflateRaw(t);return r(n)}static async decompressDeflateRaw(e){let t=new ReadableStream({start(o){o.enqueue(e),o.close()}}),r=new DecompressionStream("deflate-raw"),n=t.pipeThrough(r);try{let c=await new Response(n).arrayBuffer();return new Uint8Array(c)}catch(o){let c=o instanceof Error?`Failed to deflate ZIP entry: ${o.message}`:"Unknown decompression error in ZIP entry";throw new TypeError(c)}}async readLocalFileHeader(){let e=await this.tokenizer.peekToken(d);if(e===L.LocalFileHeader){let t=await this.tokenizer.readToken(nt);return t.filename=await this.tokenizer.readToken(new y(t.filenameLength,"utf-8")),t}if(e===L.CentralFileHeader)return!1;throw e===3759263696?new Error("Encrypted ZIP"):new Error("Unexpected signature")}};function gi(i,e){let t=i.length,r=e.length;if(r>t)return-1;for(let n=0;n<=t-r;n++){let o=!0;for(let c=0;cn+o.length,0),t=new Uint8Array(e),r=0;for(let n of i)t.set(n,r),r+=n.length;return t}s(Ti,"mergeArrays");var G=class{static{s(this,"GzipHandler")}constructor(e){this.tokenizer=e}inflate(){let e=this.tokenizer;return new ReadableStream({async pull(t){let r=new Uint8Array(1024),n=await e.readBuffer(r,{mayBeLess:!0});if(n===0){t.close();return}t.enqueue(r.subarray(0,n))}}).pipeThrough(new DecompressionStream("gzip"))}};function mt(i,e){if(e==="utf-16le"){let t=[];for(let r=0;r>8&255)}return t}if(e==="utf-16be"){let t=[];for(let r=0;r>8&255,n&255)}return t}return[...i].map(t=>t.charCodeAt(0))}s(mt,"stringToBytes");function pt(i,e=0){let t=Number.parseInt(new y(6).get(i,148).replace(/\0.*$/,"").trim(),8);if(Number.isNaN(t))return!1;let r=256;for(let n=e;ni[e+3]&127|i[e+2]<<7|i[e+1]<<14|i[e]<<21,"get"),len:4};var ft=["jpg","png","apng","gif","webp","flif","xcf","cr2","cr3","orf","arw","dng","nef","rw2","raf","tif","bmp","icns","jxr","psd","indd","zip","tar","rar","gz","bz2","7z","dmg","mp4","mid","mkv","webm","mov","avi","mpg","mp2","mp3","m4a","oga","ogg","ogv","opus","flac","wav","spx","amr","pdf","epub","elf","macho","exe","swf","rtf","wasm","woff","woff2","eot","ttf","otf","ttc","ico","flv","ps","xz","sqlite","nes","crx","xpi","cab","deb","ar","rpm","Z","lz","cfb","mxf","mts","blend","bpg","docx","pptx","xlsx","3gp","3g2","j2c","jp2","jpm","jpx","mj2","aif","qcp","odt","ods","odp","xml","mobi","heic","cur","ktx","ape","wv","dcm","ics","glb","pcap","dsf","lnk","alias","voc","ac3","m4v","m4p","m4b","f4v","f4p","f4b","f4a","mie","asf","ogm","ogx","mpc","arrow","shp","aac","mp1","it","s3m","xm","skp","avif","eps","lzh","pgp","asar","stl","chm","3mf","zst","jxl","vcf","jls","pst","dwg","parquet","class","arj","cpio","ace","avro","icc","fbx","vsdx","vtt","apk","drc","lz4","potx","xltx","dotx","xltm","ott","ots","otp","odg","otg","xlsm","docm","dotm","potm","pptm","jar","jmp","rm","sav","ppsm","ppsx","tar.gz","reg","dat"],lt=["image/jpeg","image/png","image/gif","image/webp","image/flif","image/x-xcf","image/x-canon-cr2","image/x-canon-cr3","image/tiff","image/bmp","image/vnd.ms-photo","image/vnd.adobe.photoshop","application/x-indesign","application/epub+zip","application/x-xpinstall","application/vnd.ms-powerpoint.slideshow.macroenabled.12","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.slideshow","application/zip","application/x-tar","application/x-rar-compressed","application/gzip","application/x-bzip2","application/x-7z-compressed","application/x-apple-diskimage","application/vnd.apache.arrow.file","video/mp4","audio/midi","video/matroska","video/webm","video/quicktime","video/vnd.avi","audio/wav","audio/qcelp","audio/x-ms-asf","video/x-ms-asf","application/vnd.ms-asf","video/mpeg","video/3gpp","audio/mpeg","audio/mp4","video/ogg","audio/ogg","audio/ogg; codecs=opus","application/ogg","audio/flac","audio/ape","audio/wavpack","audio/amr","application/pdf","application/x-elf","application/x-mach-binary","application/x-msdownload","application/x-shockwave-flash","application/rtf","application/wasm","font/woff","font/woff2","application/vnd.ms-fontobject","font/ttf","font/otf","font/collection","image/x-icon","video/x-flv","application/postscript","application/eps","application/x-xz","application/x-sqlite3","application/x-nintendo-nes-rom","application/x-google-chrome-extension","application/vnd.ms-cab-compressed","application/x-deb","application/x-unix-archive","application/x-rpm","application/x-compress","application/x-lzip","application/x-cfb","application/x-mie","application/mxf","video/mp2t","application/x-blender","image/bpg","image/j2c","image/jp2","image/jpx","image/jpm","image/mj2","audio/aiff","application/xml","application/x-mobipocket-ebook","image/heif","image/heif-sequence","image/heic","image/heic-sequence","image/icns","image/ktx","application/dicom","audio/x-musepack","text/calendar","text/vcard","text/vtt","model/gltf-binary","application/vnd.tcpdump.pcap","audio/x-dsf","application/x.ms.shortcut","application/x.apple.alias","audio/x-voc","audio/vnd.dolby.dd-raw","audio/x-m4a","image/apng","image/x-olympus-orf","image/x-sony-arw","image/x-adobe-dng","image/x-nikon-nef","image/x-panasonic-rw2","image/x-fujifilm-raf","video/x-m4v","video/3gpp2","application/x-esri-shape","audio/aac","audio/x-it","audio/x-s3m","audio/x-xm","video/MP1S","video/MP2P","application/vnd.sketchup.skp","image/avif","application/x-lzh-compressed","application/pgp-encrypted","application/x-asar","model/stl","application/vnd.ms-htmlhelp","model/3mf","image/jxl","application/zstd","image/jls","application/vnd.ms-outlook","image/vnd.dwg","application/vnd.apache.parquet","application/java-vm","application/x-arj","application/x-cpio","application/x-ace-compressed","application/avro","application/vnd.iccprofile","application/x.autodesk.fbx","application/vnd.visio","application/vnd.android.package-archive","application/vnd.google.draco","application/x-lz4","application/vnd.openxmlformats-officedocument.presentationml.template","application/vnd.openxmlformats-officedocument.spreadsheetml.template","application/vnd.openxmlformats-officedocument.wordprocessingml.template","application/vnd.ms-excel.template.macroenabled.12","application/vnd.oasis.opendocument.text-template","application/vnd.oasis.opendocument.spreadsheet-template","application/vnd.oasis.opendocument.presentation-template","application/vnd.oasis.opendocument.graphics","application/vnd.oasis.opendocument.graphics-template","application/vnd.ms-excel.sheet.macroenabled.12","application/vnd.ms-word.document.macroenabled.12","application/vnd.ms-word.template.macroenabled.12","application/vnd.ms-powerpoint.template.macroenabled.12","application/vnd.ms-powerpoint.presentation.macroenabled.12","application/java-archive","application/vnd.rn-realmedia","application/x-spss-sav","application/x-ms-regedit","application/x-ft-windows-registry-hive","application/x-jmp-data"];var N=4100,yi=N-2,A=1024*1024,dt=1024,bi=2**31-1,b=16*1024*1024,oe=A,ht=A,ki=b,wi=1,xt=100,Be=b,gt=64,Tt=oe,Si=256,Ii=512,Ei=b,Ai=512,vi=512,yt=256,bt=oe,kt=oe,Ri=oe,wt=b,Ci=new Set(["Unexpected signature","Encrypted ZIP","Expected Central-File-Header signature"]),_i=["ZIP entry count exceeds ","Unsupported ZIP compression method:","ZIP entry compressed data exceeds ","ZIP entry decompressed data exceeds ","Expected data-descriptor-signature at position "],Di=new Set(["Z_BUF_ERROR","Z_DATA_ERROR","ERR_INVALID_STATE"]),_=class extends Error{static{s(this,"ParserHardLimitError")}};function Mi(i){let e=i?.streamReader;if(e?.constructor?.name!=="WebStreamByobReader")return i;let{reader:t}=e,r=s(async()=>{await t.cancel(),t.releaseLock()},"cancelAndRelease");return e.close=r,e.abort=async()=>{e.interrupted=!0,await r()},i}s(Mi,"patchWebByobTokenizerClose");function Oe(i,e,t){if(!Number.isFinite(i)||i<0||i>e)throw new _(`${t} has invalid size ${i} (maximum ${e} bytes)`);return i}s(Oe,"getSafeBound");async function D(i,e,{maximumLength:t=b,reason:r="skip"}={}){let n=Oe(e,t,r);await i.ignore(n)}s(D,"safeIgnore");async function Le(i,e,t,{maximumLength:r=e.length,reason:n="read"}={}){let o=t?.length??e.length,c=Oe(o,r,n);return i.readBuffer(e,{...t,length:c})}s(Le,"safeReadBuffer");async function Bi(i,{maximumLength:e=A}={}){let n=new ReadableStream({start(a){a.enqueue(i),a.close()}}).pipeThrough(new DecompressionStream("deflate-raw")).getReader(),o=[],c=0;try{for(;;){let{done:a,value:f}=await n.read();if(a)break;if(c+=f.length,c>e)throw await n.cancel(),new Error(`ZIP entry decompressed data exceeds ${e} bytes`);o.push(f)}}finally{n.releaseLock()}let m=new Uint8Array(c),u=0;for(let a of o)m.set(a,u),u+=a.length;return m}s(Bi,"decompressDeflateRawWithLimit");var At=134695760,ae=16,Li=ae-1;function Oi(i,e){if(i.length=0?0:m===n?Math.min(Li,m-1):0,f=u>=0?u:m-a;if(f===0)break;if(c+=f,c>t)throw new Error(`ZIP entry compressed data exceeds ${t} bytes`);if(e){let l=new Uint8Array(f);await i.tokenizer.readBuffer(l),o.push(l)}else await i.tokenizer.ignore(f);if(u>=0)break}if(T(i.tokenizer)||(i.knownSizeDescriptorScannedBytes+=c),!!e)return Fi(o,c)}s(Pi,"readZipDataDescriptorEntryWithLimit");function Ni(i,e){return T(i.tokenizer)?Math.max(0,b-(i.tokenizer.position-e)):Math.max(0,A-i.knownSizeDescriptorScannedBytes)}s(Ni,"getRemainingZipScanBudget");async function Ui(i,e,{shouldBuffer:t,maximumDescriptorLength:r=A}={}){if(e.dataDescriptor&&e.compressedSize===0)return Pi(i,{shouldBuffer:t,maximumLength:r});if(!t){await D(i.tokenizer,e.compressedSize,{maximumLength:T(i.tokenizer)?A:i.tokenizer.fileInfo.size,reason:"ZIP entry compressed data"});return}let n=Wi(i.tokenizer);if(!Number.isFinite(e.compressedSize)||e.compressedSize<0||e.compressedSize>n)throw new Error(`ZIP entry compressed data exceeds ${n} bytes`);let o=new Uint8Array(e.compressedSize);return await i.tokenizer.readBuffer(o),o}s(Ui,"readZipEntryData");O.prototype.inflate=async function(i,e,t){if(i.compressedMethod===0)return t(e);if(i.compressedMethod!==8)throw new Error(`Unsupported ZIP compression method: ${i.compressedMethod}`);let r=await Bi(e,{maximumLength:A});return t(r)};O.prototype.unzip=async function(i){let e=!1,t=0,r=this.tokenizer.position;this.knownSizeDescriptorScannedBytes=0;do{if($(this.tokenizer,r,b))throw new _(`ZIP stream probing exceeds ${b} bytes`);let n=await this.readLocalFileHeader();if(!n)break;if(t++,t>dt)throw new Error(`ZIP entry count exceeds ${dt}`);let o=i(n);e=!!o.stop,await this.tokenizer.ignore(n.extraFieldLength);let c=await Ui(this,n,{shouldBuffer:!!o.handler,maximumDescriptorLength:Math.min(A,Ni(this,r))});if(o.handler&&await this.inflate(n,c,o.handler),n.dataDescriptor){let m=new Uint8Array(ae);if(await this.tokenizer.readBuffer(m),d.get(m,0)!==At)throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position-m.length}`)}if($(this.tokenizer,r,b))throw new _(`ZIP stream probing exceeds ${b} bytes`)}while(!e)};function Xi(i,e){let t=i.getReader(),r=0,n=!1,o=!1,c=s(async m=>{n||o||(o=!0,await t.cancel(m))},"cancelSource");return new ReadableStream({async pull(m){if(r>=e){m.close(),await c();return}let{done:u,value:a}=await t.read();if(u||!a){n=!0,m.close();return}let f=e-r;if(a.length>f){m.enqueue(a.subarray(0,f)),r+=f,m.close(),await c();return}m.enqueue(a),r+=a.length},async cancel(m){await c(m)}})}s(Xi,"createByteLimitedReadableStream");async function q(i,e){return new se(e).fromBuffer(i)}s(q,"fileTypeFromBuffer");function St(i){switch(i=i.toLowerCase(),i){case"application/epub+zip":return{ext:"epub",mime:i};case"application/vnd.oasis.opendocument.text":return{ext:"odt",mime:i};case"application/vnd.oasis.opendocument.text-template":return{ext:"ott",mime:i};case"application/vnd.oasis.opendocument.spreadsheet":return{ext:"ods",mime:i};case"application/vnd.oasis.opendocument.spreadsheet-template":return{ext:"ots",mime:i};case"application/vnd.oasis.opendocument.presentation":return{ext:"odp",mime:i};case"application/vnd.oasis.opendocument.presentation-template":return{ext:"otp",mime:i};case"application/vnd.oasis.opendocument.graphics":return{ext:"odg",mime:i};case"application/vnd.oasis.opendocument.graphics-template":return{ext:"otg",mime:i};case"application/vnd.openxmlformats-officedocument.presentationml.slideshow":return{ext:"ppsx",mime:i};case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return{ext:"xlsx",mime:i};case"application/vnd.ms-excel.sheet.macroenabled":return{ext:"xlsm",mime:"application/vnd.ms-excel.sheet.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.spreadsheetml.template":return{ext:"xltx",mime:i};case"application/vnd.ms-excel.template.macroenabled":return{ext:"xltm",mime:"application/vnd.ms-excel.template.macroenabled.12"};case"application/vnd.ms-powerpoint.slideshow.macroenabled":return{ext:"ppsm",mime:"application/vnd.ms-powerpoint.slideshow.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return{ext:"docx",mime:i};case"application/vnd.ms-word.document.macroenabled":return{ext:"docm",mime:"application/vnd.ms-word.document.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.wordprocessingml.template":return{ext:"dotx",mime:i};case"application/vnd.ms-word.template.macroenabledtemplate":return{ext:"dotm",mime:"application/vnd.ms-word.template.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.presentationml.template":return{ext:"potx",mime:i};case"application/vnd.ms-powerpoint.template.macroenabled":return{ext:"potm",mime:"application/vnd.ms-powerpoint.template.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return{ext:"pptx",mime:i};case"application/vnd.ms-powerpoint.presentation.macroenabled":return{ext:"pptm",mime:"application/vnd.ms-powerpoint.presentation.macroenabled.12"};case"application/vnd.ms-visio.drawing":return{ext:"vsdx",mime:"application/vnd.visio"};case"application/vnd.ms-package.3dmanufacturing-3dmodel+xml":return{ext:"3mf",mime:"model/3mf"};default:}}s(St,"getFileTypeFromMimeType");function E(i,e,t){t={offset:0,...t};for(let[r,n]of e.entries())if(t.mask){if(n!==(t.mask[r]&i[r+t.offset]))return!1}else if(n!==i[r+t.offset])return!1;return!0}s(E,"_check");function vt(i){return Number.isFinite(i)?Math.max(1,Math.trunc(i)):N}s(vt,"normalizeSampleSize");function Gi(i,e,t){return t===void 0?i.read(e):(t.throwIfAborted(),new Promise((r,n)=>{let o=s(()=>{t.removeEventListener("abort",c)},"cleanup"),c=s(()=>{let m=t.reason;o(),(async()=>{try{await i.cancel(m)}catch{}})(),n(m)},"onAbort");t.addEventListener("abort",c,{once:!0}),(async()=>{try{let m=await i.read(e);o(),r(m)}catch(m){o(),n(m)}})()}))}s(Gi,"readByobReaderWithSignal");function $i(i){return Number.isFinite(i)?Math.max(0,Math.min(yi,Math.trunc(i))):0}s($i,"normalizeMpegOffsetTolerance");function qi(i){return Number.isFinite(i)?Math.max(0,i):Number.MAX_SAFE_INTEGER}s(qi,"getKnownFileSizeOrMaximum");function T(i){let e=i.fileInfo.size;return!Number.isFinite(e)||e===Number.MAX_SAFE_INTEGER}s(T,"hasUnknownFileSize");function $(i,e,t){return T(i)&&i.position-e>t}s($,"hasExceededUnknownSizeScanBudget");function Wi(i){let e=i.fileInfo.size,t=Number.isFinite(e)?Math.max(0,e-i.position):Number.MAX_SAFE_INTEGER;return Math.min(t,bi)}s(Wi,"getMaximumZipBufferedReadLength");function ji(i){if(i instanceof S||i instanceof _)return!0;if(!(i instanceof Error))return!1;if(Ci.has(i.message)||Di.has(i.code))return!0;for(let e of _i)if(i.message.startsWith(e))return!0;return!1}s(ji,"isRecoverableZipError");function It(i,e=A){let t=[i.compressedSize,i.uncompressedSize];for(let r of t)if(!Number.isFinite(r)||r<0||r>e)return!1;return!0}s(It,"canReadZipEntryForDetection");function Zi(){return{hasContentTypesEntry:!1,hasParsedContentTypesEntry:!1,isParsingContentTypes:!1,hasUnparseableContentTypes:!1,hasWordDirectory:!1,hasPresentationDirectory:!1,hasSpreadsheetDirectory:!1,hasThreeDimensionalModelEntry:!1}}s(Zi,"createOpenXmlZipDetectionState");function Hi(i,e){e.startsWith("word/")&&(i.hasWordDirectory=!0),e.startsWith("ppt/")&&(i.hasPresentationDirectory=!0),e.startsWith("xl/")&&(i.hasSpreadsheetDirectory=!0),e.startsWith("3D/")&&e.endsWith(".model")&&(i.hasThreeDimensionalModelEntry=!0)}s(Hi,"updateOpenXmlZipDetectionStateFromFilename");function Et(i){if(!(!i.hasContentTypesEntry||i.hasUnparseableContentTypes||i.isParsingContentTypes||i.hasParsedContentTypesEntry)){if(i.hasWordDirectory)return{ext:"docx",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};if(i.hasPresentationDirectory)return{ext:"pptx",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"};if(i.hasSpreadsheetDirectory)return{ext:"xlsx",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"};if(i.hasThreeDimensionalModelEntry)return{ext:"3mf",mime:"model/3mf"}}}s(Et,"getOpenXmlFileTypeFromZipEntries");function Vi(i){let e=i.indexOf('.main+xml"');if(e===-1){let n="application/vnd.ms-package.3dmanufacturing-3dmodel+xml";return i.includes(`ContentType="${n}"`)?n:void 0}let t=i.slice(0,e),r=t.lastIndexOf('"');return t.slice(r+1)}s(Vi,"getOpenXmlMimeTypeFromContentTypesXml");var se=class i{static{s(this,"FileTypeParser")}constructor(e){let t=$i(e?.mpegOffsetTolerance);this.options={...e,mpegOffsetTolerance:t},this.detectors=[...this.options.customDetectors??[],{id:"core",detect:this.detectConfident},{id:"core.imprecise",detect:this.detectImprecise}],this.tokenizerOptions={abortSignal:this.options.signal},this.gzipProbeDepth=0}getTokenizerOptions(){return{...this.tokenizerOptions}}createTokenizerFromWebStream(e){return Mi(Q(e,this.getTokenizerOptions()))}async parseTokenizer(e,t=0){this.detectionReentryCount=t;let r=e.position;for(let n of this.detectors){let o;try{o=await n.detect(e)}catch(c){if(c instanceof S||c instanceof _)return;throw c}if(o)return o;if(r!==e.position)return}}async fromTokenizer(e){try{return await this.parseTokenizer(e)}finally{await e.close()}}async fromBuffer(e){if(!(e instanceof Uint8Array||e instanceof ArrayBuffer))throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof e}\``);let t=e instanceof Uint8Array?e:new Uint8Array(e);if(t?.length>1)return this.fromTokenizer(J(t,this.getTokenizerOptions()))}async fromBlob(e){this.options.signal?.throwIfAborted();let t=ve(e,this.getTokenizerOptions());return this.fromTokenizer(t)}async fromStream(e){this.options.signal?.throwIfAborted();let t=this.createTokenizerFromWebStream(e);return this.fromTokenizer(t)}async toDetectionStream(e,t){let r=vt(t?.sampleSize??N),n,o,c=e.getReader({mode:"byob"});try{let{value:a,done:f}=await Gi(c,new Uint8Array(r),this.options.signal);if(o=a,!f&&a)try{n=await this.fromBuffer(a.subarray(0,r))}catch(l){if(!(l instanceof S))throw l;n=void 0}o=a}finally{c.releaseLock()}let m=new TransformStream({async start(a){a.enqueue(o)},transform(a,f){f.enqueue(a)}}),u=e.pipeThrough(m);return u.fileType=n,u}async detectGzip(e){if(this.gzipProbeDepth>=wi)return{ext:"gz",mime:"application/gzip"};let t=new G(e),r=Xi(t.inflate(),ki),n=T(e),o,c,m,u;if(n){let a=new AbortController;o=setTimeout(()=>{a.abort(new DOMException(`Operation timed out after ${xt} ms`,"TimeoutError"))},xt),c=this.options.signal===void 0?a.signal:AbortSignal.any([this.options.signal,a.signal]),m=new i({...this.options,signal:c}),m.gzipProbeDepth=this.gzipProbeDepth+1}else this.gzipProbeDepth++;try{u=await(m??this).fromStream(r)}catch(a){if(a?.name==="AbortError"&&c?.reason?.name!=="TimeoutError")throw a}finally{clearTimeout(o),n||this.gzipProbeDepth--}return u?.ext==="tar"?{ext:"tar.gz",mime:"application/gzip"}:{ext:"gz",mime:"application/gzip"}}check(e,t){return E(this.buffer,e,t)}checkString(e,t){return this.check(mt(e,t?.encoding),t)}detectConfident=s(async e=>{if(this.buffer=new Uint8Array(N),e.fileInfo.size===void 0&&(e.fileInfo.size=Number.MAX_SAFE_INTEGER),this.tokenizer=e,T(e)&&(await e.peekBuffer(this.buffer,{length:3,mayBeLess:!0}),this.check([31,139,8])))return this.detectGzip(e);if(await e.peekBuffer(this.buffer,{length:32,mayBeLess:!0}),this.check([66,77]))return{ext:"bmp",mime:"image/bmp"};if(this.check([11,119]))return{ext:"ac3",mime:"audio/vnd.dolby.dd-raw"};if(this.check([120,1]))return{ext:"dmg",mime:"application/x-apple-diskimage"};if(this.check([77,90]))return{ext:"exe",mime:"application/x-msdownload"};if(this.check([37,33]))return await e.peekBuffer(this.buffer,{length:24,mayBeLess:!0}),this.checkString("PS-Adobe-",{offset:2})&&this.checkString(" EPSF-",{offset:14})?{ext:"eps",mime:"application/eps"}:{ext:"ps",mime:"application/postscript"};if(this.check([31,160])||this.check([31,157]))return{ext:"Z",mime:"application/x-compress"};if(this.check([199,113]))return{ext:"cpio",mime:"application/x-cpio"};if(this.check([96,234]))return{ext:"arj",mime:"application/x-arj"};if(this.check([239,187,191]))return this.detectionReentryCount>=yt?void 0:(this.detectionReentryCount++,await this.tokenizer.ignore(3),this.detectConfident(e));if(this.check([71,73,70]))return{ext:"gif",mime:"image/gif"};if(this.check([73,73,188]))return{ext:"jxr",mime:"image/vnd.ms-photo"};if(this.check([31,139,8]))return this.detectGzip(e);if(this.check([66,90,104]))return{ext:"bz2",mime:"application/x-bzip2"};if(this.checkString("ID3")){await D(e,6,{maximumLength:6,reason:"ID3 header prefix"});let t=await e.readToken(ut),r=T(e);if(!Number.isFinite(t)||t<0||r&&(t>Be||e.position+t>Be))return;if(e.position+t>e.fileInfo.size)return r?void 0:{ext:"mp3",mime:"audio/mpeg"};try{await D(e,t,{maximumLength:r?Be:e.fileInfo.size,reason:"ID3 payload"})}catch(n){if(n instanceof S)return;throw n}return this.detectionReentryCount>=yt?void 0:(this.detectionReentryCount++,this.parseTokenizer(e,this.detectionReentryCount))}if(this.checkString("MP+"))return{ext:"mpc",mime:"audio/x-musepack"};if((this.buffer[0]===67||this.buffer[0]===70)&&this.check([87,83],{offset:1}))return{ext:"swf",mime:"application/x-shockwave-flash"};if(this.check([255,216,255]))return this.check([247],{offset:3})?{ext:"jls",mime:"image/jls"}:{ext:"jpg",mime:"image/jpeg"};if(this.check([79,98,106,1]))return{ext:"avro",mime:"application/avro"};if(this.checkString("FLIF"))return{ext:"flif",mime:"image/flif"};if(this.checkString("8BPS"))return{ext:"psd",mime:"image/vnd.adobe.photoshop"};if(this.checkString("MPCK"))return{ext:"mpc",mime:"audio/x-musepack"};if(this.checkString("FORM"))return{ext:"aif",mime:"audio/aiff"};if(this.checkString("icns",{offset:0}))return{ext:"icns",mime:"image/icns"};if(this.check([80,75,3,4])){let t,r=Zi();try{await new O(e).unzip(n=>{Hi(r,n.filename);let o=n.filename==="[Content_Types].xml",c=Et(r);if(!o&&c)return t=c,{stop:!0};switch(n.filename){case"META-INF/mozilla.rsa":return t={ext:"xpi",mime:"application/x-xpinstall"},{stop:!0};case"META-INF/MANIFEST.MF":return t={ext:"jar",mime:"application/java-archive"},{stop:!0};case"mimetype":return It(n,ht)?{async handler(m){let u=new TextDecoder("utf-8").decode(m).trim();t=St(u)},stop:!0}:{};case"[Content_Types].xml":return r.hasContentTypesEntry=!0,It(n,ht)?(r.isParsingContentTypes=!0,{async handler(m){let u=new TextDecoder("utf-8").decode(m),a=Vi(u);a&&(t=St(a)),r.hasParsedContentTypesEntry=!0,r.isParsingContentTypes=!1},stop:!0}):(r.hasUnparseableContentTypes=!0,{});default:return/classes\d*\.dex/.test(n.filename)?(t={ext:"apk",mime:"application/vnd.android.package-archive"},{stop:!0}):{}}})}catch(n){if(!ji(n))throw n;r.isParsingContentTypes&&(r.isParsingContentTypes=!1,r.hasUnparseableContentTypes=!0)}return t??Et(r)??{ext:"zip",mime:"application/zip"}}if(this.checkString("OggS")){await e.ignore(28);let t=new Uint8Array(8);return await e.readBuffer(t),E(t,[79,112,117,115,72,101,97,100])?{ext:"opus",mime:"audio/ogg; codecs=opus"}:E(t,[128,116,104,101,111,114,97])?{ext:"ogv",mime:"video/ogg"}:E(t,[1,118,105,100,101,111,0])?{ext:"ogm",mime:"video/ogg"}:E(t,[127,70,76,65,67])?{ext:"oga",mime:"audio/ogg"}:E(t,[83,112,101,101,120,32,32])?{ext:"spx",mime:"audio/ogg"}:E(t,[1,118,111,114,98,105,115])?{ext:"ogg",mime:"audio/ogg"}:{ext:"ogx",mime:"application/ogg"}}if(this.check([80,75])&&(this.buffer[2]===3||this.buffer[2]===5||this.buffer[2]===7)&&(this.buffer[3]===4||this.buffer[3]===6||this.buffer[3]===8))return{ext:"zip",mime:"application/zip"};if(this.checkString("MThd"))return{ext:"mid",mime:"audio/midi"};if(this.checkString("wOFF")&&(this.check([0,1,0,0],{offset:4})||this.checkString("OTTO",{offset:4})))return{ext:"woff",mime:"font/woff"};if(this.checkString("wOF2")&&(this.check([0,1,0,0],{offset:4})||this.checkString("OTTO",{offset:4})))return{ext:"woff2",mime:"font/woff2"};if(this.check([212,195,178,161])||this.check([161,178,195,212]))return{ext:"pcap",mime:"application/vnd.tcpdump.pcap"};if(this.checkString("DSD "))return{ext:"dsf",mime:"audio/x-dsf"};if(this.checkString("LZIP"))return{ext:"lz",mime:"application/x-lzip"};if(this.checkString("fLaC"))return{ext:"flac",mime:"audio/flac"};if(this.check([66,80,71,251]))return{ext:"bpg",mime:"image/bpg"};if(this.checkString("wvpk"))return{ext:"wv",mime:"audio/wavpack"};if(this.checkString("%PDF"))return{ext:"pdf",mime:"application/pdf"};if(this.check([0,97,115,109]))return{ext:"wasm",mime:"application/wasm"};if(this.check([73,73])){let t=await this.readTiffHeader(!1);if(t)return t}if(this.check([77,77])){let t=await this.readTiffHeader(!0);if(t)return t}if(this.checkString("MAC "))return{ext:"ape",mime:"audio/ape"};if(this.check([26,69,223,163])){async function t(){let u=await e.peekNumber(Ve),a=128,f=0;for(;(u&a)===0&&a!==0;)++f,a>>=1;let l=new Uint8Array(f+1);return await Le(e,l,void 0,{maximumLength:l.length,reason:"EBML field"}),l}s(t,"readField");async function r(){let u=await t(),a=await t();a[0]^=128>>a.length-1;let f=Math.min(6,a.length),l=new DataView(u.buffer),v=new DataView(a.buffer,a.length-f,f);return{id:Ce(l),len:Ce(v)}}s(r,"readElement");async function n(u){let a=0;for(;u>0;){if(a++,a>Si||$(e,c,b))return;let f=e.position,l=await r();if(l.id===17026){if(l.len>gt)return;let v=Oe(l.len,gt,"EBML DocType");return(await e.readToken(new y(v))).replaceAll(/\00.*$/g,"")}if(T(e)&&(!Number.isFinite(l.len)||l.len<0||l.len>Tt)||(await D(e,l.len,{maximumLength:T(e)?Tt:e.fileInfo.size,reason:"EBML payload"}),--u,e.position<=f))return}}s(n,"readChildren");let o=await r(),c=e.position;switch(await n(o.len)){case"webm":return{ext:"webm",mime:"video/webm"};case"matroska":return{ext:"mkv",mime:"video/matroska"};default:return}}if(this.checkString("SQLi"))return{ext:"sqlite",mime:"application/x-sqlite3"};if(this.check([78,69,83,26]))return{ext:"nes",mime:"application/x-nintendo-nes-rom"};if(this.checkString("Cr24"))return{ext:"crx",mime:"application/x-google-chrome-extension"};if(this.checkString("MSCF")||this.checkString("ISc("))return{ext:"cab",mime:"application/vnd.ms-cab-compressed"};if(this.check([237,171,238,219]))return{ext:"rpm",mime:"application/x-rpm"};if(this.check([197,208,211,198]))return{ext:"eps",mime:"application/eps"};if(this.check([40,181,47,253]))return{ext:"zst",mime:"application/zstd"};if(this.check([127,69,76,70]))return{ext:"elf",mime:"application/x-elf"};if(this.check([33,66,68,78]))return{ext:"pst",mime:"application/vnd.ms-outlook"};if(this.checkString("PAR1")||this.checkString("PARE"))return{ext:"parquet",mime:"application/vnd.apache.parquet"};if(this.checkString("ttcf"))return{ext:"ttc",mime:"font/collection"};if(this.check([254,237,250,206])||this.check([254,237,250,207])||this.check([206,250,237,254])||this.check([207,250,237,254]))return{ext:"macho",mime:"application/x-mach-binary"};if(this.check([4,34,77,24]))return{ext:"lz4",mime:"application/x-lz4"};if(this.checkString("regf"))return{ext:"dat",mime:"application/x-ft-windows-registry-hive"};if(this.checkString("$FL2")||this.checkString("$FL3"))return{ext:"sav",mime:"application/x-spss-sav"};if(this.check([79,84,84,79,0]))return{ext:"otf",mime:"font/otf"};if(this.checkString("#!AMR"))return{ext:"amr",mime:"audio/amr"};if(this.checkString("{\\rtf"))return{ext:"rtf",mime:"application/rtf"};if(this.check([70,76,86,1]))return{ext:"flv",mime:"video/x-flv"};if(this.checkString("IMPM"))return{ext:"it",mime:"audio/x-it"};if(this.checkString("-lh0-",{offset:2})||this.checkString("-lh1-",{offset:2})||this.checkString("-lh2-",{offset:2})||this.checkString("-lh3-",{offset:2})||this.checkString("-lh4-",{offset:2})||this.checkString("-lh5-",{offset:2})||this.checkString("-lh6-",{offset:2})||this.checkString("-lh7-",{offset:2})||this.checkString("-lzs-",{offset:2})||this.checkString("-lz4-",{offset:2})||this.checkString("-lz5-",{offset:2})||this.checkString("-lhd-",{offset:2}))return{ext:"lzh",mime:"application/x-lzh-compressed"};if(this.check([0,0,1,186])){if(this.check([33],{offset:4,mask:[241]}))return{ext:"mpg",mime:"video/MP1S"};if(this.check([68],{offset:4,mask:[196]}))return{ext:"mpg",mime:"video/MP2P"}}if(this.checkString("ITSF"))return{ext:"chm",mime:"application/vnd.ms-htmlhelp"};if(this.check([202,254,186,190])){let t=Re.get(this.buffer,4),r=B.get(this.buffer,6);if(t>0&&t<=30)return{ext:"macho",mime:"application/x-mach-binary"};if(r>30)return{ext:"class",mime:"application/java-vm"}}if(this.checkString(".RMF"))return{ext:"rm",mime:"application/vnd.rn-realmedia"};if(this.checkString("DRACO"))return{ext:"drc",mime:"application/vnd.google.draco"};if(this.check([253,55,122,88,90,0]))return{ext:"xz",mime:"application/x-xz"};if(this.checkString("=1e3&&t<=1050)return{ext:"dwg",mime:"image/vnd.dwg"}}if(this.checkString("070707"))return{ext:"cpio",mime:"application/x-cpio"};if(this.checkString("BLENDER"))return{ext:"blend",mime:"application/x-blender"};if(this.checkString("!"))return await e.ignore(8),await e.readToken(new y(13,"ascii"))==="debian-binary"?{ext:"deb",mime:"application/x-deb"}:{ext:"ar",mime:"application/x-unix-archive"};if(this.checkString("WEBVTT")&&[` +`,"\r"," "," ","\0"].some(t=>this.checkString(t,{offset:6})))return{ext:"vtt",mime:"text/vtt"};if(this.check([137,80,78,71,13,10,26,10])){let t={ext:"png",mime:"image/png"},r={ext:"apng",mime:"image/apng"};await e.ignore(8);async function n(){return{length:await e.readToken(Ye),type:await e.readToken(new y(4,"latin1"))}}s(n,"readChunkHeader");let o=T(e),c=e.position,m=0,u=!1;do{if(m++,m>Ii||$(e,c,Ei))break;let a=e.position,f=await n();if(f.length<0)return;if(f.type==="IHDR"){if(f.length!==13)return;u=!0}switch(f.type){case"IDAT":return t;case"acTL":return r;default:if(!u&&f.type!=="CgBI")return;if(o&&f.length>bt)return u&&zi(f.type)?t:void 0;try{await D(e,f.length+4,{maximumLength:o?bt+4:e.fileInfo.size,reason:"PNG chunk payload"})}catch(l){if(!o&&(l instanceof _||l instanceof S))return t;throw l}}if(e.position<=a)break}while(e.position+8Ai||$(e,o,b)));){let m=e.position,u=await r(),a=u.size-24;if(!Number.isFinite(a)||a<0){t=!0;break}if(E(u.id,[145,7,220,183,183,169,207,17,142,230,0,192,12,32,83,101])){let f=new Uint8Array(16);if(a-=await Le(e,f,void 0,{maximumLength:f.length,reason:"ASF stream type GUID"}),E(f,[64,158,105,248,77,91,207,17,168,253,0,128,95,92,68,43]))return{ext:"asf",mime:"audio/x-ms-asf"};if(E(f,[192,239,25,188,77,91,207,17,168,253,0,128,95,92,68,43]))return{ext:"asf",mime:"video/x-ms-asf"};break}if(n&&a>kt){t=!0;break}if(await D(e,a,{maximumLength:n?kt:e.fileInfo.size,reason:"ASF header payload"}),e.position<=m){t=!0;break}}}catch(r){if(r instanceof S||r instanceof _)T(e)&&(t=!0);else throw r}return t?void 0:{ext:"asf",mime:"application/vnd.ms-asf"}}if(this.check([171,75,84,88,32,49,49,187,13,10,26,10]))return{ext:"ktx",mime:"image/ktx"};if((this.check([126,16,4])||this.check([126,24,4]))&&this.check([48,77,73,69],{offset:4}))return{ext:"mie",mime:"application/x-mie"};if(this.check([39,10,0,0,0,0,0,0,0,0,0,0],{offset:2}))return{ext:"shp",mime:"application/x-esri-shape"};if(this.check([255,79,255,81]))return{ext:"j2c",mime:"image/j2c"};if(this.check([0,0,0,12,106,80,32,32,13,10,135,10]))switch(await e.ignore(20),await e.readToken(new y(4,"ascii"))){case"jp2 ":return{ext:"jp2",mime:"image/jp2"};case"jpx ":return{ext:"jpx",mime:"image/jpx"};case"jpm ":return{ext:"jpm",mime:"image/jpm"};case"mjp2":return{ext:"mj2",mime:"image/mj2"};default:return}if(this.check([255,10])||this.check([0,0,0,12,74,88,76,32,13,10,135,10]))return{ext:"jxl",mime:"image/jxl"};if(this.check([254,255]))return this.checkString("=16){let t=new DataView(this.buffer.buffer).getUint32(12,!0);if(t>12&&this.buffer.length>=t+16)try{let r=new TextDecoder().decode(this.buffer.subarray(16,t+16));if(JSON.parse(r).files)return{ext:"asar",mime:"application/x-asar"}}catch{}}if(this.check([6,14,43,52,2,5,1,1,13,1,2,1,1,2]))return{ext:"mxf",mime:"application/mxf"};if(this.checkString("SCRM",{offset:44}))return{ext:"s3m",mime:"audio/x-s3m"};if(this.check([71])&&this.check([71],{offset:188}))return{ext:"mts",mime:"video/mp2t"};if(this.check([71],{offset:4})&&this.check([71],{offset:196}))return{ext:"mts",mime:"video/mp2t"};if(this.check([66,79,79,75,77,79,66,73],{offset:60}))return{ext:"mobi",mime:"application/x-mobipocket-ebook"};if(this.check([68,73,67,77],{offset:128}))return{ext:"dcm",mime:"application/dicom"};if(this.check([76,0,0,0,1,20,2,0,0,0,0,0,192,0,0,0,0,0,0,70]))return{ext:"lnk",mime:"application/x.ms.shortcut"};if(this.check([98,111,111,107,0,0,0,0,109,97,114,107,0,0,0,0]))return{ext:"alias",mime:"application/x.apple.alias"};if(this.checkString("Kaydara FBX Binary \0"))return{ext:"fbx",mime:"application/x.autodesk.fbx"};if(this.check([76,80],{offset:34})&&(this.check([0,0,1],{offset:8})||this.check([1,0,2],{offset:8})||this.check([2,0,2],{offset:8})))return{ext:"eot",mime:"application/vnd.ms-fontobject"};if(this.check([6,6,237,245,216,29,70,229,189,49,239,231,254,116,183,29]))return{ext:"indd",mime:"application/x-indesign"};if(this.check([255,255,0,0,7,0,0,0,4,0,0,0,1,0,1,0])||this.check([0,0,255,255,0,0,0,7,0,0,0,4,0,1,0,1]))return{ext:"jmp",mime:"application/x-jmp-data"};if(await e.peekBuffer(this.buffer,{length:Math.min(512,e.fileInfo.size),mayBeLess:!0}),this.checkString("ustar",{offset:257})&&(this.checkString("\0",{offset:262})||this.checkString(" ",{offset:262}))||this.check([0,0,0,0,0,0],{offset:257})&&pt(this.buffer))return{ext:"tar",mime:"application/x-tar"};if(this.check([255,254])){let t="utf-16le";return this.checkString("{this.buffer=new Uint8Array(N);let t=qi(e.fileInfo.size);if(await e.peekBuffer(this.buffer,{length:Math.min(8,t),mayBeLess:!0}),this.check([0,0,1,186])||this.check([0,0,1,179]))return{ext:"mpg",mime:"video/mpeg"};if(this.check([0,1,0,0,0]))return{ext:"ttf",mime:"font/ttf"};if(this.check([0,0,1,0]))return{ext:"ico",mime:"image/x-icon"};if(this.check([0,0,2,0]))return{ext:"cur",mime:"image/x-icon"};if(await e.peekBuffer(this.buffer,{length:Math.min(2+this.options.mpegOffsetTolerance,t),mayBeLess:!0}),this.buffer.length>=2+this.options.mpegOffsetTolerance)for(let r=0;r<=this.options.mpegOffsetTolerance;++r){let n=this.scanMpeg(r);if(n)return n}},"detectImprecise");async readTiffTag(e){let t=await this.tokenizer.readToken(e?B:h);switch(await this.tokenizer.ignore(10),t){case 50341:return{ext:"arw",mime:"image/x-sony-arw"};case 50706:return{ext:"dng",mime:"image/x-adobe-dng"};default:}}async readTiffIFD(e){let t=await this.tokenizer.readToken(e?B:h);if(!(t>vi)&&!(T(this.tokenizer)&&2+t*12>wt))for(let r=0;r=6){if(this.checkString("CR",{offset:8}))return{ext:"cr2",mime:"image/x-canon-cr2"};if(n>=8){let m=(e?B:h).get(this.buffer,8),u=(e?B:h).get(this.buffer,10);if(m===28&&u===254||m===31&&u===11)return{ext:"nef",mime:"image/x-nikon-nef"}}}if(T(this.tokenizer)&&n>Ri)return t;let o=T(this.tokenizer)?wt:this.tokenizer.fileInfo.size;try{await D(this.tokenizer,n,{maximumLength:o,reason:"TIFF IFD offset"})}catch(m){if(m instanceof S)return;throw m}let c;try{c=await this.readTiffIFD(e)}catch(m){if(m instanceof S)return;throw m}return c??t}if(r===43)return t}scanMpeg(e){if(this.check([255,224],{offset:e,mask:[255,224]})){if(this.check([16],{offset:e+1,mask:[22]}))return this.check([8],{offset:e+1,mask:[8]})?{ext:"aac",mime:"audio/aac"}:{ext:"aac",mime:"audio/aac"};if(this.check([2],{offset:e+1,mask:[6]}))return{ext:"mp3",mime:"audio/mpeg"};if(this.check([4],{offset:e+1,mask:[6]}))return{ext:"mp2",mime:"audio/mpeg"};if(this.check([6],{offset:e+1,mask:[6]}))return{ext:"mp1",mime:"audio/mpeg"}}}},Yi=new Set(ft),Ki=new Set(lt);var Jt=w(Lt());var mr=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}\/[A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}$/;function Ot(i){if(!mr.test(i))throw new TypeError(`Invalid media type: ${i}`);let e=i.indexOf("/"),t=i.slice(0,e).toLowerCase(),r=i.slice(e+1).toLowerCase(),n,o=r.lastIndexOf("+");return o!==-1&&(n=r.slice(o+1),r=r.slice(0,o)),{type:t,subtype:r,suffix:n}}s(Ot,"parse");var ei=w(C());var Nt=w(C());var p={multiple:!1},me={year:p,track:p,disk:p,title:p,artist:p,artists:{multiple:!0,unique:!0},albumartist:p,albumartists:{multiple:!0,unique:!0},album:p,date:p,originaldate:p,originalyear:p,releasedate:p,comment:{multiple:!0,unique:!1},genre:{multiple:!0,unique:!0},picture:{multiple:!0,unique:!0},composer:{multiple:!0,unique:!0},lyrics:{multiple:!0,unique:!1},albumsort:{multiple:!1,unique:!0},titlesort:{multiple:!1,unique:!0},work:{multiple:!1,unique:!0},artistsort:{multiple:!1,unique:!0},albumartistsort:{multiple:!1,unique:!0},composersort:{multiple:!1,unique:!0},lyricist:{multiple:!0,unique:!0},writer:{multiple:!0,unique:!0},conductor:{multiple:!0,unique:!0},remixer:{multiple:!0,unique:!0},arranger:{multiple:!0,unique:!0},engineer:{multiple:!0,unique:!0},producer:{multiple:!0,unique:!0},technician:{multiple:!0,unique:!0},djmixer:{multiple:!0,unique:!0},mixer:{multiple:!0,unique:!0},label:{multiple:!0,unique:!0},grouping:p,subtitle:{multiple:!0},discsubtitle:p,totaltracks:p,totaldiscs:p,compilation:p,rating:{multiple:!0},bpm:p,mood:p,media:p,catalognumber:{multiple:!0,unique:!0},tvShow:p,tvShowSort:p,tvSeason:p,tvEpisode:p,tvEpisodeId:p,tvNetwork:p,podcast:p,podcasturl:p,releasestatus:p,releasetype:{multiple:!0},releasecountry:p,script:p,language:p,copyright:p,license:p,encodedby:p,encodersettings:p,gapless:p,barcode:p,isrc:{multiple:!0},asin:p,musicbrainz_recordingid:p,musicbrainz_trackid:p,musicbrainz_albumid:p,musicbrainz_artistid:{multiple:!0},musicbrainz_albumartistid:{multiple:!0},musicbrainz_releasegroupid:p,musicbrainz_workid:p,musicbrainz_trmid:p,musicbrainz_discid:p,acoustid_id:p,acoustid_fingerprint:p,musicip_puid:p,musicip_fingerprint:p,website:p,"performer:instrument":{multiple:!0,unique:!0},averageLevel:p,peakLevel:p,notes:{multiple:!0,unique:!1},key:p,originalalbum:p,originalartist:p,discogs_artist_id:{multiple:!0,unique:!0},discogs_release_id:p,discogs_label_id:p,discogs_master_release_id:p,discogs_votes:p,discogs_rating:p,replaygain_track_peak:p,replaygain_track_gain:p,replaygain_album_peak:p,replaygain_album_gain:p,replaygain_track_minmax:p,replaygain_album_minmax:p,replaygain_undo:p,description:{multiple:!0},longDescription:p,category:{multiple:!0},hdVideo:p,keywords:{multiple:!0},movement:p,movementIndex:p,movementTotal:p,podcastId:p,showMovement:p,stik:p,playCounter:p};function zt(i){return me[i]&&!me[i].multiple}s(zt,"isSingleton");function Ft(i){return!me[i].multiple||me[i].unique||!1}s(Ft,"isUnique");var x=class{static{s(this,"CommonTagMapper")}static toIntOrNull(e){let t=Number.parseInt(e,10);return Number.isNaN(t)?null:t}static normalizeTrack(e){let t=e.toString().split("/");return{no:Number.parseInt(t[0],10)||null,of:Number.parseInt(t[1],10)||null}}constructor(e,t){this.tagTypes=e,this.tagMap=t}mapGenericTag(e,t){e={id:e.id,value:e.value},this.postMap(e,t);let r=this.getCommonName(e.id);return r?{id:r,value:e.value}:null}getCommonName(e){return this.tagMap[e]}postMap(e,t){}};x.maxRatingScore=1;var pr={title:"title",artist:"artist",album:"album",year:"year",comment:"comment",track:"track",genre:"genre"},pe=class extends x{static{s(this,"ID3v1TagMapper")}constructor(){super(["ID3v1"],pr)}};var k=class extends x{static{s(this,"CaseInsensitiveTagMap")}constructor(e,t){let r={};for(let n of Object.keys(t))r[n.toUpperCase()]=t[n];super(e,r)}getCommonName(e){return this.tagMap[e.toUpperCase()]}};var ur={TIT2:"title",TPE1:"artist","TXXX:Artists":"artists",TPE2:"albumartist",TALB:"album",TDRV:"date",TORY:"originalyear",TPOS:"disk",TCON:"genre",APIC:"picture",TCOM:"composer",USLT:"lyrics",TSOA:"albumsort",TSOT:"titlesort",TOAL:"originalalbum",TSOP:"artistsort",TSO2:"albumartistsort",TSOC:"composersort",TEXT:"lyricist","TXXX:Writer":"writer",TPE3:"conductor",TPE4:"remixer","IPLS:arranger":"arranger","IPLS:engineer":"engineer","IPLS:producer":"producer","IPLS:DJ-mix":"djmixer","IPLS:mix":"mixer",TPUB:"label",TIT1:"grouping",TIT3:"subtitle",TRCK:"track",TCMP:"compilation",POPM:"rating",TBPM:"bpm",TMED:"media","TXXX:CATALOGNUMBER":"catalognumber","TXXX:MusicBrainz Album Status":"releasestatus","TXXX:MusicBrainz Album Type":"releasetype","TXXX:MusicBrainz Album Release Country":"releasecountry","TXXX:RELEASECOUNTRY":"releasecountry","TXXX:SCRIPT":"script",TLAN:"language",TCOP:"copyright",WCOP:"license",TENC:"encodedby",TSSE:"encodersettings","TXXX:BARCODE":"barcode","TXXX:ISRC":"isrc",TSRC:"isrc","TXXX:ASIN":"asin","TXXX:originalyear":"originalyear","UFID:http://musicbrainz.org":"musicbrainz_recordingid","TXXX:MusicBrainz Release Track Id":"musicbrainz_trackid","TXXX:MusicBrainz Album Id":"musicbrainz_albumid","TXXX:MusicBrainz Artist Id":"musicbrainz_artistid","TXXX:MusicBrainz Album Artist Id":"musicbrainz_albumartistid","TXXX:MusicBrainz Release Group Id":"musicbrainz_releasegroupid","TXXX:MusicBrainz Work Id":"musicbrainz_workid","TXXX:MusicBrainz TRM Id":"musicbrainz_trmid","TXXX:MusicBrainz Disc Id":"musicbrainz_discid","TXXX:ACOUSTID_ID":"acoustid_id","TXXX:Acoustid Id":"acoustid_id","TXXX:Acoustid Fingerprint":"acoustid_fingerprint","TXXX:MusicIP PUID":"musicip_puid","TXXX:MusicMagic Fingerprint":"musicip_fingerprint",WOAR:"website",TDRC:"date",TYER:"year",TDOR:"originaldate","TIPL:arranger":"arranger","TIPL:engineer":"engineer","TIPL:producer":"producer","TIPL:DJ-mix":"djmixer","TIPL:mix":"mixer",TMOO:"mood",SYLT:"lyrics",TSST:"discsubtitle",TKEY:"key",COMM:"comment",TOPE:"originalartist","PRIV:AverageLevel":"averageLevel","PRIV:PeakLevel":"peakLevel","TXXX:DISCOGS_ARTIST_ID":"discogs_artist_id","TXXX:DISCOGS_ARTISTS":"artists","TXXX:DISCOGS_ARTIST_NAME":"artists","TXXX:DISCOGS_ALBUM_ARTISTS":"albumartist","TXXX:DISCOGS_CATALOG":"catalognumber","TXXX:DISCOGS_COUNTRY":"releasecountry","TXXX:DISCOGS_DATE":"originaldate","TXXX:DISCOGS_LABEL":"label","TXXX:DISCOGS_LABEL_ID":"discogs_label_id","TXXX:DISCOGS_MASTER_RELEASE_ID":"discogs_master_release_id","TXXX:DISCOGS_RATING":"discogs_rating","TXXX:DISCOGS_RELEASED":"date","TXXX:DISCOGS_RELEASE_ID":"discogs_release_id","TXXX:DISCOGS_VOTES":"discogs_votes","TXXX:CATALOGID":"catalognumber","TXXX:STYLE":"genre","TXXX:REPLAYGAIN_TRACK_PEAK":"replaygain_track_peak","TXXX:REPLAYGAIN_TRACK_GAIN":"replaygain_track_gain","TXXX:REPLAYGAIN_ALBUM_PEAK":"replaygain_album_peak","TXXX:REPLAYGAIN_ALBUM_GAIN":"replaygain_album_gain","TXXX:MP3GAIN_MINMAX":"replaygain_track_minmax","TXXX:MP3GAIN_ALBUM_MINMAX":"replaygain_album_minmax","TXXX:MP3GAIN_UNDO":"replaygain_undo",MVNM:"movement",MVIN:"movementIndex",PCST:"podcast",TCAT:"category",TDES:"description",TDRL:"releasedate",TGID:"podcastId",TKWD:"keywords",WFED:"podcasturl",GRP1:"grouping",PCNT:"playCounter"},ue=class i extends k{static{s(this,"ID3v24TagMapper")}static toRating(e){return{source:e.email,rating:e.rating>0?(e.rating-1)/254*x.maxRatingScore:void 0}}constructor(){super(["ID3v2.3","ID3v2.4"],ur)}postMap(e,t){switch(e.id){case"UFID":{let r=e.value;r.owner_identifier==="http://musicbrainz.org"&&(e.id+=`:${r.owner_identifier}`,e.value=et(r.identifier,"latin1"))}break;case"PRIV":{let r=e.value;switch(r.owner_identifier){case"AverageLevel":case"PeakValue":e.id+=`:${r.owner_identifier}`,e.value=r.data.length===4?d.get(r.data,0):null,e.value===null&&t.addWarning("Failed to parse PRIV:PeakValue");break;default:t.addWarning(`Unknown PRIV owner-identifier: ${r.data}`)}}break;case"POPM":e.value=i.toRating(e.value);break;default:break}}};var fr={Title:"title",Author:"artist","WM/AlbumArtist":"albumartist","WM/AlbumTitle":"album","WM/Year":"date","WM/OriginalReleaseTime":"originaldate","WM/OriginalReleaseYear":"originalyear",Description:"comment","WM/TrackNumber":"track","WM/PartOfSet":"disk","WM/Genre":"genre","WM/Composer":"composer","WM/Lyrics":"lyrics","WM/AlbumSortOrder":"albumsort","WM/TitleSortOrder":"titlesort","WM/ArtistSortOrder":"artistsort","WM/AlbumArtistSortOrder":"albumartistsort","WM/ComposerSortOrder":"composersort","WM/Writer":"lyricist","WM/Conductor":"conductor","WM/ModifiedBy":"remixer","WM/Engineer":"engineer","WM/Producer":"producer","WM/DJMixer":"djmixer","WM/Mixer":"mixer","WM/Publisher":"label","WM/ContentGroupDescription":"grouping","WM/SubTitle":"subtitle","WM/SetSubTitle":"discsubtitle","WM/IsCompilation":"compilation","WM/SharedUserRating":"rating","WM/BeatsPerMinute":"bpm","WM/Mood":"mood","WM/Media":"media","WM/CatalogNo":"catalognumber","MusicBrainz/Album Status":"releasestatus","MusicBrainz/Album Type":"releasetype","MusicBrainz/Album Release Country":"releasecountry","WM/Script":"script","WM/Language":"language",Copyright:"copyright",LICENSE:"license","WM/EncodedBy":"encodedby","WM/EncodingSettings":"encodersettings","WM/Barcode":"barcode","WM/ISRC":"isrc","MusicBrainz/Track Id":"musicbrainz_recordingid","MusicBrainz/Release Track Id":"musicbrainz_trackid","MusicBrainz/Album Id":"musicbrainz_albumid","MusicBrainz/Artist Id":"musicbrainz_artistid","MusicBrainz/Album Artist Id":"musicbrainz_albumartistid","MusicBrainz/Release Group Id":"musicbrainz_releasegroupid","MusicBrainz/Work Id":"musicbrainz_workid","MusicBrainz/TRM Id":"musicbrainz_trmid","MusicBrainz/Disc Id":"musicbrainz_discid","Acoustid/Id":"acoustid_id","Acoustid/Fingerprint":"acoustid_fingerprint","MusicIP/PUID":"musicip_puid","WM/ARTISTS":"artists","WM/InitialKey":"key",ASIN:"asin","WM/Work":"work","WM/AuthorURL":"website","WM/Picture":"picture"},fe=class i extends x{static{s(this,"AsfTagMapper")}static toRating(e){return{rating:Number.parseFloat(e+1)/5}}constructor(){super(["asf"],fr)}postMap(e){if(e.id==="WM/SharedUserRating"){let t=e.id.split(":");e.value=i.toRating(e.value),e.id=t[0]}}};var lr={TT2:"title",TP1:"artist",TP2:"albumartist",TAL:"album",TYE:"year",COM:"comment",TRK:"track",TPA:"disk",TCO:"genre",PIC:"picture",TCM:"composer",TOR:"originaldate",TOT:"originalalbum",TXT:"lyricist",TP3:"conductor",TPB:"label",TT1:"grouping",TT3:"subtitle",TLA:"language",TCR:"copyright",WCP:"license",TEN:"encodedby",TSS:"encodersettings",WAR:"website",PCS:"podcast",TCP:"compilation",TDR:"date",TS2:"albumartistsort",TSA:"albumsort",TSC:"composersort",TSP:"artistsort",TST:"titlesort",WFD:"podcasturl",TBP:"bpm",GP1:"grouping"},le=class extends k{static{s(this,"ID3v22TagMapper")}constructor(){super(["ID3v2.2"],lr)}};var dr={Title:"title",Artist:"artist",Artists:"artists","Album Artist":"albumartist",Album:"album",Year:"date",Originalyear:"originalyear",Originaldate:"originaldate",Releasedate:"releasedate",Comment:"comment",Track:"track",Disc:"disk",DISCNUMBER:"disk",Genre:"genre","Cover Art (Front)":"picture","Cover Art (Back)":"picture",Composer:"composer",Lyrics:"lyrics",ALBUMSORT:"albumsort",TITLESORT:"titlesort",WORK:"work",ARTISTSORT:"artistsort",ALBUMARTISTSORT:"albumartistsort",COMPOSERSORT:"composersort",Lyricist:"lyricist",Writer:"writer",Conductor:"conductor",MixArtist:"remixer",Arranger:"arranger",Engineer:"engineer",Producer:"producer",DJMixer:"djmixer",Mixer:"mixer",Label:"label",Grouping:"grouping",Subtitle:"subtitle",DiscSubtitle:"discsubtitle",Compilation:"compilation",BPM:"bpm",Mood:"mood",Media:"media",CatalogNumber:"catalognumber",MUSICBRAINZ_ALBUMSTATUS:"releasestatus",MUSICBRAINZ_ALBUMTYPE:"releasetype",RELEASECOUNTRY:"releasecountry",Script:"script",Language:"language",Copyright:"copyright",LICENSE:"license",EncodedBy:"encodedby",EncoderSettings:"encodersettings",Barcode:"barcode",ISRC:"isrc",ASIN:"asin",musicbrainz_trackid:"musicbrainz_recordingid",musicbrainz_releasetrackid:"musicbrainz_trackid",MUSICBRAINZ_ALBUMID:"musicbrainz_albumid",MUSICBRAINZ_ARTISTID:"musicbrainz_artistid",MUSICBRAINZ_ALBUMARTISTID:"musicbrainz_albumartistid",MUSICBRAINZ_RELEASEGROUPID:"musicbrainz_releasegroupid",MUSICBRAINZ_WORKID:"musicbrainz_workid",MUSICBRAINZ_TRMID:"musicbrainz_trmid",MUSICBRAINZ_DISCID:"musicbrainz_discid",Acoustid_Id:"acoustid_id",ACOUSTID_FINGERPRINT:"acoustid_fingerprint",MUSICIP_PUID:"musicip_puid",Weblink:"website",REPLAYGAIN_TRACK_GAIN:"replaygain_track_gain",REPLAYGAIN_TRACK_PEAK:"replaygain_track_peak",MP3GAIN_MINMAX:"replaygain_track_minmax",MP3GAIN_UNDO:"replaygain_undo"},de=class extends k{static{s(this,"APEv2TagMapper")}constructor(){super(["APEv2"],dr)}};var hr={"\xA9nam":"title","\xA9ART":"artist",aART:"albumartist","----:com.apple.iTunes:Band":"albumartist","\xA9alb":"album","\xA9day":"date","\xA9cmt":"comment","\xA9com":"comment",trkn:"track",disk:"disk","\xA9gen":"genre",covr:"picture","\xA9wrt":"composer","\xA9lyr":"lyrics",soal:"albumsort",sonm:"titlesort",soar:"artistsort",soaa:"albumartistsort",soco:"composersort","----:com.apple.iTunes:LYRICIST":"lyricist","----:com.apple.iTunes:CONDUCTOR":"conductor","----:com.apple.iTunes:REMIXER":"remixer","----:com.apple.iTunes:ENGINEER":"engineer","----:com.apple.iTunes:PRODUCER":"producer","----:com.apple.iTunes:DJMIXER":"djmixer","----:com.apple.iTunes:MIXER":"mixer","----:com.apple.iTunes:LABEL":"label","\xA9grp":"grouping","----:com.apple.iTunes:SUBTITLE":"subtitle","----:com.apple.iTunes:DISCSUBTITLE":"discsubtitle",cpil:"compilation",tmpo:"bpm","----:com.apple.iTunes:MOOD":"mood","----:com.apple.iTunes:MEDIA":"media","----:com.apple.iTunes:CATALOGNUMBER":"catalognumber",tvsh:"tvShow",tvsn:"tvSeason",tves:"tvEpisode",sosn:"tvShowSort",tven:"tvEpisodeId",tvnn:"tvNetwork",pcst:"podcast",purl:"podcasturl","----:com.apple.iTunes:MusicBrainz Album Status":"releasestatus","----:com.apple.iTunes:MusicBrainz Album Type":"releasetype","----:com.apple.iTunes:MusicBrainz Album Release Country":"releasecountry","----:com.apple.iTunes:SCRIPT":"script","----:com.apple.iTunes:LANGUAGE":"language",cprt:"copyright","\xA9cpy":"copyright","----:com.apple.iTunes:LICENSE":"license","\xA9too":"encodedby",pgap:"gapless","----:com.apple.iTunes:BARCODE":"barcode","----:com.apple.iTunes:ISRC":"isrc","----:com.apple.iTunes:ASIN":"asin","----:com.apple.iTunes:NOTES":"comment","----:com.apple.iTunes:MusicBrainz Track Id":"musicbrainz_recordingid","----:com.apple.iTunes:MusicBrainz Release Track Id":"musicbrainz_trackid","----:com.apple.iTunes:MusicBrainz Album Id":"musicbrainz_albumid","----:com.apple.iTunes:MusicBrainz Artist Id":"musicbrainz_artistid","----:com.apple.iTunes:MusicBrainz Album Artist Id":"musicbrainz_albumartistid","----:com.apple.iTunes:MusicBrainz Release Group Id":"musicbrainz_releasegroupid","----:com.apple.iTunes:MusicBrainz Work Id":"musicbrainz_workid","----:com.apple.iTunes:MusicBrainz TRM Id":"musicbrainz_trmid","----:com.apple.iTunes:MusicBrainz Disc Id":"musicbrainz_discid","----:com.apple.iTunes:Acoustid Id":"acoustid_id","----:com.apple.iTunes:Acoustid Fingerprint":"acoustid_fingerprint","----:com.apple.iTunes:MusicIP PUID":"musicip_puid","----:com.apple.iTunes:fingerprint":"musicip_fingerprint","----:com.apple.iTunes:replaygain_track_gain":"replaygain_track_gain","----:com.apple.iTunes:replaygain_track_peak":"replaygain_track_peak","----:com.apple.iTunes:replaygain_album_gain":"replaygain_album_gain","----:com.apple.iTunes:replaygain_album_peak":"replaygain_album_peak","----:com.apple.iTunes:replaygain_track_minmax":"replaygain_track_minmax","----:com.apple.iTunes:replaygain_album_minmax":"replaygain_album_minmax","----:com.apple.iTunes:replaygain_undo":"replaygain_undo",gnre:"genre","----:com.apple.iTunes:ALBUMARTISTSORT":"albumartistsort","----:com.apple.iTunes:ARTISTS":"artists","----:com.apple.iTunes:ORIGINALDATE":"originaldate","----:com.apple.iTunes:ORIGINALYEAR":"originalyear","----:com.apple.iTunes:RELEASEDATE":"releasedate",desc:"description",ldes:"longDescription","\xA9mvn":"movement","\xA9mvi":"movementIndex","\xA9mvc":"movementTotal","\xA9wrk":"work",catg:"category",egid:"podcastId",hdvd:"hdVideo",keyw:"keywords",shwm:"showMovement",stik:"stik",rate:"rating"},xr="iTunes",W=class extends k{static{s(this,"MP4TagMapper")}constructor(){super([xr],hr)}postMap(e,t){e.id==="rate"&&(e.value={source:void 0,rating:Number.parseFloat(e.value)/100})}};var gr={TITLE:"title",ARTIST:"artist",ARTISTS:"artists",ALBUMARTIST:"albumartist","ALBUM ARTIST":"albumartist",ALBUM:"album",DATE:"date",ORIGINALDATE:"originaldate",ORIGINALYEAR:"originalyear",RELEASEDATE:"releasedate",COMMENT:"comment",TRACKNUMBER:"track",DISCNUMBER:"disk",GENRE:"genre",METADATA_BLOCK_PICTURE:"picture",COMPOSER:"composer",LYRICS:"lyrics",ALBUMSORT:"albumsort",TITLESORT:"titlesort",WORK:"work",ARTISTSORT:"artistsort",ALBUMARTISTSORT:"albumartistsort",COMPOSERSORT:"composersort",LYRICIST:"lyricist",WRITER:"writer",CONDUCTOR:"conductor",REMIXER:"remixer",ARRANGER:"arranger",ENGINEER:"engineer",PRODUCER:"producer",DJMIXER:"djmixer",MIXER:"mixer",LABEL:"label",GROUPING:"grouping",SUBTITLE:"subtitle",DISCSUBTITLE:"discsubtitle",TRACKTOTAL:"totaltracks",DISCTOTAL:"totaldiscs",COMPILATION:"compilation",RATING:"rating",BPM:"bpm",KEY:"key",MOOD:"mood",MEDIA:"media",CATALOGNUMBER:"catalognumber",RELEASESTATUS:"releasestatus",RELEASETYPE:"releasetype",RELEASECOUNTRY:"releasecountry",SCRIPT:"script",LANGUAGE:"language",COPYRIGHT:"copyright",LICENSE:"license",ENCODEDBY:"encodedby",ENCODERSETTINGS:"encodersettings",BARCODE:"barcode",ISRC:"isrc",ASIN:"asin",MUSICBRAINZ_TRACKID:"musicbrainz_recordingid",MUSICBRAINZ_RELEASETRACKID:"musicbrainz_trackid",MUSICBRAINZ_ALBUMID:"musicbrainz_albumid",MUSICBRAINZ_ARTISTID:"musicbrainz_artistid",MUSICBRAINZ_ALBUMARTISTID:"musicbrainz_albumartistid",MUSICBRAINZ_RELEASEGROUPID:"musicbrainz_releasegroupid",MUSICBRAINZ_WORKID:"musicbrainz_workid",MUSICBRAINZ_TRMID:"musicbrainz_trmid",MUSICBRAINZ_DISCID:"musicbrainz_discid",ACOUSTID_ID:"acoustid_id",ACOUSTID_ID_FINGERPRINT:"acoustid_fingerprint",MUSICIP_PUID:"musicip_puid",WEBSITE:"website",NOTES:"notes",TOTALTRACKS:"totaltracks",TOTALDISCS:"totaldiscs",DISCOGS_ARTIST_ID:"discogs_artist_id",DISCOGS_ARTISTS:"artists",DISCOGS_ARTIST_NAME:"artists",DISCOGS_ALBUM_ARTISTS:"albumartist",DISCOGS_CATALOG:"catalognumber",DISCOGS_COUNTRY:"releasecountry",DISCOGS_DATE:"originaldate",DISCOGS_LABEL:"label",DISCOGS_LABEL_ID:"discogs_label_id",DISCOGS_MASTER_RELEASE_ID:"discogs_master_release_id",DISCOGS_RATING:"discogs_rating",DISCOGS_RELEASED:"date",DISCOGS_RELEASE_ID:"discogs_release_id",DISCOGS_VOTES:"discogs_votes",CATALOGID:"catalognumber",STYLE:"genre",REPLAYGAIN_TRACK_GAIN:"replaygain_track_gain",REPLAYGAIN_TRACK_PEAK:"replaygain_track_peak",REPLAYGAIN_ALBUM_GAIN:"replaygain_album_gain",REPLAYGAIN_ALBUM_PEAK:"replaygain_album_peak",REPLAYGAIN_MINMAX:"replaygain_track_minmax",REPLAYGAIN_ALBUM_MINMAX:"replaygain_album_minmax",REPLAYGAIN_UNDO:"replaygain_undo"},he=class i extends x{static{s(this,"VorbisTagMapper")}static toRating(e,t,r){return{source:e?e.toLowerCase():void 0,rating:Number.parseFloat(t)/r*x.maxRatingScore}}constructor(){super(["vorbis"],gr)}postMap(e){if(e.id==="RATING")e.value=i.toRating(void 0,e.value,100);else if(e.id.indexOf("RATING:")===0){let t=e.id.split(":");e.value=i.toRating(t[1],e.value,1),e.id=t[0]}}};var Tr={IART:"artist",ICRD:"date",INAM:"title",TITL:"title",IPRD:"album",ITRK:"track",IPRT:"track",COMM:"comment",ICMT:"comment",ICNT:"releasecountry",GNRE:"genre",IWRI:"writer",RATE:"rating",YEAR:"year",ISFT:"encodedby",CODE:"encodedby",TURL:"website",IGNR:"genre",IENG:"engineer",ITCH:"technician",IMED:"media",IRPD:"album"},xe=class extends x{static{s(this,"RiffInfoTagMapper")}constructor(){super(["exif"],Tr)}};var yr={"segment:title":"title","album:ARTIST":"albumartist","album:ARTISTSORT":"albumartistsort","album:TITLE":"album","album:DATE_RECORDED":"originaldate","album:DATE_RELEASED":"releasedate","album:PART_NUMBER":"disk","album:TOTAL_PARTS":"totaltracks","track:ARTIST":"artist","track:ARTISTSORT":"artistsort","track:TITLE":"title","track:PART_NUMBER":"track","track:MUSICBRAINZ_TRACKID":"musicbrainz_recordingid","track:MUSICBRAINZ_ALBUMID":"musicbrainz_albumid","track:MUSICBRAINZ_ARTISTID":"musicbrainz_artistid","track:PUBLISHER":"label","track:GENRE":"genre","track:ENCODER":"encodedby","track:ENCODER_OPTIONS":"encodersettings","edition:TOTAL_PARTS":"totaldiscs",picture:"picture"},ge=class extends k{static{s(this,"MatroskaTagMapper")}constructor(){super(["matroska"],yr)}};var br={NAME:"title",AUTH:"artist","(c) ":"copyright",ANNO:"comment"},Te=class extends x{static{s(this,"AiffTagMapper")}constructor(){super(["AIFF"],br)}};var ye=class{static{s(this,"CombinedTagMapper")}constructor(){this.tagMappers={},[new pe,new le,new ue,new W,new W,new he,new de,new fe,new xe,new ge,new Te].forEach(e=>{this.registerTagMapper(e)})}mapTag(e,t,r){if(this.tagMappers[e])return this.tagMappers[e].mapGenericTag(t,r);throw new Je(`No generic tag mapper defined for tag-format: ${e}`)}registerTagMapper(e){for(let t of e.tagTypes)this.tagMappers[t]=e}};var Ne=/\[(\d{2}):(\d{2})\.(\d{2,3})]/;function Pt(i){return Ne.test(i)?wr(i):kr(i)}s(Pt,"parseLyrics");function kr(i){return{contentType:ie.lyrics,timeStampFormat:re.notSynchronized,text:i.trim(),syncText:[]}}s(kr,"toUnsyncedLyrics");function wr(i){let e=i.split(` +`),t=[];for(let r of e){let n=r.match(Ne);if(n){let o=Number.parseInt(n[1],10),c=Number.parseInt(n[2],10),m=n[3].length===3?Number.parseInt(n[3],10):Number.parseInt(n[3],10)*10,u=(o*60+c)*1e3+m,a=r.replace(Ne,"").trim();t.push({timestamp:u,text:a})}}return{contentType:ie.lyrics,timeStampFormat:re.milliseconds,text:t.map(r=>r.text).join(` +`),syncText:t}}s(wr,"parseLrc");var z=(0,Nt.default)("music-metadata:collector"),Sr=["matroska","APEv2","vorbis","ID3v2.4","ID3v2.3","ID3v2.2","exif","asf","iTunes","AIFF","ID3v1"],be=class{static{s(this,"MetadataCollector")}constructor(e){this.format={tagTypes:[],trackInfo:[]},this.native={},this.common={track:{no:null,of:null},disk:{no:null,of:null},movementIndex:{no:null,of:null}},this.quality={warnings:[]},this.commonOrigin={},this.originPriority={},this.tagMapper=new ye,this.opts=e;let t=1;for(let r of Sr)this.originPriority[r]=t++;this.originPriority.artificial=500,this.originPriority.id3v1=600}hasAny(){return Object.keys(this.native).length>0}addStreamInfo(e){z(`streamInfo: type=${e.type?Qe[e.type]:"?"}, codec=${e.codecName}`),this.format.trackInfo.push(e)}setFormat(e,t){z(`format: ${e} = ${t}`),this.format[e]=t,this.opts?.observer&&this.opts.observer({metadata:this,tag:{type:"format",id:e,value:t}})}setAudioOnly(){this.setFormat("hasAudio",!0),this.setFormat("hasVideo",!1)}async addTag(e,t,r){z(`tag ${e}.${t} = ${r}`),this.native[e]||(this.format.tagTypes.push(e),this.native[e]=[]),this.native[e].push({id:t,value:r}),await this.toCommon(e,t,r)}addWarning(e){this.quality.warnings.push({message:e})}async postMap(e,t){switch(t.id){case"artist":return this.handleSingularArtistTag(e,t,"artist","artists");case"albumartist":return this.handleSingularArtistTag(e,t,"albumartist","albumartists");case"artists":return this.handlePluralArtistTag(e,t,"artist","artists");case"albumartists":return this.handlePluralArtistTag(e,t,"albumartist","albumartists");case"picture":return this.postFixPicture(t.value).then(r=>{r!==null&&(t.value=r,this.setGenericTag(e,t))});case"totaltracks":this.common.track.of=x.toIntOrNull(t.value);return;case"totaldiscs":this.common.disk.of=x.toIntOrNull(t.value);return;case"movementTotal":this.common.movementIndex.of=x.toIntOrNull(t.value);return;case"track":case"disk":case"movementIndex":{let r=this.common[t.id].of;this.common[t.id]=x.normalizeTrack(t.value),this.common[t.id].of=r??this.common[t.id].of;return}case"bpm":case"year":case"originalyear":t.value=Number.parseInt(t.value,10);break;case"date":{let r=Number.parseInt(t.value.substr(0,4),10);Number.isNaN(r)||(this.common.year=r);break}case"discogs_label_id":case"discogs_release_id":case"discogs_master_release_id":case"discogs_artist_id":case"discogs_votes":t.value=typeof t.value=="string"?Number.parseInt(t.value,10):t.value;break;case"replaygain_track_gain":case"replaygain_track_peak":case"replaygain_album_gain":case"replaygain_album_peak":t.value=tt(t.value);break;case"replaygain_track_minmax":t.value=t.value.split(",").map(r=>Number.parseInt(r,10));break;case"replaygain_undo":{let r=t.value.split(",").map(n=>Number.parseInt(n,10));t.value={leftChannel:r[0],rightChannel:r[1]};break}case"gapless":case"compilation":case"podcast":case"showMovement":t.value=t.value==="1"||t.value===1;break;case"isrc":{let r=this.common[t.id];if(r&&r.indexOf(t.value)!==-1)return;break}case"comment":typeof t.value=="string"&&(t.value={text:t.value}),t.value.descriptor==="iTunPGAP"&&this.setGenericTag(e,{id:"gapless",value:t.value.text==="1"});break;case"lyrics":typeof t.value=="string"&&(t.value=Pt(t.value));break;default:}t.value!==null&&this.setGenericTag(e,t)}toCommonMetadata(){return{format:this.format,native:this.native,quality:this.quality,common:this.common}}handleSingularArtistTag(e,t,r,n){if(this.commonOrigin[r]===this.originPriority[e])return this.postMap("artificial",{id:n,value:t.value});this.common[n]||this.setGenericTag("artificial",{id:n,value:t.value}),this.setGenericTag(e,t)}handlePluralArtistTag(e,t,r,n){if((!this.common[r]||this.commonOrigin[r]===this.originPriority.artificial)&&(!this.common[n]||this.common[n].indexOf(t.value)===-1)){let o=(this.common[n]||[]).concat([t.value]),c=Ir(o);this.setGenericTag("artificial",{id:r,value:c})}this.setGenericTag(e,t)}async postFixPicture(e){if(e.data&&e.data.length>0){if(!e.format){let t=await q(Uint8Array.from(e.data));if(t)e.format=t.mime;else return null}return e.format=e.format.toLocaleLowerCase(),e.format==="image/jpg"&&(e.format="image/jpeg"),e}return this.addWarning("Empty picture tag found"),null}async toCommon(e,t,r){let n={id:t,value:r},o=this.tagMapper.mapTag(e,n,this);o&&await this.postMap(e,o)}setGenericTag(e,t){z(`common.${t.id} = ${t.value}`);let r=this.commonOrigin[t.id]||1e3,n=this.originPriority[e];if(zt(t.id))if(n<=r)this.common[t.id]=t.value,this.commonOrigin[t.id]=n;else return z(`Ignore native tag (singleton): ${e}.${t.id} = ${t.value}`);else if(n===r)!Ft(t.id)||this.common[t.id].indexOf(t.value)===-1?this.common[t.id].push(t.value):z(`Ignore duplicate value: ${e}.${t.id} = ${t.value}`);else if(n2?`${i.slice(0,i.length-1).join(", ")} & ${i[i.length-1]}`:i.join(" & ")}s(Ir,"joinArtists");var Ut={parserType:"mpeg",extensions:[".mp2",".mp3",".m2a",".aac","aacp"],mimeTypes:["audio/mpeg","audio/mp3","audio/aacs","audio/aacp"],async load(){return(await import("./MpegParser-O2RE6KKD.js")).MpegParser}};var Xt={parserType:"apev2",extensions:[".ape"],mimeTypes:["audio/ape","audio/monkeys-audio"],async load(){return(await import("./APEv2Parser-45TZRDQ6.js")).APEv2Parser}};var Gt={parserType:"asf",extensions:[".asf",".wma",".wmv"],mimeTypes:["audio/ms-wma","video/ms-wmv","audio/ms-asf","video/ms-asf","application/vnd.ms-asf"],async load(){return(await import("./AsfParser-BPPBZCR7.js")).AsfParser}};var $t={parserType:"dsdiff",extensions:[".dff"],mimeTypes:["audio/dsf","audio/dsd"],async load(){return(await import("./DsdiffParser-G2OOLUSE.js")).DsdiffParser}};var qt={parserType:"aiff",extensions:[".aif","aiff","aifc"],mimeTypes:["audio/aiff","audio/aif","audio/aifc","application/aiff"],async load(){return(await import("./AiffParser-2JNE3SNK.js")).AIFFParser}};var Wt={parserType:"dsf",extensions:[".dsf"],mimeTypes:["audio/dsf"],async load(){return(await import("./DsfParser-43FUWDHS.js")).DsfParser}};var jt={parserType:"flac",extensions:[".flac"],mimeTypes:["audio/flac"],async load(){return(await import("./FlacParser-O2YMFBMO.js")).FlacParser}};var Zt={parserType:"matroska",extensions:[".mka",".mkv",".mk3d",".mks","webm"],mimeTypes:["audio/matroska","video/matroska","audio/webm","video/webm"],async load(){return(await import("./MatroskaParser-S7QBLT5N.js")).MatroskaParser}};var Ht={parserType:"mp4",extensions:[".mp4",".m4a",".m4b",".m4pa","m4v","m4r","3gp",".mov",".movie",".qt"],mimeTypes:["audio/mp4","audio/m4a","video/m4v","video/mp4","video/quicktime"],async load(){return(await import("./MP4Parser-MX56ESYJ.js")).MP4Parser}};var Vt={parserType:"musepack",extensions:[".mpc"],mimeTypes:["audio/musepack"],async load(){return(await import("./MusepackParser-K4V5PCYW.js")).MusepackParser}};var Yt={parserType:"ogg",extensions:[".ogg",".ogv",".oga",".ogm",".ogx",".opus",".spx"],mimeTypes:["audio/ogg","audio/opus","audio/speex","video/ogg"],async load(){return(await import("./OggParser-ZLVT63EM.js")).OggParser}};var Kt={parserType:"wavpack",extensions:[".wv",".wvp"],mimeTypes:["audio/wavpack"],async load(){return(await import("./WavPackParser-KLZ65ZHU.js")).WavPackParser}};var Qt={parserType:"riff",extensions:[".wav","wave",".bwf"],mimeTypes:["audio/vnd.wave","audio/wav","audio/wave"],async load(){return(await import("./WaveParser-OIX4G4ED.js")).WaveParser}};var F=(0,ei.default)("music-metadata:parser:factory");function Er(i){let e=Jt.default.parse(i),t=Ot(e.type);return{type:t.type,subtype:t.subtype,suffix:t.suffix,parameters:e.parameters}}s(Er,"parseHttpContentType");var j=class{static{s(this,"ParserFactory")}constructor(){this.parsers=[],[jt,Ut,Xt,Ht,Zt,Qt,Yt,Gt,qt,Kt,Vt,Wt,$t].forEach(e=>{this.registerParser(e)})}registerParser(e){this.parsers.push(e)}async parse(e,t,r){if(e.supportsRandomAccess()?(F("tokenizer supports random-access, scanning for appending headers"),await ti(e,r)):F("tokenizer does not support random-access, cannot scan for appending headers"),!t){let m=new Uint8Array(4100);if(e.fileInfo.mimeType&&(t=this.findLoaderForContentType(e.fileInfo.mimeType)),!t&&e.fileInfo.path&&(t=this.findLoaderForExtension(e.fileInfo.path)),!t){F("Guess parser on content..."),await e.peekBuffer(m,{mayBeLess:!0});let u=await q(m,{mpegOffsetTolerance:10});if(!u||!u.mime)throw new ee("Failed to determine audio format");if(F(`Guessed file type is mime=${u.mime}, extension=${u.ext}`),t=this.findLoaderForContentType(u.mime),!t)throw new te(`Guessed MIME-type not supported: ${u.mime}`)}}F(`Loading ${t.parserType} parser...`);let n=new be(r),o=await t.load(),c=new o(n,e,r??{});return F(`Parser ${t.parserType} loaded`),await c.parse(),n.format.trackInfo&&(n.format.hasAudio===void 0&&n.setFormat("hasAudio",!!n.format.trackInfo.find(m=>m.type===_e.audio)),n.format.hasVideo===void 0&&n.setFormat("hasVideo",!!n.format.trackInfo.find(m=>m.type===_e.video))),n.toCommonMetadata()}findLoaderForExtension(e){if(!e)return;let t=Ar(e).toLocaleLowerCase()||e;return this.parsers.find(r=>r.extensions.indexOf(t)!==-1)}findLoaderForContentType(e){let t;if(!e)return;try{t=Er(e)}catch{F(`Invalid HTTP Content-Type header value: ${e}`);return}let r=t.subtype.indexOf("x-")===0?t.subtype.substring(2):t.subtype;return this.parsers.find(n=>n.mimeTypes.find(o=>o.indexOf(`${t.type}/${r}`)!==-1))}getSupportedMimeTypes(){let e=new Set;return this.parsers.forEach(t=>{t.mimeTypes.forEach(r=>{e.add(r),e.add(r.replace("/","/x-"))})}),Array.from(e)}};function Ar(i){let e=i.lastIndexOf(".");return e===-1?"":i.substring(e)}s(Ar,"getExtension");var vr="LYRICS200";async function ii(i){let e=i.fileInfo.size;if(e>=143){let t=new Uint8Array(15),r=i.position;await i.readBuffer(t,{position:e-143}),i.setPosition(r);let n=He(t,"latin1");if(n.substring(6)===vr)return Number.parseInt(n.substring(0,6),10)+15}return 0}s(ii,"getLyricsHeaderLength");async function ri(i,e,t={}){let r=Q(i,{fileInfo:typeof e=="string"?{mimeType:e}:e});try{return await Z(r,t)}finally{await r.close()}}s(ri,"parseWebStream");async function ni(i,e,t={}){let r=J(i,{fileInfo:typeof e=="string"?{mimeType:e}:e});return Z(r,t)}s(ni,"parseBuffer");function Z(i,e){return new j().parse(i,void 0,e)}s(Z,"parseFromTokenizer");async function ti(i,e={}){let t=i.fileInfo.size;if(await rt(i)){t-=128;let r=await ii(i);t-=r}e.apeHeader=await it.findApeFooterOffset(i,t)}s(ti,"scanAppendingHeaders");var As=(0,ai.default)("music-metadata:parser");var mi=w(C());var Rr="End-Of-Stream",g=class extends Error{static{s(this,"EndOfStreamError")}constructor(){super(Rr)}};var M=class{static{s(this,"AbstractTokenizer")}constructor(e){this.numBuffer=new Uint8Array(8),this.position=0,this.onClose=e?.onClose,e?.abortSignal&&e.abortSignal.addEventListener("abort",()=>{this.abort()})}async readToken(e,t=this.position){let r=new Uint8Array(e.len);if(await this.readBuffer(r,{position:t})t)return this.position+=t,t}return this.position+=e,e}async close(){await this.abort(),await this.onClose?.()}normalizeOptions(e,t){if(t&&t.position!==void 0&&t.positionthis.response.arrayBuffer().then(r=>new Uint8Array(r)),"arrayBuffer")}}};var Xe=(0,mi.default)("streaming-http-token-reader:http-client"),Lr={resolveUrl:!1},U=class{static{s(this,"HttpClient")}constructor(e,t){this.url=e,this.abortController=new AbortController,this.config=Lr,Object.assign(this.config,t)}async getHeadInfo(){let e=new V(await fetch(this.url,{method:"HEAD",signal:this.abortController.signal}));return this.config.resolveUrl&&(this.resolvedUrl=e.response.url),e.toRangeRequestResponse()}async getResponse(e,t){let r=new Headers;t?(Xe(`_getResponse ${e} ${t[0]}..${t[1]}`),r.set("Range",`bytes=${t[0]}-${t[1]}`)):Xe(`_getResponse ${e} (range not provided)`);let n=new V(await fetch(this.resolvedUrl||this.url,{method:e,headers:r,signal:this.abortController.signal}));if(n.response.ok)return this.config.resolveUrl&&(this.resolvedUrl=n.response.url),n.toRangeRequestResponse();throw new Error(`Unexpected HTTP response status=${n.response.status}`)}abort(){Xe("abort"),this.abortController.abort()}};var ke=class{static{s(this,"ChunkedFileData")}constructor(){this._fileData=[]}addData(e,t){let r=e+t.byteLength-1,n=this._getChunkRange(e,r);if(n.startIx===-1)this._fileData.splice(n.insertIx||0,0,{offset:e,data:t});else{let o=this._fileData[n.startIx],c=this._fileData[n.endIx],m=e>o.offset,u=r=n.offset&&t=u&&o=m-1){r=c;break}}if(r===-1)return{startIx:-1,endIx:-1,insertIx:o};for(let c=r;c=m-1&&(n=c),t<=u+1)break}return n===-1&&(n=r),{startIx:r,endIx:n}}};var pi=w(C());var we=(0,pi.default)("range-request-reader"),Se=class extends Ze{static{s(this,"RangeRequestTokenizer")}constructor(e,t){if(super({fileInfo:t.fileInfo}),this.rangeRequestClient=e,this.options=t,this.fileInfo=t.fileInfo,Number.isNaN(t.minimumChunkSize))throw new Error("minimumChunkSize must be a number");this._fileData=new ke,this.options.abortSignal?.addEventListener("abort",()=>{this.abort()})}setPosition(e){this.position=e}async readBuffer(e,t){t?.position&&(this.position=t.position);let r=await this.peekBuffer(e,t);return this.position+=r,r}async peekBuffer(e,t){if(!this.fileInfo)throw new Error("File-info missing");let n=this.fileInfo.size,o=t?.position!==void 0?t.position:this.position,c=t?.length!==void 0?t.length:e.length-0;if(c<=0)return 0;let m=n-o;if(m<=0){if(t?.mayBeLess)return 0;throw new RangeError(`peekBuffer position ${o} is beyond EOF ${n}`)}let u=t?.mayBeLess?Math.min(c,m):c;if(!t?.mayBeLess&&u>m)throw new RangeError(`peekBuffer length ${u} exceeds remaining ${m} at position ${o}`);let a=o+u-1;return await this.loadRange([o,a]),this._fileData.readToBuffer(e,0,o,u),u}async ignore(e){let t=this.fileInfo.size-this.position;return e<=t?(this.position+=e,e):(this.position+=t,t)}async abort(){this.rangeRequestClient.abort()}supportsRandomAccess(){return!0}async loadRange(e){if(we(`request range ${e[0]}..${e[1]}`),e[0]>this.fileInfo.size-1)throw new Error("End-Of-File");if(we(`adjusted range ${e[0]}..${e[1]}`),this._fileData.hasDataRange(e[0],e[1])){we("Read from cache");return}return e=Ge(e,this.options.minimumChunkSize),e[1]=Math.min(this.fileInfo.size-1,e[1]),we(`blocked range: ${e[0]}..${e[1]}`),this.rangeRequestClient.getResponse("GET",e).then(t=>t.arrayBuffer().then(r=>{this._fileData.addData(e[0],r)}))}};function Ge(i,e){let t=i[1]-i[0]+1,r=Math.max(e,t);return[i[0],i[0]+r-1]}s(Ge,"roundRange");var ui=w(C());var Ie=(0,ui.default)("range-request-reader"),Ee=class{static{s(this,"RangeRequestFactory")}constructor(e){this.rangeRequestClient=e,this.config={avoidHeadRequests:!1,initialChunkSize:4*1024,minimumChunkSize:1024}}async initTokenizer(e){e&&(this.config={...this.config,...e});let t=await this.getHeadRequestInfo();if(!t.acceptPartialRequests)throw new Error("Server does not accept partial requests");return new Se(this.rangeRequestClient,{fileInfo:t,minimumChunkSize:this.config.minimumChunkSize,abortSignal:e?.abortSignal})}getHeadRequestInfo(){return this.config.avoidHeadRequests?this.fetchFileInfoWithGetRequest():this.fetchFileInfoWithHeadRequest()}async fetchFileInfoWithHeadRequest(){if(Ie("_fetchSizeWithHeadRequest()"),this.rangeRequestClient.getHeadInfo){let e=await this.rangeRequestClient.getHeadInfo();if(e.size)return Ie(`MIME-type=${e.mimeType}, content-length=${e.size}, accept-partial-requests=${e.acceptPartialRequests}`),e}return Ie("Content-Length not provided by the server, fallback to GET requests"),this.fetchFileInfoWithGetRequest()}async fetchFileInfoWithGetRequest(){let e=Ge([0,this.config.initialChunkSize],this.config.minimumChunkSize),t=await this.rangeRequestClient.getResponse("GET",e);if(Ie(`_fetchSizeWithGetRequest response: contentRange=[${t.contentRange?.firstBytePosition}-${t.contentRange?.lastBytePosition}/${t.contentRange?.instanceLength}]`),!t.contentRange)throw new Error("Failed to resolve content range (file size)");return t}};function fi(i,e){return new Ee(i).initTokenizer(e)}s(fi,"tokenizer");var li={"audio/mpeg":"mp3","audio/mp3":"mp3","audio/aac":"aac","audio/aacp":"aacp","audio/mp4":"m4a","audio/m4a":"m4a","audio/x-m4a":"m4a","audio/ogg":"ogg","audio/opus":"opus","audio/speex":"spx","audio/flac":"flac","audio/aiff":"aiff","audio/aif":"aif","audio/aifc":"aifc","audio/wav":"wav","audio/wave":"wav","audio/vnd.wave":"wav","audio/x-wav":"wav","audio/webm":"webm","audio/ape":"ape","audio/monkeys-audio":"ape","audio/musepack":"mpc","audio/wavpack":"wv","audio/asf":"asf","audio/ms-wma":"wma","audio/dsf":"dsf"};function Or(i){let e=i&&li[i];return e?`file.${e}`:void 0}s(Or,"mimeTypeToPath");async function Ec({includeArtwork:i,filename:e,mimeType:t,stream:r,urls:n,signal:o}){let m=(n?je(n.get):void 0)?.path?.split("/"),u=m?.[m.length-1],a;if(n?.get.startsWith("blob:")){let R=await fetch(n.get,{signal:o}).then(P=>P.blob()),Y=li[R.type],K=new Uint8Array(await R.arrayBuffer());a=await ni(K,Y?{path:`file.${Y}`}:void 0,{skipCovers:!i})}else if(n){let R=new U(n.head,{resolveUrl:!1});R.resolvedUrl=n.get;let Y=R.getHeadInfo,K=s(()=>R.abort(),"onAbort");o?.addEventListener("abort",K,{once:!0}),R.getHeadInfo=async()=>{try{let We=await Y.call(R);return Number.isFinite(We?.size)?We:{size:void 0,acceptPartialRequests:!1}}catch{return{size:void 0,acceptPartialRequests:!1}}};let P=await fi(R),qe=e||u||Or(P.fileInfo?.mimeType);qe&&(P.fileInfo={...P.fileInfo,path:qe}),a=await Z(P,{skipCovers:!i}),o?.removeEventListener("abort",K)}else if(r)a=await ri(r,{mimeType:t},{skipCovers:!i});else throw new Error("Missing args, need either some urls or a stream.");let f={albumGain:X(a.format.albumGain),bitrate:X(a.format.bitrate),bitsPerSample:X(a.format.bitsPerSample),codec:a.format.codec,container:a.format.container,duration:a.format.duration!=null?Math.round(a.format.duration*1e3):void 0,lossless:a.format.lossless,numberOfChannels:X(a.format.numberOfChannels),sampleRate:X(a.format.sampleRate),trackGain:X(a.format.trackGain)},l={album:a.common.album,albumartist:a.common.albumartist,albumartists:Array.isArray(a.common.albumartist)?a.common.albumartist:a.common.albumartist?[a.common.albumartist]:void 0,albumartistsort:a.common.albumartistsort,albumsort:a.common.albumsort,arranger:a.common.arranger,artist:a.common.artist,artists:a.common.artists??(a.common.artist?[a.common.artist]:[]),artistsort:a.common.artistsort,asin:a.common.asin,averageLevel:a.common.averageLevel,barcode:a.common.barcode,bpm:a.common.bpm,catalognumbers:a.common.catalognumber,compilation:a.common.compilation,composers:a.common.composer,composersort:a.common.composersort,conductors:a.common.conductor,date:a.common.date,disc:{no:a.common.disk.no||1,...a.common.disk.of&&{of:a.common.disk.of}},djmixers:a.common.djmixer,engineers:a.common.engineer,gapless:a.common.gapless,genres:Array.isArray(a.common.genre)?a.common.genre:a.common.genre?[a.common.genre]:void 0,isrc:a.common.isrc,labels:a.common.label,lyricists:a.common.lyricist,media:a.common.media,mixers:a.common.mixer,moods:Array.isArray(a.common.mood)?a.common.mood:a.common.mood?[a.common.mood]:void 0,originaldate:a.common.originaldate,originalyear:a.common.originalyear,peakLevel:a.common.peakLevel,producers:a.common.producer,publishers:a.common.publisher,releasecountry:a.common.releasecountry,releasedate:a.common.releasedate,releasestatus:a.common.releasestatus,releasetypes:a.common.releasetype,remixers:a.common.remixer,technicians:a.common.technician,title:a.common.title||e||n?.head||"Unknown",titlesort:a.common.titlesort,track:{no:a.common.track.no||1,...a.common.track.of&&{of:a.common.track.of}},work:a.common.work,writers:a.common.writer,year:a.common.year},v=Ae(f),$e=Ae(l);return{artwork:i?a.common.picture:void 0,stats:v,tags:$e}}s(Ec,"musicMetadataTags");function X(i){return typeof i=="number"?Math.round(i):i}s(X,"maybeRound");export{Ec as a}; +/*! Bundled license information: + +content-type/dist/index.js: + (*! + * content-type + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + *) +*/ + +//# sourceMappingURL=./chunk-OTCXFJJZ.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js.br new file mode 100644 index 0000000000000000000000000000000000000000..8492bfb494526dbe4e04eb806001c26c467cc5a1 GIT binary patch literal 26744 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 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js.map new file mode 100644 index 00000000..3070c13a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-OTCXFJJZ.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node_modules/.deno/content-type@2.1.0/node_modules/content-type/src/index.ts","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/index.js","/node_modules/.deno/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/ZipHandler.js","/node_modules/.deno/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/ZipToken.js","/node_modules/.deno/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/GzipHandler.js","/node_modules/.deno/file-type@21.3.4/node_modules/file-type/util.js","/node_modules/.deno/file-type@21.3.4/node_modules/file-type/supported.js","/node_modules/.deno/file-type@21.3.4/node_modules/file-type/core.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ParserFactory.js","/node_modules/.deno/media-typer@2.0.0/node_modules/media-typer/src/index.ts","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/common/MetadataCollector.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/common/GenericTagTypes.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/common/GenericTagMapper.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/id3v1/ID3v1TagMap.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/common/CaseInsensitiveTagMap.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/id3v2/ID3v24TagMapper.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/asf/AsfTagMapper.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/id3v2/ID3v22TagMapper.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/apev2/APEv2TagMapper.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/mp4/MP4TagMapper.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/vorbis/VorbisTagMapper.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/riff/RiffInfoTagMap.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/matroska/MatroskaTagMapper.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/aiff/AiffTagMap.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/common/CombinedTagMapper.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/lrc/LyricsParser.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/mpeg/MpegLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/apev2/Apev2Loader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/asf/AsfLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/dsdiff/DsdiffLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/aiff/AiffLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/dsf/DsfLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/flac/FlacLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/matroska/MatroskaLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/mp4/Mp4Loader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/musepack/MusepackLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/ogg/OggLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/wavpack/WavPackLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/wav/WaveLoader.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/lyrics3/Lyrics3.js","/node_modules/.deno/music-metadata@11.15.0/node_modules/music-metadata/lib/core.js","/node_modules/.deno/@tokenizer+http@0.9.2/node_modules/@tokenizer/http/lib/http-client.js","/node_modules/.deno/peek-readable@5.4.2/node_modules/peek-readable/lib/EndOfStreamError.js","/node_modules/.deno/strtok3@9.1.1/node_modules/strtok3/lib/AbstractTokenizer.js","/node_modules/.deno/strtok3@9.1.1/node_modules/strtok3/lib/FileTokenizer.js","/node_modules/.deno/strtok3@9.1.1/node_modules/strtok3/lib/index.js","/node_modules/.deno/@tokenizer+range@0.12.0/node_modules/@tokenizer/range/lib/range-request-tokenizer.js","/node_modules/.deno/@tokenizer+range@0.12.0/node_modules/@tokenizer/range/lib/range-request-factory.js","/node_modules/.deno/@tokenizer+http@0.9.2/node_modules/@tokenizer/http/lib/response-info.js","/node_modules/.deno/@tokenizer+range@0.13.1/node_modules/@tokenizer/range/lib/chunked-file-data.js","/node_modules/.deno/@tokenizer+range@0.13.1/node_modules/@tokenizer/range/lib/range-request-tokenizer.js","/node_modules/.deno/@tokenizer+range@0.13.1/node_modules/@tokenizer/range/lib/range-request-factory.js","/node_modules/.deno/@tokenizer+range@0.13.1/node_modules/@tokenizer/range/lib/index.js","/components/metadata/common.js"],"sourcesContent":["/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\nconst TEXT_REGEXP = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]*$/;\nconst TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 9110 sec 5.6.4\n */\nconst QUOTE_REGEXP = /[\\\\\"]/g;\n\n/**\n * RegExp to match type in RFC 9110 sec 8.3.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nconst TYPE_REGEXP =\n /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n\n/**\n * Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`.\n */\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () {};\n C.prototype = Object.create(null);\n return C;\n})() as unknown as { new (): any };\n\n/**\n * The content type object contains a type string and optional parameters.\n */\nexport interface ContentType {\n type: string;\n index: number;\n parameters: Record;\n}\n\n/**\n * Format an object into a `Content-Type` header.\n */\nexport function format(obj: Partial): string {\n const { type, parameters } = obj;\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError(`Invalid type: ${type}`);\n }\n\n let result = type;\n\n if (parameters) {\n for (const param of Object.keys(parameters)) {\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError(`Invalid parameter name: ${param}`);\n }\n\n result += `; ${param}=${qstring(parameters[param])}`;\n }\n }\n\n return result;\n}\n\n/**\n * Options for parsing a `Content-Type` header.\n */\nexport interface ParseOptions {\n /**\n * Exit early on the first semicolon, returning only the type.\n * This is useful for parsing the MIME from `Content-Type` headers.\n *\n * @default false\n */\n parameters?: boolean;\n /**\n * Exits early on a comma, returning the first value and parameters.\n * This is useful for parsing `Accept` headers.\n *\n * @default false\n */\n comma?: boolean;\n /**\n * The index to start parsing from.\n *\n * @default 0\n */\n start?: number;\n}\n\n/**\n * Parse a `Content-Type` header.\n */\nexport function parse(header: string, options?: ParseOptions): ContentType {\n const stopChar = options?.comma === true ? COMMA : 65_536; // Sentinel for \"no stop char\".\n const len = header.length;\n let index = skipOWS(header, options?.start ?? 0, len);\n\n const valueStart = index;\n index = skipValue(header, index, len, stopChar);\n const valueEnd = trailingOWS(header, valueStart, index);\n const type = header.slice(valueStart, valueEnd).toLowerCase();\n\n if (options?.parameters === false) {\n return { type, index, parameters: new NullObject() };\n }\n\n return parseParameters(header, type, index, len, stopChar);\n}\n\nconst SP = 32; // \" \"\nconst HTAB = 9; // \"\\t\"\nconst SEMI = 59; // \";\"\nconst EQ = 61; // \"=\"\nconst DQUOTE = 34; // '\"'\nconst BSLASH = 92; // \"\\\\\"\nconst COMMA = 44; // \",\"\n\n/**\n * Parses the parameters of a `Content-Type` header starting at the given index.\n */\nfunction parseParameters(\n header: string,\n type: string,\n index: number,\n len: number,\n stopChar: number,\n): ContentType {\n const parameters: Record = new NullObject();\n\n parameter: while (index < len) {\n if (header.charCodeAt(index) === stopChar) break;\n\n index = skipOWS(header, index + 1 /* Skip over ; */, len);\n\n const keyStart = index;\n\n while (index < len) {\n const code = header.charCodeAt(index);\n if (code === stopChar) break parameter;\n\n if (code === SEMI) continue parameter;\n\n if (code === EQ) {\n const keyEnd = trailingOWS(header, keyStart, index);\n const key = header.slice(keyStart, keyEnd).toLowerCase();\n\n index = skipOWS(header, index + 1, len);\n\n if (index < len && header.charCodeAt(index) === DQUOTE) {\n index++;\n\n let value = \"\";\n while (index < len) {\n const code = header.charCodeAt(index++);\n if (code === DQUOTE) {\n index = skipValue(header, index, len, stopChar);\n if (parameters[key] === undefined) parameters[key] = value;\n break;\n }\n\n if (code === BSLASH && index < len) {\n value += header[index++];\n continue;\n }\n\n value += String.fromCharCode(code);\n }\n\n continue parameter;\n }\n\n const valueStart = index;\n index = skipValue(header, index, len, stopChar);\n\n if (parameters[key] === undefined) {\n const valueEnd = trailingOWS(header, valueStart, index);\n parameters[key] = header.slice(valueStart, valueEnd);\n }\n\n continue parameter;\n }\n\n index++;\n }\n }\n\n return { type, index, parameters };\n}\n\n/**\n * Skip over characters until a semicolon or other exit character.\n */\nfunction skipValue(\n str: string,\n index: number,\n len: number,\n stopChar: number,\n): number {\n while (index < len) {\n const code = str.charCodeAt(index);\n if (code === SEMI || code === stopChar) break;\n index++;\n }\n return index;\n}\n\n/**\n * Skip optional whitespace (OWS) in an HTTP header value.\n *\n * OWS is defined in RFC 9110 sec 5.6.3 as SP (\" \") or HTAB (\"\\t\").\n */\nfunction skipOWS(header: string, index: number, len: number): number {\n while (index < len) {\n const char = header.charCodeAt(index);\n if (char !== SP && char !== HTAB) break;\n index++;\n }\n return index;\n}\n\n/**\n * Trim optional whitespace (OWS) from the end of a substring.\n *\n * OWS is defined in RFC 9110 sec 5.6.3 as SP (\" \") or HTAB (\"\\t\").\n */\nfunction trailingOWS(header: string, start: number, end: number): number {\n while (end > start) {\n const char = header.charCodeAt(end - 1);\n if (char !== SP && char !== HTAB) break;\n end--;\n }\n return end;\n}\n\n/**\n * Serialize a parameter value.\n */\nfunction qstring(str: string): string {\n if (TOKEN_REGEXP.test(str)) return str;\n if (TEXT_REGEXP.test(str)) return `\"${str.replace(QUOTE_REGEXP, \"\\\\$&\")}\"`;\n\n throw new TypeError(`Invalid parameter value: ${str}`);\n}\n","/**\n * Node.js specific entry point.\n */\nimport { fromFile, fromStream } from 'strtok3';\nimport initDebug from 'debug';\nimport { CouldNotDetermineFileTypeError, parseFromTokenizer, UnsupportedFileTypeError } from './core.js';\nimport { ParserFactory } from './ParserFactory.js';\nexport * from './core.js';\nconst debug = initDebug('music-metadata:parser');\n/**\n * Parse audio from Node Stream.Readable\n * @param stream - Stream to read the audio track from\n * @param fileInfo - File information object or MIME-type, e.g.: 'audio/mpeg'\n * @param options - Parsing options\n * @returns Metadata\n */\nexport async function parseStream(stream, fileInfo, options = {}) {\n const tokenizer = await fromStream(stream, { fileInfo: typeof fileInfo === 'string' ? { mimeType: fileInfo } : fileInfo });\n try {\n return await parseFromTokenizer(tokenizer, options);\n }\n finally {\n await tokenizer.close();\n }\n}\n/**\n * Parse audio from Node file\n * @param filePath - Media file to read meta-data from\n * @param options - Parsing options\n * @returns Metadata\n */\nexport async function parseFile(filePath, options = {}) {\n debug(`parseFile: ${filePath}`);\n const fileTokenizer = await fromFile(filePath);\n const parserFactory = new ParserFactory();\n try {\n const parserLoader = parserFactory.findLoaderForExtension(filePath);\n if (!parserLoader)\n debug('Parser could not be determined by file extension');\n try {\n return await parserFactory.parse(fileTokenizer, parserLoader, options);\n }\n catch (error) {\n if (error instanceof CouldNotDetermineFileTypeError || error instanceof UnsupportedFileTypeError) {\n error.message += `: ${filePath}`;\n }\n throw error;\n }\n }\n finally {\n await fileTokenizer.close();\n }\n}\n","import { StringType, UINT32_LE } from 'token-types';\nimport initDebug from 'debug';\nimport { DataDescriptor, EndOfCentralDirectoryRecordToken, FileHeader, LocalFileHeaderToken, Signature } from \"./ZipToken.js\";\nfunction signatureToArray(signature) {\n const signatureBytes = new Uint8Array(UINT32_LE.len);\n UINT32_LE.put(signatureBytes, 0, signature);\n return signatureBytes;\n}\nconst debug = initDebug('tokenizer:inflate');\nconst syncBufferSize = 256 * 1024;\nconst ddSignatureArray = signatureToArray(Signature.DataDescriptor);\nconst eocdSignatureBytes = signatureToArray(Signature.EndOfCentralDirectory);\nexport class ZipHandler {\n constructor(tokenizer) {\n this.tokenizer = tokenizer;\n this.syncBuffer = new Uint8Array(syncBufferSize);\n }\n async isZip() {\n return await this.peekSignature() === Signature.LocalFileHeader;\n }\n peekSignature() {\n return this.tokenizer.peekToken(UINT32_LE);\n }\n async findEndOfCentralDirectoryLocator() {\n const randomReadTokenizer = this.tokenizer;\n const chunkLength = Math.min(16 * 1024, randomReadTokenizer.fileInfo.size);\n const buffer = this.syncBuffer.subarray(0, chunkLength);\n await this.tokenizer.readBuffer(buffer, { position: randomReadTokenizer.fileInfo.size - chunkLength });\n // Search the buffer from end to beginning for EOCD signature\n // const signature = 0x06054b50;\n for (let i = buffer.length - 4; i >= 0; i--) {\n // Compare 4 bytes directly without calling readUInt32LE\n if (buffer[i] === eocdSignatureBytes[0] &&\n buffer[i + 1] === eocdSignatureBytes[1] &&\n buffer[i + 2] === eocdSignatureBytes[2] &&\n buffer[i + 3] === eocdSignatureBytes[3]) {\n return randomReadTokenizer.fileInfo.size - chunkLength + i;\n }\n }\n return -1;\n }\n async readCentralDirectory() {\n if (!this.tokenizer.supportsRandomAccess()) {\n debug('Cannot reading central-directory without random-read support');\n return;\n }\n debug('Reading central-directory...');\n const pos = this.tokenizer.position;\n const offset = await this.findEndOfCentralDirectoryLocator();\n if (offset > 0) {\n debug('Central-directory 32-bit signature found');\n const eocdHeader = await this.tokenizer.readToken(EndOfCentralDirectoryRecordToken, offset);\n const files = [];\n this.tokenizer.setPosition(eocdHeader.offsetOfStartOfCd);\n for (let n = 0; n < eocdHeader.nrOfEntriesOfSize; ++n) {\n const entry = await this.tokenizer.readToken(FileHeader);\n if (entry.signature !== Signature.CentralFileHeader) {\n throw new Error('Expected Central-File-Header signature');\n }\n entry.filename = await this.tokenizer.readToken(new StringType(entry.filenameLength, 'utf-8'));\n await this.tokenizer.ignore(entry.extraFieldLength);\n await this.tokenizer.ignore(entry.fileCommentLength);\n files.push(entry);\n debug(`Add central-directory file-entry: n=${n + 1}/${files.length}: filename=${files[n].filename}`);\n }\n this.tokenizer.setPosition(pos);\n return files;\n }\n this.tokenizer.setPosition(pos);\n }\n async unzip(fileCb) {\n const entries = await this.readCentralDirectory();\n if (entries) {\n // Use Central Directory to iterate over files\n return this.iterateOverCentralDirectory(entries, fileCb);\n }\n // Scan Zip files for local-file-header\n let stop = false;\n do {\n const zipHeader = await this.readLocalFileHeader();\n if (!zipHeader)\n break;\n const next = fileCb(zipHeader);\n stop = !!next.stop;\n let fileData;\n await this.tokenizer.ignore(zipHeader.extraFieldLength);\n if (zipHeader.dataDescriptor && zipHeader.compressedSize === 0) {\n const chunks = [];\n let len = syncBufferSize;\n debug('Compressed-file-size unknown, scanning for next data-descriptor-signature....');\n let nextHeaderIndex = -1;\n while (nextHeaderIndex < 0 && len === syncBufferSize) {\n len = await this.tokenizer.peekBuffer(this.syncBuffer, { mayBeLess: true });\n nextHeaderIndex = indexOf(this.syncBuffer.subarray(0, len), ddSignatureArray);\n const size = nextHeaderIndex >= 0 ? nextHeaderIndex : len;\n if (next.handler) {\n const data = new Uint8Array(size);\n await this.tokenizer.readBuffer(data);\n chunks.push(data);\n }\n else {\n // Move position to the next header if found, skip the whole buffer otherwise\n await this.tokenizer.ignore(size);\n }\n }\n debug(`Found data-descriptor-signature at pos=${this.tokenizer.position}`);\n if (next.handler) {\n await this.inflate(zipHeader, mergeArrays(chunks), next.handler);\n }\n }\n else {\n if (next.handler) {\n debug(`Reading compressed-file-data: ${zipHeader.compressedSize} bytes`);\n fileData = new Uint8Array(zipHeader.compressedSize);\n await this.tokenizer.readBuffer(fileData);\n await this.inflate(zipHeader, fileData, next.handler);\n }\n else {\n debug(`Ignoring compressed-file-data: ${zipHeader.compressedSize} bytes`);\n await this.tokenizer.ignore(zipHeader.compressedSize);\n }\n }\n debug(`Reading data-descriptor at pos=${this.tokenizer.position}`);\n if (zipHeader.dataDescriptor) {\n // await this.tokenizer.ignore(DataDescriptor.len);\n const dataDescriptor = await this.tokenizer.readToken(DataDescriptor);\n if (dataDescriptor.signature !== 0x08074b50) {\n throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position - DataDescriptor.len}`);\n }\n }\n } while (!stop);\n }\n async iterateOverCentralDirectory(entries, fileCb) {\n for (const fileHeader of entries) {\n const next = fileCb(fileHeader);\n if (next.handler) {\n this.tokenizer.setPosition(fileHeader.relativeOffsetOfLocalHeader);\n const zipHeader = await this.readLocalFileHeader();\n if (zipHeader) {\n await this.tokenizer.ignore(zipHeader.extraFieldLength);\n const fileData = new Uint8Array(fileHeader.compressedSize);\n await this.tokenizer.readBuffer(fileData);\n await this.inflate(zipHeader, fileData, next.handler);\n }\n }\n if (next.stop)\n break;\n }\n }\n async inflate(zipHeader, fileData, cb) {\n if (zipHeader.compressedMethod === 0) {\n // Stored (uncompressed)\n return cb(fileData);\n }\n if (zipHeader.compressedMethod !== 8) {\n throw new Error(`Unsupported ZIP compression method: ${zipHeader.compressedMethod}`);\n }\n debug(`Decompress filename=${zipHeader.filename}, compressed-size=${fileData.length}`);\n const uncompressedData = await ZipHandler.decompressDeflateRaw(fileData);\n return cb(uncompressedData);\n }\n static async decompressDeflateRaw(data) {\n // Wrap Uint8Array in a ReadableStream without copying\n const input = new ReadableStream({\n start(controller) {\n controller.enqueue(data);\n controller.close();\n }\n });\n const ds = new DecompressionStream(\"deflate-raw\");\n const output = input.pipeThrough(ds);\n try {\n // Collect decompressed bytes from the output stream\n const response = new Response(output);\n const buffer = await response.arrayBuffer();\n return new Uint8Array(buffer);\n }\n catch (err) {\n // Provide ZIP-specific error context\n const message = err instanceof Error\n ? `Failed to deflate ZIP entry: ${err.message}`\n : \"Unknown decompression error in ZIP entry\";\n throw new TypeError(message);\n }\n }\n async readLocalFileHeader() {\n const signature = await this.tokenizer.peekToken(UINT32_LE);\n if (signature === Signature.LocalFileHeader) {\n const header = await this.tokenizer.readToken(LocalFileHeaderToken);\n header.filename = await this.tokenizer.readToken(new StringType(header.filenameLength, 'utf-8'));\n return header;\n }\n if (signature === Signature.CentralFileHeader) {\n return false;\n }\n if (signature === 0xE011CFD0) {\n throw new Error('Encrypted ZIP');\n }\n throw new Error('Unexpected signature');\n }\n}\nfunction indexOf(buffer, portion) {\n const bufferLength = buffer.length;\n const portionLength = portion.length;\n // Return -1 if the portion is longer than the buffer\n if (portionLength > bufferLength)\n return -1;\n // Search for the portion in the buffer\n for (let i = 0; i <= bufferLength - portionLength; i++) {\n let found = true;\n for (let j = 0; j < portionLength; j++) {\n if (buffer[i + j] !== portion[j]) {\n found = false;\n break;\n }\n }\n if (found) {\n return i; // Return the starting offset\n }\n }\n return -1; // Not found\n}\nfunction mergeArrays(chunks) {\n // Concatenate chunks into a single Uint8Array\n const totalLength = chunks.reduce((acc, curr) => acc + curr.length, 0);\n const mergedArray = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n mergedArray.set(chunk, offset);\n offset += chunk.length;\n }\n return mergedArray;\n}\n","/**\n * Ref https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT\n */\nimport { UINT16_LE, UINT32_LE } from \"token-types\";\nexport const Signature = {\n LocalFileHeader: 0x04034b50,\n DataDescriptor: 0x08074b50,\n CentralFileHeader: 0x02014b50,\n EndOfCentralDirectory: 0x06054b50\n};\nexport const DataDescriptor = {\n get(array) {\n return {\n signature: UINT32_LE.get(array, 0),\n compressedSize: UINT32_LE.get(array, 8),\n uncompressedSize: UINT32_LE.get(array, 12),\n };\n }, len: 16\n};\n/**\n * First part of the ZIP Local File Header\n * Offset | Bytes| Description\n * -------|------+-------------------------------------------------------------------\n * 0 | 4 | Signature (0x04034b50)\n * 4 | 2 | Minimum version needed to extract\n * 6 | 2 | Bit flag\n * 8 | 2 | Compression method\n * 10 | 2 | File last modification time (MS-DOS format)\n * 12 | 2 | File last modification date (MS-DOS format)\n * 14 | 4 | CRC-32 of uncompressed data\n * 18 | 4 | Compressed size\n * 22 | 4 | Uncompressed size\n * 26 | 2 | File name length (n)\n * 28 | 2 | Extra field length (m)\n * 30 | n | File name\n * 30 + n | m | Extra field\n */\nexport const LocalFileHeaderToken = {\n get(array) {\n const flags = UINT16_LE.get(array, 6);\n return {\n signature: UINT32_LE.get(array, 0),\n minVersion: UINT16_LE.get(array, 4),\n dataDescriptor: !!(flags & 0x0008),\n compressedMethod: UINT16_LE.get(array, 8),\n compressedSize: UINT32_LE.get(array, 18),\n uncompressedSize: UINT32_LE.get(array, 22),\n filenameLength: UINT16_LE.get(array, 26),\n extraFieldLength: UINT16_LE.get(array, 28),\n filename: null\n };\n }, len: 30\n};\n/**\n * 4.3.16 End of central directory record:\n * end of central dir signature (0x06064b50) 4 bytes\n * number of this disk 2 bytes\n * number of the disk with the start of the central directory 2 bytes\n * total number of entries in the central directory on this disk 2 bytes\n * total number of entries in the size of the central directory 2 bytes\n * sizeOfTheCentralDirectory 4 bytes\n * offset of start of central directory with respect to the starting disk number 4 bytes\n * .ZIP file comment length 2 bytes\n * .ZIP file comment (variable size)\n */\nexport const EndOfCentralDirectoryRecordToken = {\n get(array) {\n return {\n signature: UINT32_LE.get(array, 0),\n nrOfThisDisk: UINT16_LE.get(array, 4),\n nrOfThisDiskWithTheStart: UINT16_LE.get(array, 6),\n nrOfEntriesOnThisDisk: UINT16_LE.get(array, 8),\n nrOfEntriesOfSize: UINT16_LE.get(array, 10),\n sizeOfCd: UINT32_LE.get(array, 12),\n offsetOfStartOfCd: UINT32_LE.get(array, 16),\n zipFileCommentLength: UINT16_LE.get(array, 20),\n };\n }, len: 22\n};\n/**\n * File header:\n * central file header signature 4 bytes 0 (0x02014b50)\n * version made by 2 bytes 4\n * version needed to extract 2 bytes 6\n * general purpose bit flag 2 bytes 8\n * compression method 2 bytes 10\n * last mod file time 2 bytes 12\n * last mod file date 2 bytes 14\n * crc-32 4 bytes 16\n * compressed size 4 bytes 20\n * uncompressed size 4 bytes 24\n * file name length 2 bytes 28\n * extra field length 2 bytes 30\n * file comment length 2 bytes 32\n * disk number start 2 bytes 34\n * internal file attributes 2 bytes 36\n * external file attributes 4 bytes 38\n * relative offset of local header 4 bytes 42\n */\nexport const FileHeader = {\n get(array) {\n const flags = UINT16_LE.get(array, 8);\n return {\n signature: UINT32_LE.get(array, 0),\n minVersion: UINT16_LE.get(array, 6),\n dataDescriptor: !!(flags & 0x0008),\n compressedMethod: UINT16_LE.get(array, 10),\n compressedSize: UINT32_LE.get(array, 20),\n uncompressedSize: UINT32_LE.get(array, 24),\n filenameLength: UINT16_LE.get(array, 28),\n extraFieldLength: UINT16_LE.get(array, 30),\n fileCommentLength: UINT16_LE.get(array, 32),\n relativeOffsetOfLocalHeader: UINT32_LE.get(array, 42),\n filename: null\n };\n }, len: 46\n};\n","export class GzipHandler {\n constructor(tokenizer) {\n this.tokenizer = tokenizer;\n }\n inflate() {\n const tokenizer = this.tokenizer;\n return new ReadableStream({\n async pull(controller) {\n const buffer = new Uint8Array(1024);\n const size = await tokenizer.readBuffer(buffer, { mayBeLess: true });\n if (size === 0) {\n controller.close();\n return;\n }\n controller.enqueue(buffer.subarray(0, size));\n }\n }).pipeThrough(new DecompressionStream(\"gzip\"));\n }\n}\n","import {StringType} from 'token-types';\n\nexport function stringToBytes(string, encoding) {\n\tif (encoding === 'utf-16le') {\n\t\tconst bytes = [];\n\t\tfor (let index = 0; index < string.length; index++) {\n\t\t\tconst code = string.charCodeAt(index); // eslint-disable-line unicorn/prefer-code-point\n\t\t\tbytes.push(code & 0xFF, (code >> 8) & 0xFF); // High byte\n\t\t}\n\n\t\treturn bytes;\n\t}\n\n\tif (encoding === 'utf-16be') {\n\t\tconst bytes = [];\n\t\tfor (let index = 0; index < string.length; index++) {\n\t\t\tconst code = string.charCodeAt(index); // eslint-disable-line unicorn/prefer-code-point\n\t\t\tbytes.push((code >> 8) & 0xFF, code & 0xFF); // Low byte\n\t\t}\n\n\t\treturn bytes;\n\t}\n\n\treturn [...string].map(character => character.charCodeAt(0)); // eslint-disable-line unicorn/prefer-code-point\n}\n\n/**\nChecks whether the TAR checksum is valid.\n\n@param {Uint8Array} arrayBuffer - The TAR header `[offset ... offset + 512]`.\n@param {number} offset - TAR header offset.\n@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`.\n*/\nexport function tarHeaderChecksumMatches(arrayBuffer, offset = 0) {\n\tconst readSum = Number.parseInt(new StringType(6).get(arrayBuffer, 148).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n\tif (Number.isNaN(readSum)) {\n\t\treturn false;\n\t}\n\n\tlet sum = 8 * 0x20; // Initialize signed bit sum\n\n\tfor (let index = offset; index < offset + 148; index++) {\n\t\tsum += arrayBuffer[index];\n\t}\n\n\tfor (let index = offset + 156; index < offset + 512; index++) {\n\t\tsum += arrayBuffer[index];\n\t}\n\n\treturn readSum === sum;\n}\n\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nexport const uint32SyncSafeToken = {\n\tget: (buffer, offset) => (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21),\n\tlen: 4,\n};\n","export const extensions = [\n\t'jpg',\n\t'png',\n\t'apng',\n\t'gif',\n\t'webp',\n\t'flif',\n\t'xcf',\n\t'cr2',\n\t'cr3',\n\t'orf',\n\t'arw',\n\t'dng',\n\t'nef',\n\t'rw2',\n\t'raf',\n\t'tif',\n\t'bmp',\n\t'icns',\n\t'jxr',\n\t'psd',\n\t'indd',\n\t'zip',\n\t'tar',\n\t'rar',\n\t'gz',\n\t'bz2',\n\t'7z',\n\t'dmg',\n\t'mp4',\n\t'mid',\n\t'mkv',\n\t'webm',\n\t'mov',\n\t'avi',\n\t'mpg',\n\t'mp2',\n\t'mp3',\n\t'm4a',\n\t'oga',\n\t'ogg',\n\t'ogv',\n\t'opus',\n\t'flac',\n\t'wav',\n\t'spx',\n\t'amr',\n\t'pdf',\n\t'epub',\n\t'elf',\n\t'macho',\n\t'exe',\n\t'swf',\n\t'rtf',\n\t'wasm',\n\t'woff',\n\t'woff2',\n\t'eot',\n\t'ttf',\n\t'otf',\n\t'ttc',\n\t'ico',\n\t'flv',\n\t'ps',\n\t'xz',\n\t'sqlite',\n\t'nes',\n\t'crx',\n\t'xpi',\n\t'cab',\n\t'deb',\n\t'ar',\n\t'rpm',\n\t'Z',\n\t'lz',\n\t'cfb',\n\t'mxf',\n\t'mts',\n\t'blend',\n\t'bpg',\n\t'docx',\n\t'pptx',\n\t'xlsx',\n\t'3gp',\n\t'3g2',\n\t'j2c',\n\t'jp2',\n\t'jpm',\n\t'jpx',\n\t'mj2',\n\t'aif',\n\t'qcp',\n\t'odt',\n\t'ods',\n\t'odp',\n\t'xml',\n\t'mobi',\n\t'heic',\n\t'cur',\n\t'ktx',\n\t'ape',\n\t'wv',\n\t'dcm',\n\t'ics',\n\t'glb',\n\t'pcap',\n\t'dsf',\n\t'lnk',\n\t'alias',\n\t'voc',\n\t'ac3',\n\t'm4v',\n\t'm4p',\n\t'm4b',\n\t'f4v',\n\t'f4p',\n\t'f4b',\n\t'f4a',\n\t'mie',\n\t'asf',\n\t'ogm',\n\t'ogx',\n\t'mpc',\n\t'arrow',\n\t'shp',\n\t'aac',\n\t'mp1',\n\t'it',\n\t's3m',\n\t'xm',\n\t'skp',\n\t'avif',\n\t'eps',\n\t'lzh',\n\t'pgp',\n\t'asar',\n\t'stl',\n\t'chm',\n\t'3mf',\n\t'zst',\n\t'jxl',\n\t'vcf',\n\t'jls',\n\t'pst',\n\t'dwg',\n\t'parquet',\n\t'class',\n\t'arj',\n\t'cpio',\n\t'ace',\n\t'avro',\n\t'icc',\n\t'fbx',\n\t'vsdx',\n\t'vtt',\n\t'apk',\n\t'drc',\n\t'lz4',\n\t'potx',\n\t'xltx',\n\t'dotx',\n\t'xltm',\n\t'ott',\n\t'ots',\n\t'otp',\n\t'odg',\n\t'otg',\n\t'xlsm',\n\t'docm',\n\t'dotm',\n\t'potm',\n\t'pptm',\n\t'jar',\n\t'jmp',\n\t'rm',\n\t'sav',\n\t'ppsm',\n\t'ppsx',\n\t'tar.gz',\n\t'reg',\n\t'dat',\n];\n\nexport const mimeTypes = [\n\t'image/jpeg',\n\t'image/png',\n\t'image/gif',\n\t'image/webp',\n\t'image/flif',\n\t'image/x-xcf',\n\t'image/x-canon-cr2',\n\t'image/x-canon-cr3',\n\t'image/tiff',\n\t'image/bmp',\n\t'image/vnd.ms-photo',\n\t'image/vnd.adobe.photoshop',\n\t'application/x-indesign',\n\t'application/epub+zip',\n\t'application/x-xpinstall',\n\t'application/vnd.ms-powerpoint.slideshow.macroenabled.12',\n\t'application/vnd.oasis.opendocument.text',\n\t'application/vnd.oasis.opendocument.spreadsheet',\n\t'application/vnd.oasis.opendocument.presentation',\n\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n\t'application/zip',\n\t'application/x-tar',\n\t'application/x-rar-compressed',\n\t'application/gzip',\n\t'application/x-bzip2',\n\t'application/x-7z-compressed',\n\t'application/x-apple-diskimage',\n\t'application/vnd.apache.arrow.file',\n\t'video/mp4',\n\t'audio/midi',\n\t'video/matroska',\n\t'video/webm',\n\t'video/quicktime',\n\t'video/vnd.avi',\n\t'audio/wav',\n\t'audio/qcelp',\n\t'audio/x-ms-asf',\n\t'video/x-ms-asf',\n\t'application/vnd.ms-asf',\n\t'video/mpeg',\n\t'video/3gpp',\n\t'audio/mpeg',\n\t'audio/mp4', // RFC 4337\n\t'video/ogg',\n\t'audio/ogg',\n\t'audio/ogg; codecs=opus',\n\t'application/ogg',\n\t'audio/flac',\n\t'audio/ape',\n\t'audio/wavpack',\n\t'audio/amr',\n\t'application/pdf',\n\t'application/x-elf',\n\t'application/x-mach-binary',\n\t'application/x-msdownload',\n\t'application/x-shockwave-flash',\n\t'application/rtf',\n\t'application/wasm',\n\t'font/woff',\n\t'font/woff2',\n\t'application/vnd.ms-fontobject',\n\t'font/ttf',\n\t'font/otf',\n\t'font/collection',\n\t'image/x-icon',\n\t'video/x-flv',\n\t'application/postscript',\n\t'application/eps',\n\t'application/x-xz',\n\t'application/x-sqlite3',\n\t'application/x-nintendo-nes-rom',\n\t'application/x-google-chrome-extension',\n\t'application/vnd.ms-cab-compressed',\n\t'application/x-deb',\n\t'application/x-unix-archive',\n\t'application/x-rpm',\n\t'application/x-compress',\n\t'application/x-lzip',\n\t'application/x-cfb',\n\t'application/x-mie',\n\t'application/mxf',\n\t'video/mp2t',\n\t'application/x-blender',\n\t'image/bpg',\n\t'image/j2c',\n\t'image/jp2',\n\t'image/jpx',\n\t'image/jpm',\n\t'image/mj2',\n\t'audio/aiff',\n\t'application/xml',\n\t'application/x-mobipocket-ebook',\n\t'image/heif',\n\t'image/heif-sequence',\n\t'image/heic',\n\t'image/heic-sequence',\n\t'image/icns',\n\t'image/ktx',\n\t'application/dicom',\n\t'audio/x-musepack',\n\t'text/calendar',\n\t'text/vcard',\n\t'text/vtt',\n\t'model/gltf-binary',\n\t'application/vnd.tcpdump.pcap',\n\t'audio/x-dsf', // Non-standard\n\t'application/x.ms.shortcut', // Invented by us\n\t'application/x.apple.alias', // Invented by us\n\t'audio/x-voc',\n\t'audio/vnd.dolby.dd-raw',\n\t'audio/x-m4a',\n\t'image/apng',\n\t'image/x-olympus-orf',\n\t'image/x-sony-arw',\n\t'image/x-adobe-dng',\n\t'image/x-nikon-nef',\n\t'image/x-panasonic-rw2',\n\t'image/x-fujifilm-raf',\n\t'video/x-m4v',\n\t'video/3gpp2',\n\t'application/x-esri-shape',\n\t'audio/aac',\n\t'audio/x-it',\n\t'audio/x-s3m',\n\t'audio/x-xm',\n\t'video/MP1S',\n\t'video/MP2P',\n\t'application/vnd.sketchup.skp',\n\t'image/avif',\n\t'application/x-lzh-compressed',\n\t'application/pgp-encrypted',\n\t'application/x-asar',\n\t'model/stl',\n\t'application/vnd.ms-htmlhelp',\n\t'model/3mf',\n\t'image/jxl',\n\t'application/zstd',\n\t'image/jls',\n\t'application/vnd.ms-outlook',\n\t'image/vnd.dwg',\n\t'application/vnd.apache.parquet',\n\t'application/java-vm',\n\t'application/x-arj',\n\t'application/x-cpio',\n\t'application/x-ace-compressed',\n\t'application/avro',\n\t'application/vnd.iccprofile',\n\t'application/x.autodesk.fbx', // Invented by us\n\t'application/vnd.visio',\n\t'application/vnd.android.package-archive',\n\t'application/vnd.google.draco', // Invented by us\n\t'application/x-lz4', // Invented by us\n\t'application/vnd.openxmlformats-officedocument.presentationml.template',\n\t'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n\t'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n\t'application/vnd.ms-excel.template.macroenabled.12',\n\t'application/vnd.oasis.opendocument.text-template',\n\t'application/vnd.oasis.opendocument.spreadsheet-template',\n\t'application/vnd.oasis.opendocument.presentation-template',\n\t'application/vnd.oasis.opendocument.graphics',\n\t'application/vnd.oasis.opendocument.graphics-template',\n\t'application/vnd.ms-excel.sheet.macroenabled.12',\n\t'application/vnd.ms-word.document.macroenabled.12',\n\t'application/vnd.ms-word.template.macroenabled.12',\n\t'application/vnd.ms-powerpoint.template.macroenabled.12',\n\t'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n\t'application/java-archive',\n\t'application/vnd.rn-realmedia',\n\t'application/x-spss-sav',\n\t'application/x-ms-regedit',\n\t'application/x-ft-windows-registry-hive',\n\t'application/x-jmp-data',\n];\n","/**\nPrimary entry point, Node.js specific entry point is index.js\n*/\n\nimport * as Token from 'token-types';\nimport * as strtok3 from 'strtok3/core';\nimport {ZipHandler, GzipHandler} from '@tokenizer/inflate';\nimport {getUintBE} from 'uint8array-extras';\nimport {\n\tstringToBytes,\n\ttarHeaderChecksumMatches,\n\tuint32SyncSafeToken,\n} from './util.js';\nimport {extensions, mimeTypes} from './supported.js';\n\nexport const reasonableDetectionSizeInBytes = 4100; // A fair amount of file-types are detectable within this range.\n// Keep defensive limits small enough to avoid accidental memory spikes from untrusted inputs.\nconst maximumMpegOffsetTolerance = reasonableDetectionSizeInBytes - 2;\nconst maximumZipEntrySizeInBytes = 1024 * 1024;\nconst maximumZipEntryCount = 1024;\nconst maximumZipBufferedReadSizeInBytes = (2 ** 31) - 1;\nconst maximumUntrustedSkipSizeInBytes = 16 * 1024 * 1024;\nconst maximumUnknownSizePayloadProbeSizeInBytes = maximumZipEntrySizeInBytes;\nconst maximumZipTextEntrySizeInBytes = maximumZipEntrySizeInBytes;\nconst maximumNestedGzipDetectionSizeInBytes = maximumUntrustedSkipSizeInBytes;\nconst maximumNestedGzipProbeDepth = 1;\nconst unknownSizeGzipProbeTimeoutInMilliseconds = 100;\nconst maximumId3HeaderSizeInBytes = maximumUntrustedSkipSizeInBytes;\nconst maximumEbmlDocumentTypeSizeInBytes = 64;\nconst maximumEbmlElementPayloadSizeInBytes = maximumUnknownSizePayloadProbeSizeInBytes;\nconst maximumEbmlElementCount = 256;\nconst maximumPngChunkCount = 512;\nconst maximumPngStreamScanBudgetInBytes = maximumUntrustedSkipSizeInBytes;\nconst maximumAsfHeaderObjectCount = 512;\nconst maximumTiffTagCount = 512;\nconst maximumDetectionReentryCount = 256;\nconst maximumPngChunkSizeInBytes = maximumUnknownSizePayloadProbeSizeInBytes;\nconst maximumAsfHeaderPayloadSizeInBytes = maximumUnknownSizePayloadProbeSizeInBytes;\nconst maximumTiffStreamIfdOffsetInBytes = maximumUnknownSizePayloadProbeSizeInBytes;\nconst maximumTiffIfdOffsetInBytes = maximumUntrustedSkipSizeInBytes;\nconst recoverableZipErrorMessages = new Set([\n\t'Unexpected signature',\n\t'Encrypted ZIP',\n\t'Expected Central-File-Header signature',\n]);\nconst recoverableZipErrorMessagePrefixes = [\n\t'ZIP entry count exceeds ',\n\t'Unsupported ZIP compression method:',\n\t'ZIP entry compressed data exceeds ',\n\t'ZIP entry decompressed data exceeds ',\n\t'Expected data-descriptor-signature at position ',\n];\nconst recoverableZipErrorCodes = new Set([\n\t'Z_BUF_ERROR',\n\t'Z_DATA_ERROR',\n\t'ERR_INVALID_STATE',\n]);\n\nclass ParserHardLimitError extends Error {}\n\nfunction patchWebByobTokenizerClose(tokenizer) {\n\tconst streamReader = tokenizer?.streamReader;\n\tif (streamReader?.constructor?.name !== 'WebStreamByobReader') {\n\t\treturn tokenizer;\n\t}\n\n\tconst {reader} = streamReader;\n\tconst cancelAndRelease = async () => {\n\t\tawait reader.cancel();\n\t\treader.releaseLock();\n\t};\n\n\tstreamReader.close = cancelAndRelease;\n\tstreamReader.abort = async () => {\n\t\tstreamReader.interrupted = true;\n\t\tawait cancelAndRelease();\n\t};\n\n\treturn tokenizer;\n}\n\nfunction getSafeBound(value, maximum, reason) {\n\tif (\n\t\t!Number.isFinite(value)\n\t\t|| value < 0\n\t\t|| value > maximum\n\t) {\n\t\tthrow new ParserHardLimitError(`${reason} has invalid size ${value} (maximum ${maximum} bytes)`);\n\t}\n\n\treturn value;\n}\n\nasync function safeIgnore(tokenizer, length, {maximumLength = maximumUntrustedSkipSizeInBytes, reason = 'skip'} = {}) {\n\tconst safeLength = getSafeBound(length, maximumLength, reason);\n\tawait tokenizer.ignore(safeLength);\n}\n\nasync function safeReadBuffer(tokenizer, buffer, options, {maximumLength = buffer.length, reason = 'read'} = {}) {\n\tconst length = options?.length ?? buffer.length;\n\tconst safeLength = getSafeBound(length, maximumLength, reason);\n\treturn tokenizer.readBuffer(buffer, {\n\t\t...options,\n\t\tlength: safeLength,\n\t});\n}\n\nasync function decompressDeflateRawWithLimit(data, {maximumLength = maximumZipEntrySizeInBytes} = {}) {\n\tconst input = new ReadableStream({\n\t\tstart(controller) {\n\t\t\tcontroller.enqueue(data);\n\t\t\tcontroller.close();\n\t\t},\n\t});\n\tconst output = input.pipeThrough(new DecompressionStream('deflate-raw'));\n\tconst reader = output.getReader();\n\tconst chunks = [];\n\tlet totalLength = 0;\n\n\ttry {\n\t\tfor (;;) {\n\t\t\tconst {done, value} = await reader.read();\n\t\t\tif (done) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\ttotalLength += value.length;\n\t\t\tif (totalLength > maximumLength) {\n\t\t\t\tawait reader.cancel();\n\t\t\t\tthrow new Error(`ZIP entry decompressed data exceeds ${maximumLength} bytes`);\n\t\t\t}\n\n\t\t\tchunks.push(value);\n\t\t}\n\t} finally {\n\t\treader.releaseLock();\n\t}\n\n\tconst uncompressedData = new Uint8Array(totalLength);\n\tlet offset = 0;\n\tfor (const chunk of chunks) {\n\t\tuncompressedData.set(chunk, offset);\n\t\toffset += chunk.length;\n\t}\n\n\treturn uncompressedData;\n}\n\nconst zipDataDescriptorSignature = 0x08_07_4B_50;\nconst zipDataDescriptorLengthInBytes = 16;\nconst zipDataDescriptorOverlapLengthInBytes = zipDataDescriptorLengthInBytes - 1;\n\nfunction findZipDataDescriptorOffset(buffer, bytesConsumed) {\n\tif (buffer.length < zipDataDescriptorLengthInBytes) {\n\t\treturn -1;\n\t}\n\n\tconst lastPossibleDescriptorOffset = buffer.length - zipDataDescriptorLengthInBytes;\n\tfor (let index = 0; index <= lastPossibleDescriptorOffset; index++) {\n\t\tif (\n\t\t\tToken.UINT32_LE.get(buffer, index) === zipDataDescriptorSignature\n\t\t\t&& Token.UINT32_LE.get(buffer, index + 8) === bytesConsumed + index\n\t\t) {\n\t\t\treturn index;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\nfunction isPngAncillaryChunk(type) {\n\treturn (type.codePointAt(0) & 0x20) !== 0;\n}\n\nfunction mergeByteChunks(chunks, totalLength) {\n\tconst merged = new Uint8Array(totalLength);\n\tlet offset = 0;\n\n\tfor (const chunk of chunks) {\n\t\tmerged.set(chunk, offset);\n\t\toffset += chunk.length;\n\t}\n\n\treturn merged;\n}\n\nasync function readZipDataDescriptorEntryWithLimit(zipHandler, {shouldBuffer, maximumLength = maximumZipEntrySizeInBytes} = {}) {\n\tconst {syncBuffer} = zipHandler;\n\tconst {length: syncBufferLength} = syncBuffer;\n\tconst chunks = [];\n\tlet bytesConsumed = 0;\n\n\tfor (;;) {\n\t\tconst length = await zipHandler.tokenizer.peekBuffer(syncBuffer, {mayBeLess: true});\n\t\tconst dataDescriptorOffset = findZipDataDescriptorOffset(syncBuffer.subarray(0, length), bytesConsumed);\n\t\tconst retainedLength = dataDescriptorOffset >= 0\n\t\t\t? 0\n\t\t\t: (\n\t\t\t\tlength === syncBufferLength\n\t\t\t\t\t? Math.min(zipDataDescriptorOverlapLengthInBytes, length - 1)\n\t\t\t\t\t: 0\n\t\t\t);\n\t\tconst chunkLength = dataDescriptorOffset >= 0 ? dataDescriptorOffset : length - retainedLength;\n\n\t\tif (chunkLength === 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tbytesConsumed += chunkLength;\n\t\tif (bytesConsumed > maximumLength) {\n\t\t\tthrow new Error(`ZIP entry compressed data exceeds ${maximumLength} bytes`);\n\t\t}\n\n\t\tif (shouldBuffer) {\n\t\t\tconst data = new Uint8Array(chunkLength);\n\t\t\tawait zipHandler.tokenizer.readBuffer(data);\n\t\t\tchunks.push(data);\n\t\t} else {\n\t\t\tawait zipHandler.tokenizer.ignore(chunkLength);\n\t\t}\n\n\t\tif (dataDescriptorOffset >= 0) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!hasUnknownFileSize(zipHandler.tokenizer)) {\n\t\tzipHandler.knownSizeDescriptorScannedBytes += bytesConsumed;\n\t}\n\n\tif (!shouldBuffer) {\n\t\treturn;\n\t}\n\n\treturn mergeByteChunks(chunks, bytesConsumed);\n}\n\nfunction getRemainingZipScanBudget(zipHandler, startOffset) {\n\tif (hasUnknownFileSize(zipHandler.tokenizer)) {\n\t\treturn Math.max(0, maximumUntrustedSkipSizeInBytes - (zipHandler.tokenizer.position - startOffset));\n\t}\n\n\treturn Math.max(0, maximumZipEntrySizeInBytes - zipHandler.knownSizeDescriptorScannedBytes);\n}\n\nasync function readZipEntryData(zipHandler, zipHeader, {shouldBuffer, maximumDescriptorLength = maximumZipEntrySizeInBytes} = {}) {\n\tif (\n\t\tzipHeader.dataDescriptor\n\t\t&& zipHeader.compressedSize === 0\n\t) {\n\t\treturn readZipDataDescriptorEntryWithLimit(zipHandler, {\n\t\t\tshouldBuffer,\n\t\t\tmaximumLength: maximumDescriptorLength,\n\t\t});\n\t}\n\n\tif (!shouldBuffer) {\n\t\tawait safeIgnore(zipHandler.tokenizer, zipHeader.compressedSize, {\n\t\t\tmaximumLength: hasUnknownFileSize(zipHandler.tokenizer) ? maximumZipEntrySizeInBytes : zipHandler.tokenizer.fileInfo.size,\n\t\t\treason: 'ZIP entry compressed data',\n\t\t});\n\t\treturn;\n\t}\n\n\tconst maximumLength = getMaximumZipBufferedReadLength(zipHandler.tokenizer);\n\tif (\n\t\t!Number.isFinite(zipHeader.compressedSize)\n\t\t|| zipHeader.compressedSize < 0\n\t\t|| zipHeader.compressedSize > maximumLength\n\t) {\n\t\tthrow new Error(`ZIP entry compressed data exceeds ${maximumLength} bytes`);\n\t}\n\n\tconst fileData = new Uint8Array(zipHeader.compressedSize);\n\tawait zipHandler.tokenizer.readBuffer(fileData);\n\treturn fileData;\n}\n\n// Override the default inflate to enforce decompression size limits, since @tokenizer/inflate does not expose a configuration hook for this.\nZipHandler.prototype.inflate = async function (zipHeader, fileData, callback) {\n\tif (zipHeader.compressedMethod === 0) {\n\t\treturn callback(fileData);\n\t}\n\n\tif (zipHeader.compressedMethod !== 8) {\n\t\tthrow new Error(`Unsupported ZIP compression method: ${zipHeader.compressedMethod}`);\n\t}\n\n\tconst uncompressedData = await decompressDeflateRawWithLimit(fileData, {maximumLength: maximumZipEntrySizeInBytes});\n\treturn callback(uncompressedData);\n};\n\nZipHandler.prototype.unzip = async function (fileCallback) {\n\tlet stop = false;\n\tlet zipEntryCount = 0;\n\tconst zipScanStart = this.tokenizer.position;\n\tthis.knownSizeDescriptorScannedBytes = 0;\n\tdo {\n\t\tif (hasExceededUnknownSizeScanBudget(this.tokenizer, zipScanStart, maximumUntrustedSkipSizeInBytes)) {\n\t\t\tthrow new ParserHardLimitError(`ZIP stream probing exceeds ${maximumUntrustedSkipSizeInBytes} bytes`);\n\t\t}\n\n\t\tconst zipHeader = await this.readLocalFileHeader();\n\t\tif (!zipHeader) {\n\t\t\tbreak;\n\t\t}\n\n\t\tzipEntryCount++;\n\t\tif (zipEntryCount > maximumZipEntryCount) {\n\t\t\tthrow new Error(`ZIP entry count exceeds ${maximumZipEntryCount}`);\n\t\t}\n\n\t\tconst next = fileCallback(zipHeader);\n\t\tstop = Boolean(next.stop);\n\t\tawait this.tokenizer.ignore(zipHeader.extraFieldLength);\n\t\tconst fileData = await readZipEntryData(this, zipHeader, {\n\t\t\tshouldBuffer: Boolean(next.handler),\n\t\t\tmaximumDescriptorLength: Math.min(maximumZipEntrySizeInBytes, getRemainingZipScanBudget(this, zipScanStart)),\n\t\t});\n\n\t\tif (next.handler) {\n\t\t\tawait this.inflate(zipHeader, fileData, next.handler);\n\t\t}\n\n\t\tif (zipHeader.dataDescriptor) {\n\t\t\tconst dataDescriptor = new Uint8Array(zipDataDescriptorLengthInBytes);\n\t\t\tawait this.tokenizer.readBuffer(dataDescriptor);\n\t\t\tif (Token.UINT32_LE.get(dataDescriptor, 0) !== zipDataDescriptorSignature) {\n\t\t\t\tthrow new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position - dataDescriptor.length}`);\n\t\t\t}\n\t\t}\n\n\t\tif (hasExceededUnknownSizeScanBudget(this.tokenizer, zipScanStart, maximumUntrustedSkipSizeInBytes)) {\n\t\t\tthrow new ParserHardLimitError(`ZIP stream probing exceeds ${maximumUntrustedSkipSizeInBytes} bytes`);\n\t\t}\n\t} while (!stop);\n};\n\nfunction createByteLimitedReadableStream(stream, maximumBytes) {\n\tconst reader = stream.getReader();\n\tlet emittedBytes = 0;\n\tlet sourceDone = false;\n\tlet sourceCanceled = false;\n\n\tconst cancelSource = async reason => {\n\t\tif (\n\t\t\tsourceDone\n\t\t\t|| sourceCanceled\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsourceCanceled = true;\n\t\tawait reader.cancel(reason);\n\t};\n\n\treturn new ReadableStream({\n\t\tasync pull(controller) {\n\t\t\tif (emittedBytes >= maximumBytes) {\n\t\t\t\tcontroller.close();\n\t\t\t\tawait cancelSource();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {done, value} = await reader.read();\n\t\t\tif (\n\t\t\t\tdone\n\t\t\t\t|| !value\n\t\t\t) {\n\t\t\t\tsourceDone = true;\n\t\t\t\tcontroller.close();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst remainingBytes = maximumBytes - emittedBytes;\n\t\t\tif (value.length > remainingBytes) {\n\t\t\t\tcontroller.enqueue(value.subarray(0, remainingBytes));\n\t\t\t\temittedBytes += remainingBytes;\n\t\t\t\tcontroller.close();\n\t\t\t\tawait cancelSource();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcontroller.enqueue(value);\n\t\t\temittedBytes += value.length;\n\t\t},\n\t\tasync cancel(reason) {\n\t\t\tawait cancelSource(reason);\n\t\t},\n\t});\n}\n\nexport async function fileTypeFromStream(stream, options) {\n\treturn new FileTypeParser(options).fromStream(stream);\n}\n\nexport async function fileTypeFromBuffer(input, options) {\n\treturn new FileTypeParser(options).fromBuffer(input);\n}\n\nexport async function fileTypeFromBlob(blob, options) {\n\treturn new FileTypeParser(options).fromBlob(blob);\n}\n\nfunction getFileTypeFromMimeType(mimeType) {\n\tmimeType = mimeType.toLowerCase();\n\tswitch (mimeType) {\n\t\tcase 'application/epub+zip':\n\t\t\treturn {\n\t\t\t\text: 'epub',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.text':\n\t\t\treturn {\n\t\t\t\text: 'odt',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.text-template':\n\t\t\treturn {\n\t\t\t\text: 'ott',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.spreadsheet':\n\t\t\treturn {\n\t\t\t\text: 'ods',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.spreadsheet-template':\n\t\t\treturn {\n\t\t\t\text: 'ots',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.presentation':\n\t\t\treturn {\n\t\t\t\text: 'odp',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.presentation-template':\n\t\t\treturn {\n\t\t\t\text: 'otp',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.graphics':\n\t\t\treturn {\n\t\t\t\text: 'odg',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.graphics-template':\n\t\t\treturn {\n\t\t\t\text: 'otg',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.slideshow':\n\t\t\treturn {\n\t\t\t\text: 'ppsx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n\t\t\treturn {\n\t\t\t\text: 'xlsx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-excel.sheet.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'xlsm',\n\t\t\t\tmime: 'application/vnd.ms-excel.sheet.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.spreadsheetml.template':\n\t\t\treturn {\n\t\t\t\text: 'xltx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-excel.template.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'xltm',\n\t\t\t\tmime: 'application/vnd.ms-excel.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.slideshow.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'ppsm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n\t\t\treturn {\n\t\t\t\text: 'docx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-word.document.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'docm',\n\t\t\t\tmime: 'application/vnd.ms-word.document.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.wordprocessingml.template':\n\t\t\treturn {\n\t\t\t\text: 'dotx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-word.template.macroenabledtemplate':\n\t\t\treturn {\n\t\t\t\text: 'dotm',\n\t\t\t\tmime: 'application/vnd.ms-word.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.template':\n\t\t\treturn {\n\t\t\t\text: 'potx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.template.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'potm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\n\t\t\treturn {\n\t\t\t\text: 'pptx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.presentation.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'pptm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.ms-visio.drawing':\n\t\t\treturn {\n\t\t\t\text: 'vsdx',\n\t\t\t\tmime: 'application/vnd.visio',\n\t\t\t};\n\t\tcase 'application/vnd.ms-package.3dmanufacturing-3dmodel+xml':\n\t\t\treturn {\n\t\t\t\text: '3mf',\n\t\t\t\tmime: 'model/3mf',\n\t\t\t};\n\t\tdefault:\n\t}\n}\n\nfunction _check(buffer, headers, options) {\n\toptions = {\n\t\toffset: 0,\n\t\t...options,\n\t};\n\n\tfor (const [index, header] of headers.entries()) {\n\t\t// If a bitmask is set\n\t\tif (options.mask) {\n\t\t\t// If header doesn't equal `buf` with bits masked off\n\t\t\tif (header !== (options.mask[index] & buffer[index + options.offset])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (header !== buffer[index + options.offset]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport function normalizeSampleSize(sampleSize) {\n\t// `sampleSize` is an explicit caller-controlled tuning knob, not untrusted file input.\n\t// Preserve valid caller-requested probe depth here; applications must bound attacker-derived option values themselves.\n\tif (!Number.isFinite(sampleSize)) {\n\t\treturn reasonableDetectionSizeInBytes;\n\t}\n\n\treturn Math.max(1, Math.trunc(sampleSize));\n}\n\nfunction readByobReaderWithSignal(reader, buffer, signal) {\n\tif (signal === undefined) {\n\t\treturn reader.read(buffer);\n\t}\n\n\tsignal.throwIfAborted();\n\n\treturn new Promise((resolve, reject) => {\n\t\tconst cleanup = () => {\n\t\t\tsignal.removeEventListener('abort', onAbort);\n\t\t};\n\n\t\tconst onAbort = () => {\n\t\t\tconst abortReason = signal.reason;\n\t\t\tcleanup();\n\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait reader.cancel(abortReason);\n\t\t\t\t} catch {}\n\t\t\t})();\n\n\t\t\treject(abortReason);\n\t\t};\n\n\t\tsignal.addEventListener('abort', onAbort, {once: true});\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tconst result = await reader.read(buffer);\n\t\t\t\tcleanup();\n\t\t\t\tresolve(result);\n\t\t\t} catch (error) {\n\t\t\t\tcleanup();\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n}\n\nfunction normalizeMpegOffsetTolerance(mpegOffsetTolerance) {\n\t// This value controls scan depth and therefore worst-case CPU work.\n\tif (!Number.isFinite(mpegOffsetTolerance)) {\n\t\treturn 0;\n\t}\n\n\treturn Math.max(0, Math.min(maximumMpegOffsetTolerance, Math.trunc(mpegOffsetTolerance)));\n}\n\nfunction getKnownFileSizeOrMaximum(fileSize) {\n\tif (!Number.isFinite(fileSize)) {\n\t\treturn Number.MAX_SAFE_INTEGER;\n\t}\n\n\treturn Math.max(0, fileSize);\n}\n\nfunction hasUnknownFileSize(tokenizer) {\n\tconst fileSize = tokenizer.fileInfo.size;\n\treturn (\n\t\t!Number.isFinite(fileSize)\n\t\t|| fileSize === Number.MAX_SAFE_INTEGER\n\t);\n}\n\nfunction hasExceededUnknownSizeScanBudget(tokenizer, startOffset, maximumBytes) {\n\treturn (\n\t\thasUnknownFileSize(tokenizer)\n\t\t&& tokenizer.position - startOffset > maximumBytes\n\t);\n}\n\nfunction getMaximumZipBufferedReadLength(tokenizer) {\n\tconst fileSize = tokenizer.fileInfo.size;\n\tconst remainingBytes = Number.isFinite(fileSize)\n\t\t? Math.max(0, fileSize - tokenizer.position)\n\t\t: Number.MAX_SAFE_INTEGER;\n\n\treturn Math.min(remainingBytes, maximumZipBufferedReadSizeInBytes);\n}\n\nfunction isRecoverableZipError(error) {\n\tif (error instanceof strtok3.EndOfStreamError) {\n\t\treturn true;\n\t}\n\n\tif (error instanceof ParserHardLimitError) {\n\t\treturn true;\n\t}\n\n\tif (!(error instanceof Error)) {\n\t\treturn false;\n\t}\n\n\tif (recoverableZipErrorMessages.has(error.message)) {\n\t\treturn true;\n\t}\n\n\tif (recoverableZipErrorCodes.has(error.code)) {\n\t\treturn true;\n\t}\n\n\tfor (const prefix of recoverableZipErrorMessagePrefixes) {\n\t\tif (error.message.startsWith(prefix)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction canReadZipEntryForDetection(zipHeader, maximumSize = maximumZipEntrySizeInBytes) {\n\tconst sizes = [zipHeader.compressedSize, zipHeader.uncompressedSize];\n\tfor (const size of sizes) {\n\t\tif (\n\t\t\t!Number.isFinite(size)\n\t\t\t|| size < 0\n\t\t\t|| size > maximumSize\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction createOpenXmlZipDetectionState() {\n\treturn {\n\t\thasContentTypesEntry: false,\n\t\thasParsedContentTypesEntry: false,\n\t\tisParsingContentTypes: false,\n\t\thasUnparseableContentTypes: false,\n\t\thasWordDirectory: false,\n\t\thasPresentationDirectory: false,\n\t\thasSpreadsheetDirectory: false,\n\t\thasThreeDimensionalModelEntry: false,\n\t};\n}\n\nfunction updateOpenXmlZipDetectionStateFromFilename(openXmlState, filename) {\n\tif (filename.startsWith('word/')) {\n\t\topenXmlState.hasWordDirectory = true;\n\t}\n\n\tif (filename.startsWith('ppt/')) {\n\t\topenXmlState.hasPresentationDirectory = true;\n\t}\n\n\tif (filename.startsWith('xl/')) {\n\t\topenXmlState.hasSpreadsheetDirectory = true;\n\t}\n\n\tif (\n\t\tfilename.startsWith('3D/')\n\t\t&& filename.endsWith('.model')\n\t) {\n\t\topenXmlState.hasThreeDimensionalModelEntry = true;\n\t}\n}\n\nfunction getOpenXmlFileTypeFromZipEntries(openXmlState) {\n\t// Only use directory-name heuristic when [Content_Types].xml was present in the archive\n\t// but its handler was skipped (not invoked, not currently running, and not already resolved).\n\t// This avoids guessing from directory names when content-type parsing already gave a definitive answer or failed.\n\tif (\n\t\t!openXmlState.hasContentTypesEntry\n\t\t|| openXmlState.hasUnparseableContentTypes\n\t\t|| openXmlState.isParsingContentTypes\n\t\t|| openXmlState.hasParsedContentTypesEntry\n\t) {\n\t\treturn;\n\t}\n\n\tif (openXmlState.hasWordDirectory) {\n\t\treturn {\n\t\t\text: 'docx',\n\t\t\tmime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t};\n\t}\n\n\tif (openXmlState.hasPresentationDirectory) {\n\t\treturn {\n\t\t\text: 'pptx',\n\t\t\tmime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t};\n\t}\n\n\tif (openXmlState.hasSpreadsheetDirectory) {\n\t\treturn {\n\t\t\text: 'xlsx',\n\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t};\n\t}\n\n\tif (openXmlState.hasThreeDimensionalModelEntry) {\n\t\treturn {\n\t\t\text: '3mf',\n\t\t\tmime: 'model/3mf',\n\t\t};\n\t}\n}\n\nfunction getOpenXmlMimeTypeFromContentTypesXml(xmlContent) {\n\t// We only need the `ContentType=\"...main+xml\"` value, so a small string scan is enough and avoids full XML parsing.\n\tconst endPosition = xmlContent.indexOf('.main+xml\"');\n\tif (endPosition === -1) {\n\t\tconst mimeType = 'application/vnd.ms-package.3dmanufacturing-3dmodel+xml';\n\t\tif (xmlContent.includes(`ContentType=\"${mimeType}\"`)) {\n\t\t\treturn mimeType;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tconst truncatedContent = xmlContent.slice(0, endPosition);\n\tconst firstQuotePosition = truncatedContent.lastIndexOf('\"');\n\t// If no quote is found, `lastIndexOf` returns -1 and this intentionally falls back to the full truncated prefix.\n\treturn truncatedContent.slice(firstQuotePosition + 1);\n}\n\nexport async function fileTypeFromTokenizer(tokenizer, options) {\n\treturn new FileTypeParser(options).fromTokenizer(tokenizer);\n}\n\nexport async function fileTypeStream(webStream, options) {\n\treturn new FileTypeParser(options).toDetectionStream(webStream, options);\n}\n\nexport class FileTypeParser {\n\tconstructor(options) {\n\t\tconst normalizedMpegOffsetTolerance = normalizeMpegOffsetTolerance(options?.mpegOffsetTolerance);\n\t\tthis.options = {\n\t\t\t...options,\n\t\t\tmpegOffsetTolerance: normalizedMpegOffsetTolerance,\n\t\t};\n\n\t\tthis.detectors = [...(this.options.customDetectors ?? []),\n\t\t\t{id: 'core', detect: this.detectConfident},\n\t\t\t{id: 'core.imprecise', detect: this.detectImprecise}];\n\t\tthis.tokenizerOptions = {\n\t\t\tabortSignal: this.options.signal,\n\t\t};\n\t\tthis.gzipProbeDepth = 0;\n\t}\n\n\tgetTokenizerOptions() {\n\t\treturn {\n\t\t\t...this.tokenizerOptions,\n\t\t};\n\t}\n\n\tcreateTokenizerFromWebStream(stream) {\n\t\treturn patchWebByobTokenizerClose(strtok3.fromWebStream(stream, this.getTokenizerOptions()));\n\t}\n\n\tasync parseTokenizer(tokenizer, detectionReentryCount = 0) {\n\t\tthis.detectionReentryCount = detectionReentryCount;\n\t\tconst initialPosition = tokenizer.position;\n\t\t// Iterate through all file-type detectors\n\t\tfor (const detector of this.detectors) {\n\t\t\tlet fileType;\n\t\t\ttry {\n\t\t\t\tfileType = await detector.detect(tokenizer);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (error instanceof ParserHardLimitError) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\n\t\t\tif (initialPosition !== tokenizer.position) {\n\t\t\t\treturn undefined; // Cannot proceed scanning of the tokenizer is at an arbitrary position\n\t\t\t}\n\t\t}\n\t}\n\n\tasync fromTokenizer(tokenizer) {\n\t\ttry {\n\t\t\treturn await this.parseTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync fromBuffer(input) {\n\t\tif (!(input instanceof Uint8Array || input instanceof ArrayBuffer)) {\n\t\t\tthrow new TypeError(`Expected the \\`input\\` argument to be of type \\`Uint8Array\\` or \\`ArrayBuffer\\`, got \\`${typeof input}\\``);\n\t\t}\n\n\t\tconst buffer = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n\t\tif (!(buffer?.length > 1)) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.fromTokenizer(strtok3.fromBuffer(buffer, this.getTokenizerOptions()));\n\t}\n\n\tasync fromBlob(blob) {\n\t\tthis.options.signal?.throwIfAborted();\n\t\tconst tokenizer = strtok3.fromBlob(blob, this.getTokenizerOptions());\n\t\treturn this.fromTokenizer(tokenizer);\n\t}\n\n\tasync fromStream(stream) {\n\t\tthis.options.signal?.throwIfAborted();\n\t\tconst tokenizer = this.createTokenizerFromWebStream(stream);\n\t\treturn this.fromTokenizer(tokenizer);\n\t}\n\n\tasync toDetectionStream(stream, options) {\n\t\tconst sampleSize = normalizeSampleSize(options?.sampleSize ?? reasonableDetectionSizeInBytes);\n\t\tlet detectedFileType;\n\t\tlet firstChunk;\n\n\t\tconst reader = stream.getReader({mode: 'byob'});\n\t\ttry {\n\t\t\t// Read the first chunk from the stream\n\t\t\tconst {value: chunk, done} = await readByobReaderWithSignal(reader, new Uint8Array(sampleSize), this.options.signal);\n\t\t\tfirstChunk = chunk;\n\t\t\tif (!done && chunk) {\n\t\t\t\ttry {\n\t\t\t\t\t// Attempt to detect the file type from the chunk\n\t\t\t\t\tdetectedFileType = await this.fromBuffer(chunk.subarray(0, sampleSize));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\t\t\tthrow error; // Re-throw non-EndOfStreamError\n\t\t\t\t\t}\n\n\t\t\t\t\tdetectedFileType = undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfirstChunk = chunk;\n\t\t} finally {\n\t\t\treader.releaseLock(); // Ensure the reader is released\n\t\t}\n\n\t\t// Create a new ReadableStream to manage locking issues\n\t\tconst transformStream = new TransformStream({\n\t\t\tasync start(controller) {\n\t\t\t\tcontroller.enqueue(firstChunk); // Enqueue the initial chunk\n\t\t\t},\n\t\t\ttransform(chunk, controller) {\n\t\t\t\t// Pass through the chunks without modification\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t});\n\n\t\tconst newStream = stream.pipeThrough(transformStream);\n\t\tnewStream.fileType = detectedFileType;\n\n\t\treturn newStream;\n\t}\n\n\tasync detectGzip(tokenizer) {\n\t\tif (this.gzipProbeDepth >= maximumNestedGzipProbeDepth) {\n\t\t\treturn {\n\t\t\t\text: 'gz',\n\t\t\t\tmime: 'application/gzip',\n\t\t\t};\n\t\t}\n\n\t\tconst gzipHandler = new GzipHandler(tokenizer);\n\t\tconst limitedInflatedStream = createByteLimitedReadableStream(gzipHandler.inflate(), maximumNestedGzipDetectionSizeInBytes);\n\t\tconst hasUnknownSize = hasUnknownFileSize(tokenizer);\n\t\tlet timeout;\n\t\tlet probeSignal;\n\t\tlet probeParser;\n\t\tlet compressedFileType;\n\n\t\tif (hasUnknownSize) {\n\t\t\tconst timeoutController = new AbortController();\n\t\t\ttimeout = setTimeout(() => {\n\t\t\t\ttimeoutController.abort(new DOMException(`Operation timed out after ${unknownSizeGzipProbeTimeoutInMilliseconds} ms`, 'TimeoutError'));\n\t\t\t}, unknownSizeGzipProbeTimeoutInMilliseconds);\n\t\t\tprobeSignal = this.options.signal === undefined\n\t\t\t\t? timeoutController.signal\n\t\t\t\t// eslint-disable-next-line n/no-unsupported-features/node-builtins\n\t\t\t\t: AbortSignal.any([this.options.signal, timeoutController.signal]);\n\t\t\tprobeParser = new FileTypeParser({\n\t\t\t\t...this.options,\n\t\t\t\tsignal: probeSignal,\n\t\t\t});\n\t\t\tprobeParser.gzipProbeDepth = this.gzipProbeDepth + 1;\n\t\t} else {\n\t\t\tthis.gzipProbeDepth++;\n\t\t}\n\n\t\ttry {\n\t\t\tcompressedFileType = await (probeParser ?? this).fromStream(limitedInflatedStream);\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror?.name === 'AbortError'\n\t\t\t\t&& probeSignal?.reason?.name !== 'TimeoutError'\n\t\t\t) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\t// Timeout, decompression, or inner-detection failures are expected for non-tar gzip files.\n\t\t} finally {\n\t\t\tclearTimeout(timeout);\n\t\t\tif (!hasUnknownSize) {\n\t\t\t\tthis.gzipProbeDepth--;\n\t\t\t}\n\t\t}\n\n\t\tif (compressedFileType?.ext === 'tar') {\n\t\t\treturn {\n\t\t\t\text: 'tar.gz',\n\t\t\t\tmime: 'application/gzip',\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\text: 'gz',\n\t\t\tmime: 'application/gzip',\n\t\t};\n\t}\n\n\tcheck(header, options) {\n\t\treturn _check(this.buffer, header, options);\n\t}\n\n\tcheckString(header, options) {\n\t\treturn this.check(stringToBytes(header, options?.encoding), options);\n\t}\n\n\t// Detections with a high degree of certainty in identifying the correct file type\n\tdetectConfident = async tokenizer => {\n\t\tthis.buffer = new Uint8Array(reasonableDetectionSizeInBytes);\n\n\t\t// Keep reading until EOF if the file size is unknown.\n\t\tif (tokenizer.fileInfo.size === undefined) {\n\t\t\ttokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;\n\t\t}\n\n\t\tthis.tokenizer = tokenizer;\n\n\t\tif (hasUnknownFileSize(tokenizer)) {\n\t\t\tawait tokenizer.peekBuffer(this.buffer, {length: 3, mayBeLess: true});\n\t\t\tif (this.check([0x1F, 0x8B, 0x8])) {\n\t\t\t\treturn this.detectGzip(tokenizer);\n\t\t\t}\n\t\t}\n\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: 32, mayBeLess: true});\n\n\t\t// -- 2-byte signatures --\n\n\t\tif (this.check([0x42, 0x4D])) {\n\t\t\treturn {\n\t\t\t\text: 'bmp',\n\t\t\t\tmime: 'image/bmp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x0B, 0x77])) {\n\t\t\treturn {\n\t\t\t\text: 'ac3',\n\t\t\t\tmime: 'audio/vnd.dolby.dd-raw',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x78, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'dmg',\n\t\t\t\tmime: 'application/x-apple-diskimage',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4D, 0x5A])) {\n\t\t\treturn {\n\t\t\t\text: 'exe',\n\t\t\t\tmime: 'application/x-msdownload',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x25, 0x21])) {\n\t\t\tawait tokenizer.peekBuffer(this.buffer, {length: 24, mayBeLess: true});\n\n\t\t\tif (\n\t\t\t\tthis.checkString('PS-Adobe-', {offset: 2})\n\t\t\t\t&& this.checkString(' EPSF-', {offset: 14})\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'eps',\n\t\t\t\t\tmime: 'application/eps',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ps',\n\t\t\t\tmime: 'application/postscript',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x1F, 0xA0])\n\t\t\t|| this.check([0x1F, 0x9D])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'Z',\n\t\t\t\tmime: 'application/x-compress',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC7, 0x71])) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x60, 0xEA])) {\n\t\t\treturn {\n\t\t\t\text: 'arj',\n\t\t\t\tmime: 'application/x-arj',\n\t\t\t};\n\t\t}\n\n\t\t// -- 3-byte signatures --\n\n\t\tif (this.check([0xEF, 0xBB, 0xBF])) { // UTF-8-BOM\n\t\t\tif (this.detectionReentryCount >= maximumDetectionReentryCount) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.detectionReentryCount++;\n\t\t\t// Strip off UTF-8-BOM\n\t\t\tawait this.tokenizer.ignore(3);\n\t\t\treturn this.detectConfident(tokenizer);\n\t\t}\n\n\t\tif (this.check([0x47, 0x49, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'gif',\n\t\t\t\tmime: 'image/gif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0xBC])) {\n\t\t\treturn {\n\t\t\t\text: 'jxr',\n\t\t\t\tmime: 'image/vnd.ms-photo',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x1F, 0x8B, 0x8])) {\n\t\t\treturn this.detectGzip(tokenizer);\n\t\t}\n\n\t\tif (this.check([0x42, 0x5A, 0x68])) {\n\t\t\treturn {\n\t\t\t\text: 'bz2',\n\t\t\t\tmime: 'application/x-bzip2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ID3')) {\n\t\t\tawait safeIgnore(tokenizer, 6, {\n\t\t\t\tmaximumLength: 6,\n\t\t\t\treason: 'ID3 header prefix',\n\t\t\t}); // Skip ID3 header until the header size\n\t\t\tconst id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken);\n\t\t\tconst isUnknownFileSize = hasUnknownFileSize(tokenizer);\n\t\t\tif (\n\t\t\t\t!Number.isFinite(id3HeaderLength)\n\t\t\t\t\t|| id3HeaderLength < 0\n\t\t\t\t// Keep ID3 probing bounded for unknown-size streams to avoid attacker-controlled large skips.\n\t\t\t\t|| (\n\t\t\t\t\tisUnknownFileSize\n\t\t\t\t\t&& (\n\t\t\t\t\t\tid3HeaderLength > maximumId3HeaderSizeInBytes\n\t\t\t\t\t\t|| (tokenizer.position + id3HeaderLength) > maximumId3HeaderSizeInBytes\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) {\n\t\t\t\tif (isUnknownFileSize) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait safeIgnore(tokenizer, id3HeaderLength, {\n\t\t\t\t\tmaximumLength: isUnknownFileSize ? maximumId3HeaderSizeInBytes : tokenizer.fileInfo.size,\n\t\t\t\t\treason: 'ID3 payload',\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (this.detectionReentryCount >= maximumDetectionReentryCount) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.detectionReentryCount++;\n\t\t\treturn this.parseTokenizer(tokenizer, this.detectionReentryCount); // Skip ID3 header, recursion\n\t\t}\n\n\t\t// Musepack, SV7\n\t\tif (this.checkString('MP+')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\t(this.buffer[0] === 0x43 || this.buffer[0] === 0x46)\n\t\t\t&& this.check([0x57, 0x53], {offset: 1})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'swf',\n\t\t\t\tmime: 'application/x-shockwave-flash',\n\t\t\t};\n\t\t}\n\n\t\t// -- 4-byte signatures --\n\n\t\t// Requires a sample size of 4 bytes\n\t\tif (this.check([0xFF, 0xD8, 0xFF])) {\n\t\t\tif (this.check([0xF7], {offset: 3})) { // JPG7/SOF55, indicating a ISO/IEC 14495 / JPEG-LS file\n\t\t\t\treturn {\n\t\t\t\t\text: 'jls',\n\t\t\t\t\tmime: 'image/jls',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'jpg',\n\t\t\t\tmime: 'image/jpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4F, 0x62, 0x6A, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'avro',\n\t\t\t\tmime: 'application/avro',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FLIF')) {\n\t\t\treturn {\n\t\t\t\text: 'flif',\n\t\t\t\tmime: 'image/flif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('8BPS')) {\n\t\t\treturn {\n\t\t\t\text: 'psd',\n\t\t\t\tmime: 'image/vnd.adobe.photoshop',\n\t\t\t};\n\t\t}\n\n\t\t// Musepack, SV8\n\t\tif (this.checkString('MPCK')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FORM')) {\n\t\t\treturn {\n\t\t\t\text: 'aif',\n\t\t\t\tmime: 'audio/aiff',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('icns', {offset: 0})) {\n\t\t\treturn {\n\t\t\t\text: 'icns',\n\t\t\t\tmime: 'image/icns',\n\t\t\t};\n\t\t}\n\n\t\t// Zip-based file formats\n\t\t// Need to be before the `zip` check\n\t\tif (this.check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature\n\t\t\tlet fileType;\n\t\t\tconst openXmlState = createOpenXmlZipDetectionState();\n\n\t\t\ttry {\n\t\t\t\tawait new ZipHandler(tokenizer).unzip(zipHeader => {\n\t\t\t\t\tupdateOpenXmlZipDetectionStateFromFilename(openXmlState, zipHeader.filename);\n\n\t\t\t\t\tconst isOpenXmlContentTypesEntry = zipHeader.filename === '[Content_Types].xml';\n\t\t\t\t\tconst openXmlFileTypeFromEntries = getOpenXmlFileTypeFromZipEntries(openXmlState);\n\t\t\t\t\tif (\n\t\t\t\t\t\t!isOpenXmlContentTypesEntry\n\t\t\t\t\t\t&& openXmlFileTypeFromEntries\n\t\t\t\t\t) {\n\t\t\t\t\t\tfileType = openXmlFileTypeFromEntries;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch (zipHeader.filename) {\n\t\t\t\t\t\tcase 'META-INF/mozilla.rsa':\n\t\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\t\text: 'xpi',\n\t\t\t\t\t\t\t\tmime: 'application/x-xpinstall',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'META-INF/MANIFEST.MF':\n\t\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\t\text: 'jar',\n\t\t\t\t\t\t\t\tmime: 'application/java-archive',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'mimetype':\n\t\t\t\t\t\t\tif (!canReadZipEntryForDetection(zipHeader, maximumZipTextEntrySizeInBytes)) {\n\t\t\t\t\t\t\t\treturn {};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tasync handler(fileData) {\n\t\t\t\t\t\t\t\t\t// Use TextDecoder to decode the UTF-8 encoded data\n\t\t\t\t\t\t\t\t\tconst mimeType = new TextDecoder('utf-8').decode(fileData).trim();\n\t\t\t\t\t\t\t\t\tfileType = getFileTypeFromMimeType(mimeType);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\tcase '[Content_Types].xml': {\n\t\t\t\t\t\t\topenXmlState.hasContentTypesEntry = true;\n\n\t\t\t\t\t\t\tif (!canReadZipEntryForDetection(zipHeader, maximumZipTextEntrySizeInBytes)) {\n\t\t\t\t\t\t\t\topenXmlState.hasUnparseableContentTypes = true;\n\t\t\t\t\t\t\t\treturn {};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\topenXmlState.isParsingContentTypes = true;\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tasync handler(fileData) {\n\t\t\t\t\t\t\t\t\t// Use TextDecoder to decode the UTF-8 encoded data\n\t\t\t\t\t\t\t\t\tconst xmlContent = new TextDecoder('utf-8').decode(fileData);\n\t\t\t\t\t\t\t\t\tconst mimeType = getOpenXmlMimeTypeFromContentTypesXml(xmlContent);\n\t\t\t\t\t\t\t\t\tif (mimeType) {\n\t\t\t\t\t\t\t\t\t\tfileType = getFileTypeFromMimeType(mimeType);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\topenXmlState.hasParsedContentTypesEntry = true;\n\t\t\t\t\t\t\t\t\topenXmlState.isParsingContentTypes = false;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif (/classes\\d*\\.dex/.test(zipHeader.filename)) {\n\t\t\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\t\t\text: 'apk',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.android.package-archive',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn {stop: true};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (!isRecoverableZipError(error)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tif (openXmlState.isParsingContentTypes) {\n\t\t\t\t\topenXmlState.isParsingContentTypes = false;\n\t\t\t\t\topenXmlState.hasUnparseableContentTypes = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn fileType ?? getOpenXmlFileTypeFromZipEntries(openXmlState) ?? {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('OggS')) {\n\t\t\t// This is an OGG container\n\t\t\tawait tokenizer.ignore(28);\n\t\t\tconst type = new Uint8Array(8);\n\t\t\tawait tokenizer.readBuffer(type);\n\n\t\t\t// Needs to be before `ogg` check\n\t\t\tif (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'opus',\n\t\t\t\t\tmime: 'audio/ogg; codecs=opus',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' theora' in header.\n\t\t\tif (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogv',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01video' in header.\n\t\t\tif (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogm',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' FLAC' in header https://xiph.org/flac/faq.html\n\t\t\tif (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'oga',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\t\t\tif (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'spx',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01vorbis' in header\n\t\t\tif (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogg',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\t\t\treturn {\n\t\t\t\text: 'ogx',\n\t\t\t\tmime: 'application/ogg',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x50, 0x4B])\n\t\t\t&& (this.buffer[2] === 0x3 || this.buffer[2] === 0x5 || this.buffer[2] === 0x7)\n\t\t\t&& (this.buffer[3] === 0x4 || this.buffer[3] === 0x6 || this.buffer[3] === 0x8)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('MThd')) {\n\t\t\treturn {\n\t\t\t\text: 'mid',\n\t\t\t\tmime: 'audio/midi',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOFF')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff',\n\t\t\t\tmime: 'font/woff',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOF2')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff2',\n\t\t\t\tmime: 'font/woff2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xD4, 0xC3, 0xB2, 0xA1]) || this.check([0xA1, 0xB2, 0xC3, 0xD4])) {\n\t\t\treturn {\n\t\t\t\text: 'pcap',\n\t\t\t\tmime: 'application/vnd.tcpdump.pcap',\n\t\t\t};\n\t\t}\n\n\t\t// Sony DSD Stream File (DSF)\n\t\tif (this.checkString('DSD ')) {\n\t\t\treturn {\n\t\t\t\text: 'dsf',\n\t\t\t\tmime: 'audio/x-dsf', // Non-standard\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('LZIP')) {\n\t\t\treturn {\n\t\t\t\text: 'lz',\n\t\t\t\tmime: 'application/x-lzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('fLaC')) {\n\t\t\treturn {\n\t\t\t\text: 'flac',\n\t\t\t\tmime: 'audio/flac',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x50, 0x47, 0xFB])) {\n\t\t\treturn {\n\t\t\t\text: 'bpg',\n\t\t\t\tmime: 'image/bpg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('wvpk')) {\n\t\t\treturn {\n\t\t\t\text: 'wv',\n\t\t\t\tmime: 'audio/wavpack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('%PDF')) {\n\t\t\t// Assume this is just a normal PDF\n\t\t\treturn {\n\t\t\t\text: 'pdf',\n\t\t\t\tmime: 'application/pdf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x61, 0x73, 0x6D])) {\n\t\t\treturn {\n\t\t\t\text: 'wasm',\n\t\t\t\tmime: 'application/wasm',\n\t\t\t};\n\t\t}\n\n\t\t// TIFF, little-endian type\n\t\tif (this.check([0x49, 0x49])) {\n\t\t\tconst fileType = await this.readTiffHeader(false);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\t// TIFF, big-endian type\n\t\tif (this.check([0x4D, 0x4D])) {\n\t\t\tconst fileType = await this.readTiffHeader(true);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('MAC ')) {\n\t\t\treturn {\n\t\t\t\text: 'ape',\n\t\t\t\tmime: 'audio/ape',\n\t\t\t};\n\t\t}\n\n\t\t// https://github.com/file/file/blob/master/magic/Magdir/matroska\n\t\tif (this.check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML\n\t\t\tasync function readField() {\n\t\t\t\tconst msb = await tokenizer.peekNumber(Token.UINT8);\n\t\t\t\tlet mask = 0x80;\n\t\t\t\tlet ic = 0; // 0 = A, 1 = B, 2 = C, 3 = D\n\n\t\t\t\twhile ((msb & mask) === 0 && mask !== 0) {\n\t\t\t\t\t++ic;\n\t\t\t\t\tmask >>= 1;\n\t\t\t\t}\n\n\t\t\t\tconst id = new Uint8Array(ic + 1);\n\t\t\t\tawait safeReadBuffer(tokenizer, id, undefined, {\n\t\t\t\t\tmaximumLength: id.length,\n\t\t\t\t\treason: 'EBML field',\n\t\t\t\t});\n\t\t\t\treturn id;\n\t\t\t}\n\n\t\t\tasync function readElement() {\n\t\t\t\tconst idField = await readField();\n\t\t\t\tconst lengthField = await readField();\n\n\t\t\t\tlengthField[0] ^= 0x80 >> (lengthField.length - 1);\n\t\t\t\tconst nrLength = Math.min(6, lengthField.length); // JavaScript can max read 6 bytes integer\n\n\t\t\t\tconst idView = new DataView(idField.buffer);\n\t\t\t\tconst lengthView = new DataView(lengthField.buffer, lengthField.length - nrLength, nrLength);\n\n\t\t\t\treturn {\n\t\t\t\t\tid: getUintBE(idView),\n\t\t\t\t\tlen: getUintBE(lengthView),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tasync function readChildren(children) {\n\t\t\t\tlet ebmlElementCount = 0;\n\t\t\t\twhile (children > 0) {\n\t\t\t\t\tebmlElementCount++;\n\t\t\t\t\tif (ebmlElementCount > maximumEbmlElementCount) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (hasExceededUnknownSizeScanBudget(tokenizer, ebmlScanStart, maximumUntrustedSkipSizeInBytes)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst previousPosition = tokenizer.position;\n\t\t\t\t\tconst element = await readElement();\n\n\t\t\t\t\tif (element.id === 0x42_82) {\n\t\t\t\t\t\t// `DocType` is a short string (\"webm\", \"matroska\", ...), reject implausible lengths to avoid large allocations.\n\t\t\t\t\t\tif (element.len > maximumEbmlDocumentTypeSizeInBytes) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst documentTypeLength = getSafeBound(element.len, maximumEbmlDocumentTypeSizeInBytes, 'EBML DocType');\n\t\t\t\t\t\tconst rawValue = await tokenizer.readToken(new Token.StringType(documentTypeLength));\n\t\t\t\t\t\treturn rawValue.replaceAll(/\\00.*$/g, ''); // Return DocType\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\thasUnknownFileSize(tokenizer)\n\t\t\t\t\t\t&& (\n\t\t\t\t\t\t\t!Number.isFinite(element.len)\n\t\t\t\t\t\t\t|| element.len < 0\n\t\t\t\t\t\t\t|| element.len > maximumEbmlElementPayloadSizeInBytes\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tawait safeIgnore(tokenizer, element.len, {\n\t\t\t\t\t\tmaximumLength: hasUnknownFileSize(tokenizer) ? maximumEbmlElementPayloadSizeInBytes : tokenizer.fileInfo.size,\n\t\t\t\t\t\treason: 'EBML payload',\n\t\t\t\t\t}); // ignore payload\n\t\t\t\t\t--children;\n\n\t\t\t\t\t// Safeguard against malformed files: bail if the position did not advance.\n\t\t\t\t\tif (tokenizer.position <= previousPosition) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst rootElement = await readElement();\n\t\t\tconst ebmlScanStart = tokenizer.position;\n\t\t\tconst documentType = await readChildren(rootElement.len);\n\n\t\t\tswitch (documentType) {\n\t\t\t\tcase 'webm':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'webm',\n\t\t\t\t\t\tmime: 'video/webm',\n\t\t\t\t\t};\n\n\t\t\t\tcase 'matroska':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mkv',\n\t\t\t\t\t\tmime: 'video/matroska',\n\t\t\t\t\t};\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('SQLi')) {\n\t\t\treturn {\n\t\t\t\text: 'sqlite',\n\t\t\t\tmime: 'application/x-sqlite3',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4E, 0x45, 0x53, 0x1A])) {\n\t\t\treturn {\n\t\t\t\text: 'nes',\n\t\t\t\tmime: 'application/x-nintendo-nes-rom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Cr24')) {\n\t\t\treturn {\n\t\t\t\text: 'crx',\n\t\t\t\tmime: 'application/x-google-chrome-extension',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('MSCF')\n\t\t\t|| this.checkString('ISc(')\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'cab',\n\t\t\t\tmime: 'application/vnd.ms-cab-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xED, 0xAB, 0xEE, 0xDB])) {\n\t\t\treturn {\n\t\t\t\text: 'rpm',\n\t\t\t\tmime: 'application/x-rpm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC5, 0xD0, 0xD3, 0xC6])) {\n\t\t\treturn {\n\t\t\t\text: 'eps',\n\t\t\t\tmime: 'application/eps',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x28, 0xB5, 0x2F, 0xFD])) {\n\t\t\treturn {\n\t\t\t\text: 'zst',\n\t\t\t\tmime: 'application/zstd',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x7F, 0x45, 0x4C, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'elf',\n\t\t\t\tmime: 'application/x-elf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x21, 0x42, 0x44, 0x4E])) {\n\t\t\treturn {\n\t\t\t\text: 'pst',\n\t\t\t\tmime: 'application/vnd.ms-outlook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('PAR1') || this.checkString('PARE')) {\n\t\t\treturn {\n\t\t\t\text: 'parquet',\n\t\t\t\tmime: 'application/vnd.apache.parquet',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ttcf')) {\n\t\t\treturn {\n\t\t\t\text: 'ttc',\n\t\t\t\tmime: 'font/collection',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0xFE, 0xED, 0xFA, 0xCE]) // 32-bit, big-endian\n\t\t\t|| this.check([0xFE, 0xED, 0xFA, 0xCF]) // 64-bit, big-endian\n\t\t\t|| this.check([0xCE, 0xFA, 0xED, 0xFE]) // 32-bit, little-endian\n\t\t\t|| this.check([0xCF, 0xFA, 0xED, 0xFE]) // 64-bit, little-endian\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'macho',\n\t\t\t\tmime: 'application/x-mach-binary',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x04, 0x22, 0x4D, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'lz4',\n\t\t\t\tmime: 'application/x-lz4', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('regf')) {\n\t\t\treturn {\n\t\t\t\text: 'dat',\n\t\t\t\tmime: 'application/x-ft-windows-registry-hive',\n\t\t\t};\n\t\t}\n\n\t\t// SPSS Statistical Data File\n\t\tif (this.checkString('$FL2') || this.checkString('$FL3')) {\n\t\t\treturn {\n\t\t\t\text: 'sav',\n\t\t\t\tmime: 'application/x-spss-sav',\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'otf',\n\t\t\t\tmime: 'font/otf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('#!AMR')) {\n\t\t\treturn {\n\t\t\t\text: 'amr',\n\t\t\t\tmime: 'audio/amr',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('{\\\\rtf')) {\n\t\t\treturn {\n\t\t\t\text: 'rtf',\n\t\t\t\tmime: 'application/rtf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x46, 0x4C, 0x56, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'flv',\n\t\t\t\tmime: 'video/x-flv',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('IMPM')) {\n\t\t\treturn {\n\t\t\t\text: 'it',\n\t\t\t\tmime: 'audio/x-it',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('-lh0-', {offset: 2})\n\t\t\t|| this.checkString('-lh1-', {offset: 2})\n\t\t\t|| this.checkString('-lh2-', {offset: 2})\n\t\t\t|| this.checkString('-lh3-', {offset: 2})\n\t\t\t|| this.checkString('-lh4-', {offset: 2})\n\t\t\t|| this.checkString('-lh5-', {offset: 2})\n\t\t\t|| this.checkString('-lh6-', {offset: 2})\n\t\t\t|| this.checkString('-lh7-', {offset: 2})\n\t\t\t|| this.checkString('-lzs-', {offset: 2})\n\t\t\t|| this.checkString('-lz4-', {offset: 2})\n\t\t\t|| this.checkString('-lz5-', {offset: 2})\n\t\t\t|| this.checkString('-lhd-', {offset: 2})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'lzh',\n\t\t\t\tmime: 'application/x-lzh-compressed',\n\t\t\t};\n\t\t}\n\n\t\t// MPEG program stream (PS or MPEG-PS)\n\t\tif (this.check([0x00, 0x00, 0x01, 0xBA])) {\n\t\t\t// MPEG-PS, MPEG-1 Part 1\n\t\t\tif (this.check([0x21], {offset: 4, mask: [0xF1]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .ps, .mpeg\n\t\t\t\t\tmime: 'video/MP1S',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG-PS, MPEG-2 Part 1\n\t\t\tif (this.check([0x44], {offset: 4, mask: [0xC4]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .mpg, .m2p, .vob or .sub\n\t\t\t\t\tmime: 'video/MP2P',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('ITSF')) {\n\t\t\treturn {\n\t\t\t\text: 'chm',\n\t\t\t\tmime: 'application/vnd.ms-htmlhelp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xCA, 0xFE, 0xBA, 0xBE])) {\n\t\t\t// Java bytecode and Mach-O universal binaries have the same magic number.\n\t\t\t// We disambiguate based on the next 4 bytes, as done by `file`.\n\t\t\t// See https://github.com/file/file/blob/master/magic/Magdir/cafebabe\n\t\t\tconst machOArchitectureCount = Token.UINT32_BE.get(this.buffer, 4);\n\t\t\tconst javaClassFileMajorVersion = Token.UINT16_BE.get(this.buffer, 6);\n\n\t\t\tif (machOArchitectureCount > 0 && machOArchitectureCount <= 30) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'macho',\n\t\t\t\t\tmime: 'application/x-mach-binary',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (javaClassFileMajorVersion > 30) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'class',\n\t\t\t\t\tmime: 'application/java-vm',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('.RMF')) {\n\t\t\treturn {\n\t\t\t\text: 'rm',\n\t\t\t\tmime: 'application/vnd.rn-realmedia',\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.checkString('DRACO')) {\n\t\t\treturn {\n\t\t\t\text: 'drc',\n\t\t\t\tmime: 'application/vnd.google.draco', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\t// -- 6-byte signatures --\n\n\t\tif (this.check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'xz',\n\t\t\t\tmime: 'application/x-xz',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('= 1000 && version <= 1050) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'dwg',\n\t\t\t\t\tmime: 'image/vnd.dwg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('070707')) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\t// -- 7-byte signatures --\n\n\t\tif (this.checkString('BLENDER')) {\n\t\t\treturn {\n\t\t\t\text: 'blend',\n\t\t\t\tmime: 'application/x-blender',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('!')) {\n\t\t\tawait tokenizer.ignore(8);\n\t\t\tconst string = await tokenizer.readToken(new Token.StringType(13, 'ascii'));\n\t\t\tif (string === 'debian-binary') {\n\t\t\t\treturn {\n\t\t\t\t\text: 'deb',\n\t\t\t\t\tmime: 'application/x-deb',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ar',\n\t\t\t\tmime: 'application/x-unix-archive',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('WEBVTT')\n\t\t\t&&\t(\n\t\t\t\t// One of LF, CR, tab, space, or end of file must follow \"WEBVTT\" per the spec (see `fixture/fixture-vtt-*.vtt` for examples). Note that `\\0` is technically the null character (there is no such thing as an EOF character). However, checking for `\\0` gives us the same result as checking for the end of the stream.\n\t\t\t\t(['\\n', '\\r', '\\t', ' ', '\\0'].some(char7 => this.checkString(char7, {offset: 6}))))\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'vtt',\n\t\t\t\tmime: 'text/vtt',\n\t\t\t};\n\t\t}\n\n\t\t// -- 8-byte signatures --\n\n\t\tif (this.check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\tconst pngFileType = {\n\t\t\t\text: 'png',\n\t\t\t\tmime: 'image/png',\n\t\t\t};\n\n\t\t\tconst apngFileType = {\n\t\t\t\text: 'apng',\n\t\t\t\tmime: 'image/apng',\n\t\t\t};\n\n\t\t\t// APNG format (https://wiki.mozilla.org/APNG_Specification)\n\t\t\t// 1. Find the first IDAT (image data) chunk (49 44 41 54)\n\t\t\t// 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n\n\t\t\t// Offset calculated as follows:\n\t\t\t// - 8 bytes: PNG signature\n\t\t\t// - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n\n\t\t\tawait tokenizer.ignore(8); // ignore PNG signature\n\n\t\t\tasync function readChunkHeader() {\n\t\t\t\treturn {\n\t\t\t\t\tlength: await tokenizer.readToken(Token.INT32_BE),\n\t\t\t\t\ttype: await tokenizer.readToken(new Token.StringType(4, 'latin1')),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst isUnknownPngStream = hasUnknownFileSize(tokenizer);\n\t\t\tconst pngScanStart = tokenizer.position;\n\t\t\tlet pngChunkCount = 0;\n\t\t\tlet hasSeenImageHeader = false;\n\t\t\tdo {\n\t\t\t\tpngChunkCount++;\n\t\t\t\tif (pngChunkCount > maximumPngChunkCount) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (hasExceededUnknownSizeScanBudget(tokenizer, pngScanStart, maximumPngStreamScanBudgetInBytes)) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tconst previousPosition = tokenizer.position;\n\t\t\t\tconst chunk = await readChunkHeader();\n\t\t\t\tif (chunk.length < 0) {\n\t\t\t\t\treturn; // Invalid chunk length\n\t\t\t\t}\n\n\t\t\t\tif (chunk.type === 'IHDR') {\n\t\t\t\t\t// PNG requires the first real image header to be a 13-byte IHDR chunk.\n\t\t\t\t\tif (chunk.length !== 13) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\thasSeenImageHeader = true;\n\t\t\t\t}\n\n\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\tcase 'IDAT':\n\t\t\t\t\t\treturn pngFileType;\n\t\t\t\t\tcase 'acTL':\n\t\t\t\t\t\treturn apngFileType;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!hasSeenImageHeader\n\t\t\t\t\t\t\t&& chunk.type !== 'CgBI'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tisUnknownPngStream\n\t\t\t\t\t\t\t\t&& chunk.length > maximumPngChunkSizeInBytes\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Avoid huge attacker-controlled skips when probing unknown-size streams.\n\t\t\t\t\t\t\treturn hasSeenImageHeader && isPngAncillaryChunk(chunk.type) ? pngFileType : undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait safeIgnore(tokenizer, chunk.length + 4, {\n\t\t\t\t\t\t\t\tmaximumLength: isUnknownPngStream ? maximumPngChunkSizeInBytes + 4 : tokenizer.fileInfo.size,\n\t\t\t\t\t\t\t\treason: 'PNG chunk payload',\n\t\t\t\t\t\t\t}); // Ignore chunk-data + CRC\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!isUnknownPngStream\n\t\t\t\t\t\t\t\t\t&& (\n\t\t\t\t\t\t\t\t\t\terror instanceof ParserHardLimitError\n\t\t\t\t\t\t\t\t\t\t|| error instanceof strtok3.EndOfStreamError\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn pngFileType;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Safeguard against malformed files: bail if the position did not advance.\n\t\t\t\tif (tokenizer.position <= previousPosition) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (tokenizer.position + 8 < tokenizer.fileInfo.size);\n\n\t\t\treturn pngFileType;\n\t\t}\n\n\t\tif (this.check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'arrow',\n\t\t\t\tmime: 'application/vnd.apache.arrow.file',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'glb',\n\t\t\t\tmime: 'model/gltf-binary',\n\t\t\t};\n\t\t}\n\n\t\t// `mov` format variants\n\t\tif (\n\t\t\tthis.check([0x66, 0x72, 0x65, 0x65], {offset: 4}) // `free`\n\t\t\t|| this.check([0x6D, 0x64, 0x61, 0x74], {offset: 4}) // `mdat` MJPEG\n\t\t\t|| this.check([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) // `moov`\n\t\t\t|| this.check([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide`\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mov',\n\t\t\t\tmime: 'video/quicktime',\n\t\t\t};\n\t\t}\n\n\t\t// -- 9-byte signatures --\n\n\t\tif (this.check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'orf',\n\t\t\t\tmime: 'image/x-olympus-orf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('gimp xcf ')) {\n\t\t\treturn {\n\t\t\t\text: 'xcf',\n\t\t\t\tmime: 'image/x-xcf',\n\t\t\t};\n\t\t}\n\n\t\t// File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\t\t// It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n\t\t// `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n\t\t// Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n\t\tif (\n\t\t\tthis.checkString('ftyp', {offset: 4})\n\t\t\t&& (this.buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII?\n\t\t) {\n\t\t\t// They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n\t\t\t// For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n\t\t\tconst brandMajor = new Token.StringType(4, 'latin1').get(this.buffer, 8).replace('\\0', ' ').trim();\n\t\t\tswitch (brandMajor) {\n\t\t\t\tcase 'avif':\n\t\t\t\tcase 'avis':\n\t\t\t\t\treturn {ext: 'avif', mime: 'image/avif'};\n\t\t\t\tcase 'mif1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif'};\n\t\t\t\tcase 'msf1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif-sequence'};\n\t\t\t\tcase 'heic':\n\t\t\t\tcase 'heix':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic'};\n\t\t\t\tcase 'hevc':\n\t\t\t\tcase 'hevx':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic-sequence'};\n\t\t\t\tcase 'qt':\n\t\t\t\t\treturn {ext: 'mov', mime: 'video/quicktime'};\n\t\t\t\tcase 'M4V':\n\t\t\t\tcase 'M4VH':\n\t\t\t\tcase 'M4VP':\n\t\t\t\t\treturn {ext: 'm4v', mime: 'video/x-m4v'};\n\t\t\t\tcase 'M4P':\n\t\t\t\t\treturn {ext: 'm4p', mime: 'video/mp4'};\n\t\t\t\tcase 'M4B':\n\t\t\t\t\treturn {ext: 'm4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'M4A':\n\t\t\t\t\treturn {ext: 'm4a', mime: 'audio/x-m4a'};\n\t\t\t\tcase 'F4V':\n\t\t\t\t\treturn {ext: 'f4v', mime: 'video/mp4'};\n\t\t\t\tcase 'F4P':\n\t\t\t\t\treturn {ext: 'f4p', mime: 'video/mp4'};\n\t\t\t\tcase 'F4A':\n\t\t\t\t\treturn {ext: 'f4a', mime: 'audio/mp4'};\n\t\t\t\tcase 'F4B':\n\t\t\t\t\treturn {ext: 'f4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'crx':\n\t\t\t\t\treturn {ext: 'cr3', mime: 'image/x-canon-cr3'};\n\t\t\t\tdefault:\n\t\t\t\t\tif (brandMajor.startsWith('3g')) {\n\t\t\t\t\t\tif (brandMajor.startsWith('3g2')) {\n\t\t\t\t\t\t\treturn {ext: '3g2', mime: 'video/3gpp2'};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {ext: '3gp', mime: 'video/3gpp'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {ext: 'mp4', mime: 'video/mp4'};\n\t\t\t}\n\t\t}\n\n\t\t// -- 10-byte signatures --\n\n\t\tif (this.checkString('REGEDIT4\\r\\n')) {\n\t\t\treturn {\n\t\t\t\text: 'reg',\n\t\t\t\tmime: 'application/x-ms-regedit',\n\t\t\t};\n\t\t}\n\n\t\t// -- 12-byte signatures --\n\n\t\t// RIFF file format which might be AVI, WAV, QCP, etc\n\t\tif (this.check([0x52, 0x49, 0x46, 0x46])) {\n\t\t\tif (this.checkString('WEBP', {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'webp',\n\t\t\t\t\tmime: 'image/webp',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x41, 0x56, 0x49], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'avi',\n\t\t\t\t\tmime: 'video/vnd.avi',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x57, 0x41, 0x56, 0x45], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'wav',\n\t\t\t\t\tmime: 'audio/wav',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// QLCM, QCP file\n\t\t\tif (this.check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'qcp',\n\t\t\t\t\tmime: 'audio/qcelp',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n\t\t\treturn {\n\t\t\t\text: 'rw2',\n\t\t\t\tmime: 'image/x-panasonic-rw2',\n\t\t\t};\n\t\t}\n\n\t\t// ASF_Header_Object first 80 bytes\n\t\tif (this.check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n\t\t\tlet isMalformedAsf = false;\n\t\t\ttry {\n\t\t\t\tasync function readHeader() {\n\t\t\t\t\tconst guid = new Uint8Array(16);\n\t\t\t\t\tawait safeReadBuffer(tokenizer, guid, undefined, {\n\t\t\t\t\t\tmaximumLength: guid.length,\n\t\t\t\t\t\treason: 'ASF header GUID',\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: guid,\n\t\t\t\t\t\tsize: Number(await tokenizer.readToken(Token.UINT64_LE)),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tawait safeIgnore(tokenizer, 30, {\n\t\t\t\t\tmaximumLength: 30,\n\t\t\t\t\treason: 'ASF header prelude',\n\t\t\t\t});\n\t\t\t\tconst isUnknownFileSize = hasUnknownFileSize(tokenizer);\n\t\t\t\tconst asfHeaderScanStart = tokenizer.position;\n\t\t\t\tlet asfHeaderObjectCount = 0;\n\t\t\t\twhile (tokenizer.position + 24 < tokenizer.fileInfo.size) {\n\t\t\t\t\tasfHeaderObjectCount++;\n\t\t\t\t\tif (asfHeaderObjectCount > maximumAsfHeaderObjectCount) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (hasExceededUnknownSizeScanBudget(tokenizer, asfHeaderScanStart, maximumUntrustedSkipSizeInBytes)) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst previousPosition = tokenizer.position;\n\t\t\t\t\tconst header = await readHeader();\n\t\t\t\t\tlet payload = header.size - 24;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!Number.isFinite(payload)\n\t\t\t\t\t\t|| payload < 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tisMalformedAsf = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) {\n\t\t\t\t\t\t// Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n\t\t\t\t\t\tconst typeId = new Uint8Array(16);\n\t\t\t\t\t\tpayload -= await safeReadBuffer(tokenizer, typeId, undefined, {\n\t\t\t\t\t\t\tmaximumLength: typeId.length,\n\t\t\t\t\t\t\treason: 'ASF stream type GUID',\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t\t// Found audio:\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\t\tmime: 'audio/x-ms-asf',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t\t// Found video:\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\t\tmime: 'video/x-ms-asf',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tisUnknownFileSize\n\t\t\t\t\t\t&& payload > maximumAsfHeaderPayloadSizeInBytes\n\t\t\t\t\t) {\n\t\t\t\t\t\tisMalformedAsf = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tawait safeIgnore(tokenizer, payload, {\n\t\t\t\t\t\tmaximumLength: isUnknownFileSize ? maximumAsfHeaderPayloadSizeInBytes : tokenizer.fileInfo.size,\n\t\t\t\t\t\treason: 'ASF header payload',\n\t\t\t\t\t});\n\n\t\t\t\t\t// Safeguard against malformed files: break if the position did not advance.\n\t\t\t\t\tif (tokenizer.position <= previousPosition) {\n\t\t\t\t\t\tisMalformedAsf = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (\n\t\t\t\t\terror instanceof strtok3.EndOfStreamError\n\t\t\t\t\t|| error instanceof ParserHardLimitError\n\t\t\t\t) {\n\t\t\t\t\tif (hasUnknownFileSize(tokenizer)) {\n\t\t\t\t\t\tisMalformedAsf = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (isMalformedAsf) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Default to ASF generic extension\n\t\t\treturn {\n\t\t\t\text: 'asf',\n\t\t\t\tmime: 'application/vnd.ms-asf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\treturn {\n\t\t\t\text: 'ktx',\n\t\t\t\tmime: 'image/ktx',\n\t\t\t};\n\t\t}\n\n\t\tif ((this.check([0x7E, 0x10, 0x04]) || this.check([0x7E, 0x18, 0x04])) && this.check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) {\n\t\t\treturn {\n\t\t\t\text: 'mie',\n\t\t\t\tmime: 'application/x-mie',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) {\n\t\t\treturn {\n\t\t\t\text: 'shp',\n\t\t\t\tmime: 'application/x-esri-shape',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0x4F, 0xFF, 0x51])) {\n\t\t\treturn {\n\t\t\t\text: 'j2c',\n\t\t\t\tmime: 'image/j2c',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n\t\t\t// JPEG-2000 family\n\n\t\t\tawait tokenizer.ignore(20);\n\t\t\tconst type = await tokenizer.readToken(new Token.StringType(4, 'ascii'));\n\t\t\tswitch (type) {\n\t\t\t\tcase 'jp2 ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jp2',\n\t\t\t\t\t\tmime: 'image/jp2',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpx ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpx',\n\t\t\t\t\t\tmime: 'image/jpx',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpm ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpm',\n\t\t\t\t\t\tmime: 'image/jpm',\n\t\t\t\t\t};\n\t\t\t\tcase 'mjp2':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mj2',\n\t\t\t\t\t\tmime: 'image/mj2',\n\t\t\t\t\t};\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0xFF, 0x0A])\n\t\t\t|| this.check([0x00, 0x00, 0x00, 0x0C, 0x4A, 0x58, 0x4C, 0x20, 0x0D, 0x0A, 0x87, 0x0A])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'jxl',\n\t\t\t\tmime: 'image/jxl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFE, 0xFF])) { // UTF-16-BOM-BE\n\t\t\tif (this.checkString('= 16) { // Rough & quick check Pickle/ASAR\n\t\t\tconst jsonSize = new DataView(this.buffer.buffer).getUint32(12, true);\n\n\t\t\tif (jsonSize > 12 && this.buffer.length >= jsonSize + 16) {\n\t\t\t\ttry {\n\t\t\t\t\tconst header = new TextDecoder().decode(this.buffer.subarray(16, jsonSize + 16));\n\t\t\t\t\tconst json = JSON.parse(header);\n\t\t\t\t\t// Check if Pickle is ASAR\n\t\t\t\t\tif (json.files) { // Final check, assuring Pickle/ASAR format\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asar',\n\t\t\t\t\t\t\tmime: 'application/x-asar',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n\t\t\treturn {\n\t\t\t\text: 'mxf',\n\t\t\t\tmime: 'application/mxf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('SCRM', {offset: 44})) {\n\t\t\treturn {\n\t\t\t\text: 's3m',\n\t\t\t\tmime: 'audio/x-s3m',\n\t\t\t};\n\t\t}\n\n\t\t// Raw MPEG-2 transport stream (188-byte packets)\n\t\tif (this.check([0x47]) && this.check([0x47], {offset: 188})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\t// Blu-ray Disc Audio-Video (BDAV) MPEG-2 transport stream has 4-byte TP_extra_header before each 188-byte packet\n\t\tif (this.check([0x47], {offset: 4}) && this.check([0x47], {offset: 196})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) {\n\t\t\treturn {\n\t\t\t\text: 'mobi',\n\t\t\t\tmime: 'application/x-mobipocket-ebook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) {\n\t\t\treturn {\n\t\t\t\text: 'dcm',\n\t\t\t\tmime: 'application/dicom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'lnk',\n\t\t\t\tmime: 'application/x.ms.shortcut', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'alias',\n\t\t\t\tmime: 'application/x.apple.alias', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Kaydara FBX Binary \\u0000')) {\n\t\t\treturn {\n\t\t\t\text: 'fbx',\n\t\t\t\tmime: 'application/x.autodesk.fbx', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x4C, 0x50], {offset: 34})\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x00, 0x01], {offset: 8})\n\t\t\t\t|| this.check([0x01, 0x00, 0x02], {offset: 8})\n\t\t\t\t|| this.check([0x02, 0x00, 0x02], {offset: 8})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'eot',\n\t\t\t\tmime: 'application/vnd.ms-fontobject',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) {\n\t\t\treturn {\n\t\t\t\text: 'indd',\n\t\t\t\tmime: 'application/x-indesign',\n\t\t\t};\n\t\t}\n\n\t\t// -- 16-byte signatures --\n\n\t\t// JMP files - check for both Little Endian and Big Endian signatures\n\t\tif (this.check([0xFF, 0xFF, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00])\n\t\t\t|| this.check([0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'jmp',\n\t\t\t\tmime: 'application/x-jmp-data',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 256 to 512\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\t// Requires a buffer size of 512 bytes\n\t\tif ((this.checkString('ustar', {offset: 257}) && (this.checkString('\\0', {offset: 262}) || this.checkString(' ', {offset: 262})))\n\t\t\t|| (this.check([0, 0, 0, 0, 0, 0], {offset: 257}) && tarHeaderChecksumMatches(this.buffer))) {\n\t\t\treturn {\n\t\t\t\text: 'tar',\n\t\t\t\tmime: 'application/x-tar',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0xFE])) { // UTF-16-BOM-LE\n\t\t\tconst encoding = 'utf-16le';\n\t\t\tif (this.checkString(' {\n\t\tthis.buffer = new Uint8Array(reasonableDetectionSizeInBytes);\n\t\tconst fileSize = getKnownFileSizeOrMaximum(tokenizer.fileInfo.size);\n\n\t\t// Read initial sample size of 8 bytes\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(8, fileSize), mayBeLess: true});\n\n\t\tif (\n\t\t\tthis.check([0x0, 0x0, 0x1, 0xBA])\n\t\t\t|| this.check([0x0, 0x0, 0x1, 0xB3])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mpg',\n\t\t\t\tmime: 'video/mpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ttf',\n\t\t\t\tmime: 'font/ttf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x01, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ico',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x02, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'cur',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\t// Adjust buffer to `mpegOffsetTolerance`\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(2 + this.options.mpegOffsetTolerance, fileSize), mayBeLess: true});\n\n\t\t// Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE)\n\t\tif (this.buffer.length >= (2 + this.options.mpegOffsetTolerance)) {\n\t\t\tfor (let depth = 0; depth <= this.options.mpegOffsetTolerance; ++depth) {\n\t\t\t\tconst type = this.scanMpeg(depth);\n\t\t\t\tif (type) {\n\t\t\t\t\treturn type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tasync readTiffTag(bigEndian) {\n\t\tconst tagId = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tawait this.tokenizer.ignore(10);\n\t\tswitch (tagId) {\n\t\t\tcase 50_341:\n\t\t\t\treturn {\n\t\t\t\t\text: 'arw',\n\t\t\t\t\tmime: 'image/x-sony-arw',\n\t\t\t\t};\n\t\t\tcase 50_706:\n\t\t\t\treturn {\n\t\t\t\t\text: 'dng',\n\t\t\t\t\tmime: 'image/x-adobe-dng',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t}\n\t}\n\n\tasync readTiffIFD(bigEndian) {\n\t\tconst numberOfTags = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tif (numberOfTags > maximumTiffTagCount) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\thasUnknownFileSize(this.tokenizer)\n\t\t\t&& (2 + (numberOfTags * 12)) > maximumTiffIfdOffsetInBytes\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let n = 0; n < numberOfTags; ++n) {\n\t\t\tconst fileType = await this.readTiffTag(bigEndian);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync readTiffHeader(bigEndian) {\n\t\tconst tiffFileType = {\n\t\t\text: 'tif',\n\t\t\tmime: 'image/tiff',\n\t\t};\n\n\t\tconst version = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 2);\n\t\tconst ifdOffset = (bigEndian ? Token.UINT32_BE : Token.UINT32_LE).get(this.buffer, 4);\n\n\t\tif (version === 42) {\n\t\t\t// TIFF file header\n\t\t\tif (ifdOffset >= 6) {\n\t\t\t\tif (this.checkString('CR', {offset: 8})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'cr2',\n\t\t\t\t\t\tmime: 'image/x-canon-cr2',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (ifdOffset >= 8) {\n\t\t\t\t\tconst someId1 = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 8);\n\t\t\t\t\tconst someId2 = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 10);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(someId1 === 0x1C && someId2 === 0xFE)\n\t\t\t\t\t\t|| (someId1 === 0x1F && someId2 === 0x0B)) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'nef',\n\t\t\t\t\t\t\tmime: 'image/x-nikon-nef',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\thasUnknownFileSize(this.tokenizer)\n\t\t\t\t&& ifdOffset > maximumTiffStreamIfdOffsetInBytes\n\t\t\t) {\n\t\t\t\treturn tiffFileType;\n\t\t\t}\n\n\t\t\tconst maximumTiffOffset = hasUnknownFileSize(this.tokenizer) ? maximumTiffIfdOffsetInBytes : this.tokenizer.fileInfo.size;\n\n\t\t\ttry {\n\t\t\t\tawait safeIgnore(this.tokenizer, ifdOffset, {\n\t\t\t\t\tmaximumLength: maximumTiffOffset,\n\t\t\t\t\treason: 'TIFF IFD offset',\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tlet fileType;\n\t\t\ttry {\n\t\t\t\tfileType = await this.readTiffIFD(bigEndian);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn fileType ?? tiffFileType;\n\t\t}\n\n\t\tif (version === 43) {\t// Big TIFF file header\n\t\t\treturn tiffFileType;\n\t\t}\n\t}\n\n\t/**\n\tScan check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE).\n\n\t@param offset - Offset to scan for sync-preamble.\n\t@returns {{ext: string, mime: string}}\n\t*/\n\tscanMpeg(offset) {\n\t\tif (this.check([0xFF, 0xE0], {offset, mask: [0xFF, 0xE0]})) {\n\t\t\tif (this.check([0x10], {offset: offset + 1, mask: [0x16]})) {\n\t\t\t\t// Check for (ADTS) MPEG-2\n\t\t\t\tif (this.check([0x08], {offset: offset + 1, mask: [0x08]})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'aac',\n\t\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Must be (ADTS) MPEG-4\n\t\t\t\treturn {\n\t\t\t\t\text: 'aac',\n\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG 1 or 2 Layer 3 header\n\t\t\t// Check for MPEG layer 3\n\t\t\tif (this.check([0x02], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 2\n\t\t\tif (this.check([0x04], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp2',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 1\n\t\t\tif (this.check([0x06], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp1',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport const supportedExtensions = new Set(extensions);\nexport const supportedMimeTypes = new Set(mimeTypes);\n","import { fileTypeFromBuffer } from 'file-type';\nimport ContentType from 'content-type';\nimport { parse as mimeTypeParse } from 'media-typer';\nimport initDebug from 'debug';\nimport { MetadataCollector } from './common/MetadataCollector.js';\nimport { TrackType } from './type.js';\nimport { mpegParserLoader } from './mpeg/MpegLoader.js';\nimport { CouldNotDetermineFileTypeError, UnsupportedFileTypeError } from './ParseError.js';\nimport { apeParserLoader } from './apev2/Apev2Loader.js';\nimport { asfParserLoader } from './asf/AsfLoader.js';\nimport { dsdiffParserLoader } from './dsdiff/DsdiffLoader.js';\nimport { aiffParserLoader } from './aiff/AiffLoader.js';\nimport { dsfParserLoader } from './dsf/DsfLoader.js';\nimport { flacParserLoader } from './flac/FlacLoader.js';\nimport { matroskaParserLoader } from './matroska/MatroskaLoader.js';\nimport { mp4ParserLoader } from './mp4/Mp4Loader.js';\nimport { musepackParserLoader } from './musepack/MusepackLoader.js';\nimport { oggParserLoader } from './ogg/OggLoader.js';\nimport { wavpackParserLoader } from './wavpack/WavPackLoader.js';\nimport { riffParserLoader } from './wav/WaveLoader.js';\nimport { scanAppendingHeaders } from './core.js';\nconst debug = initDebug('music-metadata:parser:factory');\nexport function parseHttpContentType(contentType) {\n const type = ContentType.parse(contentType);\n const mime = mimeTypeParse(type.type);\n return {\n type: mime.type,\n subtype: mime.subtype,\n suffix: mime.suffix,\n parameters: type.parameters\n };\n}\nexport class ParserFactory {\n constructor() {\n this.parsers = [];\n [\n flacParserLoader,\n mpegParserLoader,\n apeParserLoader,\n mp4ParserLoader,\n matroskaParserLoader,\n riffParserLoader,\n oggParserLoader,\n asfParserLoader,\n aiffParserLoader,\n wavpackParserLoader,\n musepackParserLoader,\n dsfParserLoader,\n dsdiffParserLoader\n ].forEach(parser => { this.registerParser(parser); });\n }\n registerParser(parser) {\n this.parsers.push(parser);\n }\n async parse(tokenizer, parserLoader, opts) {\n if (tokenizer.supportsRandomAccess()) {\n debug('tokenizer supports random-access, scanning for appending headers');\n await scanAppendingHeaders(tokenizer, opts);\n }\n else {\n debug('tokenizer does not support random-access, cannot scan for appending headers');\n }\n if (!parserLoader) {\n const buf = new Uint8Array(4100);\n if (tokenizer.fileInfo.mimeType) {\n parserLoader = this.findLoaderForContentType(tokenizer.fileInfo.mimeType);\n }\n if (!parserLoader && tokenizer.fileInfo.path) {\n parserLoader = this.findLoaderForExtension(tokenizer.fileInfo.path);\n }\n if (!parserLoader) {\n // Parser could not be determined on MIME-type or extension\n debug('Guess parser on content...');\n await tokenizer.peekBuffer(buf, { mayBeLess: true });\n const guessedType = await fileTypeFromBuffer(buf, { mpegOffsetTolerance: 10 });\n if (!guessedType || !guessedType.mime) {\n throw new CouldNotDetermineFileTypeError('Failed to determine audio format');\n }\n debug(`Guessed file type is mime=${guessedType.mime}, extension=${guessedType.ext}`);\n parserLoader = this.findLoaderForContentType(guessedType.mime);\n if (!parserLoader) {\n throw new UnsupportedFileTypeError(`Guessed MIME-type not supported: ${guessedType.mime}`);\n }\n }\n }\n // Parser found, execute parser\n debug(`Loading ${parserLoader.parserType} parser...`);\n const metadata = new MetadataCollector(opts);\n const ParserImpl = await parserLoader.load();\n const parser = new ParserImpl(metadata, tokenizer, opts ?? {});\n debug(`Parser ${parserLoader.parserType} loaded`);\n await parser.parse();\n if (metadata.format.trackInfo) {\n if (metadata.format.hasAudio === undefined) {\n metadata.setFormat('hasAudio', !!metadata.format.trackInfo.find(track => track.type === TrackType.audio));\n }\n if (metadata.format.hasVideo === undefined) {\n metadata.setFormat('hasVideo', !!metadata.format.trackInfo.find(track => track.type === TrackType.video));\n }\n }\n return metadata.toCommonMetadata();\n }\n /**\n * @param filePath - Path, filename or extension to audio file\n * @return Parser submodule name\n */\n findLoaderForExtension(filePath) {\n if (!filePath)\n return;\n const extension = getExtension(filePath).toLocaleLowerCase() || filePath;\n return this.parsers.find(parser => parser.extensions.indexOf(extension) !== -1);\n }\n findLoaderForContentType(httpContentType) {\n let mime;\n if (!httpContentType)\n return;\n try {\n mime = parseHttpContentType(httpContentType);\n }\n catch (_err) {\n debug(`Invalid HTTP Content-Type header value: ${httpContentType}`);\n return;\n }\n const subType = mime.subtype.indexOf('x-') === 0 ? mime.subtype.substring(2) : mime.subtype;\n return this.parsers.find(parser => parser.mimeTypes.find(loader => loader.indexOf(`${mime.type}/${subType}`) !== -1));\n }\n getSupportedMimeTypes() {\n const mimeTypeSet = new Set();\n this.parsers.forEach(loader => {\n loader.mimeTypes.forEach(mimeType => {\n mimeTypeSet.add(mimeType);\n mimeTypeSet.add(mimeType.replace('/', '/x-'));\n });\n });\n return Array.from(mimeTypeSet);\n }\n}\nfunction getExtension(fname) {\n const i = fname.lastIndexOf('.');\n return i === -1 ? '' : fname.substring(i);\n}\n","/**\n * RegExp to match type in RFC 6838\n *\n * type-name = restricted-name\n * subtype-name = restricted-name\n * restricted-name = restricted-name-first *126restricted-name-chars\n * restricted-name-first = ALPHA / DIGIT\n * restricted-name-chars = ALPHA / DIGIT / \"!\" / \"#\" /\n * \"$\" / \"&\" / \"-\" / \"^\" / \"_\"\n * restricted-name-chars =/ \".\" ; Characters before first dot always\n * ; specify a facet name\n * restricted-name-chars =/ \"+\" ; Characters after last plus always\n * ; specify a structured syntax suffix\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n * DIGIT = %x30-39 ; 0-9\n */\nconst subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}$/;\nconst typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/;\nconst typeRegExp =\n /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}\\/[A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}$/;\n\n/**\n * Media type object.\n */\nexport interface MediaType {\n /**\n * The type of the media type.\n */\n type: string;\n /**\n * The subtype of the media type.\n */\n subtype: string;\n /**\n * The structured syntax suffix of the media type.\n */\n suffix?: string;\n}\n\n/**\n * Format object to media type.\n */\nexport function format(obj: MediaType): string {\n const { type, subtype, suffix } = obj;\n\n if (!type || !typeNameRegExp.test(type)) {\n throw new TypeError(`Invalid type: ${type}`);\n }\n\n if (!subtype || !subtypeNameRegExp.test(subtype)) {\n throw new TypeError(`Invalid subtype: ${subtype}`);\n }\n\n let str = type + \"/\" + subtype;\n\n if (suffix !== undefined) {\n if (!typeNameRegExp.test(suffix)) {\n throw new TypeError(`Invalid suffix: ${suffix}`);\n }\n\n str += \"+\" + suffix;\n }\n\n return str;\n}\n\n/**\n * Parse media type to object.\n */\nexport function parse(str: string): MediaType {\n if (!typeRegExp.test(str)) {\n throw new TypeError(`Invalid media type: ${str}`);\n }\n\n const slashIndex = str.indexOf(\"/\");\n const type = str.slice(0, slashIndex).toLowerCase();\n let subtype = str.slice(slashIndex + 1).toLowerCase();\n let suffix: string | undefined;\n\n const index = subtype.lastIndexOf(\"+\");\n if (index !== -1) {\n suffix = subtype.slice(index + 1);\n subtype = subtype.slice(0, index);\n }\n\n return { type, subtype, suffix };\n}\n\n/**\n * Test media type.\n */\nexport function test(str: string): boolean {\n return typeRegExp.test(str);\n}\n","import { TrackTypeValueToKeyMap, } from '../type.js';\nimport initDebug from 'debug';\nimport { isSingleton, isUnique } from './GenericTagTypes.js';\nimport { CombinedTagMapper } from './CombinedTagMapper.js';\nimport { CommonTagMapper } from './GenericTagMapper.js';\nimport { toRatio } from './Util.js';\nimport { fileTypeFromBuffer } from 'file-type';\nimport { parseLyrics } from '../lrc/LyricsParser.js';\nconst debug = initDebug('music-metadata:collector');\nconst TagPriority = ['matroska', 'APEv2', 'vorbis', 'ID3v2.4', 'ID3v2.3', 'ID3v2.2', 'exif', 'asf', 'iTunes', 'AIFF', 'ID3v1'];\n/**\n * Provided to the parser to uodate the metadata result.\n * Responsible for triggering async updates\n */\nexport class MetadataCollector {\n constructor(opts) {\n this.format = {\n tagTypes: [],\n trackInfo: []\n };\n this.native = {};\n this.common = {\n track: { no: null, of: null },\n disk: { no: null, of: null },\n movementIndex: { no: null, of: null }\n };\n this.quality = {\n warnings: []\n };\n /**\n * Keeps track of origin priority for each mapped id\n */\n this.commonOrigin = {};\n /**\n * Maps a tag type to a priority\n */\n this.originPriority = {};\n this.tagMapper = new CombinedTagMapper();\n this.opts = opts;\n let priority = 1;\n for (const tagType of TagPriority) {\n this.originPriority[tagType] = priority++;\n }\n this.originPriority.artificial = 500; // Filled using alternative tags\n this.originPriority.id3v1 = 600; // Consider as the worst because of the field length limit\n }\n /**\n * @returns {boolean} true if one or more tags have been found\n */\n hasAny() {\n return Object.keys(this.native).length > 0;\n }\n addStreamInfo(streamInfo) {\n debug(`streamInfo: type=${streamInfo.type ? TrackTypeValueToKeyMap[streamInfo.type] : '?'}, codec=${streamInfo.codecName}`);\n this.format.trackInfo.push(streamInfo);\n }\n setFormat(key, value) {\n debug(`format: ${key} = ${value}`);\n this.format[key] = value; // as any to override readonly\n if (this.opts?.observer) {\n this.opts.observer({ metadata: this, tag: { type: 'format', id: key, value } });\n }\n }\n setAudioOnly() {\n this.setFormat('hasAudio', true);\n this.setFormat('hasVideo', false);\n }\n async addTag(tagType, tagId, value) {\n debug(`tag ${tagType}.${tagId} = ${value}`);\n if (!this.native[tagType]) {\n this.format.tagTypes.push(tagType);\n this.native[tagType] = [];\n }\n this.native[tagType].push({ id: tagId, value });\n await this.toCommon(tagType, tagId, value);\n }\n addWarning(warning) {\n this.quality.warnings.push({ message: warning });\n }\n async postMap(tagType, tag) {\n // Common tag (alias) found\n // check if we need to do something special with common tag\n // if the event has been aliased then we need to clean it before\n // it is emitted to the user. e.g. genre (20) -> Electronic\n switch (tag.id) {\n case 'artist':\n return this.handleSingularArtistTag(tagType, tag, 'artist', 'artists');\n case 'albumartist':\n return this.handleSingularArtistTag(tagType, tag, 'albumartist', 'albumartists');\n case 'artists':\n return this.handlePluralArtistTag(tagType, tag, 'artist', 'artists');\n case 'albumartists':\n return this.handlePluralArtistTag(tagType, tag, 'albumartist', 'albumartists');\n case 'picture':\n return this.postFixPicture(tag.value).then(picture => {\n if (picture !== null) {\n tag.value = picture;\n this.setGenericTag(tagType, tag);\n }\n });\n case 'totaltracks':\n this.common.track.of = CommonTagMapper.toIntOrNull(tag.value);\n return;\n case 'totaldiscs':\n this.common.disk.of = CommonTagMapper.toIntOrNull(tag.value);\n return;\n case 'movementTotal':\n this.common.movementIndex.of = CommonTagMapper.toIntOrNull(tag.value);\n return;\n case 'track':\n case 'disk':\n case 'movementIndex': {\n const of = this.common[tag.id].of; // store of value, maybe maybe overwritten\n this.common[tag.id] = CommonTagMapper.normalizeTrack(tag.value);\n this.common[tag.id].of = of != null ? of : this.common[tag.id].of;\n return;\n }\n case 'bpm':\n case 'year':\n case 'originalyear':\n tag.value = Number.parseInt(tag.value, 10);\n break;\n case 'date': {\n // ToDo: be more strict on 'YYYY...'\n const year = Number.parseInt(tag.value.substr(0, 4), 10);\n if (!Number.isNaN(year)) {\n this.common.year = year;\n }\n break;\n }\n case 'discogs_label_id':\n case 'discogs_release_id':\n case 'discogs_master_release_id':\n case 'discogs_artist_id':\n case 'discogs_votes':\n tag.value = typeof tag.value === 'string' ? Number.parseInt(tag.value, 10) : tag.value;\n break;\n case 'replaygain_track_gain':\n case 'replaygain_track_peak':\n case 'replaygain_album_gain':\n case 'replaygain_album_peak':\n tag.value = toRatio(tag.value);\n break;\n case 'replaygain_track_minmax':\n tag.value = tag.value.split(',').map(v => Number.parseInt(v, 10));\n break;\n case 'replaygain_undo': {\n const minMix = tag.value.split(',').map(v => Number.parseInt(v, 10));\n tag.value = {\n leftChannel: minMix[0],\n rightChannel: minMix[1]\n };\n break;\n }\n case 'gapless': // iTunes gap-less flag\n case 'compilation':\n case 'podcast':\n case 'showMovement':\n tag.value = tag.value === '1' || tag.value === 1; // boolean\n break;\n case 'isrc': { // Only keep unique values\n const commonTag = this.common[tag.id];\n if (commonTag && commonTag.indexOf(tag.value) !== -1)\n return;\n break;\n }\n case 'comment':\n if (typeof tag.value === 'string') {\n tag.value = { text: tag.value };\n }\n if (tag.value.descriptor === 'iTunPGAP') {\n this.setGenericTag(tagType, { id: 'gapless', value: tag.value.text === '1' });\n }\n break;\n case 'lyrics':\n if (typeof tag.value === 'string') {\n tag.value = parseLyrics(tag.value);\n }\n break;\n default:\n // nothing to do\n }\n if (tag.value !== null) {\n this.setGenericTag(tagType, tag);\n }\n }\n /**\n * Convert native tags to common tags\n * @returns {IAudioMetadata} Native + common tags\n */\n toCommonMetadata() {\n return {\n format: this.format,\n native: this.native,\n quality: this.quality,\n common: this.common\n };\n }\n /**\n * Handle singular artist tags (artist, albumartist) and cross-populate to plural form\n */\n handleSingularArtistTag(tagType, tag, singularId, pluralId) {\n if (this.commonOrigin[singularId] === this.originPriority[tagType]) {\n // Assume the singular field is used as plural (multiple values from same source)\n return this.postMap('artificial', { id: pluralId, value: tag.value });\n }\n if (!this.common[pluralId]) {\n // Fill plural using singular source\n this.setGenericTag('artificial', { id: pluralId, value: tag.value });\n }\n this.setGenericTag(tagType, tag);\n }\n /**\n * Handle plural artist tags (artists, albumartists) and cross-populate to singular form\n */\n handlePluralArtistTag(tagType, tag, singularId, pluralId) {\n if (!this.common[singularId] || this.commonOrigin[singularId] === this.originPriority.artificial) {\n if (!this.common[pluralId] || this.common[pluralId].indexOf(tag.value) === -1) {\n // Fill singular using plural source\n const values = (this.common[pluralId] || []).concat([tag.value]);\n const value = joinArtists(values);\n this.setGenericTag('artificial', { id: singularId, value });\n }\n }\n this.setGenericTag(tagType, tag);\n }\n /**\n * Fix some common issues with picture object\n * @param picture Picture\n */\n async postFixPicture(picture) {\n if (picture.data && picture.data.length > 0) {\n if (!picture.format) {\n const fileType = await fileTypeFromBuffer(Uint8Array.from(picture.data)); // ToDO: remove Buffer\n if (fileType) {\n picture.format = fileType.mime;\n }\n else {\n return null;\n }\n }\n picture.format = picture.format.toLocaleLowerCase();\n switch (picture.format) {\n case 'image/jpg':\n picture.format = 'image/jpeg'; // ToDo: register warning\n }\n return picture;\n }\n this.addWarning(\"Empty picture tag found\");\n return null;\n }\n /**\n * Convert native tag to common tags\n */\n async toCommon(tagType, tagId, value) {\n const tag = { id: tagId, value };\n const genericTag = this.tagMapper.mapTag(tagType, tag, this);\n if (genericTag) {\n await this.postMap(tagType, genericTag);\n }\n }\n /**\n * Set generic tag\n */\n setGenericTag(tagType, tag) {\n debug(`common.${tag.id} = ${tag.value}`);\n const prio0 = this.commonOrigin[tag.id] || 1000;\n const prio1 = this.originPriority[tagType];\n if (isSingleton(tag.id)) {\n if (prio1 <= prio0) {\n this.common[tag.id] = tag.value;\n this.commonOrigin[tag.id] = prio1;\n }\n else {\n return debug(`Ignore native tag (singleton): ${tagType}.${tag.id} = ${tag.value}`);\n }\n }\n else {\n if (prio1 === prio0) {\n if (!isUnique(tag.id) || this.common[tag.id].indexOf(tag.value) === -1) {\n this.common[tag.id].push(tag.value);\n }\n else {\n debug(`Ignore duplicate value: ${tagType}.${tag.id} = ${tag.value}`);\n }\n // no effect? this.commonOrigin[tag.id] = prio1;\n }\n else if (prio1 < prio0) {\n this.common[tag.id] = [tag.value];\n this.commonOrigin[tag.id] = prio1;\n }\n else {\n return debug(`Ignore native tag (list): ${tagType}.${tag.id} = ${tag.value}`);\n }\n }\n if (this.opts?.observer) {\n this.opts.observer({ metadata: this, tag: { type: 'common', id: tag.id, value: tag.value } });\n }\n // ToDo: trigger metadata event\n }\n}\nexport function joinArtists(artists) {\n if (artists.length > 2) {\n return `${artists.slice(0, artists.length - 1).join(', ')} & ${artists[artists.length - 1]}`;\n }\n return artists.join(' & ');\n}\n","const defaultTagInfo = {\n multiple: false,\n};\nconst commonTags = {\n year: defaultTagInfo,\n track: defaultTagInfo,\n disk: defaultTagInfo,\n title: defaultTagInfo,\n artist: defaultTagInfo,\n artists: { multiple: true, unique: true },\n albumartist: defaultTagInfo,\n albumartists: { multiple: true, unique: true },\n album: defaultTagInfo,\n date: defaultTagInfo,\n originaldate: defaultTagInfo,\n originalyear: defaultTagInfo,\n releasedate: defaultTagInfo,\n comment: { multiple: true, unique: false },\n genre: { multiple: true, unique: true },\n picture: { multiple: true, unique: true },\n composer: { multiple: true, unique: true },\n lyrics: { multiple: true, unique: false },\n albumsort: { multiple: false, unique: true },\n titlesort: { multiple: false, unique: true },\n work: { multiple: false, unique: true },\n artistsort: { multiple: false, unique: true },\n albumartistsort: { multiple: false, unique: true },\n composersort: { multiple: false, unique: true },\n lyricist: { multiple: true, unique: true },\n writer: { multiple: true, unique: true },\n conductor: { multiple: true, unique: true },\n remixer: { multiple: true, unique: true },\n arranger: { multiple: true, unique: true },\n engineer: { multiple: true, unique: true },\n producer: { multiple: true, unique: true },\n technician: { multiple: true, unique: true },\n djmixer: { multiple: true, unique: true },\n mixer: { multiple: true, unique: true },\n label: { multiple: true, unique: true },\n grouping: defaultTagInfo,\n subtitle: { multiple: true },\n discsubtitle: defaultTagInfo,\n totaltracks: defaultTagInfo,\n totaldiscs: defaultTagInfo,\n compilation: defaultTagInfo,\n rating: { multiple: true },\n bpm: defaultTagInfo,\n mood: defaultTagInfo,\n media: defaultTagInfo,\n catalognumber: { multiple: true, unique: true },\n tvShow: defaultTagInfo,\n tvShowSort: defaultTagInfo,\n tvSeason: defaultTagInfo,\n tvEpisode: defaultTagInfo,\n tvEpisodeId: defaultTagInfo,\n tvNetwork: defaultTagInfo,\n podcast: defaultTagInfo,\n podcasturl: defaultTagInfo,\n releasestatus: defaultTagInfo,\n releasetype: { multiple: true },\n releasecountry: defaultTagInfo,\n script: defaultTagInfo,\n language: defaultTagInfo,\n copyright: defaultTagInfo,\n license: defaultTagInfo,\n encodedby: defaultTagInfo,\n encodersettings: defaultTagInfo,\n gapless: defaultTagInfo,\n barcode: defaultTagInfo,\n isrc: { multiple: true },\n asin: defaultTagInfo,\n musicbrainz_recordingid: defaultTagInfo,\n musicbrainz_trackid: defaultTagInfo,\n musicbrainz_albumid: defaultTagInfo,\n musicbrainz_artistid: { multiple: true },\n musicbrainz_albumartistid: { multiple: true },\n musicbrainz_releasegroupid: defaultTagInfo,\n musicbrainz_workid: defaultTagInfo,\n musicbrainz_trmid: defaultTagInfo,\n musicbrainz_discid: defaultTagInfo,\n acoustid_id: defaultTagInfo,\n acoustid_fingerprint: defaultTagInfo,\n musicip_puid: defaultTagInfo,\n musicip_fingerprint: defaultTagInfo,\n website: defaultTagInfo,\n 'performer:instrument': { multiple: true, unique: true },\n averageLevel: defaultTagInfo,\n peakLevel: defaultTagInfo,\n notes: { multiple: true, unique: false },\n key: defaultTagInfo,\n originalalbum: defaultTagInfo,\n originalartist: defaultTagInfo,\n discogs_artist_id: { multiple: true, unique: true },\n discogs_release_id: defaultTagInfo,\n discogs_label_id: defaultTagInfo,\n discogs_master_release_id: defaultTagInfo,\n discogs_votes: defaultTagInfo,\n discogs_rating: defaultTagInfo,\n replaygain_track_peak: defaultTagInfo,\n replaygain_track_gain: defaultTagInfo,\n replaygain_album_peak: defaultTagInfo,\n replaygain_album_gain: defaultTagInfo,\n replaygain_track_minmax: defaultTagInfo,\n replaygain_album_minmax: defaultTagInfo,\n replaygain_undo: defaultTagInfo,\n description: { multiple: true },\n longDescription: defaultTagInfo,\n category: { multiple: true },\n hdVideo: defaultTagInfo,\n keywords: { multiple: true },\n movement: defaultTagInfo,\n movementIndex: defaultTagInfo,\n movementTotal: defaultTagInfo,\n podcastId: defaultTagInfo,\n showMovement: defaultTagInfo,\n stik: defaultTagInfo,\n playCounter: defaultTagInfo\n};\nexport const commonTagsKeys = /* @__PURE__ */ Object.keys(commonTags);\n/**\n * @param alias Name of common tag\n * @returns {boolean|*} true if given alias is mapped as a singleton', otherwise false\n */\nexport function isSingleton(alias) {\n return commonTags[alias] && !commonTags[alias].multiple;\n}\n/**\n * @param alias Common (generic) tag\n * @returns {boolean|*} true if given alias is a singleton or explicitly marked as unique\n */\nexport function isUnique(alias) {\n return !commonTags[alias].multiple || commonTags[alias].unique || false;\n}\n","export class CommonTagMapper {\n static toIntOrNull(str) {\n const cleaned = Number.parseInt(str, 10);\n return Number.isNaN(cleaned) ? null : cleaned;\n }\n // TODO: a string of 1of1 would fail to be converted\n // converts 1/10 to no : 1, of : 10\n // or 1 to no : 1, of : 0\n static normalizeTrack(origVal) {\n const split = origVal.toString().split('/');\n return {\n no: Number.parseInt(split[0], 10) || null,\n of: Number.parseInt(split[1], 10) || null\n };\n }\n constructor(tagTypes, tagMap) {\n this.tagTypes = tagTypes;\n this.tagMap = tagMap;\n }\n /**\n * Process and set common tags\n * write common tags to\n * @param tag Native tag\n * @param warnings Register warnings\n * @return common name\n */\n mapGenericTag(tag, warnings) {\n tag = { id: tag.id, value: tag.value }; // clone object\n this.postMap(tag, warnings);\n // Convert native tag event to generic 'alias' tag\n const id = this.getCommonName(tag.id);\n return id ? { id, value: tag.value } : null;\n }\n /**\n * Convert native tag key to common tag key\n * @param tag Native header tag\n * @return common tag name (alias)\n */\n getCommonName(tag) {\n return this.tagMap[tag];\n }\n /**\n * Handle post mapping exceptions / correction\n * @param tag Tag e.g. {\"©alb\", \"Buena Vista Social Club\")\n * @param warnings Used to register warnings\n */\n postMap(_tag, _warnings) {\n return;\n }\n}\nCommonTagMapper.maxRatingScore = 1;\n","import { CommonTagMapper } from '../common/GenericTagMapper.js';\n/**\n * ID3v1 tag mappings\n */\nconst id3v1TagMap = {\n title: 'title',\n artist: 'artist',\n album: 'album',\n year: 'year',\n comment: 'comment',\n track: 'track',\n genre: 'genre'\n};\nexport class ID3v1TagMapper extends CommonTagMapper {\n constructor() {\n super(['ID3v1'], id3v1TagMap);\n }\n}\n","import { CommonTagMapper } from './GenericTagMapper.js';\nexport class CaseInsensitiveTagMap extends CommonTagMapper {\n constructor(tagTypes, tagMap) {\n const upperCaseMap = {};\n for (const tag of Object.keys(tagMap)) {\n upperCaseMap[tag.toUpperCase()] = tagMap[tag];\n }\n super(tagTypes, upperCaseMap);\n }\n /**\n * @tag Native header tag\n * @return common tag name (alias)\n */\n getCommonName(tag) {\n return this.tagMap[tag.toUpperCase()];\n }\n}\n","import { UINT32_LE } from 'token-types';\nimport { CommonTagMapper } from '../common/GenericTagMapper.js';\nimport { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap.js';\nimport { decodeString } from '../common/Util.js';\n/**\n * ID3v2.3/ID3v2.4 tag mappings\n */\nconst id3v24TagMap = {\n // id3v2.3\n TIT2: 'title',\n TPE1: 'artist',\n 'TXXX:Artists': 'artists',\n TPE2: 'albumartist',\n TALB: 'album',\n TDRV: 'date', // [ 'date', 'year' ] ToDo: improve 'year' mapping\n /**\n * Original release year\n */\n TORY: 'originalyear',\n TPOS: 'disk',\n TCON: 'genre',\n APIC: 'picture',\n TCOM: 'composer',\n USLT: 'lyrics',\n TSOA: 'albumsort',\n TSOT: 'titlesort',\n TOAL: 'originalalbum',\n TSOP: 'artistsort',\n TSO2: 'albumartistsort',\n TSOC: 'composersort',\n TEXT: 'lyricist',\n 'TXXX:Writer': 'writer',\n TPE3: 'conductor',\n // 'IPLS:instrument': 'performer:instrument', // ToDo\n TPE4: 'remixer',\n 'IPLS:arranger': 'arranger',\n 'IPLS:engineer': 'engineer',\n 'IPLS:producer': 'producer',\n 'IPLS:DJ-mix': 'djmixer',\n 'IPLS:mix': 'mixer',\n TPUB: 'label',\n TIT1: 'grouping',\n TIT3: 'subtitle',\n TRCK: 'track',\n TCMP: 'compilation',\n POPM: 'rating',\n TBPM: 'bpm',\n TMED: 'media',\n 'TXXX:CATALOGNUMBER': 'catalognumber',\n 'TXXX:MusicBrainz Album Status': 'releasestatus',\n 'TXXX:MusicBrainz Album Type': 'releasetype',\n /**\n * Release country as documented: https://picard.musicbrainz.org/docs/mappings/#cite_note-0\n */\n 'TXXX:MusicBrainz Album Release Country': 'releasecountry',\n /**\n * Release country as implemented // ToDo: report\n */\n 'TXXX:RELEASECOUNTRY': 'releasecountry',\n 'TXXX:SCRIPT': 'script',\n TLAN: 'language',\n TCOP: 'copyright',\n WCOP: 'license',\n TENC: 'encodedby',\n TSSE: 'encodersettings',\n 'TXXX:BARCODE': 'barcode',\n 'TXXX:ISRC': 'isrc',\n TSRC: 'isrc',\n 'TXXX:ASIN': 'asin',\n 'TXXX:originalyear': 'originalyear',\n 'UFID:http://musicbrainz.org': 'musicbrainz_recordingid',\n 'TXXX:MusicBrainz Release Track Id': 'musicbrainz_trackid',\n 'TXXX:MusicBrainz Album Id': 'musicbrainz_albumid',\n 'TXXX:MusicBrainz Artist Id': 'musicbrainz_artistid',\n 'TXXX:MusicBrainz Album Artist Id': 'musicbrainz_albumartistid',\n 'TXXX:MusicBrainz Release Group Id': 'musicbrainz_releasegroupid',\n 'TXXX:MusicBrainz Work Id': 'musicbrainz_workid',\n 'TXXX:MusicBrainz TRM Id': 'musicbrainz_trmid',\n 'TXXX:MusicBrainz Disc Id': 'musicbrainz_discid',\n 'TXXX:ACOUSTID_ID': 'acoustid_id',\n 'TXXX:Acoustid Id': 'acoustid_id',\n 'TXXX:Acoustid Fingerprint': 'acoustid_fingerprint',\n 'TXXX:MusicIP PUID': 'musicip_puid',\n 'TXXX:MusicMagic Fingerprint': 'musicip_fingerprint',\n WOAR: 'website',\n // id3v2.4\n // ToDo: In same sequence as defined at http://id3.org/id3v2.4.0-frames\n TDRC: 'date', // date YYYY-MM-DD\n TYER: 'year',\n TDOR: 'originaldate',\n // 'TMCL:instrument': 'performer:instrument',\n 'TIPL:arranger': 'arranger',\n 'TIPL:engineer': 'engineer',\n 'TIPL:producer': 'producer',\n 'TIPL:DJ-mix': 'djmixer',\n 'TIPL:mix': 'mixer',\n TMOO: 'mood',\n // additional mappings:\n SYLT: 'lyrics',\n TSST: 'discsubtitle',\n TKEY: 'key',\n COMM: 'comment',\n TOPE: 'originalartist',\n // Windows Media Player\n 'PRIV:AverageLevel': 'averageLevel',\n 'PRIV:PeakLevel': 'peakLevel',\n // Discogs\n 'TXXX:DISCOGS_ARTIST_ID': 'discogs_artist_id',\n 'TXXX:DISCOGS_ARTISTS': 'artists',\n 'TXXX:DISCOGS_ARTIST_NAME': 'artists',\n 'TXXX:DISCOGS_ALBUM_ARTISTS': 'albumartist',\n 'TXXX:DISCOGS_CATALOG': 'catalognumber',\n 'TXXX:DISCOGS_COUNTRY': 'releasecountry',\n 'TXXX:DISCOGS_DATE': 'originaldate',\n 'TXXX:DISCOGS_LABEL': 'label',\n 'TXXX:DISCOGS_LABEL_ID': 'discogs_label_id',\n 'TXXX:DISCOGS_MASTER_RELEASE_ID': 'discogs_master_release_id',\n 'TXXX:DISCOGS_RATING': 'discogs_rating',\n 'TXXX:DISCOGS_RELEASED': 'date',\n 'TXXX:DISCOGS_RELEASE_ID': 'discogs_release_id',\n 'TXXX:DISCOGS_VOTES': 'discogs_votes',\n 'TXXX:CATALOGID': 'catalognumber',\n 'TXXX:STYLE': 'genre',\n 'TXXX:REPLAYGAIN_TRACK_PEAK': 'replaygain_track_peak',\n 'TXXX:REPLAYGAIN_TRACK_GAIN': 'replaygain_track_gain',\n 'TXXX:REPLAYGAIN_ALBUM_PEAK': 'replaygain_album_peak',\n 'TXXX:REPLAYGAIN_ALBUM_GAIN': 'replaygain_album_gain',\n 'TXXX:MP3GAIN_MINMAX': 'replaygain_track_minmax',\n 'TXXX:MP3GAIN_ALBUM_MINMAX': 'replaygain_album_minmax',\n 'TXXX:MP3GAIN_UNDO': 'replaygain_undo',\n MVNM: 'movement',\n MVIN: 'movementIndex',\n PCST: 'podcast',\n TCAT: 'category',\n TDES: 'description',\n TDRL: 'releasedate',\n TGID: 'podcastId',\n TKWD: 'keywords',\n WFED: 'podcasturl',\n GRP1: 'grouping',\n PCNT: 'playCounter',\n};\nexport class ID3v24TagMapper extends CaseInsensitiveTagMap {\n static toRating(popm) {\n return {\n source: popm.email,\n rating: popm.rating > 0 ? (popm.rating - 1) / 254 * CommonTagMapper.maxRatingScore : undefined\n };\n }\n constructor() {\n super(['ID3v2.3', 'ID3v2.4'], id3v24TagMap);\n }\n /**\n * Handle post mapping exceptions / correction\n * @param tag to post map\n * @param warnings Wil be used to register (collect) warnings\n */\n postMap(tag, warnings) {\n switch (tag.id) {\n case 'UFID':\n {\n // decode MusicBrainz Recording Id\n const idTag = tag.value;\n if (idTag.owner_identifier === 'http://musicbrainz.org') {\n tag.id += `:${idTag.owner_identifier}`;\n tag.value = decodeString(idTag.identifier, 'latin1'); // latin1 == iso-8859-1\n }\n }\n break;\n case 'PRIV':\n {\n const customTag = tag.value;\n switch (customTag.owner_identifier) {\n // decode Windows Media Player\n case 'AverageLevel':\n case 'PeakValue':\n tag.id += `:${customTag.owner_identifier}`;\n tag.value = customTag.data.length === 4 ? UINT32_LE.get(customTag.data, 0) : null;\n if (tag.value === null) {\n warnings.addWarning('Failed to parse PRIV:PeakValue');\n }\n break;\n default:\n warnings.addWarning(`Unknown PRIV owner-identifier: ${customTag.data}`);\n }\n }\n break;\n case 'POPM':\n tag.value = ID3v24TagMapper.toRating(tag.value);\n break;\n default:\n break;\n }\n }\n}\n","import { CommonTagMapper } from '../common/GenericTagMapper.js';\n/**\n * ASF Metadata tag mappings.\n * See http://msdn.microsoft.com/en-us/library/ms867702.aspx\n */\nconst asfTagMap = {\n Title: 'title',\n Author: 'artist',\n 'WM/AlbumArtist': 'albumartist',\n 'WM/AlbumTitle': 'album',\n 'WM/Year': 'date', // changed to 'year' to 'date' based on Picard mappings; ToDo: check me\n 'WM/OriginalReleaseTime': 'originaldate',\n 'WM/OriginalReleaseYear': 'originalyear',\n Description: 'comment',\n 'WM/TrackNumber': 'track',\n 'WM/PartOfSet': 'disk',\n 'WM/Genre': 'genre',\n 'WM/Composer': 'composer',\n 'WM/Lyrics': 'lyrics',\n 'WM/AlbumSortOrder': 'albumsort',\n 'WM/TitleSortOrder': 'titlesort',\n 'WM/ArtistSortOrder': 'artistsort',\n 'WM/AlbumArtistSortOrder': 'albumartistsort',\n 'WM/ComposerSortOrder': 'composersort',\n 'WM/Writer': 'lyricist',\n 'WM/Conductor': 'conductor',\n 'WM/ModifiedBy': 'remixer',\n 'WM/Engineer': 'engineer',\n 'WM/Producer': 'producer',\n 'WM/DJMixer': 'djmixer',\n 'WM/Mixer': 'mixer',\n 'WM/Publisher': 'label',\n 'WM/ContentGroupDescription': 'grouping',\n 'WM/SubTitle': 'subtitle',\n 'WM/SetSubTitle': 'discsubtitle',\n // 'WM/PartOfSet': 'totaldiscs',\n 'WM/IsCompilation': 'compilation',\n 'WM/SharedUserRating': 'rating',\n 'WM/BeatsPerMinute': 'bpm',\n 'WM/Mood': 'mood',\n 'WM/Media': 'media',\n 'WM/CatalogNo': 'catalognumber',\n 'MusicBrainz/Album Status': 'releasestatus',\n 'MusicBrainz/Album Type': 'releasetype',\n 'MusicBrainz/Album Release Country': 'releasecountry',\n 'WM/Script': 'script',\n 'WM/Language': 'language',\n Copyright: 'copyright',\n LICENSE: 'license',\n 'WM/EncodedBy': 'encodedby',\n 'WM/EncodingSettings': 'encodersettings',\n 'WM/Barcode': 'barcode',\n 'WM/ISRC': 'isrc',\n 'MusicBrainz/Track Id': 'musicbrainz_recordingid',\n 'MusicBrainz/Release Track Id': 'musicbrainz_trackid',\n 'MusicBrainz/Album Id': 'musicbrainz_albumid',\n 'MusicBrainz/Artist Id': 'musicbrainz_artistid',\n 'MusicBrainz/Album Artist Id': 'musicbrainz_albumartistid',\n 'MusicBrainz/Release Group Id': 'musicbrainz_releasegroupid',\n 'MusicBrainz/Work Id': 'musicbrainz_workid',\n 'MusicBrainz/TRM Id': 'musicbrainz_trmid',\n 'MusicBrainz/Disc Id': 'musicbrainz_discid',\n 'Acoustid/Id': 'acoustid_id',\n 'Acoustid/Fingerprint': 'acoustid_fingerprint',\n 'MusicIP/PUID': 'musicip_puid',\n 'WM/ARTISTS': 'artists',\n 'WM/InitialKey': 'key',\n ASIN: 'asin',\n 'WM/Work': 'work',\n 'WM/AuthorURL': 'website',\n 'WM/Picture': 'picture'\n};\nexport class AsfTagMapper extends CommonTagMapper {\n static toRating(rating) {\n return {\n rating: Number.parseFloat(rating + 1) / 5\n };\n }\n constructor() {\n super(['asf'], asfTagMap);\n }\n postMap(tag) {\n switch (tag.id) {\n case 'WM/SharedUserRating': {\n const keys = tag.id.split(':');\n tag.value = AsfTagMapper.toRating(tag.value);\n tag.id = keys[0];\n break;\n }\n }\n }\n}\n","import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap.js';\n/**\n * ID3v2.2 tag mappings\n */\nexport const id3v22TagMap = {\n TT2: 'title',\n TP1: 'artist',\n TP2: 'albumartist',\n TAL: 'album',\n TYE: 'year',\n COM: 'comment',\n TRK: 'track',\n TPA: 'disk',\n TCO: 'genre',\n PIC: 'picture',\n TCM: 'composer',\n TOR: 'originaldate',\n TOT: 'originalalbum',\n TXT: 'lyricist',\n TP3: 'conductor',\n TPB: 'label',\n TT1: 'grouping',\n TT3: 'subtitle',\n TLA: 'language',\n TCR: 'copyright',\n WCP: 'license',\n TEN: 'encodedby',\n TSS: 'encodersettings',\n WAR: 'website',\n PCS: 'podcast',\n TCP: \"compilation\",\n TDR: 'date',\n TS2: 'albumartistsort',\n TSA: 'albumsort',\n TSC: 'composersort',\n TSP: 'artistsort',\n TST: 'titlesort',\n WFD: 'podcasturl',\n TBP: 'bpm',\n GP1: 'grouping'\n};\nexport class ID3v22TagMapper extends CaseInsensitiveTagMap {\n constructor() {\n super(['ID3v2.2'], id3v22TagMap);\n }\n}\n","import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap.js';\n/**\n * ID3v2.2 tag mappings\n */\nconst apev2TagMap = {\n Title: 'title',\n Artist: 'artist',\n Artists: 'artists',\n 'Album Artist': 'albumartist',\n Album: 'album',\n Year: 'date',\n Originalyear: 'originalyear',\n Originaldate: 'originaldate',\n Releasedate: 'releasedate',\n Comment: 'comment',\n Track: 'track',\n Disc: 'disk',\n DISCNUMBER: 'disk', // ToDo: backwards compatibility', valid tag?\n Genre: 'genre',\n 'Cover Art (Front)': 'picture',\n 'Cover Art (Back)': 'picture',\n Composer: 'composer',\n Lyrics: 'lyrics',\n ALBUMSORT: 'albumsort',\n TITLESORT: 'titlesort',\n WORK: 'work',\n ARTISTSORT: 'artistsort',\n ALBUMARTISTSORT: 'albumartistsort',\n COMPOSERSORT: 'composersort',\n Lyricist: 'lyricist',\n Writer: 'writer',\n Conductor: 'conductor',\n // 'Performer=artist (instrument)': 'performer:instrument',\n MixArtist: 'remixer',\n Arranger: 'arranger',\n Engineer: 'engineer',\n Producer: 'producer',\n DJMixer: 'djmixer',\n Mixer: 'mixer',\n Label: 'label',\n Grouping: 'grouping',\n Subtitle: 'subtitle',\n DiscSubtitle: 'discsubtitle',\n Compilation: 'compilation',\n BPM: 'bpm',\n Mood: 'mood',\n Media: 'media',\n CatalogNumber: 'catalognumber',\n MUSICBRAINZ_ALBUMSTATUS: 'releasestatus',\n MUSICBRAINZ_ALBUMTYPE: 'releasetype',\n RELEASECOUNTRY: 'releasecountry',\n Script: 'script',\n Language: 'language',\n Copyright: 'copyright',\n LICENSE: 'license',\n EncodedBy: 'encodedby',\n EncoderSettings: 'encodersettings',\n Barcode: 'barcode',\n ISRC: 'isrc',\n ASIN: 'asin',\n musicbrainz_trackid: 'musicbrainz_recordingid',\n musicbrainz_releasetrackid: 'musicbrainz_trackid',\n MUSICBRAINZ_ALBUMID: 'musicbrainz_albumid',\n MUSICBRAINZ_ARTISTID: 'musicbrainz_artistid',\n MUSICBRAINZ_ALBUMARTISTID: 'musicbrainz_albumartistid',\n MUSICBRAINZ_RELEASEGROUPID: 'musicbrainz_releasegroupid',\n MUSICBRAINZ_WORKID: 'musicbrainz_workid',\n MUSICBRAINZ_TRMID: 'musicbrainz_trmid',\n MUSICBRAINZ_DISCID: 'musicbrainz_discid',\n Acoustid_Id: 'acoustid_id',\n ACOUSTID_FINGERPRINT: 'acoustid_fingerprint',\n MUSICIP_PUID: 'musicip_puid',\n Weblink: 'website',\n REPLAYGAIN_TRACK_GAIN: 'replaygain_track_gain',\n REPLAYGAIN_TRACK_PEAK: 'replaygain_track_peak',\n MP3GAIN_MINMAX: 'replaygain_track_minmax',\n MP3GAIN_UNDO: 'replaygain_undo'\n};\nexport class APEv2TagMapper extends CaseInsensitiveTagMap {\n constructor() {\n super(['APEv2'], apev2TagMap);\n }\n}\n","import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap.js';\n/**\n * Ref: https://github.com/sergiomb2/libmp4v2/wiki/iTunesMetadata\n */\nconst mp4TagMap = {\n '©nam': 'title',\n '©ART': 'artist',\n aART: 'albumartist',\n /**\n * ToDo: Album artist seems to be stored here while Picard documentation says: aART\n */\n '----:com.apple.iTunes:Band': 'albumartist',\n '©alb': 'album',\n '©day': 'date',\n '©cmt': 'comment',\n '©com': 'comment',\n trkn: 'track',\n disk: 'disk',\n '©gen': 'genre',\n covr: 'picture',\n '©wrt': 'composer',\n '©lyr': 'lyrics',\n soal: 'albumsort',\n sonm: 'titlesort',\n soar: 'artistsort',\n soaa: 'albumartistsort',\n soco: 'composersort',\n '----:com.apple.iTunes:LYRICIST': 'lyricist',\n '----:com.apple.iTunes:CONDUCTOR': 'conductor',\n '----:com.apple.iTunes:REMIXER': 'remixer',\n '----:com.apple.iTunes:ENGINEER': 'engineer',\n '----:com.apple.iTunes:PRODUCER': 'producer',\n '----:com.apple.iTunes:DJMIXER': 'djmixer',\n '----:com.apple.iTunes:MIXER': 'mixer',\n '----:com.apple.iTunes:LABEL': 'label',\n '©grp': 'grouping',\n '----:com.apple.iTunes:SUBTITLE': 'subtitle',\n '----:com.apple.iTunes:DISCSUBTITLE': 'discsubtitle',\n cpil: 'compilation',\n tmpo: 'bpm',\n '----:com.apple.iTunes:MOOD': 'mood',\n '----:com.apple.iTunes:MEDIA': 'media',\n '----:com.apple.iTunes:CATALOGNUMBER': 'catalognumber',\n tvsh: 'tvShow',\n tvsn: 'tvSeason',\n tves: 'tvEpisode',\n sosn: 'tvShowSort',\n tven: 'tvEpisodeId',\n tvnn: 'tvNetwork',\n pcst: 'podcast',\n purl: 'podcasturl',\n '----:com.apple.iTunes:MusicBrainz Album Status': 'releasestatus',\n '----:com.apple.iTunes:MusicBrainz Album Type': 'releasetype',\n '----:com.apple.iTunes:MusicBrainz Album Release Country': 'releasecountry',\n '----:com.apple.iTunes:SCRIPT': 'script',\n '----:com.apple.iTunes:LANGUAGE': 'language',\n cprt: 'copyright',\n '©cpy': 'copyright',\n '----:com.apple.iTunes:LICENSE': 'license',\n '©too': 'encodedby',\n pgap: 'gapless',\n '----:com.apple.iTunes:BARCODE': 'barcode',\n '----:com.apple.iTunes:ISRC': 'isrc',\n '----:com.apple.iTunes:ASIN': 'asin',\n '----:com.apple.iTunes:NOTES': 'comment',\n '----:com.apple.iTunes:MusicBrainz Track Id': 'musicbrainz_recordingid',\n '----:com.apple.iTunes:MusicBrainz Release Track Id': 'musicbrainz_trackid',\n '----:com.apple.iTunes:MusicBrainz Album Id': 'musicbrainz_albumid',\n '----:com.apple.iTunes:MusicBrainz Artist Id': 'musicbrainz_artistid',\n '----:com.apple.iTunes:MusicBrainz Album Artist Id': 'musicbrainz_albumartistid',\n '----:com.apple.iTunes:MusicBrainz Release Group Id': 'musicbrainz_releasegroupid',\n '----:com.apple.iTunes:MusicBrainz Work Id': 'musicbrainz_workid',\n '----:com.apple.iTunes:MusicBrainz TRM Id': 'musicbrainz_trmid',\n '----:com.apple.iTunes:MusicBrainz Disc Id': 'musicbrainz_discid',\n '----:com.apple.iTunes:Acoustid Id': 'acoustid_id',\n '----:com.apple.iTunes:Acoustid Fingerprint': 'acoustid_fingerprint',\n '----:com.apple.iTunes:MusicIP PUID': 'musicip_puid',\n '----:com.apple.iTunes:fingerprint': 'musicip_fingerprint',\n '----:com.apple.iTunes:replaygain_track_gain': 'replaygain_track_gain',\n '----:com.apple.iTunes:replaygain_track_peak': 'replaygain_track_peak',\n '----:com.apple.iTunes:replaygain_album_gain': 'replaygain_album_gain',\n '----:com.apple.iTunes:replaygain_album_peak': 'replaygain_album_peak',\n '----:com.apple.iTunes:replaygain_track_minmax': 'replaygain_track_minmax',\n '----:com.apple.iTunes:replaygain_album_minmax': 'replaygain_album_minmax',\n '----:com.apple.iTunes:replaygain_undo': 'replaygain_undo',\n // Additional mappings:\n gnre: 'genre', // ToDo: check mapping\n '----:com.apple.iTunes:ALBUMARTISTSORT': 'albumartistsort',\n '----:com.apple.iTunes:ARTISTS': 'artists',\n '----:com.apple.iTunes:ORIGINALDATE': 'originaldate',\n '----:com.apple.iTunes:ORIGINALYEAR': 'originalyear',\n '----:com.apple.iTunes:RELEASEDATE': 'releasedate',\n // '----:com.apple.iTunes:PERFORMER': 'performer'\n desc: 'description',\n ldes: 'longDescription',\n '©mvn': 'movement',\n '©mvi': 'movementIndex',\n '©mvc': 'movementTotal',\n '©wrk': 'work',\n catg: 'category',\n egid: 'podcastId',\n hdvd: 'hdVideo',\n keyw: 'keywords',\n shwm: 'showMovement',\n stik: 'stik',\n rate: 'rating'\n};\nexport const tagType = 'iTunes';\nexport class MP4TagMapper extends CaseInsensitiveTagMap {\n constructor() {\n super([tagType], mp4TagMap);\n }\n postMap(tag, _warnings) {\n switch (tag.id) {\n case 'rate':\n tag.value = {\n source: undefined,\n rating: Number.parseFloat(tag.value) / 100\n };\n break;\n }\n }\n}\n","import { CommonTagMapper } from '../../common/GenericTagMapper.js';\n/**\n * Vorbis tag mappings\n *\n * Mapping from native header format to one or possibly more 'common' entries\n * The common entries aim to read the same information from different media files\n * independent of the underlying format\n */\nconst vorbisTagMap = {\n TITLE: 'title',\n ARTIST: 'artist',\n ARTISTS: 'artists',\n ALBUMARTIST: 'albumartist',\n 'ALBUM ARTIST': 'albumartist',\n ALBUM: 'album',\n DATE: 'date',\n ORIGINALDATE: 'originaldate',\n ORIGINALYEAR: 'originalyear',\n RELEASEDATE: 'releasedate',\n COMMENT: 'comment',\n TRACKNUMBER: 'track',\n DISCNUMBER: 'disk',\n GENRE: 'genre',\n METADATA_BLOCK_PICTURE: 'picture',\n COMPOSER: 'composer',\n LYRICS: 'lyrics',\n ALBUMSORT: 'albumsort',\n TITLESORT: 'titlesort',\n WORK: 'work',\n ARTISTSORT: 'artistsort',\n ALBUMARTISTSORT: 'albumartistsort',\n COMPOSERSORT: 'composersort',\n LYRICIST: 'lyricist',\n WRITER: 'writer',\n CONDUCTOR: 'conductor',\n // 'PERFORMER=artist (instrument)': 'performer:instrument', // ToDo\n REMIXER: 'remixer',\n ARRANGER: 'arranger',\n ENGINEER: 'engineer',\n PRODUCER: 'producer',\n DJMIXER: 'djmixer',\n MIXER: 'mixer',\n LABEL: 'label',\n GROUPING: 'grouping',\n SUBTITLE: 'subtitle',\n DISCSUBTITLE: 'discsubtitle',\n TRACKTOTAL: 'totaltracks',\n DISCTOTAL: 'totaldiscs',\n COMPILATION: 'compilation',\n RATING: 'rating',\n BPM: 'bpm',\n KEY: 'key',\n MOOD: 'mood',\n MEDIA: 'media',\n CATALOGNUMBER: 'catalognumber',\n RELEASESTATUS: 'releasestatus',\n RELEASETYPE: 'releasetype',\n RELEASECOUNTRY: 'releasecountry',\n SCRIPT: 'script',\n LANGUAGE: 'language',\n COPYRIGHT: 'copyright',\n LICENSE: 'license',\n ENCODEDBY: 'encodedby',\n ENCODERSETTINGS: 'encodersettings',\n BARCODE: 'barcode',\n ISRC: 'isrc',\n ASIN: 'asin',\n MUSICBRAINZ_TRACKID: 'musicbrainz_recordingid',\n MUSICBRAINZ_RELEASETRACKID: 'musicbrainz_trackid',\n MUSICBRAINZ_ALBUMID: 'musicbrainz_albumid',\n MUSICBRAINZ_ARTISTID: 'musicbrainz_artistid',\n MUSICBRAINZ_ALBUMARTISTID: 'musicbrainz_albumartistid',\n MUSICBRAINZ_RELEASEGROUPID: 'musicbrainz_releasegroupid',\n MUSICBRAINZ_WORKID: 'musicbrainz_workid',\n MUSICBRAINZ_TRMID: 'musicbrainz_trmid',\n MUSICBRAINZ_DISCID: 'musicbrainz_discid',\n ACOUSTID_ID: 'acoustid_id',\n ACOUSTID_ID_FINGERPRINT: 'acoustid_fingerprint',\n MUSICIP_PUID: 'musicip_puid',\n // 'FINGERPRINT=MusicMagic Fingerprint {fingerprint}': 'musicip_fingerprint', // ToDo\n WEBSITE: 'website',\n NOTES: 'notes',\n TOTALTRACKS: 'totaltracks',\n TOTALDISCS: 'totaldiscs',\n // Discogs\n DISCOGS_ARTIST_ID: 'discogs_artist_id',\n DISCOGS_ARTISTS: 'artists',\n DISCOGS_ARTIST_NAME: 'artists',\n DISCOGS_ALBUM_ARTISTS: 'albumartist',\n DISCOGS_CATALOG: 'catalognumber',\n DISCOGS_COUNTRY: 'releasecountry',\n DISCOGS_DATE: 'originaldate',\n DISCOGS_LABEL: 'label',\n DISCOGS_LABEL_ID: 'discogs_label_id',\n DISCOGS_MASTER_RELEASE_ID: 'discogs_master_release_id',\n DISCOGS_RATING: 'discogs_rating',\n DISCOGS_RELEASED: 'date',\n DISCOGS_RELEASE_ID: 'discogs_release_id',\n DISCOGS_VOTES: 'discogs_votes',\n CATALOGID: 'catalognumber',\n STYLE: 'genre',\n //\n REPLAYGAIN_TRACK_GAIN: 'replaygain_track_gain',\n REPLAYGAIN_TRACK_PEAK: 'replaygain_track_peak',\n REPLAYGAIN_ALBUM_GAIN: 'replaygain_album_gain',\n REPLAYGAIN_ALBUM_PEAK: 'replaygain_album_peak',\n // To Sure if these (REPLAYGAIN_MINMAX, REPLAYGAIN_ALBUM_MINMAX & REPLAYGAIN_UNDO) are used for Vorbis:\n REPLAYGAIN_MINMAX: 'replaygain_track_minmax',\n REPLAYGAIN_ALBUM_MINMAX: 'replaygain_album_minmax',\n REPLAYGAIN_UNDO: 'replaygain_undo'\n};\nexport class VorbisTagMapper extends CommonTagMapper {\n static toRating(email, rating, maxScore) {\n return {\n source: email ? email.toLowerCase() : undefined,\n rating: (Number.parseFloat(rating) / maxScore) * CommonTagMapper.maxRatingScore\n };\n }\n constructor() {\n super(['vorbis'], vorbisTagMap);\n }\n postMap(tag) {\n if (tag.id === 'RATING') {\n // The way Winamp 5.666 assigns rating\n tag.value = VorbisTagMapper.toRating(undefined, tag.value, 100);\n }\n else if (tag.id.indexOf('RATING:') === 0) {\n const keys = tag.id.split(':');\n tag.value = VorbisTagMapper.toRating(keys[1], tag.value, 1);\n tag.id = keys[0];\n }\n }\n}\n","import { CommonTagMapper } from '../common/GenericTagMapper.js';\n/**\n * RIFF Info Tags; part of the EXIF 2.3\n * Ref: http://owl.phy.queensu.ca/~phil/exiftool/TagNames/RIFF.html#Info\n */\nexport const riffInfoTagMap = {\n IART: 'artist', // Artist\n ICRD: 'date', // DateCreated\n INAM: 'title', // Title\n TITL: 'title',\n IPRD: 'album', // Product\n ITRK: 'track',\n IPRT: 'track', // Additional tag for track index\n COMM: 'comment', // Comments\n ICMT: 'comment', // Country\n ICNT: 'releasecountry',\n GNRE: 'genre', // Genre\n IWRI: 'writer', // WrittenBy\n RATE: 'rating',\n YEAR: 'year',\n ISFT: 'encodedby', // Software\n CODE: 'encodedby', // EncodedBy\n TURL: 'website', // URL,\n IGNR: 'genre', // Genre\n IENG: 'engineer', // Engineer\n ITCH: 'technician', // Technician\n IMED: 'media', // Original Media\n IRPD: 'album' // Product, where the file was intended for\n};\nexport class RiffInfoTagMapper extends CommonTagMapper {\n constructor() {\n super(['exif'], riffInfoTagMap);\n }\n}\n","import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap.js';\n/**\n * EBML Tag map\n */\nconst ebmlTagMap = {\n 'segment:title': 'title',\n 'album:ARTIST': 'albumartist',\n 'album:ARTISTSORT': 'albumartistsort',\n 'album:TITLE': 'album',\n 'album:DATE_RECORDED': 'originaldate',\n 'album:DATE_RELEASED': 'releasedate',\n 'album:PART_NUMBER': 'disk',\n 'album:TOTAL_PARTS': 'totaltracks',\n 'track:ARTIST': 'artist',\n 'track:ARTISTSORT': 'artistsort',\n 'track:TITLE': 'title',\n 'track:PART_NUMBER': 'track',\n 'track:MUSICBRAINZ_TRACKID': 'musicbrainz_recordingid',\n 'track:MUSICBRAINZ_ALBUMID': 'musicbrainz_albumid',\n 'track:MUSICBRAINZ_ARTISTID': 'musicbrainz_artistid',\n 'track:PUBLISHER': 'label',\n 'track:GENRE': 'genre',\n 'track:ENCODER': 'encodedby',\n 'track:ENCODER_OPTIONS': 'encodersettings',\n 'edition:TOTAL_PARTS': 'totaldiscs',\n picture: 'picture'\n};\nexport class MatroskaTagMapper extends CaseInsensitiveTagMap {\n constructor() {\n super(['matroska'], ebmlTagMap);\n }\n}\n","import { CommonTagMapper } from '../common/GenericTagMapper.js';\n/**\n * ID3v1 tag mappings\n */\nconst tagMap = {\n NAME: 'title',\n AUTH: 'artist',\n '(c) ': 'copyright',\n ANNO: 'comment'\n};\nexport class AiffTagMapper extends CommonTagMapper {\n constructor() {\n super(['AIFF'], tagMap);\n }\n}\n","import { ID3v1TagMapper } from '../id3v1/ID3v1TagMap.js';\nimport { ID3v24TagMapper } from '../id3v2/ID3v24TagMapper.js';\nimport { AsfTagMapper } from '../asf/AsfTagMapper.js';\nimport { ID3v22TagMapper } from '../id3v2/ID3v22TagMapper.js';\nimport { APEv2TagMapper } from '../apev2/APEv2TagMapper.js';\nimport { MP4TagMapper } from '../mp4/MP4TagMapper.js';\nimport { VorbisTagMapper } from '../ogg/vorbis/VorbisTagMapper.js';\nimport { RiffInfoTagMapper } from '../riff/RiffInfoTagMap.js';\nimport { MatroskaTagMapper } from '../matroska/MatroskaTagMapper.js';\nimport { AiffTagMapper } from '../aiff/AiffTagMap.js';\nimport { InternalParserError } from '../ParseError.js';\nexport class CombinedTagMapper {\n constructor() {\n this.tagMappers = {};\n [\n new ID3v1TagMapper(),\n new ID3v22TagMapper(),\n new ID3v24TagMapper(),\n new MP4TagMapper(),\n new MP4TagMapper(),\n new VorbisTagMapper(),\n new APEv2TagMapper(),\n new AsfTagMapper(),\n new RiffInfoTagMapper(),\n new MatroskaTagMapper(),\n new AiffTagMapper()\n ].forEach(mapper => {\n this.registerTagMapper(mapper);\n });\n }\n /**\n * Convert native to generic (common) tags\n * @param tagType Originating tag format\n * @param tag Native tag to map to a generic tag id\n * @param warnings\n * @return Generic tag result (output of this function)\n */\n mapTag(tagType, tag, warnings) {\n const tagMapper = this.tagMappers[tagType];\n if (tagMapper) {\n return this.tagMappers[tagType].mapGenericTag(tag, warnings);\n }\n throw new InternalParserError(`No generic tag mapper defined for tag-format: ${tagType}`);\n }\n registerTagMapper(genericTagMapper) {\n for (const tagType of genericTagMapper.tagTypes) {\n this.tagMappers[tagType] = genericTagMapper;\n }\n }\n}\n","import { LyricsContentType, TimestampFormat } from '../type.js';\n// Shared timestamp regex for LRC format\nconst TIMESTAMP_REGEX = /\\[(\\d{2}):(\\d{2})\\.(\\d{2,3})]/;\nexport function parseLyrics(input) {\n if (TIMESTAMP_REGEX.test(input)) {\n return parseLrc(input);\n }\n return toUnsyncedLyrics(input);\n}\nexport function toUnsyncedLyrics(lyrics) {\n return {\n contentType: LyricsContentType.lyrics,\n timeStampFormat: TimestampFormat.notSynchronized,\n text: lyrics.trim(),\n syncText: [],\n };\n}\n/**\n * Parse LRC (Lyrics) formatted text\n * Ref: https://en.wikipedia.org/wiki/LRC_(file_format)\n * @param lrcString\n */\nexport function parseLrc(lrcString) {\n const lines = lrcString.split('\\n');\n const syncText = [];\n for (const line of lines) {\n const match = line.match(TIMESTAMP_REGEX);\n if (match) {\n const minutes = Number.parseInt(match[1], 10);\n const seconds = Number.parseInt(match[2], 10);\n const ms = match[3].length === 3\n ? Number.parseInt(match[3], 10)\n : Number.parseInt(match[3], 10) * 10;\n const timestamp = (minutes * 60 + seconds) * 1000 + ms;\n const text = line.replace(TIMESTAMP_REGEX, '').trim();\n syncText.push({ timestamp, text });\n }\n }\n return {\n contentType: LyricsContentType.lyrics,\n timeStampFormat: TimestampFormat.milliseconds,\n text: syncText.map(line => line.text).join('\\n'),\n syncText,\n };\n}\n","export const mpegParserLoader = {\n parserType: 'mpeg',\n extensions: ['.mp2', '.mp3', '.m2a', '.aac', 'aacp'],\n mimeTypes: ['audio/mpeg', 'audio/mp3', 'audio/aacs', 'audio/aacp'],\n async load() {\n return (await import('./MpegParser.js')).MpegParser;\n }\n};\n","export const apeParserLoader = {\n parserType: 'apev2',\n extensions: ['.ape'],\n mimeTypes: ['audio/ape', 'audio/monkeys-audio'],\n async load() {\n return (await import('./APEv2Parser.js')).APEv2Parser;\n }\n};\n","export const asfParserLoader = {\n parserType: 'asf',\n extensions: ['.asf', '.wma', '.wmv'],\n mimeTypes: ['audio/ms-wma', 'video/ms-wmv', 'audio/ms-asf', 'video/ms-asf', 'application/vnd.ms-asf'],\n async load() {\n return (await import('./AsfParser.js')).AsfParser;\n }\n};\n","export const dsdiffParserLoader = {\n parserType: 'dsdiff',\n extensions: ['.dff'],\n mimeTypes: ['audio/dsf', 'audio/dsd'],\n async load() {\n return (await import('./DsdiffParser.js')).DsdiffParser;\n }\n};\n","export const aiffParserLoader = {\n parserType: 'aiff',\n extensions: ['.aif', 'aiff', 'aifc'],\n mimeTypes: ['audio/aiff', 'audio/aif', 'audio/aifc', 'application/aiff'],\n async load() {\n return (await import('./AiffParser.js')).AIFFParser;\n }\n};\n","export const dsfParserLoader = {\n parserType: 'dsf',\n extensions: ['.dsf'],\n mimeTypes: ['audio/dsf'],\n async load() {\n return (await import('./DsfParser.js')).DsfParser;\n }\n};\n","export const flacParserLoader = {\n parserType: 'flac',\n extensions: ['.flac'],\n mimeTypes: ['audio/flac'],\n async load() {\n return (await import('./FlacParser.js')).FlacParser;\n }\n};\n","export const matroskaParserLoader = {\n parserType: 'matroska',\n extensions: ['.mka', '.mkv', '.mk3d', '.mks', 'webm'],\n mimeTypes: ['audio/matroska', 'video/matroska', 'audio/webm', 'video/webm'],\n async load() {\n return (await import('./MatroskaParser.js')).MatroskaParser;\n }\n};\n","export const mp4ParserLoader = {\n parserType: 'mp4',\n extensions: ['.mp4', '.m4a', '.m4b', '.m4pa', 'm4v', 'm4r', '3gp', '.mov', '.movie', '.qt'],\n mimeTypes: ['audio/mp4', 'audio/m4a', 'video/m4v', 'video/mp4', 'video/quicktime'],\n async load() {\n return (await import('./MP4Parser.js')).MP4Parser;\n }\n};\n","export const musepackParserLoader = {\n parserType: 'musepack',\n extensions: ['.mpc'],\n mimeTypes: ['audio/musepack'],\n async load() {\n return (await import('./MusepackParser.js')).MusepackParser;\n }\n};\n","export const oggParserLoader = {\n parserType: 'ogg',\n extensions: ['.ogg', '.ogv', '.oga', '.ogm', '.ogx', '.opus', '.spx'],\n mimeTypes: ['audio/ogg', 'audio/opus', 'audio/speex', 'video/ogg'], // RFC 7845, RFC 6716, RFC 5574\n async load() {\n return (await import('./OggParser.js')).OggParser;\n }\n};\n","export const wavpackParserLoader = {\n parserType: 'wavpack',\n extensions: ['.wv', '.wvp'],\n mimeTypes: ['audio/wavpack'],\n async load() {\n return (await import('./WavPackParser.js')).WavPackParser;\n }\n};\n","export const riffParserLoader = {\n parserType: 'riff',\n extensions: ['.wav', 'wave', '.bwf'],\n mimeTypes: ['audio/vnd.wave', 'audio/wav', 'audio/wave'],\n async load() {\n return (await import('./WaveParser.js')).WaveParser;\n }\n};\n","import { textDecode } from '@borewit/text-codec';\nexport const endTag2 = 'LYRICS200';\nexport async function getLyricsHeaderLength(tokenizer) {\n const fileSize = tokenizer.fileInfo.size;\n if (fileSize >= 143) {\n const buf = new Uint8Array(15);\n const position = tokenizer.position;\n await tokenizer.readBuffer(buf, { position: fileSize - 143 });\n tokenizer.setPosition(position); // Restore position\n const txt = textDecode(buf, 'latin1');\n const tag = txt.substring(6);\n if (tag === endTag2) {\n return Number.parseInt(txt.substring(0, 6), 10) + 15;\n }\n }\n return 0;\n}\n","/**\n * Primary entry point, Node.js specific entry point is MusepackParser.ts\n */\nimport { fromWebStream, fromBuffer, fromBlob } from 'strtok3';\nimport { ParserFactory } from './ParserFactory.js';\nimport { APEv2Parser } from './apev2/APEv2Parser.js';\nimport { hasID3v1Header } from './id3v1/ID3v1Parser.js';\nimport { getLyricsHeaderLength } from './lyrics3/Lyrics3.js';\nexport { LyricsContentType, TimestampFormat } from './type.js';\nexport { CouldNotDetermineFileTypeError, UnsupportedFileTypeError } from './ParseError.js';\nexport * from './ParseError.js';\n/**\n * Parse Web API File\n * Requires Blob to be able to stream using a ReadableStreamBYOBReader, only available since Node.js ≥ 20\n * @param blob - Blob to parse\n * @param options - Parsing options\n * @returns Metadata\n */\nexport async function parseBlob(blob, options = {}) {\n const tokenizer = fromBlob(blob);\n try {\n return await parseFromTokenizer(tokenizer, options);\n }\n finally {\n await tokenizer.close();\n }\n}\n/**\n * Parse audio from Web Stream.Readable\n * @param webStream - WebStream to read the audio track from\n * @param options - Parsing options\n * @param fileInfo - File information object or MIME-type string\n * @returns Metadata\n */\nexport async function parseWebStream(webStream, fileInfo, options = {}) {\n const tokenizer = fromWebStream(webStream, { fileInfo: typeof fileInfo === 'string' ? { mimeType: fileInfo } : fileInfo });\n try {\n return await parseFromTokenizer(tokenizer, options);\n }\n finally {\n await tokenizer.close();\n }\n}\n/**\n * Parse audio from memory\n * @param uint8Array - Uint8Array holding audio data\n * @param fileInfo - File information object or MIME-type string\n * @param options - Parsing options\n * @returns Metadata\n * Ref: https://github.com/Borewit/strtok3/blob/e6938c81ff685074d5eb3064a11c0b03ca934c1d/src/index.ts#L15\n */\nexport async function parseBuffer(uint8Array, fileInfo, options = {}) {\n const tokenizer = fromBuffer(uint8Array, { fileInfo: typeof fileInfo === 'string' ? { mimeType: fileInfo } : fileInfo });\n return parseFromTokenizer(tokenizer, options);\n}\n/**\n * Parse audio from ITokenizer source\n * @param tokenizer - Audio source implementing the tokenizer interface\n * @param options - Parsing options\n * @returns Metadata\n */\nexport function parseFromTokenizer(tokenizer, options) {\n const parserFactory = new ParserFactory();\n return parserFactory.parse(tokenizer, undefined, options);\n}\n/**\n * Create a dictionary ordered by their tag id (key)\n * @param nativeTags list of tags\n * @returns tags indexed by id\n */\nexport function orderTags(nativeTags) {\n const tags = {};\n for (const { id, value } of nativeTags) {\n (tags[id] || (tags[id] = [])).push(value);\n }\n return tags;\n}\n/**\n * Convert rating to 1-5 star rating\n * @param rating Normalized rating [0..1] (common.rating[n].rating)\n * @returns Number of stars: 1, 2, 3, 4 or 5 stars\n */\nexport function ratingToStars(rating) {\n return rating === undefined ? 0 : 1 + Math.round(rating * 4);\n}\n/**\n * Select most likely cover image.\n * @param pictures Usually metadata.common.picture\n * @return Cover image, if any, otherwise null\n */\nexport function selectCover(pictures) {\n return pictures ? pictures.reduce((acc, cur) => {\n if (cur.name && cur.name.toLowerCase() in ['front', 'cover', 'cover (front)'])\n return cur;\n return acc;\n }) : null;\n}\nexport async function scanAppendingHeaders(tokenizer, options = {}) {\n let apeOffset = tokenizer.fileInfo.size;\n if (await hasID3v1Header(tokenizer)) {\n apeOffset -= 128;\n const lyricsLen = await getLyricsHeaderLength(tokenizer);\n apeOffset -= lyricsLen;\n }\n options.apeHeader = await APEv2Parser.findApeFooterOffset(tokenizer, apeOffset);\n}\n/**\n * Implementation only available when loaded as Node.js\n * This method will throw an Error, always.\n */\nexport async function parseFile(_filePath, _options = {}) {\n throw new Error('This function require a Node engine. To load Web API File objects use parseBlob instead.');\n}\n/**\n * Implementation only available when loaded as Node.js\n * This method will throw an Error, always.\n */\nexport async function parseStream(_stream, _fileInfo, _options = {}) {\n throw new Error('This function require a Node engine.');\n}\n/**\n * Return a list of supported mime-types\n */\nexport function getSupportedMimeTypes() {\n return new ParserFactory().getSupportedMimeTypes();\n}\n","import initDebug from 'debug';\nimport { ResponseInfo } from './response-info.js'; // Add 'fetch' API for node.js\nconst debug = initDebug('streaming-http-token-reader:http-client');\nconst DEFAULT_CONFIG = {\n resolveUrl: false\n};\n/**\n * Simple HTTP-client, which works both in node.js and browser\n */\nexport class HttpClient {\n constructor(url, config) {\n this.url = url;\n this.abortController = new AbortController();\n this.config = DEFAULT_CONFIG;\n Object.assign(this.config, config);\n }\n async getHeadInfo() {\n const response = new ResponseInfo(await fetch(this.url, { method: 'HEAD', signal: this.abortController.signal }));\n if (this.config.resolveUrl)\n this.resolvedUrl = response.response.url;\n return response.toRangeRequestResponse();\n }\n async getResponse(method, range) {\n const headers = new Headers();\n if (range) {\n debug(`_getResponse ${method} ${range[0]}..${range[1]}`);\n headers.set('Range', `bytes=${range[0]}-${range[1]}`);\n }\n else {\n debug(`_getResponse ${method} (range not provided)`);\n }\n const response = new ResponseInfo(await fetch(this.resolvedUrl || this.url, { method, headers, signal: this.abortController.signal }));\n if (response.response.ok) {\n if (this.config.resolveUrl)\n this.resolvedUrl = response.response.url;\n return response.toRangeRequestResponse();\n }\n throw new Error(`Unexpected HTTP response status=${response.response.status}`);\n }\n abort() {\n debug('abort');\n this.abortController.abort();\n }\n}\n//# sourceMappingURL=http-client.js.map","export const defaultMessages = 'End-Of-Stream';\n/**\n * Thrown on read operation of the end of file or stream has been reached\n */\nexport class EndOfStreamError extends Error {\n constructor() {\n super(defaultMessages);\n }\n}\n","import { EndOfStreamError } from 'peek-readable';\n/**\n * Core tokenizer\n */\nexport class AbstractTokenizer {\n /**\n * Constructor\n * @param options Tokenizer options\n * @protected\n */\n constructor(options) {\n this.numBuffer = new Uint8Array(8);\n /**\n * Tokenizer-stream position\n */\n this.position = 0;\n this.onClose = options?.onClose;\n if (options?.abortSignal) {\n options.abortSignal.addEventListener('abort', () => {\n this.abort();\n });\n }\n }\n /**\n * Read a token from the tokenizer-stream\n * @param token - The token to read\n * @param position - If provided, the desired position in the tokenizer-stream\n * @returns Promise with token data\n */\n async readToken(token, position = this.position) {\n const uint8Array = new Uint8Array(token.len);\n const len = await this.readBuffer(uint8Array, { position });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(uint8Array, 0);\n }\n /**\n * Peek a token from the tokenizer-stream.\n * @param token - Token to peek from the tokenizer-stream.\n * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.\n * @returns Promise with token data\n */\n async peekToken(token, position = this.position) {\n const uint8Array = new Uint8Array(token.len);\n const len = await this.peekBuffer(uint8Array, { position });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(uint8Array, 0);\n }\n /**\n * Read a numeric token from the stream\n * @param token - Numeric token\n * @returns Promise with number\n */\n async readNumber(token) {\n const len = await this.readBuffer(this.numBuffer, { length: token.len });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(this.numBuffer, 0);\n }\n /**\n * Read a numeric token from the stream\n * @param token - Numeric token\n * @returns Promise with number\n */\n async peekNumber(token) {\n const len = await this.peekBuffer(this.numBuffer, { length: token.len });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(this.numBuffer, 0);\n }\n /**\n * Ignore number of bytes, advances the pointer in under tokenizer-stream.\n * @param length - Number of bytes to ignore\n * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available\n */\n async ignore(length) {\n if (this.fileInfo.size !== undefined) {\n const bytesLeft = this.fileInfo.size - this.position;\n if (length > bytesLeft) {\n this.position += bytesLeft;\n return bytesLeft;\n }\n }\n this.position += length;\n return length;\n }\n async close() {\n await this.abort();\n await this.onClose?.();\n }\n normalizeOptions(uint8Array, options) {\n if (options && options.position !== undefined && options.position < this.position) {\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\n }\n if (options) {\n return {\n mayBeLess: options.mayBeLess === true,\n offset: options.offset ? options.offset : 0,\n length: options.length ? options.length : (uint8Array.length - (options.offset ? options.offset : 0)),\n position: options.position ? options.position : this.position\n };\n }\n return {\n mayBeLess: false,\n offset: 0,\n length: uint8Array.length,\n position: this.position\n };\n }\n abort() {\n return Promise.resolve(); // Ignore abort signal\n }\n}\n","import { AbstractTokenizer } from './AbstractTokenizer.js';\nimport { EndOfStreamError } from 'peek-readable';\nimport { open as fsOpen } from 'node:fs/promises';\nexport class FileTokenizer extends AbstractTokenizer {\n /**\n * Create tokenizer from provided file path\n * @param sourceFilePath File path\n */\n static async fromFile(sourceFilePath) {\n const fileHandle = await fsOpen(sourceFilePath, 'r');\n const stat = await fileHandle.stat();\n return new FileTokenizer(fileHandle, { fileInfo: { path: sourceFilePath, size: stat.size } });\n }\n constructor(fileHandle, options) {\n super(options);\n this.fileHandle = fileHandle;\n this.fileInfo = options.fileInfo;\n }\n /**\n * Read buffer from file\n * @param uint8Array - Uint8Array to write result to\n * @param options - Read behaviour options\n * @returns Promise number of bytes read\n */\n async readBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n this.position = normOptions.position;\n if (normOptions.length === 0)\n return 0;\n const res = await this.fileHandle.read(uint8Array, normOptions.offset, normOptions.length, normOptions.position);\n this.position += res.bytesRead;\n if (res.bytesRead < normOptions.length && (!options || !options.mayBeLess)) {\n throw new EndOfStreamError();\n }\n return res.bytesRead;\n }\n /**\n * Peek buffer from file\n * @param uint8Array - Uint8Array (or Buffer) to write data to\n * @param options - Read behaviour options\n * @returns Promise number of bytes read\n */\n async peekBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n const res = await this.fileHandle.read(uint8Array, normOptions.offset, normOptions.length, normOptions.position);\n if ((!normOptions.mayBeLess) && res.bytesRead < normOptions.length) {\n throw new EndOfStreamError();\n }\n return res.bytesRead;\n }\n async close() {\n await this.fileHandle.close();\n return super.close();\n }\n setPosition(position) {\n this.position = position;\n }\n supportsRandomAccess() {\n return true;\n }\n}\n","import { stat as fsStat } from 'node:fs/promises';\nimport { fromStream as coreFromStream } from './core.js';\nimport { FileTokenizer } from \"./FileTokenizer.js\";\nexport { FileTokenizer } from './FileTokenizer.js';\nexport * from './core.js';\n/**\n * Construct ReadStreamTokenizer from given Stream.\n * Will set fileSize, if provided given Stream has set the .path property.\n * @param stream - Node.js Stream.Readable\n * @param options - Pass additional file information to the tokenizer\n * @returns Tokenizer\n */\nexport async function fromStream(stream, options) {\n const rst = coreFromStream(stream, options);\n if (stream.path) {\n const stat = await fsStat(stream.path);\n rst.fileInfo.path = stream.path;\n rst.fileInfo.size = stat.size;\n }\n return rst;\n}\nexport const fromFile = FileTokenizer.fromFile;\n","import { AbstractTokenizer } from 'strtok3';\nimport { ChunkedFileData } from './chunked-file-data.js';\nimport initDebug from 'debug';\nconst debug = initDebug('range-request-reader');\n/**\n * RangeRequestTokenizer is tokenizer which is an adapter for range-request clients.\n * Typically, HTTP clients implementing the HTTP Range Requests (https://tools.ietf.org/html/rfc7233)\n *\n * Inspired by \"XHR Reader\" written by António Afonso\n * https://github.com/aadsm/jsmediatags/blob/master/src/XhrFileReader.js\n */\nexport class RangeRequestTokenizer extends AbstractTokenizer {\n constructor(rangeRequestClient, options) {\n super({ fileInfo: options.fileInfo });\n this.rangeRequestClient = rangeRequestClient;\n this.options = options;\n this.fileInfo = options.fileInfo;\n if (Number.isNaN(options.minimumChunkSize)) {\n throw new Error('minimumChunkSize must be a number');\n }\n this._fileData = new ChunkedFileData();\n this.options.abortSignal?.addEventListener('abort', () => {\n this.abort();\n });\n }\n setPosition(position) {\n this.position = position;\n }\n /**\n * Read portion from stream\n * @param uint8array - Target `Uint8Array`\n * @param options - Additional read options\n * @returns Promise with number of bytes read\n */\n async readBuffer(uint8array, options) {\n if (options?.position) {\n this.position = options.position;\n }\n const length = await this.peekBuffer(uint8array, options);\n this.position += length;\n return length;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param uint8array - Target `Uint8Array` to fill with data peek from the tokenizer-stream\n * @param options - Additional read options\n * @returns Promise with number of bytes read\n */\n async peekBuffer(uint8array, options) {\n let length = uint8array.length;\n let offset = 0;\n let position = this.position;\n if (options) {\n if (options.position) {\n position = options.position;\n }\n if (Number.isInteger(options.offset)) {\n offset = options.offset;\n }\n if (options.length) {\n length = options.length;\n }\n else {\n length -= offset;\n }\n }\n if (length === 0) {\n return 0;\n }\n debug(`peekBuffer position=${position} length=${length}`);\n if (!this.fileInfo)\n throw new Error('File-info missing');\n const lastPos = Math.min(this.fileInfo.size - 1, position + length - 1);\n return this.loadRange([position, lastPos]).then(() => {\n this._fileData.readToBuffer(uint8array, offset, position, Math.min(this.fileInfo.size, length));\n return length;\n });\n }\n /**\n * Ignore number of bytes, advances the pointer in under tokenizer-stream.\n * @param length - Number of bytes to skip (ignore)\n * @return actual number of bytes ignored\n */\n async ignore(length) {\n const bytesLeft = this.fileInfo.size - this.position;\n if (length <= bytesLeft) {\n this.position += length;\n return length;\n }\n this.position += bytesLeft;\n return bytesLeft;\n }\n async abort() {\n this.rangeRequestClient.abort();\n }\n supportsRandomAccess() {\n return true;\n }\n async loadRange(range) {\n if (range[0] > (this.fileInfo.size - 1)) {\n throw new Error('End-Of-File');\n }\n debug(`request range ${range[0]}..${range[1]}`);\n debug(`adjusted range ${range[0]}..${range[1]}`);\n if (this._fileData.hasDataRange(range[0], range[1])) {\n debug('Read from cache');\n return;\n }\n // Always download in multiples of CHUNK_SIZE. If we're going to make a\n // request might as well get a chunk that makes sense. The big cost is\n // establishing the connection so getting 10bytes or 1K doesn't really\n // make a difference.\n range = roundRange(range, this.options.minimumChunkSize);\n // Upper range should not be greater than max file size\n range[1] = Math.min(this.fileInfo.size - 1, range[1]);\n debug(`blocked range: ${range[0]}..${range[1]}`);\n return this.rangeRequestClient.getResponse('GET', range).then(response => {\n return response.arrayBuffer().then(data => {\n this._fileData.addData(range[0], data);\n });\n });\n }\n}\nexport function roundRange(range, minimumChunkSize) {\n const length = range[1] - range[0] + 1;\n // const newLength = Math.ceil(length / minimum_chunk_size) * minimum_chunk_size;\n const newLength = Math.max(minimumChunkSize, length);\n return [range[0], range[0] + newLength - 1];\n}\n/**\n * Convert HTTP range header value to IContentRangeType\n * @param contentRange - content range\n */\nexport function parseContentRange(contentRange) {\n if (!contentRange) {\n throw new Error('Content range must be provided');\n }\n debug(`parseContentRange response: contentRange=${contentRange}`);\n const parsedContentRange = contentRange.match(/bytes (\\d+)-(\\d+)\\/(?:(\\d+)|\\*)/i);\n if (!parsedContentRange) {\n throw new Error(`FIXME: Unknown Content-Range syntax: ${contentRange}`);\n }\n return {\n firstBytePosition: Number.parseInt(parsedContentRange[1], 10),\n lastBytePosition: Number.parseInt(parsedContentRange[2], 10),\n instanceLength: parsedContentRange[3] ? Number.parseInt(parsedContentRange[3], 10) : undefined\n };\n}\n//# sourceMappingURL=range-request-tokenizer.js.map","import { RangeRequestTokenizer, roundRange } from './range-request-tokenizer.js';\nimport initDebug from 'debug';\nconst debug = initDebug('range-request-reader');\nexport class RangeRequestFactory {\n constructor(rangeRequestClient) {\n this.rangeRequestClient = rangeRequestClient;\n this.config = {\n avoidHeadRequests: false,\n initialChunkSize: 4 * 1024,\n minimumChunkSize: 1024\n };\n }\n async initTokenizer(config) {\n if (config) {\n this.config = { ...this.config, ...config };\n }\n const headRequestInfo = await this.getHeadRequestInfo();\n if (!headRequestInfo.acceptPartialRequests) {\n throw new Error('Server does not accept partial requests');\n }\n return new RangeRequestTokenizer(this.rangeRequestClient, {\n fileInfo: headRequestInfo,\n minimumChunkSize: this.config.minimumChunkSize,\n abortSignal: config?.abortSignal\n });\n }\n /**\n * Get file information, an HTTP-client may implement this doing a HEAD request\n * @return Promise with head-request-info, extending tokenizer file-info.\n */\n getHeadRequestInfo() {\n return this.config.avoidHeadRequests ?\n this.fetchFileInfoWithGetRequest() :\n this.fetchFileInfoWithHeadRequest();\n }\n async fetchFileInfoWithHeadRequest() {\n debug('_fetchSizeWithHeadRequest()');\n if (this.rangeRequestClient.getHeadInfo) {\n const info = await this.rangeRequestClient.getHeadInfo();\n if (info.size) {\n debug(`MIME-type=${info.mimeType}, content-length=${info.size}, accept-partial-requests=${info.acceptPartialRequests}`);\n return info;\n }\n }\n // Content-Length not provided by the server, fallback to\n // GET requests.\n debug('Content-Length not provided by the server, fallback to GET requests');\n return this.fetchFileInfoWithGetRequest();\n }\n async fetchFileInfoWithGetRequest() {\n const range = roundRange([0, this.config.initialChunkSize], this.config.minimumChunkSize);\n const response = await this.rangeRequestClient.getResponse('GET', range);\n debug(`_fetchSizeWithGetRequest response: contentRange=[${response.contentRange?.firstBytePosition}-${response.contentRange?.lastBytePosition}/${response.contentRange?.instanceLength}]`);\n if (!response.contentRange) {\n throw new Error('Failed to resolve content range (file size)');\n }\n return response;\n }\n}\n//# sourceMappingURL=range-request-factory.js.map","import { parseContentRange as rangeParseContentRange } from '@tokenizer/range';\nexport class ResponseInfo {\n constructor(response) {\n this.response = response;\n }\n getContentLength() {\n const contentLength = this.response.headers.get('Content-Length');\n return contentLength ? Number.parseInt(contentLength, 10) : undefined;\n }\n getAcceptRangesHeaderValue() {\n return this.response.headers.get('Accept-Ranges');\n }\n getContentType() {\n return this.response.headers.get('Content-Type');\n }\n acceptRanges() {\n const value = this.getAcceptRangesHeaderValue();\n return value !== null && value.trim().toLowerCase() === 'bytes';\n }\n getContentRange() {\n const contentRange = this.response.headers.get('Content-Range');\n if (!contentRange) {\n return;\n }\n return rangeParseContentRange(contentRange);\n }\n toRangeRequestResponse() {\n const contentRange = this.getContentRange();\n const size = contentRange ? contentRange.instanceLength : this.getContentLength();\n if (typeof size !== 'number') {\n throw new Error('Could not determine file-size from HTTP response');\n }\n return {\n url: this.response.url,\n size,\n mimeType: this.getContentType() ?? undefined,\n acceptPartialRequests: this.acceptRanges(),\n contentRange,\n arrayBuffer: () => this.response.arrayBuffer().then(res => new Uint8Array(res))\n };\n }\n}\n//# sourceMappingURL=response-info.js.map","const NOT_FOUND = -1;\n/**\n * Keeps track of data chunks (partial downloaded file fragments).\n *\n * Based on \"ChunkedFileData\" written by António Afonso\n * https://github.com/aadsm/jsmediatags/blob/master/src/ChunkedFileData.js\n */\nexport class ChunkedFileData {\n constructor() {\n this._fileData = [];\n }\n /**\n * Adds data to the file storage at a specific offset.\n */\n addData(offset, data) {\n const offsetEnd = offset + data.byteLength - 1;\n const chunkRange = this._getChunkRange(offset, offsetEnd);\n if (chunkRange.startIx === NOT_FOUND) {\n this._fileData.splice(chunkRange.insertIx || 0, 0, {\n offset,\n data\n });\n }\n else {\n // If the data to add collides with existing chunks we prepend and\n // append data from the half colliding chunks to make the collision at\n // 100%. The new data can then replace all the colliding chunkes.\n const firstChunk = this._fileData[chunkRange.startIx];\n const lastChunk = this._fileData[chunkRange.endIx];\n const needsPrepend = offset > firstChunk.offset;\n const needsAppend = offsetEnd < lastChunk.offset + lastChunk.data.byteLength - 1;\n const chunk = {\n offset: Math.min(offset, firstChunk.offset),\n data\n };\n if (needsPrepend) {\n const slicedData = firstChunk.data.slice(0, offset - firstChunk.offset);\n chunk.data = this._concatData(slicedData, data);\n }\n if (needsAppend) {\n // Use the lastChunk because the slice logic is easier to handle.\n const slicedData = chunk.data.slice(0, lastChunk.offset - chunk.offset);\n chunk.data = this._concatData(slicedData, lastChunk.data);\n }\n this._fileData.splice(chunkRange.startIx, chunkRange.endIx - chunkRange.startIx + 1, chunk);\n }\n }\n hasDataRange(offsetStart, offsetEnd) {\n for (let i = 0; i < this._fileData.length; i++) {\n const chunk = this._fileData[i];\n if (offsetEnd < chunk.offset) {\n return false;\n }\n if (offsetStart >= chunk.offset && offsetEnd < chunk.offset + chunk.data.byteLength) {\n return true;\n }\n }\n return false;\n }\n readToBuffer(buffer, offset, position, length) {\n const _pos_offset = position;\n let dataChunk;\n for (let i = 0; i < this._fileData.length; i++) {\n const dataChunkStart = this._fileData[i].offset;\n const dataChunkEnd = dataChunkStart + this._fileData[i].data.byteLength;\n if (_pos_offset >= dataChunkStart && _pos_offset < dataChunkEnd) {\n dataChunk = this._fileData[i];\n const chunkOffset = _pos_offset - dataChunkStart;\n let chunkLength = Math.min(length, dataChunk.data.byteLength - chunkOffset);\n buffer.set(dataChunk.data.subarray(chunkOffset, chunkOffset + chunkLength), offset);\n if (chunkLength < length) {\n chunkLength += this.readToBuffer(buffer, offset + chunkLength, position + chunkLength, length - chunkLength);\n }\n return chunkLength;\n }\n }\n return 0;\n }\n _concatData(buffer1, buffer2) {\n const tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength);\n tmp.set(new Uint8Array(buffer1), 0);\n tmp.set(new Uint8Array(buffer2), buffer1.byteLength);\n return tmp;\n }\n /**\n * Finds the chunk range that overlaps the [offsetStart-1,offsetEnd+1] range.\n * When a chunk is adjacent to the offset we still consider it part of the\n * range (this is the situation of offsetStart-1 or offsetEnd+1).\n * When no chunks are found `insertIx` denotes the index where the data\n * should be inserted in the data list (startIx == NOT_FOUND and endIX ==\n * NOT_FOUND).\n */\n _getChunkRange(offsetStart, offsetEnd) {\n let startChunkIx = NOT_FOUND;\n let endChunkIx = NOT_FOUND;\n let insertIx = 0;\n // Could use binary search but not expecting that many blocks to exist.\n for (let i = 0; i < this._fileData.length; i++, insertIx = i) {\n const chunkOffsetStart = this._fileData[i].offset;\n const chunkOffsetEnd = chunkOffsetStart + this._fileData[i].data.byteLength;\n if (offsetEnd < chunkOffsetStart - 1) {\n // This offset range doesn't overlap with any chunks.\n break;\n }\n // If it is adjacent we still consider it part of the range because\n // we're going end up with a single block with all contiguous data.\n if (offsetStart <= chunkOffsetEnd + 1 &&\n offsetEnd >= chunkOffsetStart - 1) {\n startChunkIx = i;\n break;\n }\n }\n // No starting chunk was found, meaning that the offset is either before\n // or after the current stored chunks.\n if (startChunkIx === NOT_FOUND) {\n return {\n startIx: NOT_FOUND,\n endIx: NOT_FOUND,\n insertIx\n };\n }\n // Find the ending chunk.\n for (let i = startChunkIx; i < this._fileData.length; i++) {\n const chunkOffsetStart = this._fileData[i].offset;\n const chunkOffsetEnd = chunkOffsetStart + this._fileData[i].data.byteLength;\n if (offsetEnd >= chunkOffsetStart - 1) {\n // Candidate for the end chunk, it doesn't mean it is yet.\n endChunkIx = i;\n }\n if (offsetEnd <= chunkOffsetEnd + 1) {\n break;\n }\n }\n if (endChunkIx === NOT_FOUND) {\n endChunkIx = startChunkIx;\n }\n return {\n startIx: startChunkIx,\n endIx: endChunkIx\n };\n }\n}\n//# sourceMappingURL=chunked-file-data.js.map","import { AbstractTokenizer } from 'strtok3';\nimport { ChunkedFileData } from './chunked-file-data.js';\nimport initDebug from 'debug';\nconst debug = initDebug('range-request-reader');\n/**\n * RangeRequestTokenizer is tokenizer which is an adapter for range-request clients.\n * Typically, HTTP clients implementing the HTTP Range Requests (https://tools.ietf.org/html/rfc7233)\n *\n * Inspired by \"XHR Reader\" written by António Afonso\n * https://github.com/aadsm/jsmediatags/blob/master/src/XhrFileReader.js\n */\nexport class RangeRequestTokenizer extends AbstractTokenizer {\n constructor(rangeRequestClient, options) {\n super({ fileInfo: options.fileInfo });\n this.rangeRequestClient = rangeRequestClient;\n this.options = options;\n this.fileInfo = options.fileInfo;\n if (Number.isNaN(options.minimumChunkSize)) {\n throw new Error('minimumChunkSize must be a number');\n }\n this._fileData = new ChunkedFileData();\n this.options.abortSignal?.addEventListener('abort', () => {\n this.abort();\n });\n }\n setPosition(position) {\n this.position = position;\n }\n /**\n * Read portion from stream\n * @param uint8array - Target `Uint8Array`\n * @param options - Additional read options\n * @returns Promise with number of bytes read\n */\n async readBuffer(uint8array, options) {\n if (options?.position) {\n this.position = options.position;\n }\n const length = await this.peekBuffer(uint8array, options);\n this.position += length;\n return length;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param uint8array - Target `Uint8Array` to fill with data peek from the tokenizer-stream\n * @param options - Additional read options\n * @returns Promise with number of bytes read\n */\n async peekBuffer(uint8array, options) {\n const offset = 0;\n if (!this.fileInfo)\n throw new Error('File-info missing');\n const size = this.fileInfo.size;\n const position = options?.position !== undefined ? options.position : this.position;\n // requested length\n const requested = options?.length !== undefined ? options.length : (uint8array.length - offset);\n if (requested <= 0)\n return 0;\n const available = size - position;\n // Past EOF\n if (available <= 0) {\n if (options?.mayBeLess)\n return 0;\n throw new RangeError(`peekBuffer position ${position} is beyond EOF ${size}`);\n }\n const length = options?.mayBeLess ? Math.min(requested, available) : requested;\n if (!options?.mayBeLess && length > available) {\n throw new RangeError(`peekBuffer length ${length} exceeds remaining ${available} at position ${position}`);\n }\n const lastPos = position + length - 1;\n await this.loadRange([position, lastPos]);\n this._fileData.readToBuffer(uint8array, offset, position, length);\n return length;\n }\n /**\n * Ignore number of bytes, advances the pointer in under tokenizer-stream.\n * @param length - Number of bytes to skip (ignore)\n * @return actual number of bytes ignored\n */\n async ignore(length) {\n const bytesLeft = this.fileInfo.size - this.position;\n if (length <= bytesLeft) {\n this.position += length;\n return length;\n }\n this.position += bytesLeft;\n return bytesLeft;\n }\n async abort() {\n this.rangeRequestClient.abort();\n }\n supportsRandomAccess() {\n return true;\n }\n async loadRange(range) {\n debug(`request range ${range[0]}..${range[1]}`);\n if (range[0] > (this.fileInfo.size - 1)) {\n throw new Error('End-Of-File');\n }\n debug(`adjusted range ${range[0]}..${range[1]}`);\n if (this._fileData.hasDataRange(range[0], range[1])) {\n debug('Read from cache');\n return;\n }\n // Always download in multiples of CHUNK_SIZE. If we're going to make a\n // request might as well get a chunk that makes sense. The big cost is\n // establishing the connection so getting 10bytes or 1K doesn't really\n // make a difference.\n range = roundRange(range, this.options.minimumChunkSize);\n // Upper range should not be greater than max file size\n range[1] = Math.min(this.fileInfo.size - 1, range[1]);\n debug(`blocked range: ${range[0]}..${range[1]}`);\n return this.rangeRequestClient.getResponse('GET', range).then(response => {\n return response.arrayBuffer().then(data => {\n this._fileData.addData(range[0], data);\n });\n });\n }\n}\nexport function roundRange(range, minimumChunkSize) {\n const length = range[1] - range[0] + 1;\n // const newLength = Math.ceil(length / minimum_chunk_size) * minimum_chunk_size;\n const newLength = Math.max(minimumChunkSize, length);\n return [range[0], range[0] + newLength - 1];\n}\n/**\n * Convert HTTP range header value to IContentRangeType\n * @param contentRange - content range\n */\nexport function parseContentRange(contentRange) {\n if (!contentRange) {\n throw new Error('Content range must be provided');\n }\n debug(`parseContentRange response: contentRange=${contentRange}`);\n const parsedContentRange = contentRange.match(/bytes (\\d+)-(\\d+)\\/(?:(\\d+)|\\*)/i);\n if (!parsedContentRange) {\n throw new Error(`FIXME: Unknown Content-Range syntax: ${contentRange}`);\n }\n return {\n firstBytePosition: Number.parseInt(parsedContentRange[1], 10),\n lastBytePosition: Number.parseInt(parsedContentRange[2], 10),\n instanceLength: parsedContentRange[3] ? Number.parseInt(parsedContentRange[3], 10) : undefined\n };\n}\n//# sourceMappingURL=range-request-tokenizer.js.map","import { RangeRequestTokenizer, roundRange } from './range-request-tokenizer.js';\nimport initDebug from 'debug';\nconst debug = initDebug('range-request-reader');\nexport class RangeRequestFactory {\n constructor(rangeRequestClient) {\n this.rangeRequestClient = rangeRequestClient;\n this.config = {\n avoidHeadRequests: false,\n initialChunkSize: 4 * 1024,\n minimumChunkSize: 1024\n };\n }\n async initTokenizer(config) {\n if (config) {\n this.config = { ...this.config, ...config };\n }\n const headRequestInfo = await this.getHeadRequestInfo();\n if (!headRequestInfo.acceptPartialRequests) {\n throw new Error('Server does not accept partial requests');\n }\n return new RangeRequestTokenizer(this.rangeRequestClient, {\n fileInfo: headRequestInfo,\n minimumChunkSize: this.config.minimumChunkSize,\n abortSignal: config?.abortSignal\n });\n }\n /**\n * Get file information, an HTTP-client may implement this doing a HEAD request\n * @return Promise with head-request-info, extending tokenizer file-info.\n */\n getHeadRequestInfo() {\n return this.config.avoidHeadRequests ?\n this.fetchFileInfoWithGetRequest() :\n this.fetchFileInfoWithHeadRequest();\n }\n async fetchFileInfoWithHeadRequest() {\n debug('_fetchSizeWithHeadRequest()');\n if (this.rangeRequestClient.getHeadInfo) {\n const info = await this.rangeRequestClient.getHeadInfo();\n if (info.size) {\n debug(`MIME-type=${info.mimeType}, content-length=${info.size}, accept-partial-requests=${info.acceptPartialRequests}`);\n return info;\n }\n }\n // Content-Length not provided by the server, fallback to\n // GET requests.\n debug('Content-Length not provided by the server, fallback to GET requests');\n return this.fetchFileInfoWithGetRequest();\n }\n async fetchFileInfoWithGetRequest() {\n const range = roundRange([0, this.config.initialChunkSize], this.config.minimumChunkSize);\n const response = await this.rangeRequestClient.getResponse('GET', range);\n debug(`_fetchSizeWithGetRequest response: contentRange=[${response.contentRange?.firstBytePosition}-${response.contentRange?.lastBytePosition}/${response.contentRange?.instanceLength}]`);\n if (!response.contentRange) {\n throw new Error('Failed to resolve content range (file size)');\n }\n return response;\n }\n}\n//# sourceMappingURL=range-request-factory.js.map","import { RangeRequestFactory } from './range-request-factory.js';\nexport { parseContentRange } from './range-request-tokenizer.js';\n/**\n * Construct range-tokenizer from range-request-client and config\n * @param rangeRequestClient - HTTP range request client\n * @param abortController - AbortController\n * @param config - Configuration\n * @return Tokenizer\n */\nexport function tokenizer(rangeRequestClient, config) {\n const factory = new RangeRequestFactory(rangeRequestClient);\n return factory.initTokenizer(config);\n}\n//# sourceMappingURL=index.js.map","import { parseBuffer, parseFromTokenizer, parseWebStream } from \"music-metadata\";\nimport * as URI from \"fast-uri\";\nimport { HttpClient } from \"@tokenizer/http\";\nimport { tokenizer as rangeTokenizer } from \"@tokenizer/range\";\n\nimport { removeUndefinedValuesFromRecord } from \"~/common/utils.js\";\n\n/**\n * @import { TrackStats, TrackTags } from \"~/definitions/types.d.ts\";\n * @import { Extraction, Urls } from \"@specs/components/metadata/audio-file/types.d.ts\";\n */\n\n// 🛠️\n\n/**\n * Maps the audio MIME types music-metadata's loaders register to the\n * extension `findLoaderForExtension` recognises. Used for blob URLs, which\n * carry no filename, so the parser can be picked by extension instead of\n * by content-type (whose matcher is broken in the browser bundle).\n *\n * @type {Record}\n */\nconst MIME_TO_EXT = {\n \"audio/mpeg\": \"mp3\",\n \"audio/mp3\": \"mp3\",\n \"audio/aac\": \"aac\",\n \"audio/aacp\": \"aacp\",\n \"audio/mp4\": \"m4a\",\n \"audio/m4a\": \"m4a\",\n \"audio/x-m4a\": \"m4a\",\n \"audio/ogg\": \"ogg\",\n \"audio/opus\": \"opus\",\n \"audio/speex\": \"spx\",\n \"audio/flac\": \"flac\",\n \"audio/aiff\": \"aiff\",\n \"audio/aif\": \"aif\",\n \"audio/aifc\": \"aifc\",\n \"audio/wav\": \"wav\",\n \"audio/wave\": \"wav\",\n \"audio/vnd.wave\": \"wav\",\n \"audio/x-wav\": \"wav\",\n \"audio/webm\": \"webm\",\n \"audio/ape\": \"ape\",\n \"audio/monkeys-audio\": \"ape\",\n \"audio/musepack\": \"mpc\",\n \"audio/wavpack\": \"wv\",\n \"audio/asf\": \"asf\",\n \"audio/ms-wma\": \"wma\",\n \"audio/dsf\": \"dsf\",\n};\n\n/**\n * @param {string | undefined} mimeType\n * @returns {string | undefined}\n */\nfunction mimeTypeToPath(mimeType) {\n const ext = mimeType && MIME_TO_EXT[mimeType];\n return ext ? `file.${ext}` : undefined;\n}\n\n/**\n * @param {{ includeArtwork?: boolean; filename?: string; mimeType?: string; stream?: ReadableStream; urls?: Urls; signal?: AbortSignal; }} _\n * @returns {Promise}\n */\nexport async function musicMetadataTags({\n includeArtwork,\n filename,\n mimeType,\n stream,\n urls,\n signal,\n}) {\n const uri = urls ? URI.parse(urls.get) : undefined;\n const pathParts = uri?.path?.split(\"/\");\n const urlFilename = pathParts?.[pathParts.length - 1];\n\n let meta;\n\n if (urls?.get.startsWith(\"blob:\")) {\n const blob = await fetch(urls.get, { signal }).then((r) => r.blob());\n // Blob URLs carry no filename, so the URL path is just the blob's UUID.\n // Without a path or a recognised MIME-type music-metadata falls back to\n // content-sniffing, whose content-type matcher is broken in the browser\n // bundle (the `content-type` CJS interop leaves `default` undefined, so\n // `findLoaderForContentType` always throws — see the range-tokenizer\n // branch below for the same issue). Derive a filename from the blob's\n // MIME type so the parser is picked by extension instead.\n const ext = MIME_TO_EXT[blob.type];\n const buffer = new Uint8Array(await blob.arrayBuffer());\n meta = await parseBuffer(\n buffer,\n ext ? { path: `file.${ext}` } : undefined,\n { skipCovers: !includeArtwork },\n );\n } else if (urls) {\n const httpClient = new HttpClient(urls.head, {\n resolveUrl: false,\n });\n httpClient.resolvedUrl = urls.get;\n const getHeadInfo = httpClient.getHeadInfo;\n\n // Link the caller's abort signal to the range-reading HttpClient so an\n // artwork timeout can cancel the underlying HTTP request (instead of\n // leaving it running and consuming server resources).\n const onAbort = () => httpClient.abort();\n signal?.addEventListener(\"abort\", onAbort, { once: true });\n\n // Preserve the real `acceptPartialRequests` from the server's HEAD response\n // instead of forcing it true. `@tokenizer/http` already parses\n // `Accept-Ranges`/`Content-Range` and reports partial support correctly;\n // overriding it to `true` on a server that does NOT actually support ranges\n // makes `@tokenizer/range` read the whole stream to locate metadata/artwork,\n // which turns a one-millisecond tail read into a minutes-long full download\n // (stalling cover art behind it). Keep only the Content-Length fallback so\n // servers that don't return a length still resolve a (full-download) value.\n /** @type {any} */ (httpClient).getHeadInfo = async () => {\n try {\n const info = await getHeadInfo.call(httpClient);\n if (Number.isFinite(info?.size)) return info;\n // No Content-Length — fall back to a full read without pretending\n // range support.\n return { size: undefined, acceptPartialRequests: false };\n } catch {\n return { size: undefined, acceptPartialRequests: false };\n }\n };\n\n /** @type {any} */\n const tokenizer = await rangeTokenizer(httpClient);\n // The range tokenizer's fileInfo comes from the HEAD response, which only\n // has size/mimeType — no path. Without a path or a recognised MIME-type,\n // music-metadata falls back to content-sniffing, which rejects some files\n // (e.g. `audio/x-m4a`, or servers returning `application/octet-stream`).\n // Provide the filename so it can pick a parser by extension instead. Fall\n // back to the URL path, and then to a synthetic filename derived from the\n // HEAD response MIME type (useful for temporary links like Dropbox's that\n // don't preserve the original filename).\n const path = filename || urlFilename ||\n mimeTypeToPath(tokenizer.fileInfo?.mimeType);\n if (path) {\n tokenizer.fileInfo = { ...tokenizer.fileInfo, path };\n }\n meta = await parseFromTokenizer(tokenizer, { skipCovers: !includeArtwork });\n signal?.removeEventListener(\"abort\", onAbort);\n } else if (stream) {\n meta = await parseWebStream(stream, { mimeType }, {\n skipCovers: !includeArtwork,\n });\n } else {\n throw new Error(\"Missing args, need either some urls or a stream.\");\n }\n\n /** @type {TrackStats} */\n const statsFull = {\n albumGain: maybeRound(meta.format.albumGain),\n bitrate: maybeRound(meta.format.bitrate),\n bitsPerSample: maybeRound(meta.format.bitsPerSample),\n codec: meta.format.codec,\n container: meta.format.container,\n duration: meta.format.duration != null\n ? Math.round(meta.format.duration * 1000)\n : undefined,\n lossless: meta.format.lossless,\n numberOfChannels: maybeRound(meta.format.numberOfChannels),\n sampleRate: maybeRound(meta.format.sampleRate),\n trackGain: maybeRound(meta.format.trackGain),\n };\n\n /** @type {TrackTags} */\n const tagsFull = {\n album: meta.common.album,\n albumartist: meta.common.albumartist,\n albumartists: Array.isArray(meta.common.albumartist)\n ? meta.common.albumartist\n : (meta.common.albumartist ? [meta.common.albumartist] : undefined),\n albumartistsort: meta.common.albumartistsort,\n albumsort: meta.common.albumsort,\n arranger: meta.common.arranger,\n artist: meta.common.artist,\n artists: meta.common.artists ??\n (meta.common.artist ? [meta.common.artist] : []),\n artistsort: meta.common.artistsort,\n asin: meta.common.asin,\n averageLevel: meta.common.averageLevel,\n barcode: meta.common.barcode,\n bpm: meta.common.bpm,\n catalognumbers: meta.common.catalognumber,\n compilation: meta.common.compilation,\n composers: meta.common.composer,\n composersort: meta.common.composersort,\n conductors: meta.common.conductor,\n date: meta.common.date,\n disc: {\n no: meta.common.disk.no || 1,\n ...(meta.common.disk.of && { of: meta.common.disk.of }),\n },\n djmixers: meta.common.djmixer,\n engineers: meta.common.engineer,\n gapless: meta.common.gapless,\n genres: Array.isArray(meta.common.genre)\n ? meta.common.genre\n : meta.common.genre\n ? [meta.common.genre]\n : undefined,\n isrc: meta.common.isrc,\n labels: meta.common.label,\n lyricists: meta.common.lyricist,\n media: meta.common.media,\n mixers: meta.common.mixer,\n moods: Array.isArray(meta.common.mood)\n ? meta.common.mood\n : meta.common.mood\n ? [meta.common.mood]\n : undefined,\n originaldate: meta.common.originaldate,\n originalyear: meta.common.originalyear,\n peakLevel: meta.common.peakLevel,\n producers: meta.common.producer,\n publishers: meta.common.publisher,\n releasecountry: meta.common.releasecountry,\n releasedate: meta.common.releasedate,\n releasestatus: meta.common.releasestatus,\n releasetypes: meta.common.releasetype,\n remixers: meta.common.remixer,\n technicians: meta.common.technician,\n title: meta.common.title || filename || urls?.head || \"Unknown\",\n titlesort: meta.common.titlesort,\n track: {\n no: meta.common.track.no || 1,\n ...(meta.common.track.of && { of: meta.common.track.of }),\n },\n work: meta.common.work,\n writers: meta.common.writer,\n year: meta.common.year,\n };\n\n const stats = removeUndefinedValuesFromRecord(statsFull);\n const tags = removeUndefinedValuesFromRecord(tagsFull);\n\n return {\n artwork: includeArtwork ? meta.common.picture : undefined,\n stats,\n tags,\n };\n}\n\n/**\n * @param {number | undefined} value\n * @returns {number | undefined}\n */\nfunction maybeRound(value) {\n return typeof value === \"number\" ? Math.round(value) : value;\n}\n"],"mappings":"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,OACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,QACA,MACA,MACA,MACA,OACA,OACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,SACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,IACA,KACA,MACA,MACA,MACA,QACA,MACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,MACA,MACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,QACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,OACA,OACA,SACA,MACA,KACD,EAEaC,GAAY,CACxB,aACA,YACA,YACA,aACA,aACA,cACA,oBACA,oBACA,aACA,YACA,qBACA,4BACA,yBACA,uBACA,0BACA,0DACA,0CACA,iDACA,kDACA,0EACA,4EACA,oEACA,yEACA,kBACA,oBACA,+BACA,mBACA,sBACA,8BACA,gCACA,oCACA,YACA,aACA,iBACA,aACA,kBACA,gBACA,YACA,cACA,iBACA,iBACA,yBACA,aACA,aACA,aACA,YACA,YACA,YACA,yBACA,kBACA,aACA,YACA,gBACA,YACA,kBACA,oBACA,4BACA,2BACA,gCACA,kBACA,mBACA,YACA,aACA,gCACA,WACA,WACA,kBACA,eACA,cACA,yBACA,kBACA,mBACA,wBACA,iCACA,wCACA,oCACA,oBACA,6BACA,oBACA,yBACA,qBACA,oBACA,oBACA,kBACA,aACA,wBACA,YACA,YACA,YACA,YACA,YACA,YACA,aACA,kBACA,iCACA,aACA,sBACA,aACA,sBACA,aACA,YACA,oBACA,mBACA,gBACA,aACA,WACA,oBACA,+BACA,cACA,4BACA,4BACA,cACA,yBACA,cACA,aACA,sBACA,mBACA,oBACA,oBACA,wBACA,uBACA,cACA,cACA,2BACA,YACA,aACA,cACA,aACA,aACA,aACA,+BACA,aACA,+BACA,4BACA,qBACA,YACA,8BACA,YACA,YACA,mBACA,YACA,6BACA,gBACA,iCACA,sBACA,oBACA,qBACA,+BACA,mBACA,6BACA,6BACA,wBACA,0CACA,+BACA,oBACA,wEACA,uEACA,0EACA,oDACA,mDACA,0DACA,2DACA,8CACA,uDACA,iDACA,mDACA,mDACA,yDACA,6DACA,2BACA,+BACA,yBACA,2BACA,yCACA,wBACD,ECxVO,IAAMC,EAAiC,KAExCC,GAA6BD,EAAiC,EAC9DE,EAA6B,KAAO,KACpCC,GAAuB,KACvBC,GAAqC,GAAK,GAAM,EAChDC,EAAkC,GAAK,KAAO,KAC9CC,GAA4CJ,EAC5CK,GAAiCL,EACjCM,GAAwCH,EACxCI,GAA8B,EAC9BC,GAA4C,IAC5CC,GAA8BN,EAC9BO,GAAqC,GACrCC,GAAuCP,GACvCQ,GAA0B,IAC1BC,GAAuB,IACvBC,GAAoCX,EACpCY,GAA8B,IAC9BC,GAAsB,IACtBC,GAA+B,IAC/BC,GAA6Bd,GAC7Be,GAAqCf,GACrCgB,GAAoChB,GACpCiB,GAA8BlB,EAC9BmB,GAA8B,IAAI,IAAI,CAC3C,uBACA,gBACA,wCACD,CAAC,EACKC,GAAqC,CAC1C,2BACA,sCACA,qCACA,uCACA,iDACD,EACMC,GAA2B,IAAI,IAAI,CACxC,cACA,eACA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","names":["exports","format","parse","TEXT_REGEXP","TOKEN_REGEXP","QUOTE_REGEXP","TYPE_REGEXP","NullObject","C","__name","obj","type","parameters","result","param","qstring","header","options","stopChar","COMMA","len","index","skipOWS","valueStart","skipValue","valueEnd","trailingOWS","parseParameters","SP","HTAB","SEMI","EQ","DQUOTE","BSLASH","parameter","keyStart","code","keyEnd","key","value","str","char","start","end","import_debug","import_debug","Signature","DataDescriptor","array","UINT32_LE","LocalFileHeaderToken","flags","UINT16_LE","EndOfCentralDirectoryRecordToken","FileHeader","signatureToArray","signature","signatureBytes","UINT32_LE","__name","debug","initDebug","syncBufferSize","ddSignatureArray","Signature","eocdSignatureBytes","ZipHandler","_ZipHandler","tokenizer","randomReadTokenizer","chunkLength","buffer","i","pos","offset","eocdHeader","EndOfCentralDirectoryRecordToken","files","n","entry","FileHeader","StringType","fileCb","entries","stop","zipHeader","next","fileData","chunks","len","nextHeaderIndex","indexOf","size","data","mergeArrays","DataDescriptor","fileHeader","cb","uncompressedData","input","controller","ds","output","err","message","header","LocalFileHeaderToken","portion","bufferLength","portionLength","found","j","totalLength","acc","curr","mergedArray","chunk","GzipHandler","__name","tokenizer","controller","buffer","size","stringToBytes","string","encoding","bytes","index","code","character","__name","tarHeaderChecksumMatches","arrayBuffer","offset","readSum","StringType","sum","uint32SyncSafeToken","buffer","extensions","mimeTypes","reasonableDetectionSizeInBytes","maximumMpegOffsetTolerance","maximumZipEntrySizeInBytes","maximumZipEntryCount","maximumZipBufferedReadSizeInBytes","maximumUntrustedSkipSizeInBytes","maximumUnknownSizePayloadProbeSizeInBytes","maximumZipTextEntrySizeInBytes","maximumNestedGzipDetectionSizeInBytes","maximumNestedGzipProbeDepth","unknownSizeGzipProbeTimeoutInMilliseconds","maximumId3HeaderSizeInBytes","maximumEbmlDocumentTypeSizeInBytes","maximumEbmlElementPayloadSizeInBytes","maximumEbmlElementCount","maximumPngChunkCount","maximumPngStreamScanBudgetInBytes","maximumAsfHeaderObjectCount","maximumTiffTagCount","maximumDetectionReentryCount","maximumPngChunkSizeInBytes","maximumAsfHeaderPayloadSizeInBytes","maximumTiffStreamIfdOffsetInBytes","maximumTiffIfdOffsetInBytes","recoverableZipErrorMessages","recoverableZipErrorMessagePrefixes","recoverableZipErrorCodes","ParserHardLimitError","__name","patchWebByobTokenizerClose","tokenizer","streamReader","reader","cancelAndRelease","getSafeBound","value","maximum","reason","safeIgnore","length","maximumLength","safeLength","safeReadBuffer","buffer","options","decompressDeflateRawWithLimit","data","controller","chunks","totalLength","done","uncompressedData","offset","chunk","zipDataDescriptorSignature","zipDataDescriptorLengthInBytes","zipDataDescriptorOverlapLengthInBytes","findZipDataDescriptorOffset","bytesConsumed","lastPossibleDescriptorOffset","index","UINT32_LE","isPngAncillaryChunk","type","mergeByteChunks","merged","readZipDataDescriptorEntryWithLimit","zipHandler","shouldBuffer","syncBuffer","syncBufferLength","dataDescriptorOffset","retainedLength","chunkLength","hasUnknownFileSize","getRemainingZipScanBudget","startOffset","readZipEntryData","zipHeader","maximumDescriptorLength","getMaximumZipBufferedReadLength","fileData","ZipHandler","callback","fileCallback","stop","zipEntryCount","zipScanStart","hasExceededUnknownSizeScanBudget","next","dataDescriptor","createByteLimitedReadableStream","stream","maximumBytes","emittedBytes","sourceDone","sourceCanceled","cancelSource","remainingBytes","fileTypeFromBuffer","input","options","FileTypeParser","__name","getFileTypeFromMimeType","mimeType","__name","_check","buffer","headers","options","index","header","normalizeSampleSize","sampleSize","reasonableDetectionSizeInBytes","readByobReaderWithSignal","reader","signal","resolve","reject","cleanup","onAbort","abortReason","result","error","normalizeMpegOffsetTolerance","mpegOffsetTolerance","maximumMpegOffsetTolerance","getKnownFileSizeOrMaximum","fileSize","hasUnknownFileSize","tokenizer","hasExceededUnknownSizeScanBudget","startOffset","maximumBytes","getMaximumZipBufferedReadLength","remainingBytes","maximumZipBufferedReadSizeInBytes","isRecoverableZipError","EndOfStreamError","ParserHardLimitError","recoverableZipErrorMessages","recoverableZipErrorCodes","prefix","recoverableZipErrorMessagePrefixes","canReadZipEntryForDetection","zipHeader","maximumSize","maximumZipEntrySizeInBytes","sizes","size","createOpenXmlZipDetectionState","updateOpenXmlZipDetectionStateFromFilename","openXmlState","filename","getOpenXmlFileTypeFromZipEntries","getOpenXmlMimeTypeFromContentTypesXml","xmlContent","endPosition","truncatedContent","firstQuotePosition","FileTypeParser","_FileTypeParser","__name","options","normalizedMpegOffsetTolerance","normalizeMpegOffsetTolerance","stream","patchWebByobTokenizerClose","fromWebStream","tokenizer","detectionReentryCount","initialPosition","detector","fileType","error","EndOfStreamError","ParserHardLimitError","input","buffer","fromBuffer","blob","fromBlob","sampleSize","normalizeSampleSize","reasonableDetectionSizeInBytes","detectedFileType","firstChunk","reader","chunk","done","readByobReaderWithSignal","transformStream","controller","newStream","maximumNestedGzipProbeDepth","gzipHandler","GzipHandler","limitedInflatedStream","createByteLimitedReadableStream","maximumNestedGzipDetectionSizeInBytes","hasUnknownSize","hasUnknownFileSize","timeout","probeSignal","probeParser","compressedFileType","timeoutController","unknownSizeGzipProbeTimeoutInMilliseconds","header","_check","stringToBytes","maximumDetectionReentryCount","safeIgnore","id3HeaderLength","uint32SyncSafeToken","isUnknownFileSize","maximumId3HeaderSizeInBytes","openXmlState","createOpenXmlZipDetectionState","ZipHandler","zipHeader","updateOpenXmlZipDetectionStateFromFilename","isOpenXmlContentTypesEntry","openXmlFileTypeFromEntries","getOpenXmlFileTypeFromZipEntries","canReadZipEntryForDetection","maximumZipTextEntrySizeInBytes","fileData","mimeType","getFileTypeFromMimeType","xmlContent","getOpenXmlMimeTypeFromContentTypesXml","isRecoverableZipError","type","readField","msb","UINT8","mask","ic","id","safeReadBuffer","readElement","idField","lengthField","nrLength","idView","lengthView","getUintBE","readChildren","children","ebmlElementCount","maximumEbmlElementCount","hasExceededUnknownSizeScanBudget","ebmlScanStart","maximumUntrustedSkipSizeInBytes","previousPosition","element","maximumEbmlDocumentTypeSizeInBytes","documentTypeLength","getSafeBound","StringType","maximumEbmlElementPayloadSizeInBytes","rootElement","machOArchitectureCount","UINT32_BE","javaClassFileMajorVersion","UINT16_BE","version","char7","pngFileType","apngFileType","readChunkHeader","INT32_BE","isUnknownPngStream","pngScanStart","pngChunkCount","hasSeenImageHeader","maximumPngChunkCount","maximumPngStreamScanBudgetInBytes","maximumPngChunkSizeInBytes","isPngAncillaryChunk","brandMajor","isMalformedAsf","readHeader","guid","UINT64_LE","asfHeaderScanStart","asfHeaderObjectCount","maximumAsfHeaderObjectCount","payload","typeId","maximumAsfHeaderPayloadSizeInBytes","jsonSize","tarHeaderChecksumMatches","encoding","fileSize","getKnownFileSizeOrMaximum","depth","bigEndian","tagId","UINT16_LE","numberOfTags","maximumTiffTagCount","maximumTiffIfdOffsetInBytes","n","tiffFileType","ifdOffset","UINT32_LE","someId1","someId2","maximumTiffStreamIfdOffsetInBytes","maximumTiffOffset","offset","supportedExtensions","extensions","supportedMimeTypes","mimeTypes","import_content_type","typeRegExp","parse","str","typeRegExp","slashIndex","type","subtype","suffix","index","__name","import_debug","import_debug","defaultTagInfo","commonTags","isSingleton","alias","commonTags","__name","isUnique","CommonTagMapper","__name","str","cleaned","origVal","split","tagTypes","tagMap","tag","warnings","id","_tag","_warnings","id3v1TagMap","ID3v1TagMapper","CommonTagMapper","__name","CaseInsensitiveTagMap","CommonTagMapper","__name","tagTypes","tagMap","upperCaseMap","tag","id3v24TagMap","ID3v24TagMapper","_ID3v24TagMapper","CaseInsensitiveTagMap","__name","popm","CommonTagMapper","tag","warnings","idTag","decodeString","customTag","UINT32_LE","asfTagMap","AsfTagMapper","_AsfTagMapper","CommonTagMapper","__name","rating","tag","keys","id3v22TagMap","ID3v22TagMapper","CaseInsensitiveTagMap","__name","apev2TagMap","APEv2TagMapper","CaseInsensitiveTagMap","__name","mp4TagMap","tagType","MP4TagMapper","CaseInsensitiveTagMap","__name","tag","_warnings","vorbisTagMap","VorbisTagMapper","_VorbisTagMapper","CommonTagMapper","__name","email","rating","maxScore","tag","keys","riffInfoTagMap","RiffInfoTagMapper","CommonTagMapper","__name","ebmlTagMap","MatroskaTagMapper","CaseInsensitiveTagMap","__name","tagMap","AiffTagMapper","CommonTagMapper","__name","CombinedTagMapper","__name","ID3v1TagMapper","ID3v22TagMapper","ID3v24TagMapper","MP4TagMapper","VorbisTagMapper","APEv2TagMapper","AsfTagMapper","RiffInfoTagMapper","MatroskaTagMapper","AiffTagMapper","mapper","tagType","tag","warnings","InternalParserError","genericTagMapper","TIMESTAMP_REGEX","parseLyrics","input","parseLrc","toUnsyncedLyrics","__name","lyrics","LyricsContentType","TimestampFormat","lrcString","lines","syncText","line","match","minutes","seconds","ms","timestamp","text","debug","initDebug","TagPriority","MetadataCollector","__name","opts","CombinedTagMapper","priority","tagType","streamInfo","TrackTypeValueToKeyMap","key","value","tagId","warning","tag","picture","CommonTagMapper","of","year","toRatio","v","minMix","commonTag","parseLyrics","singularId","pluralId","values","joinArtists","fileType","fileTypeFromBuffer","genericTag","prio0","prio1","isSingleton","isUnique","artists","mpegParserLoader","apeParserLoader","asfParserLoader","dsdiffParserLoader","aiffParserLoader","dsfParserLoader","flacParserLoader","matroskaParserLoader","mp4ParserLoader","musepackParserLoader","oggParserLoader","wavpackParserLoader","riffParserLoader","debug","initDebug","parseHttpContentType","contentType","type","ContentType","mime","parse","__name","ParserFactory","flacParserLoader","mpegParserLoader","apeParserLoader","mp4ParserLoader","matroskaParserLoader","riffParserLoader","oggParserLoader","asfParserLoader","aiffParserLoader","wavpackParserLoader","musepackParserLoader","dsfParserLoader","dsdiffParserLoader","parser","tokenizer","parserLoader","opts","scanAppendingHeaders","buf","guessedType","fileTypeFromBuffer","CouldNotDetermineFileTypeError","UnsupportedFileTypeError","metadata","MetadataCollector","ParserImpl","track","TrackType","filePath","extension","getExtension","httpContentType","subType","loader","mimeTypeSet","mimeType","fname","i","endTag2","getLyricsHeaderLength","tokenizer","fileSize","buf","position","txt","textDecode","__name","parseWebStream","webStream","fileInfo","options","tokenizer","fromWebStream","parseFromTokenizer","__name","parseBuffer","uint8Array","fromBuffer","ParserFactory","scanAppendingHeaders","tokenizer","options","apeOffset","hasID3v1Header","lyricsLen","getLyricsHeaderLength","APEv2Parser","__name","debug","initDebug","import_debug","defaultMessages","EndOfStreamError","__name","AbstractTokenizer","__name","options","token","position","uint8Array","EndOfStreamError","length","bytesLeft","import_promises","FileTokenizer","_FileTokenizer","AbstractTokenizer","__name","sourceFilePath","fileHandle","fsOpen","stat","options","uint8Array","normOptions","res","EndOfStreamError","position","fromFile","FileTokenizer","import_debug","debug","initDebug","parseContentRange","contentRange","debug","parsedContentRange","__name","import_debug","debug","initDebug","ResponseInfo","__name","response","contentLength","value","contentRange","parseContentRange","size","res","debug","initDebug","DEFAULT_CONFIG","HttpClient","__name","url","config","response","ResponseInfo","method","range","headers","ChunkedFileData","__name","offset","data","offsetEnd","chunkRange","firstChunk","lastChunk","needsPrepend","needsAppend","chunk","slicedData","offsetStart","i","buffer","position","length","_pos_offset","dataChunk","dataChunkStart","dataChunkEnd","chunkOffset","chunkLength","buffer1","buffer2","tmp","startChunkIx","endChunkIx","insertIx","chunkOffsetStart","chunkOffsetEnd","import_debug","debug","initDebug","RangeRequestTokenizer","AbstractTokenizer","__name","rangeRequestClient","options","ChunkedFileData","position","uint8array","length","size","requested","available","lastPos","bytesLeft","range","roundRange","response","data","minimumChunkSize","newLength","import_debug","debug","initDebug","RangeRequestFactory","__name","rangeRequestClient","config","headRequestInfo","RangeRequestTokenizer","info","range","roundRange","response","tokenizer","rangeRequestClient","config","RangeRequestFactory","__name","MIME_TO_EXT","mimeTypeToPath","mimeType","ext","__name","musicMetadataTags","includeArtwork","filename","stream","urls","signal","pathParts","parse","urlFilename","meta","blob","r","buffer","parseBuffer","httpClient","HttpClient","getHeadInfo","onAbort","info","tokenizer","path","parseFromTokenizer","parseWebStream","statsFull","maybeRound","tagsFull","stats","removeUndefinedValuesFromRecord","tags","value"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-OTCXFJJZ.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PHFIOWBZ.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PHFIOWBZ.js new file mode 100644 index 00000000..5ed3f066 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PHFIOWBZ.js @@ -0,0 +1,12 @@ +import{a as Qe}from"./chunk-KZNIRR3C.js";import{a as s,b as I,c as He,d as xe}from"./chunk-75KFZLU6.js";var we=I((On,Ce)=>{var M=1e3,N=M*60,L=N*60,_=L*24,Ze=_*7,Xe=_*365.25;Ce.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return et(r);if(t==="number"&&isFinite(r))return e.long?rt(r):tt(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function et(r){if(r=String(r),!(r.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(e){var t=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*Xe;case"weeks":case"week":case"w":return t*Ze;case"days":case"day":case"d":return t*_;case"hours":case"hour":case"hrs":case"hr":case"h":return t*L;case"minutes":case"minute":case"mins":case"min":case"m":return t*N;case"seconds":case"second":case"secs":case"sec":case"s":return t*M;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}s(et,"parse");function tt(r){var e=Math.abs(r);return e>=_?Math.round(r/_)+"d":e>=L?Math.round(r/L)+"h":e>=N?Math.round(r/N)+"m":e>=M?Math.round(r/M)+"s":r+"ms"}s(tt,"fmtShort");function rt(r){var e=Math.abs(r);return e>=_?Q(r,e,_,"day"):e>=L?Q(r,e,L,"hour"):e>=N?Q(r,e,N,"minute"):e>=M?Q(r,e,M,"second"):r+" ms"}s(rt,"fmtLong");function Q(r,e,t,n){var o=e>=t*1.5;return Math.round(r/t)+" "+n+(o?"s":"")}s(Q,"plural")});var ne=I((Rn,ye)=>{function nt(r){t.debug=t,t.default=t,t.coerce=b,t.disable=u,t.enable=o,t.enabled=w,t.humanize=we(),t.destroy=O,Object.keys(r).forEach(a=>{t[a]=r[a]}),t.names=[],t.skips=[],t.formatters={};function e(a){let c=0;for(let f=0;f{if(te==="%%")return"%";V++;let me=t.formatters[$e];if(typeof me=="function"){let Ge=F[V];te=me.call(T,Ge),F.splice(V,1),V--}return te}),t.formatArgs.call(T,F),(T.log||t.log).apply(T,F)}return s(C,"debug"),C.namespace=a,C.useColors=t.useColors(),C.color=t.selectColor(a),C.extend=n,C.destroy=t.destroy,Object.defineProperty(C,"enabled",{enumerable:!0,configurable:!1,get:s(()=>f!==null?f:(d!==t.namespaces&&(d=t.namespaces,B=t.enabled(a)),B),"get"),set:s(F=>{f=F},"set")}),typeof t.init=="function"&&t.init(C),C}s(t,"createDebug");function n(a,c){let f=t(this.namespace+(typeof c>"u"?":":c)+a);return f.log=this.log,f}s(n,"extend");function o(a){t.save(a),t.namespaces=a,t.names=[],t.skips=[];let c=(typeof a=="string"?a:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of c)f[0]==="-"?t.skips.push(f.slice(1)):t.names.push(f)}s(o,"enable");function i(a,c){let f=0,d=0,B=-1,C=0;for(;f"-"+c)].join(",");return t.enable(""),a}s(u,"disable");function w(a){for(let c of t.skips)if(i(a,c))return!1;for(let c of t.names)if(i(a,c))return!0;return!1}s(w,"enabled");function b(a){return a instanceof Error?a.stack||a.message:a}s(b,"coerce");function O(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return s(O,"destroy"),t.enable(t.load()),t}s(nt,"setup");ye.exports=nt});var be=I((y,Y)=>{y.formatArgs=st;y.save=it;y.load=at;y.useColors=ot;y.storage=ct();y.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();y.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ot(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let r;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(r=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(r[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}s(ot,"useColors");function st(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Y.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}s(st,"formatArgs");y.log=console.debug||console.log||(()=>{});function it(r){try{r?y.storage.setItem("debug",r):y.storage.removeItem("debug")}catch{}}s(it,"save");function at(){let r;try{r=y.storage.getItem("debug")||y.storage.getItem("DEBUG")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}s(at,"load");function ct(){try{return localStorage}catch{}}s(ct,"localstorage");Y.exports=ne()(y);var{formatters:ut}=Y.exports;ut.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var oe=I((vn,Fe)=>{Fe.exports={}});var Oe=I((Tn,Ee)=>{Ee.exports={}});var Re=I((An,Ie)=>{Ie.exports={}});var Se=I((Un,Be)=>{"use strict";Be.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",n=e.indexOf(t+r),o=e.indexOf("--");return n!==-1&&(o===-1||n{"use strict";var lt=Re(),ve=oe(),E=Se(),{env:m}=process,v;E("no-color")||E("no-colors")||E("color=false")||E("color=never")?v=0:(E("color")||E("colors")||E("color=true")||E("color=always"))&&(v=1);"FORCE_COLOR"in m&&(m.FORCE_COLOR==="true"?v=1:m.FORCE_COLOR==="false"?v=0:v=m.FORCE_COLOR.length===0?1:Math.min(parseInt(m.FORCE_COLOR,10),3));function se(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}s(se,"translateLevel");function ie(r,e){if(v===0)return 0;if(E("color=16m")||E("color=full")||E("color=truecolor"))return 3;if(E("color=256"))return 2;if(r&&!e&&v===void 0)return 0;let t=v||0;if(m.TERM==="dumb")return t;if(process.platform==="win32"){let n=lt.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in m)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in m)||m.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in m)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(m.TEAMCITY_VERSION)?1:0;if(m.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in m){let n=parseInt((m.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(m.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(m.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(m.TERM)||"COLORTERM"in m?1:t}s(ie,"supportsColor");function ft(r){let e=ie(r,r&&r.isTTY);return se(e)}s(ft,"getSupportLevel");Te.exports={supportsColor:ft,stdout:se(ie(!0,ve.isatty(1))),stderr:se(ie(!0,ve.isatty(2)))}});var _e=I((x,K)=>{var dt=oe(),J=Oe();x.init=wt;x.log=xt;x.formatArgs=pt;x.save=gt;x.load=Ct;x.useColors=ht;x.destroy=J.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");x.colors=[6,2,3,4,5,1];try{let r=Ae();r&&(r.stderr||r).level>=2&&(x.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}x.inspectOpts=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(o,i)=>i.toUpperCase()),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),r[t]=n,r},{});function ht(){return"colors"in x.inspectOpts?!!x.inspectOpts.colors:dt.isatty(process.stderr.fd)}s(ht,"useColors");function pt(r){let{namespace:e,useColors:t}=this;if(t){let n=this.color,o="\x1B[3"+(n<8?n:"8;5;"+n),i=` ${o};1m${e} \x1B[0m`;r[0]=i+r[0].split(` +`).join(` +`+i),r.push(o+"m+"+K.exports.humanize(this.diff)+"\x1B[0m")}else r[0]=mt()+e+" "+r[0]}s(pt,"formatArgs");function mt(){return x.inspectOpts.hideDate?"":new Date().toISOString()+" "}s(mt,"getDate");function xt(...r){return process.stderr.write(J.formatWithOptions(x.inspectOpts,...r)+` +`)}s(xt,"log");function gt(r){r?process.env.DEBUG=r:delete process.env.DEBUG}s(gt,"save");function Ct(){return process.env.DEBUG}s(Ct,"load");function wt(r){r.inspectOpts={};let e=Object.keys(x.inspectOpts);for(let t=0;te.trim()).join(" ")};Ue.O=function(r){return this.inspectOpts.colors=this.useColors,J.inspect(r,this.inspectOpts)}});var yt=I((Nn,ae)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?ae.exports=be():ae.exports=_e()});var Ne=I(le=>{le.read=function(r,e,t,n,o){var i,u,w=o*8-n-1,b=(1<>1,a=-7,c=t?o-1:0,f=t?-1:1,d=r[e+c];for(c+=f,i=d&(1<<-a)-1,d>>=-a,a+=w;a>0;i=i*256+r[e+c],c+=f,a-=8);for(u=i&(1<<-a)-1,i>>=-a,a+=n;a>0;u=u*256+r[e+c],c+=f,a-=8);if(i===0)i=1-O;else{if(i===b)return u?NaN:(d?-1:1)*(1/0);u=u+Math.pow(2,n),i=i-O}return(d?-1:1)*u*Math.pow(2,i-n)};le.write=function(r,e,t,n,o,i){var u,w,b,O=i*8-o-1,a=(1<>1,f=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,B=n?1:-1,C=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(w=isNaN(e)?1:0,u=a):(u=Math.floor(Math.log(e)/Math.LN2),e*(b=Math.pow(2,-u))<1&&(u--,b*=2),u+c>=1?e+=f/b:e+=f*Math.pow(2,1-c),e*b>=2&&(u++,b/=2),u+c>=a?(w=0,u=a):u+c>=1?(w=(e*b-1)*Math.pow(2,o),u=u+c):(w=e*Math.pow(2,c-1)*Math.pow(2,o),u=0));o>=8;r[t+d]=w&255,d+=B,w/=256,o-=8);for(u=u<0;r[t+d]=u&255,d+=B,u/=256,O-=8);r[t+d-B]|=C*128}});var Ye="End-Of-Stream",h=class extends Error{static{s(this,"EndOfStreamError")}constructor(){super(Ye),this.name="EndOfStreamError"}},A=class extends Error{static{s(this,"AbortError")}constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var U=class{static{s(this,"AbstractStreamReader")}constructor(){this.endOfStream=!1,this.interrupted=!1,this.peekQueue=[]}async peek(e,t=!1){let n=await this.read(e,t);return this.peekQueue.push(e.subarray(0,n)),n}async read(e,t=!1){if(e.length===0)return 0;let n=this.readFromPeekBuffer(e);if(this.endOfStream||(n+=await this.readRemainderFromStream(e.subarray(n),t)),n===0&&!t)throw new h;return n}readFromPeekBuffer(e){let t=e.length,n=0;for(;this.peekQueue.length>0&&t>0;){let o=this.peekQueue.pop();if(!o)throw new Error("peekData should be defined");let i=Math.min(o.length,t);e.set(o.subarray(0,i),n),n+=i,t-=i,i{this.abort()})}async readToken(e,t=this.position){let n=new Uint8Array(e.len);if(await this.readBuffer(n,{position:t})t)return this.position+=t,t}return this.position+=e,e}async close(){await this.abort(),await this.onClose?.()}normalizeOptions(e,t){if(!this.supportsRandomAccess()&&t&&t.position!==void 0&&t.position0)return await this.ignore(o),this.readBuffer(e,t);if(o<0)throw new Error("`options.position` must be equal or greater than `tokenizer.position`");if(n.length===0)return 0;let i=await this.streamReader.read(e.subarray(0,n.length),n.mayBeLess);if(this.position+=i,(!t||!t.mayBeLess)&&i0){let u=new Uint8Array(n.length+i);return o=await this.peekBuffer(u,{mayBeLess:n.mayBeLess}),e.set(u.subarray(i)),o-i}if(i<0)throw new Error("Cannot peek from a negative offset in a stream")}if(n.length>0){try{o=await this.streamReader.peek(e.subarray(0,n.length),n.mayBeLess)}catch(i){if(t?.mayBeLess&&i instanceof h)return 0;throw i}if(!n.mayBeLess&&o{if(await t.close(),o)return o()},new $(t,n)}s(on,"fromWebStream");function sn(r,e){return new G(r,e)}s(sn,"fromBuffer");function an(r,e){return new H(r,e)}s(an,"fromBlob");var ge=xe(Qe());var j=class r extends R{static{s(this,"FileTokenizer")}static async fromFile(e){let t=await(0,ge.open)(e,"r"),n=await t.stat();return new r(t,{fileInfo:{path:e,size:n.size}})}constructor(e,t){super(t),this.fileHandle=e,this.fileInfo=t.fileInfo}async readBuffer(e,t){let n=this.normalizeOptions(e,t);if(this.position=n.position,n.length===0)return 0;let o=await this.fileHandle.read(e,0,n.length,n.position);if(this.position+=o.bytesRead,o.bytesRead"u"))return Z??(Z=new globalThis.TextDecoder("utf-8"))}s(bt,"utf8Decoder");function Ft(){if(!(typeof globalThis.TextEncoder>"u"))return X??(X=new globalThis.TextEncoder)}s(Ft,"utf8Encoder");var z=32*1024,g=65533;function Me(r,e="utf-8"){switch(e.toLowerCase()){case"utf-8":case"utf8":{let t=bt();return t?t.decode(r):Ot(r)}case"utf-16le":return It(r);case"us-ascii":case"ascii":return Rt(r);case"latin1":case"iso-8859-1":return Bt(r);case"windows-1252":return St(r);default:throw new RangeError(`Encoding '${e}' not supported`)}}s(Me,"textDecode");function Ln(r="",e="utf-8"){switch(e.toLowerCase()){case"utf-8":case"utf8":{let t=Ft();return t?t.encode(r):vt(r)}case"utf-16le":return Tt(r);case"us-ascii":case"ascii":return At(r);case"latin1":case"iso-8859-1":return Ut(r);case"windows-1252":return _t(r);default:throw new RangeError(`Encoding '${e}' not supported`)}}s(Ln,"textEncode");function ue(r,e){e.length!==0&&(r.push(String.fromCharCode.apply(null,e)),e.length=0)}s(ue,"flushChunk");function p(r,e,t){e.push(t),e.length>=z&&ue(r,e)}s(p,"pushCodeUnit");function Et(r,e,t){if(t<=65535){p(r,e,t);return}t-=65536,p(r,e,55296+(t>>10)),p(r,e,56320+(t&1023))}s(Et,"pushCodePoint");function Ot(r){let e=[],t=[],n=0;for(r.length>=3&&r[0]===239&&r[1]===187&&r[2]===191&&(n=3);n244){p(e,t,g),n++;continue}if(o<=223){if(n+1>=r.length){p(e,t,g),n++;continue}let a=r[n+1];if((a&192)!==128){p(e,t,g),n++;continue}let c=(o&31)<<6|a&63;p(e,t,c),n+=2;continue}if(o<=239){if(n+2>=r.length){p(e,t,g),n++;continue}let a=r[n+1],c=r[n+2];if(!((a&192)===128&&(c&192)===128&&!(o===224&&a<160)&&!(o===237&&a>=160))){p(e,t,g),n++;continue}let d=(o&15)<<12|(a&63)<<6|c&63;p(e,t,d),n+=3;continue}if(n+3>=r.length){p(e,t,g),n++;continue}let i=r[n+1],u=r[n+2],w=r[n+3];if(!((i&192)===128&&(u&192)===128&&(w&192)===128&&!(o===240&&i<144)&&!(o===244&&i>143))){p(e,t,g),n++;continue}let O=(o&7)<<18|(i&63)<<12|(u&63)<<6|w&63;Et(e,t,O),n+=4}return ue(e,t),e.join("")}s(Ot,"decodeUTF8");function It(r){let e=[],t=[],n=r.length,o=0;for(;o+1=55296&&i<=56319){if(o+1=56320&&u<=57343?(p(e,t,i),p(e,t,u),o+=2):p(e,t,g)}else p(e,t,g);continue}if(i>=56320&&i<=57343){p(e,t,g);continue}p(e,t,i)}return o=128&&o<=159?ke[o]:void 0;t+=i??String.fromCharCode(o),t.length>=z&&(e.push(t),t="")}return t&&e.push(t),e.join("")}s(St,"decodeWindows1252");function vt(r){let e=[];for(let t=0;t=55296&&n<=56319)if(t+1=56320&&o<=57343?(n=65536+(n-55296<<10)+(o-56320),t++):n=g}else n=g;else n>=56320&&n<=57343&&(n=g);n<128?e.push(n):n<2048?e.push(192|n>>6,128|n&63):n<65536?e.push(224|n>>12,128|n>>6&63,128|n&63):e.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|n&63)}return new Uint8Array(e)}s(vt,"encodeUTF8");function Tt(r){let e=[];for(let n=0;n=55296&&o<=56319){if(n+1=56320&&i<=57343?(e.push(o,i),n++):e.push(g)}else e.push(g);continue}if(o>=56320&&o<=57343){e.push(g);continue}e.push(o)}let t=new Uint8Array(e.length*2);for(let n=0;n>>8}return t}s(Tt,"encodeUTF16LE");function At(r){let e=new Uint8Array(r.length);for(let t=0;t=0&&o<=127||o>=160&&o<=255){e[t]=o;continue}e[t]=63}return e}s(_t,"encodeWindows1252");var or={};He(or,{AnsiStringType:()=>he,Float16_BE:()=>Jt,Float16_LE:()=>Kt,Float32_BE:()=>Zt,Float32_LE:()=>Xt,Float64_BE:()=>er,Float64_LE:()=>tr,Float80_BE:()=>rr,Float80_LE:()=>nr,INT16_BE:()=>jt,INT16_LE:()=>Pt,INT24_BE:()=>Vt,INT24_LE:()=>Wt,INT32_BE:()=>qt,INT32_LE:()=>$t,INT64_BE:()=>Yt,INT64_LE:()=>Ht,INT8:()=>Dt,IgnoreType:()=>fe,StringType:()=>ee,UINT16_BE:()=>Nt,UINT16_LE:()=>Mt,UINT24_BE:()=>ze,UINT24_LE:()=>Le,UINT32_BE:()=>zt,UINT32_LE:()=>Lt,UINT64_BE:()=>Qt,UINT64_LE:()=>Gt,UINT8:()=>kt,Uint8ArrayType:()=>de});var S=xe(Ne());function l(r){return new DataView(r.buffer,r.byteOffset)}s(l,"dv");var kt={len:1,get(r,e){return l(r).getUint8(e)},put(r,e,t){return l(r).setUint8(e,t),e+1}},Mt={len:2,get(r,e){return l(r).getUint16(e,!0)},put(r,e,t){return l(r).setUint16(e,t,!0),e+2}},Nt={len:2,get(r,e){return l(r).getUint16(e)},put(r,e,t){return l(r).setUint16(e,t),e+2}},Le={len:3,get(r,e){let t=l(r);return t.getUint8(e)+(t.getUint16(e+1,!0)<<8)},put(r,e,t){let n=l(r);return n.setUint8(e,t&255),n.setUint16(e+1,t>>8,!0),e+3}},ze={len:3,get(r,e){let t=l(r);return(t.getUint16(e)<<8)+t.getUint8(e+2)},put(r,e,t){let n=l(r);return n.setUint16(e,t>>8),n.setUint8(e+2,t&255),e+3}},Lt={len:4,get(r,e){return l(r).getUint32(e,!0)},put(r,e,t){return l(r).setUint32(e,t,!0),e+4}},zt={len:4,get(r,e){return l(r).getUint32(e)},put(r,e,t){return l(r).setUint32(e,t),e+4}},Dt={len:1,get(r,e){return l(r).getInt8(e)},put(r,e,t){return l(r).setInt8(e,t),e+1}},jt={len:2,get(r,e){return l(r).getInt16(e)},put(r,e,t){return l(r).setInt16(e,t),e+2}},Pt={len:2,get(r,e){return l(r).getInt16(e,!0)},put(r,e,t){return l(r).setInt16(e,t,!0),e+2}},Wt={len:3,get(r,e){let t=Le.get(r,e);return t>8388607?t-16777216:t},put(r,e,t){let n=l(r);return n.setUint8(e,t&255),n.setUint16(e+1,t>>8,!0),e+3}},Vt={len:3,get(r,e){let t=ze.get(r,e);return t>8388607?t-16777216:t},put(r,e,t){let n=l(r);return n.setUint16(e,t>>8),n.setUint8(e+2,t&255),e+3}},qt={len:4,get(r,e){return l(r).getInt32(e)},put(r,e,t){return l(r).setInt32(e,t),e+4}},$t={len:4,get(r,e){return l(r).getInt32(e,!0)},put(r,e,t){return l(r).setInt32(e,t,!0),e+4}},Gt={len:8,get(r,e){return l(r).getBigUint64(e,!0)},put(r,e,t){return l(r).setBigUint64(e,t,!0),e+8}},Ht={len:8,get(r,e){return l(r).getBigInt64(e,!0)},put(r,e,t){return l(r).setBigInt64(e,t,!0),e+8}},Qt={len:8,get(r,e){return l(r).getBigUint64(e)},put(r,e,t){return l(r).setBigUint64(e,t),e+8}},Yt={len:8,get(r,e){return l(r).getBigInt64(e)},put(r,e,t){return l(r).setBigInt64(e,t),e+8}},Jt={len:2,get(r,e){return S.read(r,e,!1,10,this.len)},put(r,e,t){return S.write(r,t,e,!1,10,this.len),e+this.len}},Kt={len:2,get(r,e){return S.read(r,e,!0,10,this.len)},put(r,e,t){return S.write(r,t,e,!0,10,this.len),e+this.len}},Zt={len:4,get(r,e){return l(r).getFloat32(e)},put(r,e,t){return l(r).setFloat32(e,t),e+4}},Xt={len:4,get(r,e){return l(r).getFloat32(e,!0)},put(r,e,t){return l(r).setFloat32(e,t,!0),e+4}},er={len:8,get(r,e){return l(r).getFloat64(e)},put(r,e,t){return l(r).setFloat64(e,t),e+8}},tr={len:8,get(r,e){return l(r).getFloat64(e,!0)},put(r,e,t){return l(r).setFloat64(e,t,!0),e+8}},rr={len:10,get(r,e){return S.read(r,e,!1,63,this.len)},put(r,e,t){return S.write(r,t,e,!1,63,this.len),e+this.len}},nr={len:10,get(r,e){return S.read(r,e,!0,63,this.len)},put(r,e,t){return S.write(r,t,e,!0,63,this.len),e+this.len}},fe=class{static{s(this,"IgnoreType")}constructor(e){this.len=e}get(e,t){}},de=class{static{s(this,"Uint8ArrayType")}constructor(e){this.len=e}get(e,t){return e.subarray(t,t+this.len)}},ee=class{static{s(this,"StringType")}constructor(e,t){this.len=e,this.encoding=t}get(e,t=0){let n=e.subarray(t,t+this.len);return Me(n,this.encoding)}},he=class extends ee{static{s(this,"AnsiStringType")}constructor(e){super(e,"windows-1252")}};var P=s(r=>class extends Error{static{s(this,"ParseError")}constructor(t){super(t),this.name=r}},"makeParseError"),De=class extends P("CouldNotDetermineFileTypeError"){static{s(this,"CouldNotDetermineFileTypeError")}},je=class extends P("UnsupportedFileTypeError"){static{s(this,"UnsupportedFileTypeError")}},pe=class extends P("UnexpectedFileContentError"){static{s(this,"UnexpectedFileContentError")}constructor(e,t){super(t),this.fileType=e}toString(){return`${this.name} (FileType: ${this.fileType}): ${this.message}`}},Pe=class extends P("FieldDecodingError"){static{s(this,"FieldDecodingError")}},We=class extends P("InternalParserError"){static{s(this,"InternalParserError")}},qn=s(r=>class extends pe{constructor(e){super(r,e)}},"makeUnexpectedFileContentError");var Ve=class{static{s(this,"BasicParser")}constructor(e,t,n){this.metadata=e,this.tokenizer=t,this.options=n}};export{h as a,R as b,on as c,sn as d,an as e,yt as f,Me as g,Ln as h,kt as i,Mt as j,Nt as k,Le as l,ze as m,Lt as n,zt as o,Dt as p,jt as q,Vt as r,qt as s,$t as t,Gt as u,Ht as v,Qt as w,Yt as x,Zt as y,er as z,de as A,ee as B,or as C,De as D,je as E,Pe as F,We as G,qn as H,Ve as I}; +/*! Bundled license information: + +ieee754/index.js: + (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) +*/ + +//# sourceMappingURL=./chunk-PHFIOWBZ.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PHFIOWBZ.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PHFIOWBZ.js.br new file mode 100644 index 0000000000000000000000000000000000000000..f5de54c39bea21d69c2c1a3e12146b40134cd9af GIT binary patch literal 9310 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
'+(t?s:R(s,!0))+`
+`:"
"+(t?s:R(s,!0))+`
+`}blockquote({tokens:r}){return`
+${this.parser.parse(r)}
+`}html({text:r}){return r}def(r){return""}heading({tokens:r,depth:e}){return`${this.parser.parseInline(r)} +`}hr(r){return`
+`}list(r){let e=r.ordered,t=r.start,n="";for(let a=0;a +`+n+" +`}listitem(r){return`
  • ${this.parser.parse(r.tokens)}
  • +`}checkbox({checked:r}){return" '}paragraph({tokens:r}){return`

    ${this.parser.parseInline(r)}

    +`}table(r){let e="",t="";for(let s=0;s${n}`),` + +`+e+` +`+n+`
    +`}tablerow({text:r}){return` +${r} +`}tablecell(r){let e=this.parser.parseInline(r.tokens),t=r.header?"th":"td";return(r.align?`<${t} align="${r.align}">`:`<${t}>`)+e+` +`}strong({tokens:r}){return`${this.parser.parseInline(r)}`}em({tokens:r}){return`${this.parser.parseInline(r)}`}codespan({text:r}){return`${R(r,!0)}`}br(r){return"
    "}del({tokens:r}){return`${this.parser.parseInline(r)}`}link({href:r,title:e,tokens:t}){let n=this.parser.parseInline(t),s=_e(r);if(s===null)return n;r=s;let i='
    ",i}image({href:r,title:e,text:t,tokens:n}){n&&(t=this.parser.parseInline(n,this.parser.textRenderer));let s=_e(r);if(s===null)return R(t);r=s;let i=`${R(t)}{let a=s[i].flat(1/0);t=t.concat(this.walkTokens(a,e))}):s.tokens&&(t=t.concat(this.walkTokens(s.tokens,e)))}}return t}use(...r){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return r.forEach(t=>{let n={...t};if(n.async=this.defaults.async||n.async||!1,t.extensions&&(t.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){let i=e.renderers[s.name];i?e.renderers[s.name]=function(...a){let l=s.renderer.apply(this,a);return l===!1&&(l=i.apply(this,a)),l}:e.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=e[s.level];i?i.unshift(s.tokenizer):e[s.level]=[s.tokenizer],s.start&&(s.level==="block"?e.startBlock?e.startBlock.push(s.start):e.startBlock=[s.start]:s.level==="inline"&&(e.startInline?e.startInline.push(s.start):e.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(e.childTokens[s.name]=s.childTokens)}),n.extensions=e),t.renderer){let s=this.defaults.renderer||new j(this.defaults);for(let i in t.renderer){if(!(i in s))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let a=i,l=t.renderer[a],c=s[a];s[a]=(...o)=>{let h=l.apply(s,o);return h===!1&&(h=c.apply(s,o)),h||""}}n.renderer=s}if(t.tokenizer){let s=this.defaults.tokenizer||new N(this.defaults);for(let i in t.tokenizer){if(!(i in s))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let a=i,l=t.tokenizer[a],c=s[a];s[a]=(...o)=>{let h=l.apply(s,o);return h===!1&&(h=c.apply(s,o)),h}}n.tokenizer=s}if(t.hooks){let s=this.defaults.hooks||new D;for(let i in t.hooks){if(!(i in s))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let a=i,l=t.hooks[a],c=s[a];D.passThroughHooks.has(i)?s[a]=o=>{if(this.defaults.async&&D.passThroughHooksRespectAsync.has(i))return(async()=>{let p=await l.call(s,o);return c.call(s,p)})();let h=l.call(s,o);return c.call(s,h)}:s[a]=(...o)=>{if(this.defaults.async)return(async()=>{let p=await l.apply(s,o);return p===!1&&(p=await c.apply(s,o)),p})();let h=l.apply(s,o);return h===!1&&(h=c.apply(s,o)),h}}n.hooks=s}if(t.walkTokens){let s=this.defaults.walkTokens,i=t.walkTokens;n.walkTokens=function(a){let l=[];return l.push(i.call(this,a)),s&&(l=l.concat(s.call(this,a))),l}}this.defaults={...this.defaults,...n}}),this}setOptions(r){return this.defaults={...this.defaults,...r},this}lexer(r,e){return y.lex(r,e??this.defaults)}parser(r,e){return S.parse(r,e??this.defaults)}parseMarkdown(r){return(e,t)=>{let n={...t},s={...this.defaults,...n},i=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&n.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=r),s.async)return(async()=>{let a=s.hooks?await s.hooks.preprocess(e):e,l=await(s.hooks?await s.hooks.provideLexer(r):r?y.lex:y.lexInline)(a,s),c=s.hooks?await s.hooks.processAllTokens(l):l;s.walkTokens&&await Promise.all(this.walkTokens(c,s.walkTokens));let o=await(s.hooks?await s.hooks.provideParser(r):r?S.parse:S.parseInline)(c,s);return s.hooks?await s.hooks.postprocess(o):o})().catch(i);try{s.hooks&&(e=s.hooks.preprocess(e));let a=(s.hooks?s.hooks.provideLexer(r):r?y.lex:y.lexInline)(e,s);s.hooks&&(a=s.hooks.processAllTokens(a)),s.walkTokens&&this.walkTokens(a,s.walkTokens);let l=(s.hooks?s.hooks.provideParser(r):r?S.parse:S.parseInline)(a,s);return s.hooks&&(l=s.hooks.postprocess(l)),l}catch(a){return i(a)}}}onError(r,e){return t=>{if(t.message+=` +Please report this to https://github.com/markedjs/marked.`,r){let n="

    An error occurred:

    "+R(t.message+"",!0)+"
    ";return e?Promise.resolve(n):n}if(e)return Promise.reject(t);throw t}}},A=new Dt;function b(r,e){return A.parse(r,e)}g(b,"f");b.options=b.setOptions=function(r){return A.setOptions(r),b.defaults=A.defaults,Le(b.defaults),b};b.getDefaults=ne;b.defaults=z;function Zt(...r){return A.use(...r),b.defaults=A.defaults,Le(b.defaults),b}g(Zt,"dt");b.use=Zt;b.walkTokens=function(r,e){return A.walkTokens(r,e)};b.parseInline=A.parseInline;b.Parser=S;b.parser=S.parse;b.Renderer=j;b.TextRenderer=pe;b.Lexer=y;b.lexer=y.lex;b.Tokenizer=N;b.Hooks=D;b.parse=b;var Ft=b.options,Qt=b.setOptions,Ht=b.walkTokens,Ut=b.parseInline;var Nt=S.parse,jt=y.lex;var ue="diffuse/dashboard/filter",X=localStorage.getItem(ue),Y=V(X==="prelude"||X==="interface"||X==="base"?X:"all");Q(()=>{localStorage.setItem(ue,Y.get())});var Me="diffuse/dashboard/unfavourite-collapsed",M=V(localStorage.getItem(Me)==="true");Q(()=>{localStorage.setItem(Me,String(M.get()))});function W(r){let e=new URL(location.href);e.searchParams.delete("filter"),history.replaceState(null,"",e),de(()=>{Y.set(r),M.set(!1)})}g(W,"setFilter");var Ot=g(()=>$` +

    + + You haven't saved anything yet. Add a facet by browsing the featured ones or any of the other categories. You can click the toggle + to quickly add or remove from your collection. + +

    + `,"emptyFacetsList"),he;async function hr(){he&&he(),Y.set((()=>{let t=new URL(location.href).searchParams.get("filter");if(t==="prelude"||t==="interface"||t==="base"||t==="all")return t;let n=localStorage.getItem(ue);return n==="prelude"||n==="interface"||n==="base"?n:"all"})());let r=document.querySelector("#list");if(!r)throw new Error("List element not found");r.getAttribute("data-rendered")==="f"&&(r.innerHTML="",r.removeAttribute("data-rendered"));let e=await fe();he=Q(()=>{Mt(e,r)})}g(hr,"renderList");function Mt(r,e){let t=r.facets.collection();if(t.state!=="loaded"){let f=$` +
    + + Loading your software +
    + `;J(f,e);return}let n=Y.get(),s=g((f,u)=>f.name.toLocaleLowerCase().localeCompare(u.name.toLocaleLowerCase())||f.id.localeCompare(u.id),"sortByName"),i=t.state==="loaded"?[...t.data].filter(f=>n==="base"?!!f.tags?.includes("base"):(n==="all"||(n==="prelude"?f.kind==="prelude":f.kind!=="prelude"))&&!f.tags?.includes("base")):[],a=i.filter(f=>f.favourite).sort(s),l=i.filter(f=>!f.favourite).sort(s),c=a.concat(l),o=r.selected(),h=o?.label??o?.getAttribute?.("label")??"Local storage",p=$` +
    + Filter by + + + + + + + + + + +
    + + Userdata from + ${h} +
    + `,k=g(f=>f.map(u=>{let I=ge(u),F=u.kind==="prelude"?$` + + ${u.name} + + `:$` + + ${u.name} + + `;return ke(u.id,$` +
  • +
    +
    + ${F} +
    +
    +
    + ${u.description?.trim().length?$e(b.parse(u.description,{async:!1})):B} +
    +
    + ${u.uri&&!u.html?$` + + + Tracking the original URI + + `:$` + + + Custom code + + `} +
    +
    +
    + + +
  • + `)}),"renderItems"),m=M.get()&&a.length>0,x=c.length||n!=="all"?$` + ${p} ${a.length?$` +
      ${k(a)}
    + `:B} ${a.length&&l.length?$` +
    + +
    +
    + `:B} ${l.length&&!m?$` +
      ${k(l)}
    + `:B} + `:$` + ${p} ${Ot()} + `;J(x,e),setTimeout(()=>{let f=e.querySelector(".grid-filter--label-output"),u=e.querySelector(".grid-filter--output");u&&f&&(f.style.opacity="0.4",u.style.opacity="1")},250)}g(Mt,"_renderList");export{hr as a}; + +//# sourceMappingURL=./chunk-PI4WZOI6.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PI4WZOI6.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PI4WZOI6.js.br new file mode 100644 index 0000000000000000000000000000000000000000..d07d2ecd0ea8fdf9be085a77b8aebb9afb0dfdf9 GIT binary patch literal 15067 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 z(): MarkedOptions {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport let _defaults: MarkedOptions = _getDefaults();\n\nexport function changeDefaults(newDefaults: MarkedOptions) {\n _defaults = newDefaults;\n}\n","const noopTest = { exec: () => null } as unknown as RegExp;\n\nfunction cachedIndentRegex(createRegex: (indent: number) => RegExp) {\n const cache: RegExp[] = [];\n return (indent: number) => {\n const cacheIndex = Math.max(0, Math.min(3, indent - 1));\n let regex = cache[cacheIndex];\n if (!regex) {\n regex = createRegex(cacheIndex);\n cache[cacheIndex] = regex;\n }\n return regex;\n };\n}\n\nfunction edit(regex: string | RegExp, opt = '') {\n let source = typeof regex === 'string' ? regex : regex.source;\n const obj = {\n replace: (name: string | RegExp, val: string | RegExp) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(other.caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n },\n };\n return obj;\n}\n\n// use a default variable to ensure the regex is evaluated on client an not removed by minifiers\nconst supportsLookbehind = ((a = '') => {\ntry {\n return !!new RegExp('(?<=1)(?/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] +\\S/,\n listReplaceTask: /^\\[[ xX]\\] +/,\n listTaskCheckbox: /\\[[ xX]\\]/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^/i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull: string) => new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`)),\n hrRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`)),\n fencesBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}(?:\\`\\`\\`|~~~)`)),\n headingBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}#`)),\n htmlBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}<(?:[a-z].*>|!--)`, 'i')),\n blockquoteBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}>`)),\n};\n\n/**\n * Block-Level Grammar\n */\n\nconst newline = /^(?:[ \\t]*(?:\\n|$))+/;\nconst blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = / {0,3}(?:[*+-]|\\d{1,9}[.)])/;\nconst lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nconst lheading = edit(lheadingCore)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, /(?: {4}| {0,3}\\t)/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}(?:\\s|$)/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .replace(/\\|table/g, '') // table not in commonmark\n .getRegex();\nconst lheadingGfm = edit(lheadingCore)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, /(?: {4}| {0,3}\\t)/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}(?:\\s|$)/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/) // table can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \\t]+\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\n\nconst list = edit(/^(bull)([ \\t][^\\n]*?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\n\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /|$))/;\nconst html = edit(\n '^ {0,3}(?:' // optional indentation\n+ '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n*|$)' // (1)\n+ '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n+ '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>[^\\\\n]*\\\\n*|$)' // (3)\n+ '|[^\\\\n]*\\\\n*|$)' // (4)\n+ '|[^\\\\n]*\\\\n*|$)' // (5)\n+ '|)[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (6)\n+ '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (7) open tag\n+ '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (7) closing tag\n+ ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nconst createParagraph = (listInterrupt: RegExp) => edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*(?:\\\\n|$))|~~~)[^\\\\n]*(?:\\\\n|$)')\n .replace('list', listInterrupt)\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\n// only non-empty lists starting from 1 can interrupt paragraphs\nconst paragraph = createParagraph(/ {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]/);\n// inside a blockquote a bare list marker (any number) starts a sibling list,\n// so it must not be lazily continued as paragraph text (unlike a top level\n// paragraph, where an empty list cannot interrupt)\nconst blockquoteParagraph = createParagraph(/ {0,3}(?:[*+-]|\\d{1,9}[.)])(?:[ \\t]|\\n|$)/);\n\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', blockquoteParagraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText,\n};\n\ntype BlockKeys = keyof typeof blockNormal;\n\n/**\n * GFM Block Grammar\n */\n\nconst gfmTable = edit(\n '^ *([^\\\\n ].*)\\\\n' // Header\n+ ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n+ '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', '(?: {4}| {0,3}\\t)[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*(?:\\\\n|$))|~~~)[^\\\\n]*(?:\\\\n|$)')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]') // any bullet ends the table rows\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nconst blockGfm: Record = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*(?:\\\\n|$))|~~~)[^\\\\n]*(?:\\\\n|$)')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]+[^ \\\\t\\\\n]') // only non-empty lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex(),\n};\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nconst blockPedantic: Record = {\n ...blockNormal,\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex(),\n};\n\n/**\n * Inline-Level Grammar\n */\n\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\\nconst blockSkip = edit(/link|precode-code|html/, 'g')\n .replace('link', /\\[(?:[^\\[\\]`]|(?`+)[^`]+\\k(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/)\n .replace('precode-', supportsLookbehind ? '(?`+)[^`]+\\k(?!`)/)\n .replace('html', /<(?! )[^<>]*?>/)\n .getRegex();\n\nconst emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/;\n\nconst emStrongLDelim = edit(emStrongLDelimCore, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst emStrongLDelimGfm = edit(emStrongLDelimCore, 'u')\n .replace(/punct/g, _punctuationGfmStrongEm)\n .getRegex();\n\n// Pedantic: do not treat opening punct/quotes as left-delim punct (e.g. **( / **\").\nconst emStrongLDelimPedanticCore = /^(?:\\*+(?:((?!\\*)(?!openQuote)punct)|([^\\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\\s_]))?/;\n\nconst emStrongLDelimPedantic = edit(emStrongLDelimPedanticCore, 'u')\n .replace(/openQuote/g, _openQuote)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst emStrongRDelimAstCore =\n '^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n+ '|[^*]+(?=[^*])' // Consume to delim\n+ '|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n+ '|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)' // (2) a***#, a*** can only be a Right Delimiter\n+ '|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)' // (3) #***a, ***a can only be Left Delimiter\n+ '|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)' // (4) ***# can only be Left Delimiter\n+ '|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)' // (5) #***# can be either Left or Right Delimiter\n+ '|notPunctSpace(\\\\*+)(?=notPunctSpace)'; // (6) a***a can be either Left or Right Delimiter\n\nconst emStrongRDelimAst = edit(emStrongRDelimAstCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm)\n .replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm)\n .replace(/punct/g, _punctuationGfmStrongEm)\n .getRegex();\n\n// Pedantic: rule 3 requires whitespace before left delim; rule 6 allows punct before close (e.g. `:**bar`).\nconst emStrongRDelimAstPedanticCore =\n '^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n+ '|[^*]+(?=[^*])' // Consume to delim\n+ '|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n+ '|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)' // (2) a***#, a*** can only be a Right Delimiter\n+ '|(?!\\\\*)[\\\\s](\\\\*+)(?=notPunctSpace)' // (3) ***a can only be Left Delimiter (whitespace required; not #***a)\n+ '|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)' // (4) ***# can only be Left Delimiter\n+ '|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)' // (5) #***# can be either Left or Right Delimiter\n+ '|(?:(?!\\\\*)punct|notPunctSpace)(\\\\*+)(?!\\\\*)(?=notPunctSpace)'; // (6) a***a, #***a, and :** (e.g. **foo:**bar)\n\nconst emStrongRDelimAstPedantic = edit(emStrongRDelimAstPedanticCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\n// Normal: no rule 6 for _ (a___a cannot close as emphasis).\nconst emStrongRDelimUnd = edit(\n '^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n+ '|[^_]+(?=[^_])' // Consume to delim\n+ '|(?!_)punct(_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n+ '|notPunctSpace(_+)(?!_)(?=punctSpace|$)' // (2) a___#, a___ can only be a Right Delimiter\n+ '|(?!_)punctSpace(_+)(?=notPunctSpace)' // (3) #___a, ___a can only be Left Delimiter\n+ '|[\\\\s](_+)(?!_)(?=punct)' // (4) ___# can only be Left Delimiter\n+ '|(?!_)punct(_+)(?!_)(?=punct)', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\n// Pedantic: same rule 3/6 adjustments as emStrongRDelimAstPedantic (e.g. `_foo:_bar`).\nconst emStrongRDelimUndPedanticCore =\n '^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n+ '|[^_]+(?=[^_])' // Consume to delim\n+ '|(?!_)punct(_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n+ '|notPunctSpace(_+)(?!_)(?=punctSpace|$)' // (2) a___#, a___ can only be a Right Delimiter\n+ '|(?!_)[\\\\s](_+)(?=notPunctSpace)' // (3) ___a can only be Left Delimiter (whitespace required; not #___a)\n+ '|[\\\\s](_+)(?!_)(?=punct)' // (4) ___# can only be Left Delimiter\n+ '|(?!_)punct(_+)(?!_)(?=punct)' // (5) #___# can be either Left or Right Delimiter\n+ '|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)'; // (6) a___a, #___a, and :__ (e.g. _foo:_bar)\n\nconst emStrongRDelimUndPedantic = edit(emStrongRDelimUndPedanticCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\n// Tilde left delimiter for strikethrough (similar to emStrongLDelim for asterisk)\nconst delLDelim = edit(/^~~?(?:((?!~)punct)|[^\\s~])/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\n// Tilde delimiter patterns for strikethrough (similar to asterisk)\nconst delRDelimCore =\n '^[^~]+(?=[^~])' // Consume to delim\n+ '|(?!~)punct(~~?)(?=[\\\\s]|$)' // (1) #~~ can only be a Right Delimiter\n+ '|notPunctSpace(~~?)(?!~)(?=punctSpace|$)' // (2) a~~#, a~~ can only be a Right Delimiter\n+ '|(?!~)punctSpace(~~?)(?=notPunctSpace)' // (3) #~~a, ~~a can only be Left Delimiter\n+ '|[\\\\s](~~?)(?!~)(?=punct)' // (4) ~~# can only be Left Delimiter\n+ '|(?!~)punct(~~?)(?!~)(?=punct)' // (5) #~~# can be either Left or Right Delimiter\n+ '|notPunctSpace(~~?)(?=notPunctSpace)'; // (6) a~~a can be either Left or Right Delimiter\n\nconst delRDelim = edit(delRDelimCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst anyPunctuation = edit(/\\\\(punct)/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)\n .getRegex();\n\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit(\n '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nconst _inlineLabel = /(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/;\n\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]+|(?=\\))/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\n\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\n\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\n\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n\nconst _caseInsensitiveProtocol = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/;\n\n/**\n * Normal Inline Grammar\n */\n\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n delLDelim: noopTest,\n delRDelim: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest,\n};\n\ntype InlineKeys = keyof typeof inlineNormal;\n\n/**\n * Pedantic Inline Grammar\n */\n\nconst inlinePedantic: Record = {\n ...inlineNormal,\n emStrongLDelim: emStrongLDelimPedantic,\n emStrongRDelimAst: emStrongRDelimAstPedantic,\n emStrongRDelimUnd: emStrongRDelimUndPedantic,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex(),\n};\n\n/**\n * GFM Inline Grammar\n */\n\nconst inlineGfm: Record = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n delLDelim,\n delRDelim,\n url: edit(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/)\n .replace('protocol', _caseInsensitiveProtocol)\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: edit(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ = {\n ...inlineGfm,\n br: edit(br).replace('{2,}', '*').getRegex(),\n text: edit(inlineGfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex(),\n};\n\n/**\n * exports\n */\n\nexport const block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic,\n};\n\nexport const inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic,\n};\n\nexport interface Rules {\n other: typeof other\n block: Record\n inline: Record\n}\n","import { other } from './rules.ts';\n\n/**\n * Helpers\n */\nconst escapeReplacements: { [index: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n};\nconst getEscapeReplacement = (ch: string) => escapeReplacements[ch];\n\nexport function escapeHtmlEntities(html: string, encode?: boolean) {\n if (encode) {\n if (other.escapeTest.test(html)) {\n return html.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html)) {\n return html.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nexport function cleanUrl(href: string) {\n try {\n href = encodeURI(href).replace(other.percentDecode, '%');\n } catch {\n return null;\n }\n return href;\n}\n\nexport function splitCells(tableRow: string, count?: number) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(other.splitPipe);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(other.slashPipe, '|');\n }\n return cells;\n}\n\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nexport function rtrim(str: string, c: string, invert?: boolean) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.slice(0, l - suffLen);\n}\n\nexport function trimTrailingBlankLines(str: string) {\n const lines = str.split('\\n');\n let end = lines.length - 1;\n while (end >= 0 && other.blankLine.test(lines[end])) {\n end--;\n }\n if (lines.length - end <= 2) {\n // we want to keep single trailing blank lines\n return str;\n }\n\n return lines.slice(0, end + 1).join('\\n');\n}\n\nexport function findClosingBracket(str: string, b: string) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n if (level > 0) {\n return -2;\n }\n\n return -1;\n}\n\nexport function expandTabs(line: string, indent = 0) {\n let col = indent;\n let expanded = '';\n for (const char of line) {\n if (char === '\\t') {\n const added = 4 - (col % 4);\n expanded += ' '.repeat(added);\n col += added;\n } else {\n expanded += char;\n col++;\n }\n }\n\n return expanded;\n}\n","import { _defaults } from './defaults.ts';\nimport {\n rtrim,\n splitCells,\n findClosingBracket,\n expandTabs,\n trimTrailingBlankLines,\n} from './helpers.ts';\nimport type { Rules } from './rules.ts';\nimport type { _Lexer } from './Lexer.ts';\nimport type { Links, Tokens, Token } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\nfunction outputLink(cap: string[], link: Pick, raw: string, lexer: _Lexer, rules: Rules): Tokens.Link | Tokens.Image | undefined {\n const href = link.href;\n const title = link.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, '$1');\n const isImage = cap[0].charAt(0) === '!';\n\n lexer.state.inLink = true;\n const outerLinkEmitted = lexer.state.linkEmitted;\n const outerInRawBlock = lexer.state.inRawBlock;\n lexer.state.linkEmitted = false;\n const tokens = lexer.inlineTokens(text);\n const textHasLink = lexer.state.linkEmitted;\n lexer.state.linkEmitted = outerLinkEmitted;\n lexer.state.inLink = false;\n\n if (!isImage) {\n // CommonMark: \"Links may not contain other links, at any level of nesting.\"\n // Bail so the caller falls through to text and the inner link is the one kept.\n // Images are exempt: their text is flattened into an alt attribute.\n if (textHasLink) {\n // these tokens are discarded, so undo the raw-block state they opened;\n // leaving it set would suppress escaping for the text that is re-scanned\n lexer.state.inRawBlock = outerInRawBlock;\n return;\n }\n lexer.state.linkEmitted = true;\n }\n\n return {\n type: isImage ? 'image' : 'link',\n raw,\n href,\n title,\n text,\n tokens,\n };\n}\n\nfunction indentCodeCompensation(raw: string, text: string, rules: Rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nexport class _Tokenizer {\n options: MarkedOptions;\n rules!: Rules; // set by the lexer\n lexer!: _Lexer; // set by the lexer\n\n constructor(options?: MarkedOptions) {\n this.options = options || _defaults;\n }\n\n space(src: string): Tokens.Space | undefined {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0],\n };\n }\n }\n\n code(src: string): Tokens.Code | undefined {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const raw = this.options.pedantic\n ? cap[0]\n : trimTrailingBlankLines(cap[0]);\n const text = raw.replace(this.rules.other.codeRemoveIndent, '');\n return {\n type: 'code',\n raw,\n codeBlockStyle: 'indented',\n text,\n };\n }\n }\n\n fences(src: string): Tokens.Code | undefined {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '', this.rules);\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text,\n };\n }\n }\n\n heading(src: string): Tokens.Heading | undefined {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n return {\n type: 'heading',\n raw: rtrim(cap[0], '\\n'),\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n hr(src: string): Tokens.Hr | undefined {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: rtrim(cap[0], '\\n'),\n };\n }\n }\n\n blockquote(src: string): Tokens.Blockquote | undefined {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], '\\n').split('\\n');\n let raw = '';\n let text = '';\n const tokens: Token[] = [];\n\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n\n let i;\n for (i = 0; i < lines.length; i++) {\n // get lines up to a continuation\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n } else if (!inBlockquote) {\n currentLines.push(lines[i]);\n } else {\n break;\n }\n }\n lines = lines.slice(i);\n\n const currentRaw = currentLines.join('\\n');\n const currentText = currentRaw\n // precede setext continuation with 4 spaces so it isn't a setext\n .replace(this.rules.other.blockquoteSetextReplace, '\\n $1')\n .replace(this.rules.other.blockquoteSetextReplace2, '');\n raw = raw ? `${raw}\\n${currentRaw}` : currentRaw;\n text = text ? `${text}\\n${currentText}` : currentText;\n\n // parse blockquote lines as top level tokens\n // merge paragraphs if this is a continuation\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n\n // if there is no continuation then we are done\n if (lines.length === 0) {\n break;\n }\n\n const lastToken = tokens.at(-1);\n\n if (lastToken?.type === 'code') {\n // blockquote continuation cannot be preceded by a code block\n break;\n } else if (lastToken?.type === 'blockquote') {\n // include continuation in nested blockquote\n const oldToken = lastToken as Tokens.Blockquote;\n // The continuation lines belong to the same nesting frame as the\n // nested blockquote, which already had one '>' marker stripped, so\n // strip one marker from them too. Otherwise a restated marker after a\n // lazy line is re-parsed as a spurious deeper blockquote.\n const continuation = lines.join('\\n');\n const newText = oldToken.raw + '\\n' + continuation.replace(this.rules.other.blockquoteSetextReplace2, '');\n const newToken = this.blockquote(newText)!;\n tokens[tokens.length - 1] = newToken;\n\n raw = `${raw}\\n${continuation}`;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n } else if (lastToken?.type === 'list') {\n // include continuation in nested list\n const oldToken = lastToken as Tokens.List;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.list(newText)!;\n tokens[tokens.length - 1] = newToken;\n\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1)!.raw.length).split('\\n');\n continue;\n }\n }\n\n return {\n type: 'blockquote',\n raw,\n tokens,\n text,\n };\n }\n }\n\n list(src: string): Tokens.List | undefined {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list: Tokens.List = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: [],\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n let raw = '';\n let itemContents = '';\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n let line = expandTabs(cap[2].split('\\n', 1)[0], cap[1].length);\n let nextLine = src.split('\\n', 1)[0];\n let blankLine = !line.trim();\n\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else if (blankLine) {\n indent = cap[1].length + 1;\n } else {\n indent = line.search(this.rules.other.nonSpaceChar); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n if (blankLine && this.rules.other.blankLine.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n const blockquoteBeginRegex = this.rules.other.blockquoteBeginRegex(indent);\n\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, ' ');\n nextLineWithoutTabs = nextLine;\n } else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, ' ');\n }\n\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of html block\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of blockquote\n if (blockquoteBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n\n // Horizontal rule found\n if (hrRegex.test(nextLine)) {\n break;\n }\n\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLineWithoutTabs.slice(indent);\n } else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n\n // paragraph continuation unless last line was a different block level element\n if (line.replace(this.rules.other.tabCharGlobal, ' ').search(this.rules.other.nonSpaceChar) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n\n itemContents += '\\n' + nextLine;\n }\n\n blankLine = !nextLine.trim();\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw,\n task: !!this.options.gfm && this.rules.other.listIsTask.test(itemContents),\n loose: false,\n text: itemContents,\n tokens: [],\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n const lastItem = list.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n } else {\n // not a list since there were no items\n return;\n }\n list.raw = list.raw.trimEnd();\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n // First pass: tokenize items and finalize list.loose from spacers before placing checkboxes\n for (const item of list.items) {\n this.lexer.state.top = false;\n item.tokens = this.lexer.blockTokens(item.text, []);\n\n if (!list.loose) {\n // Check if list should be loose\n const spacers = item.tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => this.rules.other.anyLine.test(t.raw));\n\n list.loose = hasMultipleLineBreaks;\n }\n }\n\n // Second pass: place task checkboxes using the final list.loose\n for (const item of list.items) {\n const itemToken = item.tokens[0];\n if (item.task && (itemToken?.type === 'text' || itemToken?.type === 'paragraph')) {\n // Remove checkbox markdown from item tokens\n item.text = item.text.replace(this.rules.other.listReplaceTask, '');\n itemToken.raw = itemToken.raw.replace(this.rules.other.listReplaceTask, '');\n itemToken.text = itemToken.text.replace(this.rules.other.listReplaceTask, '');\n for (let i = this.lexer.inlineQueue.length - 1; i >= 0; i--) {\n if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[i].src)) {\n this.lexer.inlineQueue[i].src = this.lexer.inlineQueue[i].src.replace(this.rules.other.listReplaceTask, '');\n break;\n }\n }\n\n const taskRaw = this.rules.other.listTaskCheckbox.exec(item.raw);\n if (taskRaw) {\n const checkboxToken: Tokens.Checkbox = {\n type: 'checkbox',\n raw: taskRaw[0] + ' ',\n checked: taskRaw[0] !== '[ ]',\n };\n item.checked = checkboxToken.checked;\n if (list.loose) {\n if (item.tokens[0] && ['paragraph', 'text'].includes(item.tokens[0].type) && 'tokens' in item.tokens[0] && item.tokens[0].tokens) {\n item.tokens[0].raw = checkboxToken.raw + item.tokens[0].raw;\n item.tokens[0].text = checkboxToken.raw + item.tokens[0].text;\n item.tokens[0].tokens.unshift(checkboxToken);\n } else {\n item.tokens.unshift({\n type: 'paragraph',\n raw: checkboxToken.raw,\n text: checkboxToken.raw,\n tokens: [checkboxToken],\n });\n }\n } else {\n item.tokens.unshift(checkboxToken);\n }\n }\n } else if (item.task) {\n item.task = false;\n }\n }\n\n // Set all items to loose if list is loose\n if (list.loose) {\n for (const item of list.items) {\n item.loose = true;\n for (const token of item.tokens) {\n if (token.type === 'text') {\n token.type = 'paragraph';\n }\n }\n }\n }\n\n return list;\n }\n }\n\n html(src: string): Tokens.HTML | undefined {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const raw = trimTrailingBlankLines(cap[0]);\n const token: Tokens.HTML = {\n type: 'html',\n block: true,\n raw,\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: raw,\n };\n return token;\n }\n }\n\n def(src: string): Tokens.Def | undefined {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, ' ');\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: rtrim(cap[0], '\\n'),\n href,\n title,\n };\n }\n }\n\n table(src: string): Tokens.Table | undefined {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, '').split('|');\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, '').split('\\n') : [];\n\n const item: Tokens.Table = {\n type: 'table',\n raw: rtrim(cap[0], '\\n'),\n header: [],\n align: [],\n rows: [],\n };\n\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push('right');\n } else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push('center');\n } else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push('left');\n } else {\n item.align.push(null);\n }\n }\n\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i],\n });\n }\n\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i],\n };\n }));\n }\n\n return item;\n }\n\n lheading(src: string): Tokens.Heading | undefined {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const text = cap[1].trim();\n return {\n type: 'heading',\n raw: rtrim(cap[0], '\\n'),\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n paragraph(src: string): Tokens.Paragraph | undefined {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n text(src: string): Tokens.Text | undefined {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0]),\n };\n }\n }\n\n escape(src: string): Tokens.Escape | undefined {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: cap[1],\n };\n }\n }\n\n tag(src: string): Tokens.Tag | undefined {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0],\n };\n }\n }\n\n link(src: string): Tokens.Link | Tokens.Image | undefined {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(this.rules.other.endAngleBracket.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex === -2) {\n // more open parens than closed\n return;\n }\n\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = this.rules.other.pedanticHrefTitle.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !(this.rules.other.endAngleBracket.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title,\n }, cap[0], this.lexer, this.rules);\n }\n }\n\n reflink(src: string, links: Links): Tokens.Link | Tokens.Image | Tokens.Text | undefined {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text,\n };\n }\n return outputLink(cap, link, cap[0], this.lexer, this.rules);\n }\n }\n\n emStrong(src: string, maskedSrc: string, prevChar = ''): Tokens.Em | Tokens.Strong | undefined {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n if (!match[1] && !match[2] && !match[3] && !match[4]) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[4] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return;\n\n const nextChar = match[1] || match[3] || '';\n\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const delimChar = match[0][0];\n // A mid-run opener (for example the second star of an unmatched `**`) must\n // only pair with a delimiter that can only close, otherwise it steals the\n // opener of a later span (`**a*b*c` must be `**abc`).\n const midRun = prevChar === delimChar;\n const endReg = delimChar === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) !== null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = [...rDelim].length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n if (midRun) {\n // A mid-run opener cannot close against an ambiguous delimiter that\n // can also open; that delimiter opens its own emphasis span instead.\n break;\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n\n codespan(src: string): Tokens.Codespan | undefined {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, ' ');\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: 'codespan',\n raw: cap[0],\n text,\n };\n }\n }\n\n br(src: string): Tokens.Br | undefined {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0],\n };\n }\n }\n\n del(src: string, maskedSrc: string, prevChar = ''): Tokens.Del | undefined {\n let match = this.rules.inline.delLDelim.exec(src);\n if (!match) return;\n\n const nextChar = match[1] || '';\n\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength;\n\n const endReg = this.rules.inline.delRDelim;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) !== null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue;\n\n rLength = [...rDelim].length;\n\n if (rLength !== lLength) continue;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters\n rLength = Math.min(rLength, rLength + delimTotal);\n // char length can be >1 for unicode characters\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n\n // Create del token - only single ~ or double ~~ supported\n const text = raw.slice(lLength, -lLength);\n return {\n type: 'del',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n\n autolink(src: string): Tokens.Link | undefined {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = cap[1];\n href = 'mailto:' + text;\n } else {\n text = cap[1];\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n\n url(src: string): Tokens.Link | undefined {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = cap[0];\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n\n inlineText(src: string): Tokens.Text | undefined {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n escaped,\n };\n }\n }\n}\n","import { _Tokenizer } from './Tokenizer.ts';\nimport { _defaults } from './defaults.ts';\nimport { other, block, inline } from './rules.ts';\nimport type { Token, TokensList, Tokens } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Block Lexer\n */\nexport class _Lexer {\n tokens: TokensList;\n options: MarkedOptions;\n state: {\n inLink: boolean;\n inRawBlock: boolean;\n /** a link was produced in the inline run currently being scanned */\n linkEmitted: boolean;\n top: boolean;\n };\n\n public inlineQueue: { src: string, tokens: Token[] }[];\n\n private tokenizer: _Tokenizer;\n\n constructor(options?: MarkedOptions) {\n // TokenList cannot be created in one go\n this.tokens = [] as unknown as TokensList;\n this.tokens.links = Object.create(null);\n this.options = options || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n linkEmitted: false,\n top: true,\n };\n\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal,\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline,\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src: string, options?: MarkedOptions) {\n const lexer = new _Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src: string, options?: MarkedOptions) {\n const lexer = new _Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src: string) {\n src = src.replace(other.carriageReturn, '\\n');\n\n this.blockTokens(src, this.tokens);\n\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src: string, tokens?: Token[], lastParagraphClipped?: boolean): Token[];\n blockTokens(src: string, tokens?: TokensList, lastParagraphClipped?: boolean): TokensList;\n blockTokens(src: string, tokens: Token[] = [], lastParagraphClipped = false) {\n this.tokenizer.lexer = this;\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, ' ').replace(other.spaceLine, '');\n }\n\n let srcLength = Infinity;\n while (src) {\n if (src.length < srcLength) {\n srcLength = src.length;\n } else {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n\n let token: Tokens.Generic | undefined;\n\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== undefined) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n lastToken.raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken?.type === 'paragraph' || lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'paragraph' || lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title,\n };\n tokens.push(token);\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === 'paragraph') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src: string, tokens: Token[] = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n\n /**\n * Does this link text hold a link already? An image does not count: an image\n * may hold a link, a link may not.\n */\n private linkInText(text: string): boolean {\n if (!text.includes('[')) {\n return false;\n }\n\n const linkRule = this.tokenizer.rules.inline.link;\n for (const match of text.matchAll(this.tokenizer.rules.inline.blockSkip)) {\n // blockSkip also matches code spans and html, and the `!` of an image is\n // left out of the match, so read the character before it.\n if (linkRule.test(match[0]) && text.charAt(match.index - 1) !== '!') {\n return true;\n }\n }\n\n for (const match of text.matchAll(this.tokenizer.rules.inline.reflinkSearch)) {\n const match0 = match[0];\n const refStart = match0.lastIndexOf('[');\n if (match0.charAt(0) === '!' || !Object.hasOwn(this.tokens.links, match0.slice(refStart + 1, -1))) {\n continue;\n }\n // a candidate holding a link is not a link either, so it does not count\n if (refStart > 1 && this.linkInText(match0.slice(1, refStart - 1))) {\n continue;\n }\n return true;\n }\n\n return false;\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src: string, tokens: Token[] = []): Token[] {\n this.tokenizer.lexer = this;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n\n // Mask out reflinks\n if (this.tokens.links && src.includes('[')) {\n const reflinkSearch = this.tokenizer.rules.inline.reflinkSearch;\n const maskReflink = (match0: string): string => {\n const refStart = match0.lastIndexOf('[');\n if (!Object.hasOwn(this.tokens.links, match0.slice(refStart + 1, -1))) {\n return match0;\n }\n // CommonMark: \"Links may not contain other links, at any level of\n // nesting.\" A candidate whose text already holds one never becomes a\n // link, so flattening the whole span would hide the emphasis that\n // does still apply inside it. Mask the links it holds instead.\n // Images are exempt: their text is flattened into an alt attribute.\n if (refStart > 1 && match0.charAt(0) !== '!') {\n const text = match0.slice(1, refStart - 1);\n if (this.linkInText(text)) {\n return '[' + text.replace(reflinkSearch, maskReflink)\n + '][' + 'a'.repeat(match0.length - refStart - 2) + ']';\n }\n }\n return '[' + 'a'.repeat(match0.length - 2) + ']';\n };\n maskedSrc = maskedSrc.replace(reflinkSearch, maskReflink);\n }\n\n // Mask out escaped characters.\n // Every mask must keep the length it replaces: emStrong and del line\n // maskedSrc up with src by slicing from the end. `anyPunctuation` matches\n // unicode punctuation, so an escaped astral character is 3 code units.\n maskedSrc = maskedSrc.replace(this.tokenizer.rules.inline.anyPunctuation, match0 => '+'.repeat(match0.length));\n\n // Mask out other blocks\n maskedSrc = maskedSrc.replace(this.tokenizer.rules.inline.blockSkip, (match0, _link, context) => {\n const offset = context ? context.length : 0;\n return match0.slice(0, offset) + '[' + 'a'.repeat(match0.length - offset - 2) + ']';\n });\n\n // Mask out blocks from extensions\n maskedSrc = this.options.hooks?.emStrongMask?.call({ lexer: this }, maskedSrc) ?? maskedSrc;\n\n let keepPrevChar = false;\n let prevChar = '';\n let srcLength = Infinity;\n while (src) {\n if (src.length < srcLength) {\n srcLength = src.length;\n } else {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n let token: Tokens.Generic | undefined;\n\n // extensions\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === 'text' && lastToken?.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n }\n\n return tokens;\n }\n\n private infiniteLoopError(byte: number) {\n const errMsg = 'Infinite loop on byte: ' + byte;\n if (this.options.silent) {\n console.error(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n}\n","import { _defaults } from './defaults.ts';\nimport {\n cleanUrl,\n escapeHtmlEntities,\n} from './helpers.ts';\nimport { other } from './rules.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\nimport type { Tokens } from './Tokens.ts';\nimport type { _Parser } from './Parser.ts';\n\n/**\n * Renderer\n */\nexport class _Renderer {\n options: MarkedOptions;\n parser!: _Parser; // set by the parser\n constructor(options?: MarkedOptions) {\n this.options = options || _defaults;\n }\n\n space(token: Tokens.Space): RendererOutput {\n return '' as RendererOutput;\n }\n\n code({ text, lang, escaped }: Tokens.Code): RendererOutput {\n const langString = (lang || '').match(other.notSpaceStart)?.[0];\n\n const code = text.replace(other.endingNewline, '') + '\\n';\n\n if (!langString) {\n return '
    '\n        + (escaped ? code : escapeHtmlEntities(code, true))\n        + '
    \\n' as RendererOutput;\n }\n\n return '
    '\n      + (escaped ? code : escapeHtmlEntities(code, true))\n      + '
    \\n' as RendererOutput;\n }\n\n blockquote({ tokens }: Tokens.Blockquote): RendererOutput {\n const body = this.parser.parse(tokens);\n return `
    \\n${body}
    \\n` as RendererOutput;\n }\n\n html({ text }: Tokens.HTML | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n def(token: Tokens.Def): RendererOutput {\n return '' as RendererOutput;\n }\n\n heading({ tokens, depth }: Tokens.Heading): RendererOutput {\n return `${this.parser.parseInline(tokens)}\\n` as RendererOutput;\n }\n\n hr(token: Tokens.Hr): RendererOutput {\n return '
    \\n' as RendererOutput;\n }\n\n list(token: Tokens.List): RendererOutput {\n const ordered = token.ordered;\n const start = token.start;\n\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n\n const type = ordered ? 'ol' : 'ul';\n const startAttr = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startAttr + '>\\n' + body + '\\n' as RendererOutput;\n }\n\n listitem(item: Tokens.ListItem): RendererOutput {\n return `
  • ${this.parser.parse(item.tokens)}
  • \\n` as RendererOutput;\n }\n\n checkbox({ checked }: Tokens.Checkbox): RendererOutput {\n return ' ' as RendererOutput;\n }\n\n paragraph({ tokens }: Tokens.Paragraph): RendererOutput {\n return `

    ${this.parser.parseInline(tokens)}

    \\n` as RendererOutput;\n }\n\n table(token: Tokens.Table): RendererOutput {\n let header = '';\n\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell as ParserOutput });\n\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n\n body += this.tablerow({ text: cell as ParserOutput });\n }\n if (body) body = `${body}`;\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n' as RendererOutput;\n }\n\n tablerow({ text }: Tokens.TableRow): RendererOutput {\n return `\\n${text}\\n` as RendererOutput;\n }\n\n tablecell(token: Tokens.TableCell): RendererOutput {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? 'th' : 'td';\n const tag = token.align\n ? `<${type} align=\"${token.align}\">`\n : `<${type}>`;\n return tag + content + `\\n` as RendererOutput;\n }\n\n /**\n * span level renderer\n */\n strong({ tokens }: Tokens.Strong): RendererOutput {\n return `${this.parser.parseInline(tokens)}` as RendererOutput;\n }\n\n em({ tokens }: Tokens.Em): RendererOutput {\n return `${this.parser.parseInline(tokens)}` as RendererOutput;\n }\n\n codespan({ text }: Tokens.Codespan): RendererOutput {\n return `${escapeHtmlEntities(text, true)}` as RendererOutput;\n }\n\n br(token: Tokens.Br): RendererOutput {\n return '
    ' as RendererOutput;\n }\n\n del({ tokens }: Tokens.Del): RendererOutput {\n return `${this.parser.parseInline(tokens)}` as RendererOutput;\n }\n\n link({ href, title, tokens }: Tokens.Link): RendererOutput {\n const text = this.parser.parseInline(tokens) as string;\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text as RendererOutput;\n }\n href = cleanHref;\n let out = '
    ';\n return out as RendererOutput;\n }\n\n image({ href, title, text, tokens }: Tokens.Image): RendererOutput {\n if (tokens) {\n text = this.parser.parseInline(tokens, this.parser.textRenderer) as string;\n }\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escapeHtmlEntities(text) as RendererOutput;\n }\n href = cleanHref;\n\n let out = `\"${escapeHtmlEntities(text)}\"`;\n {\n // no need for block level renderers\n strong({ text }: Tokens.Strong): RendererOutput {\n return text as RendererOutput;\n }\n\n em({ text }: Tokens.Em): RendererOutput {\n return text as RendererOutput;\n }\n\n codespan({ text }: Tokens.Codespan): RendererOutput {\n return text as RendererOutput;\n }\n\n del({ text }: Tokens.Del): RendererOutput {\n return text as RendererOutput;\n }\n\n html({ text }: Tokens.HTML | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n text({ text }: Tokens.Text | Tokens.Escape | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n link({ text }: Tokens.Link): RendererOutput {\n return '' + text as RendererOutput;\n }\n\n image({ text }: Tokens.Image): RendererOutput {\n return '' + text as RendererOutput;\n }\n\n br(): RendererOutput {\n return '' as RendererOutput;\n }\n\n checkbox({ raw }: Tokens.Checkbox): RendererOutput {\n return raw as RendererOutput;\n }\n}\n","import { _Renderer } from './Renderer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { _defaults } from './defaults.ts';\nimport type { MarkedToken, Token, Tokens } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Parsing & Compiling\n */\nexport class _Parser {\n options: MarkedOptions;\n renderer: _Renderer;\n textRenderer: _TextRenderer;\n constructor(options?: MarkedOptions) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens: Token[], options?: MarkedOptions) {\n const parser = new _Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens: Token[], options?: MarkedOptions) {\n const parser = new _Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens: Token[]): ParserOutput {\n this.renderer.parser = this;\n let out = '';\n\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken as Tokens.Generic;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'checkbox', 'html', 'def', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n\n const token = anyToken as MarkedToken;\n\n switch (token.type) {\n case 'space': {\n out += this.renderer.space(token);\n break;\n }\n case 'hr': {\n out += this.renderer.hr(token);\n break;\n }\n case 'heading': {\n out += this.renderer.heading(token);\n break;\n }\n case 'code': {\n out += this.renderer.code(token);\n break;\n }\n case 'table': {\n out += this.renderer.table(token);\n break;\n }\n case 'blockquote': {\n out += this.renderer.blockquote(token);\n break;\n }\n case 'list': {\n out += this.renderer.list(token);\n break;\n }\n case 'checkbox': {\n out += this.renderer.checkbox(token);\n break;\n }\n case 'html': {\n out += this.renderer.html(token);\n break;\n }\n case 'def': {\n out += this.renderer.def(token);\n break;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(token);\n break;\n }\n case 'text': {\n out += this.renderer.text(token);\n break;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '' as ParserOutput;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out as ParserOutput;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens: Token[], renderer: _Renderer | _TextRenderer = this.renderer): ParserOutput {\n this.renderer.parser = this;\n let out = '';\n\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'checkbox', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(anyToken.type)) {\n out += ret || '';\n continue;\n }\n }\n\n const token = anyToken as MarkedToken;\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token);\n break;\n }\n case 'html': {\n out += renderer.html(token);\n break;\n }\n case 'link': {\n out += renderer.link(token);\n break;\n }\n case 'image': {\n out += renderer.image(token);\n break;\n }\n case 'checkbox': {\n out += renderer.checkbox(token);\n break;\n }\n case 'strong': {\n out += renderer.strong(token);\n break;\n }\n case 'em': {\n out += renderer.em(token);\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token);\n break;\n }\n case 'br': {\n out += renderer.br(token);\n break;\n }\n case 'del': {\n out += renderer.del(token);\n break;\n }\n case 'text': {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '' as ParserOutput;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out as ParserOutput;\n }\n}\n","import { _defaults } from './defaults.ts';\nimport { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, TokensList } from './Tokens.ts';\n\nexport class _Hooks {\n options: MarkedOptions;\n block?: boolean;\n\n constructor(options?: MarkedOptions) {\n this.options = options || _defaults;\n }\n\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens',\n 'emStrongMask',\n ]);\n\n static passThroughHooksRespectAsync = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens',\n ]);\n\n /**\n * Process markdown before marked\n */\n preprocess(markdown: string) {\n return markdown;\n }\n\n /**\n * Process HTML after marked is finished\n */\n postprocess(html: ParserOutput) {\n return html;\n }\n\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens: Token[] | TokensList) {\n return tokens;\n }\n\n /**\n * Mask contents that should not be interpreted as em/strong delimiters\n */\n emStrongMask(src: string) {\n return src;\n }\n\n /**\n * Provide function to tokenize markdown\n */\n provideLexer(block = this.block) {\n return block ? _Lexer.lex : _Lexer.lexInline;\n }\n\n /**\n * Provide function to parse tokens\n */\n provideParser(block = this.block) {\n return block ? _Parser.parse : _Parser.parseInline;\n }\n}\n","import { _getDefaults } from './defaults.ts';\nimport { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { escapeHtmlEntities } from './helpers.ts';\nimport type { MarkedExtension, MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, Tokens, TokensList } from './Tokens.ts';\n\nexport type MaybePromise = void | Promise;\n\ntype UnknownFunction = (...args: unknown[]) => unknown;\ntype GenericRendererFunction = (...args: unknown[]) => string | false;\n\nexport class Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n\n /**\n * Compiles markdown to HTML.\n *\n * To configure hooks, a renderer, or a tokenizer, create a separate `Marked`\n * instance and use `Marked#use` instead of passing them on each call.\n */\n parse = this.parseMarkdown(true);\n\n /**\n * Compiles inline markdown to HTML.\n *\n * To configure hooks, a renderer, or a tokenizer, create a separate `Marked`\n * instance and use `Marked#use` instead of passing them on each call.\n */\n parseInline = this.parseMarkdown(false);\n\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n\n constructor(...args: MarkedExtension[]) {\n this.use(...args);\n }\n\n /**\n * Run callback for every token\n */\n walkTokens(tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) {\n let values: MaybePromise[] = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token as Tokens.Table;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token as Tokens.List;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token as Tokens.Generic;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens = genericToken[childTokens].flat(Infinity) as Token[] | TokensList;\n values = values.concat(this.walkTokens(tokens, callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n\n /**\n * Registers extensions with this Marked instance.\n *\n * The `renderer`, `tokenizer`, and `hooks` objects may each contain only the\n * methods that should be overridden. Their methods are merged with built-in\n * behavior and extensions registered by earlier calls.\n *\n * Use this method when supplying only some hook methods.\n */\n use(...args: MarkedExtension[]) {\n const extensions: MarkedOptions['extensions'] = this.defaults.extensions || { renderers: {}, childTokens: {} };\n\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack } as MarkedOptions;\n\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (['options', 'parser'].includes(prop)) {\n // ignore options property\n continue;\n }\n const rendererProp = prop as Exclude, 'options' | 'parser'>;\n const rendererFunc = pack.renderer[rendererProp] as GenericRendererFunction;\n const prevRenderer = renderer[rendererProp] as GenericRendererFunction;\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args: unknown[]) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return (ret || '') as RendererOutput;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop as Exclude, 'options' | 'rules' | 'lexer'>;\n const tokenizerFunc = pack.tokenizer[tokenizerProp] as UnknownFunction;\n const prevTokenizer = tokenizer[tokenizerProp] as UnknownFunction;\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args: unknown[]) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (['options', 'block'].includes(prop)) {\n // ignore options and block properties\n continue;\n }\n const hooksProp = prop as Exclude, 'options' | 'block'>;\n const hooksFunc = pack.hooks[hooksProp] as UnknownFunction;\n const prevHook = hooks[hooksProp] as UnknownFunction;\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg: unknown) => {\n if (this.defaults.async && _Hooks.passThroughHooksRespectAsync.has(prop)) {\n return (async() => {\n const ret = await hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n })();\n }\n\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args: unknown[]) => {\n if (this.defaults.async) {\n return (async() => {\n let ret = await hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = await prevHook.apply(hooks, args);\n }\n return ret;\n })();\n }\n\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function(token) {\n let values: MaybePromise[] = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n\n this.defaults = { ...this.defaults, ...opts };\n });\n\n return this;\n }\n\n setOptions(opt: MarkedOptions) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n\n lexer(src: string, options?: MarkedOptions) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n\n parser(tokens: Token[], options?: MarkedOptions) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n\n private parseMarkdown(blockType: boolean) {\n type overloadedParse = {\n (src: string, options: MarkedOptions & { async: true }): Promise;\n (src: string, options: MarkedOptions & { async: false }): ParserOutput;\n (src: string, options?: MarkedOptions | null): ParserOutput | Promise;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const parse: overloadedParse = (src: string, options?: MarkedOptions | null): any => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n\n const throwError = this.onError(!!opt.silent, !!opt.async);\n\n // throw error if an extension set async to true but parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error('marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.'));\n }\n\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n\n if (opt.async) {\n return (async() => {\n const processedSrc = opt.hooks ? await opt.hooks.preprocess(src) : src;\n const lexer = opt.hooks ? await opt.hooks.provideLexer(blockType) : (blockType ? _Lexer.lex : _Lexer.lexInline);\n const tokens = await lexer(processedSrc, opt);\n const processedTokens = opt.hooks ? await opt.hooks.processAllTokens(tokens) : tokens;\n if (opt.walkTokens) {\n await Promise.all(this.walkTokens(processedTokens, opt.walkTokens));\n }\n const parser = opt.hooks ? await opt.hooks.provideParser(blockType) : (blockType ? _Parser.parse : _Parser.parseInline);\n const html = await parser(processedTokens, opt);\n return opt.hooks ? await opt.hooks.postprocess(html) : html;\n })().catch(throwError);\n }\n\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src) as string;\n }\n const lexer = opt.hooks ? opt.hooks.provideLexer(blockType) : (blockType ? _Lexer.lex : _Lexer.lexInline);\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n const parser = opt.hooks ? opt.hooks.provideParser(blockType) : (blockType ? _Parser.parse : _Parser.parseInline);\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n } catch(e) {\n return throwError(e as Error);\n }\n };\n\n return parse;\n }\n\n private onError(silent: boolean, async: boolean) {\n return (e: Error): string | Promise => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (silent) {\n const msg = '

    An error occurred:

    '\n          + escapeHtmlEntities(e.message + '', true)\n          + '
    ';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n","import { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { Marked } from './Instance.ts';\nimport {\n _getDefaults,\n changeDefaults,\n _defaults,\n} from './defaults.ts';\nimport type { MarkedExtension, MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, TokensList } from './Tokens.ts';\nimport type { MaybePromise } from './Instance.ts';\n\nconst markedInstance = new Marked();\n\n/**\n * Compiles markdown to HTML asynchronously.\n *\n * To configure hooks, a renderer, or a tokenizer, create a `Marked` instance\n * and use `Marked#use` instead of passing them as options on each call.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options, having async: true\n * @return Promise of string of compiled HTML\n */\nexport function marked(src: string, options: MarkedOptions & { async: true }): Promise;\n\n/**\n * Compiles markdown to HTML.\n *\n * To configure hooks, a renderer, or a tokenizer, create a `Marked` instance\n * and use `Marked#use` instead of passing them as options on each call.\n *\n * @param src String of markdown source to be compiled\n * @param options Optional hash of options\n * @return String of compiled HTML. Will be a Promise of string if async is set to true by any extensions.\n */\nexport function marked(src: string, options: MarkedOptions & { async: false }): string;\nexport function marked(src: string, options: MarkedOptions & { async: true }): Promise;\nexport function marked(src: string, options?: MarkedOptions | null): string | Promise;\nexport function marked(src: string, opt?: MarkedOptions | null): string | Promise {\n return markedInstance.parse(src, opt);\n}\n\nexport declare namespace marked {\n /**\n * Compiles inline markdown to HTML.\n *\n * To configure hooks, a renderer, or a tokenizer, create a `Marked` instance\n * and use `Marked#use` instead of passing them as options on each call.\n */\n let parseInline: typeof markedInstance.parseInline;\n\n /**\n * Registers extensions with the default Marked instance.\n *\n * The `renderer`, `tokenizer`, and `hooks` objects may each contain only the\n * methods that should be overridden. Their methods are merged with built-in\n * behavior and extensions registered by earlier calls.\n *\n * Use this function when supplying only some hook methods.\n */\n let use: (...args: MarkedExtension[]) => typeof marked;\n}\n\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function(options: MarkedOptions) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\n\nmarked.defaults = _defaults;\n\n/**\n * Registers extensions with the default Marked instance.\n *\n * The `renderer`, `tokenizer`, and `hooks` objects may each contain only the\n * methods that should be overridden. Their methods are merged with built-in\n * behavior and extensions registered by earlier calls.\n *\n * Use this function when supplying only some hook methods.\n *\n * @param args Extensions to register\n * @return The `marked` function\n */\nfunction useExtension(...args: MarkedExtension[]) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n}\n\nmarked.use = useExtension;\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) {\n return markedInstance.walkTokens(tokens, callback);\n};\n\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * To configure hooks, a renderer, or a tokenizer, create a `Marked` instance\n * and use `Marked#use` instead of passing them as options on each call.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\n\nexport const options = marked.options;\nexport const setOptions = marked.setOptions;\nexport const walkTokens = marked.walkTokens;\n/**\n * Compiles inline markdown to HTML.\n *\n * To configure hooks, a renderer, or a tokenizer, create a `Marked` instance\n * and use `Marked#use` instead of passing them as options on each call.\n */\nexport const parseInline = marked.parseInline;\nexport const parse = marked;\nexport const parser = _Parser.parse;\nexport const lexer = _Lexer.lex;\nexport { _defaults as defaults, _getDefaults as getDefaults } from './defaults.ts';\nexport { _Lexer as Lexer } from './Lexer.ts';\nexport { _Parser as Parser } from './Parser.ts';\nexport { _Tokenizer as Tokenizer } from './Tokenizer.ts';\nexport { _Renderer as Renderer } from './Renderer.ts';\nexport { _TextRenderer as TextRenderer } from './TextRenderer.ts';\nexport { _Hooks as Hooks } from './Hooks.ts';\nexport { Marked } from './Instance.ts';\nexport { useExtension as use };\nexport type * from './MarkedOptions.ts';\nexport type * from './Tokens.ts';\n","import { html, render } from \"lit-html\";\nimport { classMap } from \"lit-html/directives/class-map.js\";\nimport { keyed } from \"lit-html/directives/keyed.js\";\nimport { marked } from \"marked\";\nimport { unsafeHTML } from \"lit-html/directives/unsafe-html.js\";\n\nimport * as FacetCategory from \"~/common/facets/category.js\";\nimport { batch, effect, signal } from \"~/common/signal.js\";\n\nimport { nothing } from \"~/common/element.js\";\n\nimport { deleteFacet, toggleFacetEnabled, toggleFacetFavourite } from \"./crud.js\";\nimport { output } from \"./output.js\";\nimport { openAddFromURIModal } from \"./from-uri.js\";\n\n// Signals\nconst FILTER_STORAGE_KEY = \"diffuse/dashboard/filter\";\nconst storedFilter = localStorage.getItem(FILTER_STORAGE_KEY);\nconst activeFilter = signal(\n storedFilter === \"prelude\" || storedFilter === \"interface\" ||\n storedFilter === \"base\"\n ? storedFilter\n : \"all\",\n);\n\neffect(() => {\n localStorage.setItem(FILTER_STORAGE_KEY, activeFilter.get());\n});\n\nconst UNFAVOURITE_COLLAPSED_KEY = \"diffuse/dashboard/unfavourite-collapsed\";\nconst unfavouriteCollapsed = signal(\n localStorage.getItem(UNFAVOURITE_COLLAPSED_KEY) === \"true\",\n);\n\neffect(() => {\n localStorage.setItem(\n UNFAVOURITE_COLLAPSED_KEY,\n String(unfavouriteCollapsed.get()),\n );\n});\n\n/** @param {string} filter */\nfunction setFilter(filter) {\n const url = new URL(location.href);\n url.searchParams.delete(\"filter\");\n history.replaceState(null, \"\", url);\n batch(() => {\n activeFilter.set(filter);\n unfavouriteCollapsed.set(false);\n });\n}\n\n/**\n * @import OutputOrchestrator from \"~/components/orchestrator/output/element.js\";\n * @import {Facet} from \"~/definitions/types.d.ts\";\n */\n\nconst emptyFacetsList = () =>\n html`\n

    \n \n You haven't saved anything yet. Add a facet by browsing the featured ones or any of the other categories. You can click the toggle\n to quickly add or remove from your collection.\n \n

    \n `;\n\n////////////////////////////////////////////\n// LIST\n////////////////////////////////////////////\n\n/** @type {() => void | undefined} */\nlet stopMonitor;\n\n/** */\nexport async function renderList() {\n if (stopMonitor) stopMonitor();\n activeFilter.set((() => {\n const param = new URL(location.href).searchParams.get(\"filter\");\n if (\n param === \"prelude\" || param === \"interface\" || param === \"base\" ||\n param === \"all\"\n ) return param;\n const stored = localStorage.getItem(FILTER_STORAGE_KEY);\n return stored === \"prelude\" || stored === \"interface\" || stored === \"base\"\n ? stored\n : \"all\";\n })());\n\n /** @type {HTMLElement | null} */\n const listEl = document.querySelector(\"#list\");\n if (!listEl) throw new Error(\"List element not found\");\n\n if (listEl.getAttribute(\"data-rendered\") === \"f\") {\n listEl.innerHTML = \"\";\n listEl.removeAttribute(\"data-rendered\");\n }\n\n const out = await output();\n\n stopMonitor = effect(() => {\n _renderList(out, listEl);\n });\n}\n\n/**\n * @param {OutputOrchestrator} output\n * @param {HTMLElement} listEl\n */\nfunction _renderList(output, listEl) {\n const facetsCol = output.facets.collection();\n\n if (facetsCol.state !== \"loaded\") {\n const loading = html`\n
    \n \n Loading your software\n
    \n `;\n\n render(loading, listEl);\n return;\n }\n\n const filter = activeFilter.get();\n\n /** @param {Facet} a @param {Facet} b */\n const sortByName = (a, b) =>\n a.name.toLocaleLowerCase().localeCompare(b.name.toLocaleLowerCase()) ||\n a.id.localeCompare(b.id);\n\n const filtered = facetsCol.state === \"loaded\"\n ? [...facetsCol.data].filter((c) =>\n filter === \"base\" ? !!c.tags?.includes(\"base\") : (filter === \"all\" ||\n (filter === \"prelude\" ? c.kind === \"prelude\" : c.kind !== \"prelude\")) &&\n !c.tags?.includes(\"base\")\n )\n : [];\n\n const favouriteCol = filtered.filter((c) => c.favourite).sort(sortByName);\n const unfavouriteCol = filtered.filter((c) => !c.favourite).sort(sortByName);\n const col = favouriteCol.concat(unfavouriteCol);\n\n const selected = output.selected();\n const outputLabel = selected?.label ?? selected?.getAttribute?.(\"label\") ??\n \"Local storage\";\n\n const filterBar = html`\n
    \n Filter by\n setFilter(\"all\")}\"\n >\n All\n \n setFilter(\"prelude\")}\"\n >\n Features\n \n setFilter(\"interface\")}\"\n >\n Interfaces\n \n\n
    \n `;\n\n /** @param {Facet[]} items */\n const renderItems = (items) =>\n items.map((c) => {\n const color = FacetCategory.color(c);\n\n const title = c.kind === \"prelude\"\n ? html`\n \n ${c.name}\n \n `\n : html`\n \n ${c.name}\n \n `;\n\n return keyed(\n c.id,\n html`\n \n
    \n
    \n ${title}\n
    \n
    \n
    \n ${c.description?.trim().length\n ? unsafeHTML(\n marked.parse(c.description, { async: false }),\n )\n : nothing}\n
    \n
    \n ${c.uri && !c.html\n ? html`\n \n \n Tracking the original URI\n \n `\n : html`\n \n \n Custom code\n \n `}\n
    \n
    \n
    \n\n
    \n \n \n \n
    \n \n \n \n
    \n {\n e.preventDefault();\n if (!c.favourite) unfavouriteCollapsed.set(false);\n toggleFacetFavourite({ id: c.id })();\n }}\"\n >\n \n ${c.favourite ? \"Unfavourite\" : \"Favourite\"}\n \n \n \n Edit\n \n {\n e.preventDefault();\n deleteFacet({ id: c.id })();\n }}\"\n >\n \n Delete\n \n
    \n
    \n \n `,\n );\n });\n\n const collapsed = unfavouriteCollapsed.get() && favouriteCol.length > 0;\n\n const h = col.length || filter !== \"all\"\n ? html`\n ${filterBar} ${favouriteCol.length\n ? html`\n
      ${renderItems(favouriteCol)}
    \n `\n : nothing} ${favouriteCol.length && unfavouriteCol.length\n ? html`\n
    \n unfavouriteCollapsed.set(!collapsed)}\"\n >\n \n \n
    \n
    \n `\n : nothing} ${unfavouriteCol.length && !collapsed\n ? html`\n
      ${renderItems(unfavouriteCol)}
    \n `\n : nothing}\n `\n : html`\n ${filterBar} ${emptyFacetsList()}\n `;\n\n render(h, listEl);\n\n setTimeout(() => {\n /** @type {HTMLElement | null} */\n const l = listEl.querySelector(\".grid-filter--label-output\");\n\n /** @type {HTMLElement | null} */\n const o = listEl.querySelector(\".grid-filter--output\");\n\n if (o && l) {\n l.style.opacity = \"0.4\";\n o.style.opacity = \"1\";\n }\n }, 250);\n}\n"],"mappings":"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","names":["_getDefaults","_defaults","changeDefaults","newDefaults","noopTest","__name","cachedIndentRegex","createRegex","cache","indent","cacheIndex","regex","edit","opt","source","obj","name","val","valSource","other","supportsLookbehind","a","bull","newline","blockCode","fences","hr","heading","bullet","lheadingCore","lheading","lheadingGfm","_paragraph","blockText","_blockLabel","def","list","_tag","_comment","html","createParagraph","listInterrupt","paragraph","blockquoteParagraph","blockquote","blockNormal","gfmTable","blockGfm","blockPedantic","escape","inlineCode","br","inlineText","_punctuation","_punctuationOrSpace","_notPunctuationOrSpace","punctuation","_openQuote","_punctuationGfmStrongEm","_punctuationOrSpaceGfmStrongEm","_notPunctuationOrSpaceGfmStrongEm","blockSkip","emStrongLDelimCore","emStrongLDelim","emStrongLDelimGfm","emStrongLDelimPedanticCore","emStrongLDelimPedantic","emStrongRDelimAstCore","emStrongRDelimAst","emStrongRDelimAstGfm","emStrongRDelimAstPedanticCore","emStrongRDelimAstPedantic","emStrongRDelimUnd","emStrongRDelimUndPedanticCore","emStrongRDelimUndPedantic","delLDelim","delRDelimCore","delRDelim","anyPunctuation","autolink","_inlineComment","tag","_inlineLabel","link","reflink","nolink","reflinkSearch","_caseInsensitiveProtocol","inlineNormal","inlinePedantic","inlineGfm","inlineBreaks","block","inline","escapeReplacements","getEscapeReplacement","ch","escapeHtmlEntities","encode","cleanUrl","href","splitCells","tableRow","count","row","match","offset","str","escaped","curr","cells","i","rtrim","c","invert","l","suffLen","currChar","trimTrailingBlankLines","lines","end","findClosingBracket","b","level","expandTabs","line","col","expanded","char","added","outputLink","cap","raw","lexer","rules","title","text","isImage","outerLinkEmitted","outerInRawBlock","tokens","textHasLink","indentCodeCompensation","matchIndentToCode","indentToCode","node","matchIndentInNode","indentInNode","_Tokenizer","options","src","trimmed","inBlockquote","currentLines","currentRaw","currentText","top","lastToken","oldToken","continuation","newText","newToken","isordered","itemRegex","endsWithBlankLine","endEarly","itemContents","nextLine","blankLine","nextBulletRegex","hrRegex","fencesBeginRegex","headingBeginRegex","htmlBeginRegex","blockquoteBeginRegex","rawLine","nextLineWithoutTabs","lastItem","item","spacers","t","hasMultipleLineBreaks","itemToken","taskRaw","checkboxToken","token","headers","aligns","rows","align","cell","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","links","linkString","maskedSrc","prevChar","lLength","rDelim","rLength","delimTotal","midDelimTotal","delimChar","midRun","endReg","lastCharLength","hasNonSpaceChars","hasSpaceCharsOnBothEnds","prevCapZero","_Lexer","__Lexer","next","lastParagraphClipped","srcLength","extTokenizer","cutSrc","startIndex","tempSrc","tempStart","getStartIndex","linkRule","match0","refStart","maskReflink","_link","context","keepPrevChar","byte","errMsg","_Renderer","lang","langString","code","depth","ordered","start","body","j","type","startAttr","checked","header","k","content","cleanHref","out","_TextRenderer","_Parser","__Parser","anyToken","genericToken","ret","renderer","_Hooks","markdown","Marked","args","callback","values","tableToken","listToken","childTokens","extensions","pack","opts","ext","prevRenderer","extLevel","prop","rendererProp","rendererFunc","tokenizer","tokenizerProp","tokenizerFunc","prevTokenizer","hooks","hooksProp","hooksFunc","prevHook","arg","walkTokens","packWalktokens","blockType","origOpt","throwError","processedSrc","processedTokens","e","silent","async","msg","markedInstance","marked","useExtension","setOptions","parseInline","parser","_Parser","lexer","_Lexer","FILTER_STORAGE_KEY","storedFilter","activeFilter","signal","effect","UNFAVOURITE_COLLAPSED_KEY","unfavouriteCollapsed","setFilter","filter","url","batch","__name","emptyFacetsList","T","stopMonitor","renderList","param","stored","listEl","out","output","_renderList","facetsCol","loading","B","sortByName","a","b","filtered","c","favouriteCol","unfavouriteCol","col","selected","outputLabel","filterBar","openAddFromURIModal","renderItems","items","color","title","i","o","f","A","e","toggleFacetEnabled","toggleFacetFavourite","deleteFacet","collapsed","h","l"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-PI4WZOI6.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PXOGRNGV.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PXOGRNGV.js new file mode 100644 index 00000000..14ce4233 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PXOGRNGV.js @@ -0,0 +1,3 @@ +import{a as f}from"./chunk-ZCBN4C3I.js";import{a as w}from"./chunk-OO43XB75.js";import{a as s}from"./chunk-75KFZLU6.js";function g(r,e){let t=new Uint8Array(r.length+e.length);return t.set(r),t.set(e,r.length),t}s(g,"concat");function x(r){return{title:/StreamTitle='(.*?)';/.exec(r)?.[1]}}s(x,"parseMetadata");var i=class{static{s(this,"IcyParser")}url;constructor(e){this.url=e}async parseOnce(){let e=new AbortController,t=await fetch(this.url,{headers:{"Icy-MetaData":"1"},signal:e.signal}),a=Number(t.headers.get("icy-metaint"));if(!a)throw new Error("Stream does not support Icy metadata");let n=t.body.getReader(),c=0,h=new Uint8Array(0);try{for(;c0)u=h.slice(h.length-p);else{let{value:o}=await n.read();if(!o)throw new Error("Failed to read metadata from stream");u=o}let m=u[0]*16,d=u.slice(1);for(;d.length0?`?${n}`:"";return{host:e.host,path:e.pathname,streamUrl:`${a}://${e.host}${e.pathname}${c}`}}catch{return}}s(l,"parseURI");function H(r){let e={};return r.forEach(t=>{let a=l(t.uri);if(!a)return;let{host:n}=a;e[n]?e[n].tracks.push(t):e[n]={host:n,tracks:[t]}}),e}s(H,"groupTracksByHost");function P(r){let e={};return r.forEach(t=>{let a=l(t);if(!a)return;let{host:n}=a;e[n]?e[n].uris.push(t):e[n]={host:n,uris:[t]}}),e}s(P,"groupUrisByHost");function D(r){let e={};return r.forEach(t=>{let a=l(t.uri);if(!a)return;let{host:n}=a;e[n]||(e[n]=n)}),e}s(D,"hostsFromTracks");async function U(r){try{return await new i(r).parseOnce()}catch{return}}s(U,"fetchMetadata");async function b(r){let e=l(r);return e?await U(e.streamUrl)===void 0?"unsure":"yes":"no"}s(b,"consultStream");var F=w(b,r=>l(r)?.host??r);export{A as a,l as b,H as c,P as d,D as e,U as f,F as g}; + +//# sourceMappingURL=./chunk-PXOGRNGV.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PXOGRNGV.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PXOGRNGV.js.br new file mode 100644 index 0000000000000000000000000000000000000000..51b42f77dca8f2645908ef5e1e07fb354e3620e7 GIT binary patch literal 1157 zcmb1^;$nDGw?6Iv&!3n4q$bNIFEtSfyFEK-y@YbkYo)_>4jW6O{^g%p+WB?w=_zg* zQp}wH?w^Dp$@j5$eCv86vlJLGp^+^8M2~81Ga%bw)Oy3OSLc z`B|S){Az>D zUTw=fl(wmS*}3Dk>5D~8%;qf$(Y|^lCv8#O20_(~ANOoTk0{(WcgnoGUiE>g3fI{? ztHLDe64ewnJ@3bfRlW=VamR(N_nmwG<(YXoEG2?BrMVs-+8x@K@wD;#IpcsxgXGmu zE;8Tje7AXN(*l*qFgLr>QhlcUrM8n4GiP32v}pCS2$%c(#?K=c?qA^~Y%w8}(|y_% z?Rl!aE;`TcjV72^fBUiHVb~o3O=Cy%ef+7~qDJ{!GXKqx+Hhg^rNZUZt`zpuXL4>`@}`OH-8)~D+od_OmZ+;Y26;66F}O3}HjA`Qmhry`2-uNB_^(VTgH z!u9Eo)`(fmzbtgIR;>U3Df9WgoCk#dUpZhIzgh0&>ZvbIu39R1r|I@QCY{sv>sD@_ zvup8M|I_Bbo}D_k{qyI!`OhzAe!g}vS<3NkQ80f;>ded2!yB^Witl_%liB;;UtA&P z)hx*)x>1*=2hTDM+nQ@HvCb#laEaE7SNoSXS(g7YKRjiU{-$>s*Ve7NU7T*VZpp*_ zPqwWqTRTNa%+QX7acQPfU+2lq4>$d8tD60RiDk-!B8jZfUj_px&IjW{HBic^HWx?#dVR5=s zzoq3cKWLjW!8y|GX2=`nO-^O^p7LxE>`h3lyklD6=%<@|_*wntsnaKax|wjIl ziX8RYrt|5Xxm;NAT!w#5zCohTrvKe-)4b=e!@`M+l)7I3H8Q;T_Ue)KKgzv4)L6@W z1Rj5^n|JSRe|xBd^{Xmvhq&dR&&uS*ZY_<85B-_;Z~eE@6>{=7Z^mT`Hdo3Aoo#V` zKh5ivoC`x4e`D7#p_VU8QqO8-&v2Jpas64_&PNj?^Oe@9CLG@~BOz&B?3pQ(YD8bg z{*iIiT$(SbwQ%# {\n const out = new Uint8Array(a.length + b.length)\n out.set(a)\n out.set(b, a.length)\n return out\n}\n\n/**\n * Parses an ICY metadata string and extracts known fields.\n *\n * ICY metadata is formatted as semicolon-separated key='value' pairs.\n * Currently extracts the `StreamTitle` field.\n *\n * @param raw - The raw metadata string from the stream\n * @returns An object containing parsed metadata fields\n *\n * @example\n * ```typescript\n * const result = parseMetadata(\"StreamTitle='Artist - Song';\");\n * console.log(result.title); // \"Artist - Song\"\n * ```\n *\n * @internal\n */\nexport function parseMetadata(raw: string): { title: string | undefined } {\n return {\n title: /StreamTitle='(.*?)';/.exec(raw)?.[1]\n }\n}","import { concat, parseMetadata } from \"../utils/helpers.ts\"\n\n/**\n * Metadata returned from an Icy stream.\n */\nexport interface IcyMetadata {\n /** The raw metadata string from the stream */\n raw: string\n /** The current stream title (e.g., \"Artist - Song\") */\n title: string | undefined\n /** The station name from the `icy-name` header */\n name: string | undefined\n /** The station genre from the `icy-genre` header */\n genre: string | undefined\n /** The station URL from the `icy-url` header */\n url: string | undefined\n /** The stream bitrate in kbps from the `icy-br` header */\n bitrate: number\n /** The content type of the stream (e.g., \"audio/mpeg\") */\n contentType: string | undefined\n /** The server software from the `server` header */\n server: string | undefined\n}\n\n/**\n * Parser for Icy (SHOUTcast/Icecast) stream metadata.\n *\n * Icy streams embed metadata (like the current song title) inline within the audio data.\n * This class handles connecting to a stream and extracting that metadata.\n *\n * @example\n * ```typescript\n * const parser = new IcyParser(\"https://radio.cloudradio.cz/listen/crc/radio.mp3\");\n * try {\n * const metadata = await parser.parseOnce();\n * console.log(`Now playing: ${metadata.title}`);\n * } catch (error) {\n * console.error(\"Failed to parse metadata:\", error);\n * }\n * ```\n */\nexport class IcyParser {\n private readonly url: string\n\n /**\n * Creates a new ICY stream parser.\n *\n * @param url - The URL of the ICY stream to parse\n */\n constructor(url: string) {\n this.url = url\n }\n\n /**\n * Connects to the stream and parses the first available metadata block.\n *\n * This method opens a connection to the stream, reads until it reaches the\n * first metadata block, extracts the metadata, and then closes the connection.\n *\n * @returns A promise that resolves to the parsed metadata\n *\n * @throws {Error} \"Stream does not support Icy metadata\" - if the stream doesn't have the `icy-metaint` header\n * @throws {Error} \"Stream ended before metadata was received\" - if the stream closes before metadata is found\n * @throws {Error} \"Failed to read metadata from stream\" - if the metadata chunk couldn't be read\n *\n * @example\n * ```typescript\n * const parser = new IcyParser(\"https://stream.example.com/radio.mp3\");\n * const { title, name, bitrate } = await parser.parseOnce();\n * console.log(`Station: ${name}, Bitrate: ${bitrate}kbps, Playing: ${title}`);\n * ```\n */\n public async parseOnce(): Promise {\n const controller = new AbortController()\n\n const res = await fetch(this.url, {\n headers: { \"Icy-MetaData\": \"1\" },\n signal: controller.signal\n })\n\n const metaint = Number(res.headers.get(\"icy-metaint\"))\n if (!metaint) throw new Error(\"Stream does not support Icy metadata\")\n\n const reader = res.body!.getReader()\n\n let received = 0\n let leftover = new Uint8Array(0)\n\n try {\n while (received < metaint) {\n const { value, done } = await reader.read()\n if (done || !value) throw new Error(\"Stream ended before metadata was received\")\n\n received += value.length\n leftover = value\n }\n\n const overflow = received - metaint\n\n let metaStart: Uint8Array\n\n if (overflow > 0) {\n metaStart = leftover.slice(leftover.length - overflow)\n } else {\n const { value } = await reader.read()\n if (!value) throw new Error(\"Failed to read metadata from stream\")\n metaStart = value\n }\n\n const lengthByte = metaStart[0]\n const metadataLength = lengthByte! * 16\n\n let metadata = metaStart.slice(1)\n\n while (metadata.length < metadataLength) {\n const { value } = await reader.read()\n if (!value) break\n metadata = concat(metadata, value)\n }\n\n const raw = new TextDecoder()\n .decode(metadata.slice(0, metadataLength))\n .replace(/\\0+$/, \"\")\n\n return {\n ...parseMetadata(raw),\n raw,\n name: res.headers.get(\"icy-name\") ?? undefined,\n genre: res.headers.get(\"icy-genre\") ?? undefined,\n url: res.headers.get(\"icy-url\") ?? undefined,\n bitrate: Number(res.headers.get(\"icy-br\")) ?? 0,\n contentType: res.headers.get(\"content-type\") ?? undefined,\n server: res.headers.get(\"server\") ?? undefined,\n }\n } finally {\n controller.abort()\n reader.releaseLock()\n }\n}\n}","import { IcyParser } from \"@cloudradio/icy-parser\";\nimport { cachedConsult } from \"~/components/input/common.js\";\n\nimport { SCHEME } from \"./constants.js\";\n\n/**\n * @import {Track} from \"~/definitions/types.d.ts\"\n */\n\n/**\n * Build an icecast:// URI from an HTTP or HTTPS URL.\n * HTTP streams are encoded with a `tls=0` query parameter; HTTPS is the default.\n *\n * @param {string} streamUrl\n * @returns {string}\n *\n * @example Build URI from HTTPS URL\n * ```ts\n * import { expect } from \"@std/expect\";\n * import { buildURI } from \"./common.js\";\n *\n * const uri = buildURI(\"https://radio.example.com/stream.mp3\");\n * expect(uri).toBe(\"icecast://radio.example.com/stream.mp3\");\n * ```\n *\n * @example Build URI from HTTP URL\n * ```ts\n * import { expect } from \"@std/expect\";\n * import { buildURI } from \"./common.js\";\n *\n * const uri = buildURI(\"http://radio.example.com:8000/live\");\n * expect(uri).toBe(\"icecast://radio.example.com:8000/live?tls=0\");\n * ```\n */\nexport function buildURI(streamUrl) {\n const url = new URL(streamUrl);\n const tls = url.protocol === \"https:\";\n const query = tls ? url.search : `${url.search ? url.search + \"&\" : \"?\"}tls=0`;\n return `${SCHEME}://${url.host}${url.pathname}${query}`;\n}\n\n/**\n * Parse an icecast:// URI.\n * Returns the resolved HTTP or HTTPS stream URL based on the `tls` query param\n * (absent or `tls=1` → HTTPS; `tls=0` → HTTP).\n *\n * @param {string} uriString\n * @returns {{ host: string; path: string; streamUrl: string } | undefined}\n *\n * @example Parse a valid icecast URI (defaults to HTTPS)\n * ```ts\n * import { expect } from \"@std/expect\";\n * import { parseURI } from \"./common.js\";\n *\n * const result = parseURI(\"icecast://radio.example.com/stream.mp3\");\n * expect(result?.host).toBe(\"radio.example.com\");\n * expect(result?.path).toBe(\"/stream.mp3\");\n * expect(result?.streamUrl).toBe(\"https://radio.example.com/stream.mp3\");\n * ```\n *\n * @example Parse icecast URI for an HTTP stream\n * ```ts\n * import { expect } from \"@std/expect\";\n * import { parseURI } from \"./common.js\";\n *\n * const result = parseURI(\"icecast://radio.example.com:8000/live?tls=0\");\n * expect(result?.host).toBe(\"radio.example.com:8000\");\n * expect(result?.streamUrl).toBe(\"http://radio.example.com:8000/live\");\n * ```\n *\n * @example Reject non-icecast URI\n * ```ts\n * import { expect } from \"@std/expect\";\n * import { parseURI } from \"./common.js\";\n *\n * const result = parseURI(\"https://radio.example.com/stream.mp3\");\n * expect(result).toBeUndefined();\n * ```\n */\nexport function parseURI(uriString) {\n try {\n const url = new URL(uriString);\n if (url.protocol !== `${SCHEME}:`) return undefined;\n\n const tls = url.searchParams.get(\"tls\") !== \"0\";\n const protocol = tls ? \"https\" : \"http\";\n\n // Strip the tls param from the forwarded URL's search string\n const params = new URLSearchParams(url.search);\n params.delete(\"tls\");\n const search = params.size > 0 ? `?${params}` : \"\";\n\n return {\n host: url.host,\n path: url.pathname,\n streamUrl: `${protocol}://${url.host}${url.pathname}${search}`,\n };\n } catch {\n return undefined;\n }\n}\n\n/**\n * Group tracks by host.\n *\n * @param {Track[]} tracks\n * @returns {Record}\n */\nexport function groupTracksByHost(tracks) {\n /** @type {Record} */\n const acc = {};\n\n tracks.forEach((track) => {\n const parsed = parseURI(track.uri);\n if (!parsed) return;\n\n const { host } = parsed;\n if (acc[host]) {\n acc[host].tracks.push(track);\n } else {\n acc[host] = { host, tracks: [track] };\n }\n });\n\n return acc;\n}\n\n/**\n * Group URIs by host.\n *\n * @param {string[]} uris\n * @returns {Record}\n */\nexport function groupUrisByHost(uris) {\n /** @type {Record} */\n const acc = {};\n\n uris.forEach((uri) => {\n const parsed = parseURI(uri);\n if (!parsed) return;\n\n const { host } = parsed;\n if (acc[host]) {\n acc[host].uris.push(uri);\n } else {\n acc[host] = { host, uris: [uri] };\n }\n });\n\n return acc;\n}\n\n/**\n * Extract unique hosts from tracks.\n *\n * @param {Track[]} tracks\n * @returns {Record}\n */\nexport function hostsFromTracks(tracks) {\n /** @type {Record} */\n const acc = {};\n\n tracks.forEach((track) => {\n const parsed = parseURI(track.uri);\n if (!parsed) return;\n\n const { host } = parsed;\n if (acc[host]) return;\n acc[host] = host;\n });\n\n return acc;\n}\n\n/**\n * Fetch ICY metadata from an Icecast stream.\n * Returns undefined if the stream is unreachable or does not support ICY metadata.\n *\n * @param {string} streamUrl\n * @returns {Promise}\n */\nexport async function fetchMetadata(streamUrl) {\n try {\n const parser = new IcyParser(streamUrl);\n return await parser.parseOnce();\n } catch {\n return undefined;\n }\n}\n\n/**\n * @param {string} uri\n * @returns {Promise}\n */\nasync function consultStream(uri) {\n const parsed = parseURI(uri);\n if (!parsed) return \"no\";\n const metadata = await fetchMetadata(parsed.streamUrl);\n // `fetchMetadata` swallows transport/parse errors as `undefined`;\n // treat that as inconclusive so a network blip doesn't hide the\n // stream for the full consult TTL.\n return metadata === undefined ? \"unsure\" : \"yes\";\n}\n\nexport const consultStreamCached = cachedConsult(\n consultStream,\n (uri) => parseURI(uri)?.host ?? uri,\n);\n"],"mappings":"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","names":["concat","a","b","out","__name","parseMetadata","raw","IcyParser","__name","url","controller","res","metaint","reader","received","leftover","value","done","overflow","metaStart","metadataLength","metadata","concat","raw","parseMetadata","buildURI","streamUrl","url","query","SCHEME","__name","parseURI","uriString","protocol","params","search","groupTracksByHost","tracks","acc","track","parsed","host","groupUrisByHost","uris","uri","hostsFromTracks","fetchMetadata","IcyParser","consultStream","consultStreamCached","cachedConsult"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-PXOGRNGV.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js new file mode 100644 index 00000000..c43337d9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js @@ -0,0 +1,3 @@ +import{c as D}from"./chunk-IA3NIKPO.js";import{b as h}from"./chunk-EIUJL2DK.js";import{j as m,n as w,o as v,p as c}from"./chunk-XILA3E7E.js";import{a as s}from"./chunk-75KFZLU6.js";var q=class extends D{static{s(this,"BroadcastedOutputElement")}replicateSavedData(a){if(!this.hasAttribute("group"))return;let d=s(({save:i,set:p})=>async l=>{await c(async()=>await this.isLeader()?i(l):p(l))},"fn"),g=a.facets.save.bind(this),y=a.playlistItems.save.bind(this),f=a.settings.save.bind(this),o=a.tracks.save.bind(this),r=this.broadcast(this.identifier,{saveFacets:{strategy:"replicate",fn:d({save:g,set:a.signals.facets.set})},savePlaylistItems:{strategy:"replicate",fn:d({save:y,set:a.signals.playlistItems.set})},saveSettings:{strategy:"replicate",fn:d({save:f,set:a.signals.settings.set})},saveTracks:{strategy:"replicate",fn:d({save:o,set:a.signals.tracks.set})}});r&&(a.facets.save=r.saveFacets,a.playlistItems.save=r.savePlaylistItems,a.settings.save=r.saveSettings,a.tracks.save=r.saveTracks)}};function M({init:n,facets:a,playlistItems:d,settings:g,tracks:y}){let f=v(a.empty()),o=v("sleeping",{compare:h}),r=v(d.empty()),i=v("sleeping",{compare:h}),p=v(g.empty()),l=v("sleeping",{compare:h}),b=v(y.empty()),u=v("sleeping",{compare:h}),k=0,S=0,F=0,I=0;async function R(){if(n&&await n()===!1)return;let e=k;o.value="loading";try{let t=await a.get();k===e&&(f.value=t),o.value="loaded"}catch(t){console.error("Failed to load facets:",t),o.value="error"}}s(R,"loadFacets");async function x(){if(n&&await n()===!1)return;let e=S;i.value="loading";try{let t=await d.get();S===e&&(r.value=t),i.value="loaded"}catch(t){console.error("Failed to load playlist items:",t),i.value="error"}}s(x,"loadPlaylistItems");async function P(){if(n&&await n()===!1)return;let e=F;l.value="loading";try{let t=await g.get();F===e&&(p.value=t),l.value="loaded"}catch(t){console.error("Failed to load settings:",t),l.value="error"}}s(P,"loadSettings");async function T(){if(n&&await n()===!1)return;let e=I;u.value="loading";try{let t=await y.get();I===e&&(b.value=t),u.value="loaded"}catch(t){console.error("Failed to load tracks:",t),u.value="error"}}return s(T,"loadTracks"),{facets:{collection:m(()=>(c(()=>o.value==="sleeping")&&R(),o.value==="loaded"?{state:"loaded",data:f.value}:o.value==="error"?{state:"error"}:{state:"loading"})),reload:R,save:s(async e=>{w(()=>{k++,c(()=>o.value==="sleeping")&&(o.value="loaded"),f.value=e}),await a.put(e)},"save")},playlistItems:{collection:m(()=>(c(()=>i.value==="sleeping")&&x(),i.value==="loaded"?{state:"loaded",data:r.value}:i.value==="error"?{state:"error"}:{state:"loading"})),reload:x,save:s(async e=>{w(()=>{S++,c(()=>i.value==="sleeping")&&(i.value="loaded"),r.value=e}),await d.put(e)},"save")},settings:{collection:m(()=>(c(()=>l.value==="sleeping")&&P(),l.value==="loaded"?{state:"loaded",data:p.value}:l.value==="error"?{state:"error"}:{state:"loading"})),reload:P,save:s(async e=>{w(()=>{F++,c(()=>l.value==="sleeping")&&(l.value="loaded"),p.value=e}),await g.put(e)},"save")},tracks:{collection:m(()=>(c(()=>u.value==="sleeping")&&T(),u.value==="loaded"?{state:"loaded",data:b.value}:u.value==="error"?{state:"error"}:{state:"loading"})),reload:T,save:s(async e=>{w(()=>{I++,c(()=>u.value==="sleeping")&&(u.value="loaded"),b.value=e}),await y.put(e)},"save")},signals:{facets:f,playlistItems:r,settings:p,tracks:b}}}s(M,"outputManager");export{q as a,M as b}; + +//# sourceMappingURL=./chunk-QAEP7ICV.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js.br new file mode 100644 index 0000000000000000000000000000000000000000..88a3a564b6bb7befb64045deddd98ae75e3fd241 GIT binary patch literal 935 zcmb34=4E)YW$EAVpOgMN7{6NceMj!jy%S$l{^gN)bWBlXw#kW4_s_57ov?0`sM`0> zMS@yhSL$>=2smyP=8Eu}T{bhAOm)iWO zjGPx6|Iz%s%Gw}BF-5;q?Uz5xA5T9O{j=*=@`L7Ujl8_CuP`~;On=U9@BeR}MwP5R z=da(t*HqZn|7gw)`LgaGN1V;)4Q}&g-6gmeeebtDVmGO_D|6j410Tgn_s<#hrWI_v zcJR*2-pszz3kwXZRPXUVQ zS^tu8YS8@s?!Pz|Pb)gR|J&rJclp!~TQCPnT=`LW)>@e1X^>{>Cz+^qe;QO4oHAKs zA0cXB)^0d&F+ZdBmcN^LedeAxv$=hujFa7jrB5DCYY9@nHGN^#yY2tpEx9WF_ncW( z;?BdODP?|FN;cdo%M;OAu=aO$eQQb8a`9~kxz(LIU%Y&QN_;ojJUBo{6NX;gT2kI&TQRNx!}~!cjYt;j8PrPrIjZy>p)Ne7gXz zX6XGJahv0Fj^r9vh37f3Jbb4zBjf3jwyUMR6B@mj-S;bzJ!2?T)E4n|=hI zzI^=YIlj<}*p9zROO9N~5ej;>p-nR@sy^n1BTukVoQw~{?riRhTb67ztV&Ca{>+zj zQOwrLL}`OqyTF0ByV@*bF5Qr@Dc+F1xxr$KGe4hf_vxc=87{A@=6I~y+k0v=XIcKV z37obIwcBTwUYw-Fz4m(BomCh2Phy^NQ|oEg%O<|JXMY{N#_ZO1DW^Sj%J(8)aq-uy HRqPo7gPGZB literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js.map new file mode 100644 index 00000000..36e956e6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QAEP7ICV.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/output/common.js"],"sourcesContent":["import { BroadcastableDiffuseElement } from \"~/common/element.js\";\nimport { batch, computed, signal, untracked } from \"~/common/signal.js\";\nimport { strictEquality } from \"~/common/compare.js\";\n\n/**\n * @import {Facet, PlaylistItem, Setting, Track} from \"~/definitions/types.d.ts\"\n * @import {SignalWriter} from \"~/common/signal.d.ts\";\n * @import {OutputManager, OutputManagerProperties} from \"@specs/components/output/types.d.ts\"\n */\n\nexport class BroadcastedOutputElement extends BroadcastableDiffuseElement {\n /**\n * @param {OutputManager} manager\n */\n replicateSavedData(manager) {\n // Broadcast if needed\n if (!this.hasAttribute(\"group\")) return;\n\n /**\n * @template T\n * @param {{ save: (data: T) => Promise; set: SignalWriter }} _\n * @returns {(data: T) => Promise}\n */\n const fn = ({ save, set }) => async (data) => {\n await untracked(async () => {\n if (await this.isLeader()) {\n return save(data);\n } else {\n return set(data);\n }\n });\n };\n\n const ogFacetsSave = manager.facets.save.bind(this);\n const ogPlaylistItemsSave = manager.playlistItems.save.bind(this);\n const ogSettingsSave = manager.settings.save.bind(this);\n const ogTracksSave = manager.tracks.save.bind(this);\n\n const actions = this.broadcast(this.identifier, {\n saveFacets: {\n strategy: \"replicate\",\n fn: fn({ save: ogFacetsSave, set: manager.signals.facets.set }),\n },\n savePlaylistItems: {\n strategy: \"replicate\",\n fn: fn({\n save: ogPlaylistItemsSave,\n set: manager.signals.playlistItems.set,\n }),\n },\n saveSettings: {\n strategy: \"replicate\",\n fn: fn({ save: ogSettingsSave, set: manager.signals.settings.set }),\n },\n saveTracks: {\n strategy: \"replicate\",\n fn: fn({ save: ogTracksSave, set: manager.signals.tracks.set }),\n },\n });\n\n if (actions) {\n manager.facets.save = actions.saveFacets;\n manager.playlistItems.save = actions.savePlaylistItems;\n manager.settings.save = actions.saveSettings;\n manager.tracks.save = actions.saveTracks;\n }\n }\n}\n\n/**\n * @template [Encoding=null]\n * @param {OutputManagerProperties} _\n * @returns {OutputManager}\n */\nexport function outputManager(\n { init, facets, playlistItems, settings, tracks },\n) {\n const c = signal(\n /** @type {Encoding extends null ? Facet[] : Encoding} */ (facets\n .empty()),\n );\n const cs = signal(\n /** @type {\"loading\" | \"loaded\" | \"sleeping\" | \"error\"} */ (\"sleeping\"),\n { compare: strictEquality },\n );\n\n const pl = signal(\n /** @type {Encoding extends null ? PlaylistItem[] : Encoding} */ (playlistItems\n .empty()),\n );\n const pls = signal(\n /** @type {\"loading\" | \"loaded\" | \"sleeping\" | \"error\"} */ (\"sleeping\"),\n { compare: strictEquality },\n );\n\n const s = signal(\n /** @type {Encoding extends null ? Setting[] : Encoding} */ (settings\n .empty()),\n );\n const ss = signal(\n /** @type {\"loading\" | \"loaded\" | \"sleeping\" | \"error\"} */ (\"sleeping\"),\n { compare: strictEquality },\n );\n\n const t = signal(\n /** @type {Encoding extends null ? Track[] : Encoding} */ (tracks.empty()),\n );\n const ts = signal(\n /** @type {\"loading\" | \"loaded\" | \"sleeping\" | \"error\"} */ (\"sleeping\"),\n { compare: strictEquality },\n );\n\n // Revision counters so a racing load never overwrites a value that was just\n // saved (or a newer load was started) while it was awaiting `get()`.\n let cRev = 0;\n let plRev = 0;\n let sRev = 0;\n let tRev = 0;\n\n async function loadFacets() {\n if (init && (await init()) === false) return;\n const rev = cRev;\n cs.value = \"loading\";\n try {\n const data = await facets.get();\n if (cRev === rev) c.value = data;\n cs.value = \"loaded\";\n } catch (err) {\n console.error(\"Failed to load facets:\", err);\n cs.value = \"error\";\n }\n }\n\n async function loadPlaylistItems() {\n if (init && (await init()) === false) return;\n const rev = plRev;\n pls.value = \"loading\";\n try {\n const data = await playlistItems.get();\n if (plRev === rev) pl.value = data;\n pls.value = \"loaded\";\n } catch (err) {\n console.error(\"Failed to load playlist items:\", err);\n pls.value = \"error\";\n }\n }\n\n async function loadSettings() {\n if (init && (await init()) === false) return;\n const rev = sRev;\n ss.value = \"loading\";\n try {\n const data = await settings.get();\n if (sRev === rev) s.value = data;\n ss.value = \"loaded\";\n } catch (err) {\n console.error(\"Failed to load settings:\", err);\n ss.value = \"error\";\n }\n }\n\n async function loadTracks() {\n if (init && (await init()) === false) return;\n const rev = tRev;\n ts.value = \"loading\";\n try {\n const data = await tracks.get();\n if (tRev === rev) t.value = data;\n ts.value = \"loaded\";\n } catch (err) {\n console.error(\"Failed to load tracks:\", err);\n ts.value = \"error\";\n }\n }\n\n return {\n facets: {\n collection: computed(() => {\n if (untracked(() => cs.value === \"sleeping\")) loadFacets();\n return cs.value === \"loaded\"\n ? { state: \"loaded\", data: c.value }\n : cs.value === \"error\"\n ? { state: \"error\" }\n : { state: \"loading\" };\n }),\n reload: loadFacets,\n save: async (newFacets) => {\n batch(() => {\n cRev++;\n if (untracked(() => cs.value === \"sleeping\")) cs.value = \"loaded\";\n c.value = newFacets;\n });\n await facets.put(newFacets);\n },\n },\n playlistItems: {\n collection: computed(() => {\n if (untracked(() => pls.value === \"sleeping\")) loadPlaylistItems();\n return pls.value === \"loaded\"\n ? { state: \"loaded\", data: pl.value }\n : pls.value === \"error\"\n ? { state: \"error\" }\n : { state: \"loading\" };\n }),\n reload: loadPlaylistItems,\n save: async (newPlaylistItems) => {\n batch(() => {\n plRev++;\n if (untracked(() => pls.value === \"sleeping\")) pls.value = \"loaded\";\n pl.value = newPlaylistItems;\n });\n await playlistItems.put(newPlaylistItems);\n },\n },\n settings: {\n collection: computed(() => {\n if (untracked(() => ss.value === \"sleeping\")) loadSettings();\n return ss.value === \"loaded\"\n ? { state: \"loaded\", data: s.value }\n : ss.value === \"error\"\n ? { state: \"error\" }\n : { state: \"loading\" };\n }),\n reload: loadSettings,\n save: async (newSettings) => {\n batch(() => {\n sRev++;\n if (untracked(() => ss.value === \"sleeping\")) ss.value = \"loaded\";\n s.value = newSettings;\n });\n await settings.put(newSettings);\n },\n },\n tracks: {\n collection: computed(() => {\n if (untracked(() => ts.value === \"sleeping\")) loadTracks();\n return ts.value === \"loaded\"\n ? { state: \"loaded\", data: t.value }\n : ts.value === \"error\"\n ? { state: \"error\" }\n : { state: \"loading\" };\n }),\n reload: loadTracks,\n save: async (newTracks) => {\n batch(() => {\n tRev++;\n if (untracked(() => ts.value === \"sleeping\")) ts.value = \"loaded\";\n t.value = newTracks;\n });\n await tracks.put(newTracks);\n },\n },\n signals: {\n facets: c,\n playlistItems: pl,\n settings: s,\n tracks: t,\n },\n };\n}\n"],"mappings":"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","names":["BroadcastedOutputElement","BroadcastableDiffuseElement","__name","manager","fn","save","set","data","untracked","ogFacetsSave","ogPlaylistItemsSave","ogSettingsSave","ogTracksSave","actions","outputManager","init","facets","playlistItems","settings","tracks","c","signal","cs","strictEquality","pl","pls","s","ss","t","ts","cRev","plRev","sRev","tRev","loadFacets","rev","err","loadPlaylistItems","loadSettings","loadTracks","computed","newFacets","batch","newPlaylistItems","newSettings","newTracks"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-QAEP7ICV.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js new file mode 120000 index 00000000..e3220076 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-QSEZLSGM.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js.br new file mode 120000 index 00000000..66932479 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-QSEZLSGM.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js.map new file mode 120000 index 00000000..a29fca94 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QSEZLSGM.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-QSEZLSGM.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js new file mode 120000 index 00000000..5e43f736 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-QWRQDER6.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js.br new file mode 120000 index 00000000..dc6d9510 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-QWRQDER6.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js.map new file mode 120000 index 00000000..86f66777 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-QWRQDER6.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-QWRQDER6.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js new file mode 100644 index 00000000..0702afdd --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js @@ -0,0 +1,3 @@ +import{k as N}from"./chunk-J3G2CW6Q.js";import{a as R,b as x,c as C}from"./chunk-MKIFSH6R.js";import{c as L,e as B,f as T,g as K}from"./chunk-IA3NIKPO.js";import{h as F}from"./chunk-NYGD7JS5.js";import{j as w,n as E,o as y}from"./chunk-XILA3E7E.js";import{a as b,c as G}from"./chunk-75KFZLU6.js";var z={};G(z,{CLASS:()=>M,NAME:()=>_,default:()=>W});var A=class extends L{static{b(this,"ScopedTracksOrchestrator")}static NAME="diffuse/orchestrator/scoped-tracks";static WORKER_URL="components/orchestrator/scoped-tracks/worker.js";#i;constructor(){super(),this.#i=this.workerProxy()}#o=y(null);#a=y(null);#t=y(null);#n=y(void 0);#l=w(()=>{let t=this.#t.value?.playlist();if(!t)return;let s=this.#a.value?.playlistItems.collection();if(!(!s||s.state!=="loaded"))return s.data.filter(n=>n.playlist===t)});#c=w(()=>{let t=this.#a.value?.settings.collection();if(!t||t.state!=="loaded")return[];let s=t.data.find(n=>n.key==="sh.diffuse.input.disabled.uris");if(!s)return[];try{let n=JSON.parse(s.value);return Array.isArray(n)?n:[]}catch{return[]}});#r=y([]);#e=y([]);#s=y([]);#u=w(()=>{let t=this.#s.value,s=this.#t.value?.groupBy();if(s)return Y(t,s)});supplyFingerprint=this.#n.get;tracks=this.#s.get;groups=this.#u;playlistIsOrdered=w(()=>{let t=this.#l(),s=this.#t.value?.playlist();return t?.length&&s?C(t).get(s)?.unordered===!1:!1});async connectedCallback(){if(this.hasAttribute("group")){let e=this.broadcast(this.identifier,{getTracksAvailable:{strategy:"leaderOnly",fn:this.#r.get},getTracksSearch:{strategy:"leaderOnly",fn:this.#e.get},getTracksFinal:{strategy:"leaderOnly",fn:this.#s.get},setTracksAvailable:{strategy:"replicate",fn:this.#r.set},setTracksSearch:{strategy:"replicate",fn:this.#e.set},setTracksFinal:{strategy:"replicate",fn:this.#s.set}});if(!e)return;this.#r.set=e.setTracksAvailable,this.#e.set=e.setTracksSearch,this.#s.set=e.setTracksFinal,Promise.all([e.getTracksAvailable(),e.getTracksSearch(),e.getTracksFinal()]).then(([a,o,f])=>E(()=>{this.#r.value=a,this.#e.value=o,this.#s.value=f}))}super.connectedCallback();let t=T(this,"input-selector"),s=T(this,"output-selector"),n=K(this,"scope-engine-selector");this.#o.value=t,this.#a.value=s,n&&(this.#t.value=n);let r=this.workerLink();F("supplyFingerprint",this.#n.set,r),this.#i.supplyFingerprint().then(this.#n.set),await customElements.whenDefined(t.localName),await customElements.whenDefined(s.localName),n&&await customElements.whenDefined(n.localName),this.effect(async()=>{let e=s.tracks.collection();if(await this.isLeader()===!1||e.state!=="loaded")return;let a=[],o=e.data.filter(u=>(a.push(u.uri),u.kind!=="placeholder")),f=e.data.length?await t.groupConsult(a):{},m=new Set;Object.values(f).forEach(u=>{if(u.available==="yes")for(let h of u.uris)m.add(h)});let p=o.filter(u=>m.has(u.uri)&&!!u.tags);this.#i.supply({tracks:p}),this.#r.set(p)}),this.effect(async()=>{let e=this.#n.value,a=this.#r.value,o=this.#t.value?.searchTerm();if(await this.isLeader()!==!1)if(o?.length){let f=await this.#i.search({term:o});this.#e.set(f)}else this.#e.set(a)});let i=0;this.effect(async()=>{let e=this.#e.value,a=this.#l(),o=this.#c(),f=this.#t.value?.sortBy(),m=this.#t.value?.sortDirection(),p=this.#t.value?.groupBy(),u=++i;if(await this.isLeader()===!1||u!==i)return;let h=a?.length?R(e,a):e;o.length&&(h=h.filter(g=>!o.some(c=>g.uri.startsWith(c))));let D=this.playlistIsOrdered();D&&(h=x(h,a));let J=((p?H[p]:void 0)?.sortDirection??m)==="desc"?-1:1,S=D?[]:f??[],P=m==="desc"?-1:1,$=S.map(g=>g.split("."));if(p||S.length){let g=h.map(c=>({track:c,groupKey:p?U(c,p).key:"",fieldVals:$.map(k=>{let d=c;for(let v of k)d=d?.[v];return d})}));g.sort((c,k)=>{if(p&&c.groupKey!==k.groupKey)return c.groupKey?k.groupKey?j.compare(c.groupKey,k.groupKey)*J:-1:1;for(let d=0;dc.track)}this.#s.set(h)})}},W=A,j=new Intl.Collator,q=["January","February","March","April","May","June","July","August","September","October","November","December"],H={createdAt:{sortDirection:"desc"},directory:{sortDirection:"asc"},firstLetter:{sortDirection:"asc"},"tags.year":{sortDirection:"desc"}};function Y(l,t){let s=[],n,r;for(let i of l){let{key:e,label:a}=U(i,t);e!==n&&(r={label:a,tracks:[]},s.push(r),n=e),r?.tracks.push(i)}return s}b(Y,"buildGroups");function U(l,t){if(t==="createdAt"){let r=l.createdAt;if(!r)return{key:"",label:"Unknown"};let i=r.slice(0,4),e=r.slice(5,7);return{key:`${i}-${e}`,label:`${q[parseInt(e,10)-1]} ${i}`}}if(t==="directory"){let r=l.uri??"",i=r;try{i=new URL(r).pathname}catch{}let e=i.lastIndexOf("/"),a=e>0?i.slice(0,e):i;return{key:r.slice(0,r.lastIndexOf("/")),label:N(a)||"Unknown"}}if(t.startsWith("firstLetter:")){let r=t.slice(12),i=l;for(let f of r.split("."))i=i?.[f];let a=(i!=null?String(i):"").charAt(0).toUpperCase(),o=/[A-Z]/.test(a)?a:"#";return{key:o,label:o}}let s=l;for(let r of t.split("."))s=s?.[r];let n=s!=null?String(s):"";return{key:n,label:n||"Unknown"}}b(U,"groupKeyLabel");function Z(l,t){return l==null&&t==null?0:l==null?1:t==null?-1:typeof l=="string"&&typeof t=="string"?l.localeCompare(t):lt?1:0}b(Z,"compareValues");var M=A,_="do-scoped-tracks";B(_,M);export{W as a,M as b,_ as c,z as d}; + +//# sourceMappingURL=./chunk-R6SW7FHX.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js.br new file mode 100644 index 0000000000000000000000000000000000000000..e2f16dd402ae34967c103accb3713d593973159a GIT binary patch literal 2224 zcmb0>BEsI*X6xc5(`PPusW{!>WV!d(bew!eGcd_<`zz1; zyE}XLPw3pcC+loh$;W43zCPUk{eSoUc}q*PmzMVX&-ebHv~S|!X@cwY&-Xhs z6U&}D*W2%(wa@ZjfzFhgNor?addc65o%d(YuTOGk9*O@86u%t&kAL^!)h~0V6)gCh zy=P{e{C}xhm${ENf7IROQ{wf1!@M_@hdSQJmL6VP?q3$uk~8hLo9MlnZ}MZ~H0u*r zNWPXha%<1^)9;0}OCq<$y}enLbUvWE>*Cv-eV=r4zpTvP{(buK@BQ)b)^|KDtL9jEB)E>wT~}EZa&HwDJRD4Yd_g-{l4OF@7tVZB5r-?W|3uo z=}^bkD)sqO`s(g`5|4;B0w|5X-*|(G?%II5zWZ zUq06yRo$rHx2?@V>HY7w*SPQQiTv6bk(;`Zi>>7CJn`vICLJ<-wsT?a=MVgy8V)Tb z6N=Xu9{iIl`gguk&i03mcfOt#S29%N3AWjjxYW$$NR296EQkL)5x==gQOj*#r`q~o zX(mBx1QM7&2I>XXg&da@@`w36|a#uQeMrA$S5WT8_ zEBJEy%GU?4Pd-~A7|u{S%-Htk#eefImv z+6}?JYl|hX+-=+UQEOfJPeH$*``3J0dhYZKJ>IOpQ$!t?{B4Plul^dMbY@-u6I;^> zEBznL-JJb)>V(p>&rf}QolwtL(J|rcPlu#n88HQ;zU#$y(=#^4FuawIHlNIxdsF44 zk>>4-i-OexB^i}E^1W_oKbj!?LQzWb#)^w|fdb7wU)nwQJ>D6g_(EuLr_58YcTpj? zPZe!WcKEQzu+rqP;&-2Bo^a_M2F#Y{e2YE&Etq+Zo+vUFQ`@DnwJm}S@UL)rN7!{QFdcOF$57W*;+%od&CHu=JD zyhJ)DFT4KfYAf~yR%_mdwaSNlW>!5bp5fVgz#+R}rr2k*DXmJZ8rcI^>4 zl+6z--J3j0_@-;B` zzuJ}?cMq#s?{L0x>D@ZBm)y7PCT@FF;Tn|q{?xmjPMn=yxf1e^MMI|vM(o>?-?}~f zXz{K1S?m@kvSUBoFIiE+$1rP>d(W?QvA5T&s$9yx>8}qktGLWscrPXWbJ|3e?RAr) zBezX!*v$Fm|FKOMRc1cu>D%;ENpo|~z5~`#;huLE&Wt$S_VV1*lxt!WA{$8vcLReEX@Z zt+C?7kw29aWkf{s0>dO-0GyLiTpW=+t*RO5fhRcYea(y^SW@4j8|>#_l(#ZOP`enG&l6 z3l~0pa4lDhv$EZrtHk>1)ygM46I*|Dv&=qhWt6-t!|-$SbqTkbzZYE1zaYtWolW}{ z*PhMAu@66;I4vaklKZ-ZLT~+qbc?=Shq)T-)An_|XqGL%d1ek%N#uf~&b3m`TOAfEFsm$HFpAaPZ^5m7OeX0duZ;_eKVfQAK%b%W0!Dt z$IY6ae8$kgKeBZ*HY-dt|9k6YiOky)t$&Nm{$?-#Z9Jc`?#UgNbp=Lk7gGeQr#{}F zloBTG^Zo1UsO6h`46i&{HpOXn+N0^ewck0cvG0}I8D{Jz>3sZKln%@O*_&Y zUR`2rsGt7m@}wQ_cJDsr*Zf10mor)6lh>}y2gw2l>oTRD@-038*jxAQ+2xDpckjJ= ziQVHw${{wNkkq3Wb3?BGnzuMgTxeRwr?2l6+Wy3@{eB_eKw8T7tnEkr69rS^LqADm z|MkzhG1pY)8oRo*`q7U$lkVJJ?D?s@;K0>{Kqkqe8wC~8B0X!)r7eCXa7&m;#m9ItnF_4&^X0GZEg^#A|> literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js.map new file mode 100644 index 00000000..fb3aa2d8 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-R6SW7FHX.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/orchestrator/scoped-tracks/element.js"],"sourcesContent":["import {\n BroadcastableDiffuseElement,\n defineElement,\n query,\n queryOptional,\n} from \"~/common/element.js\";\nimport { batch, computed, signal } from \"~/common/signal.js\";\nimport { filterByPlaylist, gather, orderByPlaylist } from \"~/common/playlist.js\";\nimport { safeDecodeURIComponent } from \"~/common/utils.js\";\nimport { listen } from \"~/common/worker.js\";\n\n/**\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {Track} from \"~/definitions/types.d.ts\"\n * @import {InputElement} from \"@specs/components/input/types.d.ts\"\n * @import {OutputElement} from \"@specs/components/output/types.d.ts\"\n * @import {Actions, State} from \"@specs/components/orchestrator/scoped-tracks/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\nclass ScopedTracksOrchestrator extends BroadcastableDiffuseElement {\n static NAME = \"diffuse/orchestrator/scoped-tracks\";\n static WORKER_URL = \"components/orchestrator/scoped-tracks/worker.js\";\n\n /** @type {ProxiedActions} */\n #proxy;\n\n constructor() {\n super();\n this.#proxy = this.workerProxy();\n }\n\n // SIGNALS\n\n #input = signal(/** @type {InputElement | null} */ (null));\n #output = signal(/** @type {OutputElement | null} */ (null));\n\n #scope = signal(\n /** @type {import(\"~/components/engine/scope/element.js\").CLASS | null} */ (null),\n );\n\n #supplyFingerprint = signal(/** @type {string | undefined} */ (undefined));\n\n #selectedPlaylistItems = computed(() => {\n const playlist = this.#scope.value?.playlist();\n if (!playlist) return undefined;\n\n const col = this.#output.value?.playlistItems.collection();\n if (!col || col.state !== \"loaded\") return undefined;\n return col.data.filter((p) => p.playlist === playlist);\n });\n\n #disabledSources = computed(() => {\n const col = this.#output.value?.settings.collection();\n if (!col || col.state !== \"loaded\") return [];\n\n const setting = col.data.find((s) =>\n s.key === \"sh.diffuse.input.disabled.uris\"\n );\n\n if (!setting) return [];\n\n try {\n const parsed = JSON.parse(setting.value);\n return Array.isArray(parsed) ? /** @type {string[]} */ (parsed) : [];\n } catch {\n return [];\n }\n });\n\n #tracksAvailable = signal(/** @type {Track[]} */ ([]));\n #tracksSearch = signal(/** @type {Track[]} */ ([]));\n #tracksFinal = signal(/** @type {Track[]} */ ([]));\n\n #tracksGrouped = computed(() => {\n const tracks = this.#tracksFinal.value;\n const groupBy = this.#scope.value?.groupBy();\n if (!groupBy) return undefined;\n return buildGroups(tracks, groupBy);\n });\n\n // STATE\n\n supplyFingerprint = this.#supplyFingerprint.get;\n tracks = this.#tracksFinal.get;\n groups = this.#tracksGrouped;\n\n /**\n * Whether the currently selected playlist should be rendered in its own\n * order (i.e. its playlist items form a `positionedAfter` chain). When\n * this is true, themes should prefer it over `sortBy` for UI indicators\n * (e.g. don't highlight the \"artist\" column as the active sort). It is\n * independent of `groupBy`/`sortBy` so grouping may still be applied —\n * in that case tracks are grouped by the `groupBy` key while playlist\n * order is preserved within each group.\n */\n playlistIsOrdered = computed(() => {\n const playlistItems = this.#selectedPlaylistItems();\n const playlistName = this.#scope.value?.playlist();\n\n return playlistItems?.length && playlistName\n ? gather(playlistItems).get(playlistName)?.unordered === false\n : false;\n });\n\n // LIFECYCLE\n\n /**\n * @override\n */\n async connectedCallback() {\n // Broadcast if needed\n if (this.hasAttribute(\"group\")) {\n const actions = this.broadcast(this.identifier, {\n getTracksAvailable: {\n strategy: \"leaderOnly\",\n fn: this.#tracksAvailable.get,\n },\n getTracksSearch: {\n strategy: \"leaderOnly\",\n fn: this.#tracksSearch.get,\n },\n getTracksFinal: {\n strategy: \"leaderOnly\",\n fn: this.#tracksFinal.get,\n },\n setTracksAvailable: {\n strategy: \"replicate\",\n fn: this.#tracksAvailable.set,\n },\n setTracksSearch: {\n strategy: \"replicate\",\n fn: this.#tracksSearch.set,\n },\n setTracksFinal: {\n strategy: \"replicate\",\n fn: this.#tracksFinal.set,\n },\n });\n\n if (!actions) return;\n\n this.#tracksAvailable.set = actions.setTracksAvailable;\n this.#tracksSearch.set = actions.setTracksSearch;\n this.#tracksFinal.set = actions.setTracksFinal;\n\n // Sync signal state with leader\n Promise.all([\n actions.getTracksAvailable(),\n actions.getTracksSearch(),\n actions.getTracksFinal(),\n ]).then(([available, search, final]) =>\n batch(() => {\n this.#tracksAvailable.value = available;\n this.#tracksSearch.value = search;\n this.#tracksFinal.value = final;\n })\n );\n }\n\n // Super\n super.connectedCallback();\n\n /** @type {InputElement} */\n const input = query(this, \"input-selector\");\n\n /** @type {OutputElement} */\n const output = query(this, \"output-selector\");\n\n /** @type {import(\"~/components/engine/scope/element.js\").CLASS | null} */\n const scope = queryOptional(this, \"scope-engine-selector\");\n\n // Assign to self\n this.#input.value = input;\n this.#output.value = output;\n if (scope) this.#scope.value = scope;\n\n // Sync supply fingerprint with worker\n const link = this.workerLink();\n listen(\"supplyFingerprint\", this.#supplyFingerprint.set, link);\n this.#proxy.supplyFingerprint().then(this.#supplyFingerprint.set);\n\n // When defined\n await customElements.whenDefined(input.localName);\n await customElements.whenDefined(output.localName);\n if (scope) await customElements.whenDefined(scope.localName);\n\n // Watch tracks collection\n this.effect(async () => {\n const tracksCol = output.tracks.collection();\n\n if ((await this.isLeader()) === false) return;\n if (tracksCol.state !== \"loaded\") return;\n\n /** @type {string[]} */\n const uris = [];\n const tracks = tracksCol.data.filter((t) => {\n uris.push(t.uri);\n return t.kind !== \"placeholder\";\n });\n\n // Consult inputs\n const groups = tracksCol.data.length\n ? await input.groupConsult(uris)\n : {};\n\n /** @type {Set} */\n const availableUris = new Set();\n\n Object.values(groups).forEach((value) => {\n // Only include tracks whose source confirmed availability (\"yes\").\n // Both \"no\" (server explicitly rejected) and \"unsure\" (transient\n // consult failure — e.g. a laptop waking up before the network\n // is fully back) hide the source's tracks until a real consult\n // succeeds. `cachedConsult` normalises \"unsure\" to \"no\" for callers\n // (without caching it), so a brief blip doesn't pin availability\n // to \"unavailable\" for the full TTL — the next consult retries\n // immediately and repopulates the browser once the server responds.\n if (value.available !== \"yes\") return;\n for (const uri of value.uris) {\n availableUris.add(uri);\n }\n });\n\n const availableTracks = tracks.filter((t) => {\n return availableUris.has(t.uri) && !!t.tags;\n });\n\n // Set pool\n this.#proxy.supply({ tracks: availableTracks });\n this.#tracksAvailable.set(availableTracks);\n });\n\n // Watch search supply\n this.effect(async () => {\n const _trigger = this.#supplyFingerprint.value;\n const availableTracks = this.#tracksAvailable.value;\n const searchTerm = this.#scope.value?.searchTerm();\n\n if ((await this.isLeader()) === false) return;\n\n if (searchTerm?.length) {\n const searchResults = await this.#proxy.search({\n term: searchTerm,\n });\n this.#tracksSearch.set(searchResults);\n } else {\n this.#tracksSearch.set(availableTracks);\n }\n });\n\n // Watch `#tracksSearch` + Playlist + Sort\n let x = 0;\n\n this.effect(async () => {\n const tracks = this.#tracksSearch.value;\n const playlistItems = this.#selectedPlaylistItems();\n const disabledSources = this.#disabledSources();\n const sortBy = this.#scope.value?.sortBy();\n const sortDirection = this.#scope.value?.sortDirection();\n const groupBy = this.#scope.value?.groupBy();\n\n const y = ++x;\n\n if ((await this.isLeader()) === false) return;\n if (y !== x) return;\n\n let final = playlistItems?.length\n ? filterByPlaylist(tracks, playlistItems)\n : tracks;\n\n if (disabledSources.length) {\n final = final.filter((t) =>\n !disabledSources.some((source) => t.uri.startsWith(source))\n );\n }\n\n // When an ordered playlist is selected, reorder the filtered tracks by\n // the playlist's `positionedAfter` chain. The user's `sortBy` is then\n // ignored so playlist order is preserved — but `groupBy` still applies:\n // tracks are grouped by the group key, and because `Array.sort` is\n // stable, playlist order is retained within each group.\n const playlistOrdered = this.playlistIsOrdered();\n\n if (playlistOrdered) {\n final = orderByPlaylist(\n final,\n /** @type {import(\"~/definitions/types.d.ts\").PlaylistItem[]} */ (playlistItems),\n );\n }\n\n // When groupBy is active, sort by group key first using the group's\n // canonical direction (from GROUP_BY_SORT_OVERRIDES, or user's direction\n // for firstLetter). Within each group, sort by the user's sortBy and\n // sortDirection as normal — unless an ordered playlist is active, in\n // which case sortBy is skipped (playlist order wins within groups).\n //\n // Schwartzian transform: precompute all keys once (O(N)) so the\n // comparator never re-parses URLs or re-splits dot-paths (O(N log N)).\n const groupOverride = groupBy\n ? GROUP_BY_SORT_OVERRIDES[groupBy]\n : undefined;\n const groupDir =\n (groupOverride?.sortDirection ?? sortDirection) === \"desc\" ? -1 : 1;\n const userFields = playlistOrdered ? [] : (sortBy ?? []);\n const userDir = sortDirection === \"desc\" ? -1 : 1;\n const splitPaths = userFields.map((f) => f.split(\".\"));\n\n if (groupBy || userFields.length) {\n const decorated = final.map((track) => ({\n track,\n groupKey: groupBy ? groupKeyLabel(track, groupBy).key : \"\",\n fieldVals: splitPaths.map((parts) => {\n let v = /** @type {any} */ (track);\n for (const p of parts) v = v?.[p];\n return v;\n }),\n }));\n\n decorated.sort((a, b) => {\n if (groupBy && a.groupKey !== b.groupKey) {\n if (!a.groupKey) return 1;\n if (!b.groupKey) return -1;\n return collator.compare(a.groupKey, b.groupKey) * groupDir;\n }\n for (let i = 0; i < a.fieldVals.length; i++) {\n const av = a.fieldVals[i];\n const bv = b.fieldVals[i];\n // Null/undefined always sorts last regardless of direction\n if (av == null && bv == null) continue;\n if (av == null) return 1;\n if (bv == null) return -1;\n const cmp = compareValues(av, bv);\n if (cmp !== 0) return cmp * userDir;\n }\n return 0;\n });\n\n final = decorated.map((d) => d.track);\n }\n\n this.#tracksFinal.set(final);\n });\n }\n}\n\nexport default ScopedTracksOrchestrator;\n\n////////////////////////////////////////////\n// HELPERS\n////////////////////////////////////////////\n\nconst collator = new Intl.Collator();\n\nconst MONTHS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\n/** @type {Record} */\nconst GROUP_BY_SORT_OVERRIDES = {\n createdAt: { sortDirection: \"desc\" },\n directory: { sortDirection: \"asc\" },\n firstLetter: { sortDirection: \"asc\" },\n \"tags.year\": { sortDirection: \"desc\" },\n};\n\n/**\n * @param {Track[]} tracks\n * @param {string} groupBy dot-path field, e.g. \"createdAt\" or \"tags.artist\"\n * @returns {{ label: string; tracks: Track[] }[]}\n */\nfunction buildGroups(tracks, groupBy) {\n /** @type {{ label: string; tracks: Track[] }[]} */\n const groups = [];\n let lastKey = /** @type {string | undefined} */ (undefined);\n let current =\n /** @type {{ label: string; tracks: Track[] } | undefined} */ (undefined);\n\n for (const track of tracks) {\n const { key, label } = groupKeyLabel(track, groupBy);\n\n if (key !== lastKey) {\n current = { label, tracks: [] };\n groups.push(current);\n lastKey = key;\n }\n\n current?.tracks.push(track);\n }\n\n return groups;\n}\n\n/**\n * @param {Track} track\n * @param {string} fieldPath\n * @returns {{ key: string; label: string }}\n */\nfunction groupKeyLabel(track, fieldPath) {\n if (fieldPath === \"createdAt\") {\n const iso = track.createdAt;\n if (!iso) return { key: \"\", label: \"Unknown\" };\n const year = iso.slice(0, 4);\n const month = iso.slice(5, 7);\n return {\n key: `${year}-${month}`,\n label: `${MONTHS[parseInt(month, 10) - 1]} ${year}`,\n };\n }\n\n if (fieldPath === \"directory\") {\n const uri = track.uri ?? \"\";\n let path = uri;\n try {\n path = new URL(uri).pathname;\n } catch {\n // not a valid URL, use as-is\n }\n const slash = path.lastIndexOf(\"/\");\n const dir = slash > 0 ? path.slice(0, slash) : path;\n const key = uri.slice(0, uri.lastIndexOf(\"/\"));\n return { key, label: safeDecodeURIComponent(dir) || \"Unknown\" };\n }\n\n if (fieldPath.startsWith(\"firstLetter:\")) {\n const dotPath = fieldPath.slice(\"firstLetter:\".length);\n let val = /** @type {any} */ (track);\n for (const key of dotPath.split(\".\")) val = val?.[key];\n const str = val != null ? String(val) : \"\";\n const letter = str.charAt(0).toUpperCase();\n const key = /[A-Z]/.test(letter) ? letter : \"#\";\n return { key, label: key };\n }\n\n // Generic dot-path extraction\n let val = /** @type {any} */ (track);\n for (const key of fieldPath.split(\".\")) val = val?.[key];\n const str = val != null ? String(val) : \"\";\n return { key: str, label: str || \"Unknown\" };\n}\n\n/**\n * @param {any} aVal\n * @param {any} bVal\n * @returns {number}\n */\nfunction compareValues(aVal, bVal) {\n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n return typeof aVal === \"string\" && typeof bVal === \"string\"\n ? aVal.localeCompare(bVal)\n : aVal < bVal\n ? -1\n : aVal > bVal\n ? 1\n : 0;\n}\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = ScopedTracksOrchestrator;\nexport const NAME = \"do-scoped-tracks\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","ScopedTracksOrchestrator","BroadcastableDiffuseElement","__name","#proxy","#input","signal","#output","#scope","#supplyFingerprint","#selectedPlaylistItems","computed","playlist","col","p","#disabledSources","setting","s","parsed","#tracksAvailable","#tracksSearch","#tracksFinal","#tracksGrouped","tracks","groupBy","buildGroups","playlistItems","playlistName","gather","actions","available","search","final","batch","input","query","output","scope","queryOptional","link","listen","tracksCol","uris","t","groups","availableUris","value","uri","availableTracks","_trigger","searchTerm","searchResults","x","disabledSources","sortBy","sortDirection","y","filterByPlaylist","source","playlistOrdered","orderByPlaylist","groupDir","GROUP_BY_SORT_OVERRIDES","userFields","userDir","splitPaths","f","decorated","track","groupKeyLabel","parts","v","a","b","collator","i","av","bv","cmp","compareValues","d","element_default","MONTHS","lastKey","current","key","label","fieldPath","iso","year","month","path","slash","dir","safeDecodeURIComponent","dotPath","val","letter","str","aVal","bVal","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-R6SW7FHX.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js new file mode 120000 index 00000000..ed23ccc0 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RHDOE5G3.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js.br new file mode 120000 index 00000000..34051cef --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RHDOE5G3.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js.map new file mode 120000 index 00000000..fb927dd0 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RHDOE5G3.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RHDOE5G3.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js new file mode 120000 index 00000000..36e3f9c0 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RL4C7EJ7.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js.br new file mode 120000 index 00000000..55c49f44 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RL4C7EJ7.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js.map new file mode 120000 index 00000000..a8e40d98 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RL4C7EJ7.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RL4C7EJ7.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js new file mode 120000 index 00000000..2a78aedf --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RN5G2ZPZ.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js.br new file mode 120000 index 00000000..15f82f77 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RN5G2ZPZ.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js.map new file mode 120000 index 00000000..e657f097 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN5G2ZPZ.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RN5G2ZPZ.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js new file mode 120000 index 00000000..d862007a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RN7ZM2JO.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js.br new file mode 120000 index 00000000..9e8bbf6b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RN7ZM2JO.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js.map new file mode 120000 index 00000000..bc5a1915 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RN7ZM2JO.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RN7ZM2JO.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RQUYKOSL.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RQUYKOSL.js new file mode 100644 index 00000000..c2fa5209 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RQUYKOSL.js @@ -0,0 +1,3 @@ +import{g as c}from"./chunk-IA3NIKPO.js";import{b as r}from"./chunk-ZGMMU2IC.js";import{a as u}from"./chunk-75KFZLU6.js";async function l(o,t){let e=c(o,"output-selector");if(e){let s=(await r(e.settings)).find(a=>a.key===t);if(s)return s.value}return localStorage.getItem(t)}u(l,"readSession");async function d(o,t,e){let n=c(o,"output-selector");if(n){let s=await r(n.settings),p=s.find(i=>i.key===t)?s.map(i=>i.key===t?{...i,value:e}:i):[...s,{$type:"sh.diffuse.output.setting",id:crypto.randomUUID(),key:t,value:e}];await n.settings.save(p)}else localStorage.setItem(t,e)}u(d,"saveSession");async function m(o,t){let e=c(o,"output-selector");if(e){let n=await r(e.settings),s=n.filter(a=>a.key!==t);s.length!==n.length&&await e.settings.save(s)}else localStorage.removeItem(t)}u(m,"clearSession");export{l as a,d as b,m as c}; + +//# sourceMappingURL=./chunk-RQUYKOSL.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RQUYKOSL.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RQUYKOSL.js.br new file mode 100644 index 0000000000000000000000000000000000000000..a09524cca15fe1094f9149914211f334d74d17fc GIT binary patch literal 369 zcmb2PWoCF1b?)Ey%B6D-^4t|xKip~MYnJAHlYe2wD&0(M#UhHpRl z7|rpoby~DTXT}AIPr55FY;rx$Wf|P%7B)*t;PJGoj$!gSudr_In|%HK1SBPi!snq zb^Ve1^1>GmotPfMIDh(l-L?AP-z{`{?l(!VVRu*i!)ZdXm$z-vTlVnKA}\n */\nexport async function readSession(element, key) {\n /** @type {OutputElement | null} */\n const output = queryOptional(element, \"output-selector\");\n\n if (output) {\n const settings = await Output.data(output.settings);\n const existing = settings.find((s) => s.key === key);\n if (existing) return existing.value;\n }\n\n return localStorage.getItem(key);\n}\n\n/**\n * Save a session value to output settings when an output is configured,\n * otherwise falls back to localStorage.\n *\n * @param {DiffuseElement} element\n * @param {string} key\n * @param {string} value\n */\nexport async function saveSession(element, key, value) {\n /** @type {OutputElement | null} */\n const output = queryOptional(element, \"output-selector\");\n\n if (output) {\n const settings = await Output.data(output.settings);\n const existing = settings.find((s) => s.key === key);\n\n const updated = existing\n ? settings.map((s) => s.key === key ? { ...s, value } : s)\n : [\n ...settings,\n {\n $type: /** @type {\"sh.diffuse.output.setting\"} */ (\n \"sh.diffuse.output.setting\"\n ),\n id: crypto.randomUUID(),\n key,\n value,\n },\n ];\n\n await output.settings.save(updated);\n } else {\n localStorage.setItem(key, value);\n }\n}\n\n/**\n * Remove a stored session value from output settings when an output is configured,\n * otherwise falls back to localStorage.\n *\n * @param {DiffuseElement} element\n * @param {string} key\n */\nexport async function clearSession(element, key) {\n /** @type {OutputElement | null} */\n const output = queryOptional(element, \"output-selector\");\n\n if (output) {\n const settings = await Output.data(output.settings);\n const updated = settings.filter((s) => s.key !== key);\n if (updated.length !== settings.length) {\n await output.settings.save(updated);\n }\n } else {\n localStorage.removeItem(key);\n }\n}\n"],"mappings":"wHAgBA,eAAsBA,EAAYC,EAASC,EAAK,CAE9C,IAAMC,EAASC,EAAcH,EAAS,iBAAiB,EAEvD,GAAIE,EAAQ,CAEV,IAAME,GADW,MAAaC,EAAKH,EAAO,QAAQ,GACxB,KAAMI,GAAMA,EAAE,MAAQL,CAAG,EACnD,GAAIG,EAAU,OAAOA,EAAS,KAChC,CAEA,OAAO,aAAa,QAAQH,CAAG,CACjC,CAXsBM,EAAAR,EAAA,eAqBtB,eAAsBS,EAAYR,EAASC,EAAKQ,EAAO,CAErD,IAAMP,EAASC,EAAcH,EAAS,iBAAiB,EAEvD,GAAIE,EAAQ,CACV,IAAMQ,EAAW,MAAaL,EAAKH,EAAO,QAAQ,EAG5CS,EAFWD,EAAS,KAAMJ,GAAMA,EAAE,MAAQL,CAAG,EAG/CS,EAAS,IAAKJ,GAAMA,EAAE,MAAQL,EAAM,CAAE,GAAGK,EAAG,MAAAG,CAAM,EAAIH,CAAC,EACvD,CACA,GAAGI,EACH,CACE,MACE,4BAEF,GAAI,OAAO,WAAW,EACtB,IAAAT,EACA,MAAAQ,CACF,CACF,EAEF,MAAMP,EAAO,SAAS,KAAKS,CAAO,CACpC,MACE,aAAa,QAAQV,EAAKQ,CAAK,CAEnC,CA1BsBF,EAAAC,EAAA,eAmCtB,eAAsBI,EAAaZ,EAASC,EAAK,CAE/C,IAAMC,EAASC,EAAcH,EAAS,iBAAiB,EAEvD,GAAIE,EAAQ,CACV,IAAMQ,EAAW,MAAaL,EAAKH,EAAO,QAAQ,EAC5CS,EAAUD,EAAS,OAAQJ,GAAMA,EAAE,MAAQL,CAAG,EAChDU,EAAQ,SAAWD,EAAS,QAC9B,MAAMR,EAAO,SAAS,KAAKS,CAAO,CAEtC,MACE,aAAa,WAAWV,CAAG,CAE/B,CAbsBM,EAAAK,EAAA","names":["readSession","element","key","output","queryOptional","existing","data","s","__name","saveSession","value","settings","updated","clearSession"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-RQUYKOSL.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js new file mode 120000 index 00000000..6dd28d3c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RW73GFJN.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js.br new file mode 120000 index 00000000..4da9b36e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RW73GFJN.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js.map new file mode 120000 index 00000000..6af06c52 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RW73GFJN.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RW73GFJN.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js new file mode 120000 index 00000000..99b0d497 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RXUZEKYV.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js.br new file mode 120000 index 00000000..14d6afc3 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-3U47TTXA.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js.map new file mode 120000 index 00000000..5e17aee5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RXUZEKYV.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-RXUZEKYV.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js new file mode 100644 index 00000000..429cc2d1 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js @@ -0,0 +1,3 @@ +import{a as f}from"./chunk-BTSSVB7R.js";import{e as d}from"./chunk-IA3NIKPO.js";import{a as l}from"./chunk-SIM5AC6S.js";import{f as c}from"./chunk-5AREERZ7.js";import{j as n}from"./chunk-XILA3E7E.js";import{a as i,c as p}from"./chunk-75KFZLU6.js";var y={};p(y,{CLASS:()=>u,NAME:()=>m,default:()=>h});var o="diffuse/transformer/output/refiner/initial-contents/initialized",r=class extends f{static{i(this,"InitialContentsTransformer")}static NAME="diffuse/transformer/output/refiner/initial-contents";constructor(){super();let t=this.base();this.effect(()=>{let a=t.facets.collection();a.state!=="loaded"||(Array.isArray(a.data)?a.data:[]).length===0||this.#e()});let e={facets:{...t.facets,collection:n(()=>{let a=t.facets.collection();if(a.state!=="loaded")return a;let s=Array.isArray(a.data)?a.data:[];return s.length>0?{state:"loaded",data:s}:this.#a()?{state:"loaded",data:s}:{state:"loaded",data:l(c)}}),save:i(async a=>{await t.facets.save(a),this.#e()},"save")},playlistItems:t.playlistItems,settings:t.settings,tracks:t.tracks,ready:t.ready};this.facets=e.facets,this.playlistItems=e.playlistItems,this.settings=e.settings,this.tracks=e.tracks,this.ready=e.ready}#t(){let t=this.output.signal();return t?typeof t.selected=="function"?t.selected()?.id??"local":t.id||"local":"local"}#a(){let t=this.#t();try{return!!JSON.parse(localStorage.getItem(o)??"{}")?.[t]}catch{return!1}}#e(){let t=this.#t(),e={};try{e=JSON.parse(localStorage.getItem(o)??"{}")??{}}catch{}e[t]||(e[t]=!0,localStorage.setItem(o,JSON.stringify(e)))}},h=r,u=r,m="dtor-initial-contents";d(m,u);export{h as a,u as b,m as c,y as d}; + +//# sourceMappingURL=./chunk-RZNPNMPI.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js.br new file mode 100644 index 0000000000000000000000000000000000000000..516f5d87cec81be47cbf4734b38aaa676bb39b7d GIT binary patch literal 711 zcmb34WMg;|mG$p)<;f+w#@XviOtRN~+v2t6s^o6waFHWVZfVW)n6I_4K>qgiT>YGm z458dro_ht2LWMh(1BE5MZ@L_Lx70{G#iN7uq?nmVsohWKh0}gDAAh-G_y3QF+t2@w z{+=b_Qn{ujQ>$(B-mR}Uci)z-@SSCNxP9~L-o4Fd`6taIX z`TC|P|82%=j@xfH?6*j$>pFGq*wK&QPy5eyI2~^?rO2|K?ef8=_uBcTRKCi6ta|?{ zT!Ac>X+e%Nuh0yZF}BKKhs=&a`WE}KUH(TmAs$6p1*YF@AFd~ z{QoEVM@RH!XuL{c(m5%atKYTRIN~jTYkxwVVsSfnl(ql)4vqIp^7AVvoZKMRq;p)R z+ruRxb&HL{>C%)G!xN0l54(tIGr#S2y!njDe0G!0TBUcf?*uwOo(YTT+}3LQK6i0U z#J7gfgUhB|I`XAI{?hNW%8Q!XvZ0iZT~|~^nBi!dra@h<`a__EWWkOJ^kSN#Zjs+TpHy{CGJl1SiJbu zmYW<31=59Gw|<@OS8i)=FLXG3WJZGeq0Pd~hh+;k2riz#zfWQEM3=T*Uaa2@wk8*p z>Rx2ITzvjjlkS4ACgCnhM=nn=*xltQ^;9dl<#L2#Nyxga+q!Rz&aGPA%(mpnsTZ@$ z<)8T-k5)SMSf$|BRQ|$eZ<$xKKl>+oW{IIvs$%ai!Ft=jox2;VRnzC19x+h1c45fy z^ATw3ytz!_bN`RkxrraASe>req$IG%<`c{RgI9SsOfgEAnQ+|wlZ9g7(V6dei5(U7 d`4Bkm&!YogY*UW9f485b6I7dXC{!<=5da@iXAJ-V literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js.map new file mode 100644 index 00000000..0f8ac179 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-RZNPNMPI.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/transformer/output/refiner/initial-contents/element.js"],"sourcesContent":["import { computed } from \"~/common/signal.js\";\nimport { OutputTransformer } from \"../../base.js\";\nimport { defineElement } from \"~/common/element.js\";\n\nimport {\n STARTING_SET_URIS,\n} from \"~/common/facets/constants.js\";\nimport { buildFacets } from \"~/common/facets/utils.js\";\n\n/**\n * @import {OutputManagerDeputy} from \"@specs/components/output/types.d.ts\"\n * @import {OutputConfiguratorElement} from \"@specs/components/configurator/output/types.d.ts\"\n */\n\n// Per-output \"initialized\" flag. Stored in localStorage keyed by the output id\n// so it is scoped per bucket/output, but deliberately kept OUT of the output's\n// own data: writing into a syncing output's collections (e.g. Dropbox via\n// dtob-dasl-sync) flows through its merge/sync pipeline, which is reactive\n// feedback that loops and freezes the page. localStorage is local-only control\n// state, so it's safe.\nconst STORAGE_KEY =\n \"diffuse/transformer/output/refiner/initial-contents/initialized\";\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @extends {OutputTransformer}\n */\nclass InitialContentsTransformer extends OutputTransformer {\n static NAME = \"diffuse/transformer/output/refiner/initial-contents\";\n\n constructor() {\n super();\n\n const base = this.base();\n\n // Mark initialized the first time real (non-empty) data is observed,\n // covering data arriving from another device via sync.\n this.effect(() => {\n const col = base.facets.collection();\n if (col.state !== \"loaded\") return;\n const data = Array.isArray(col.data) ? col.data : [];\n if (data.length === 0) return;\n this.#markInitialized();\n });\n\n /** @type {OutputManagerDeputy} */\n const manager = {\n facets: {\n ...base.facets,\n collection: computed(() => {\n const col = base.facets.collection();\n if (col.state !== \"loaded\") return col;\n\n // An empty backing output reports \"loaded\" with no data yet\n // (e.g. an indexed-db output returns undefined for a missing\n // key). Treat that as an empty collection.\n const data = Array.isArray(col.data) ? col.data : [];\n if (data.length > 0) {\n return { state: \"loaded\", data };\n }\n\n if (this.#isInitialized()) {\n return { state: \"loaded\", data };\n }\n\n // Determine starting set\n return { state: \"loaded\", data: buildFacets(STARTING_SET_URIS) };\n }),\n\n save: async (newFacets) => {\n // Persist the facets first so the resulting (non-empty) data is\n // visible before the initialized flag flips, avoiding a flash of\n // the empty collection while a fresh output pops its starting set.\n await base.facets.save(newFacets);\n this.#markInitialized();\n },\n },\n\n playlistItems: base.playlistItems,\n settings: base.settings,\n tracks: base.tracks,\n ready: base.ready,\n };\n\n this.facets = manager.facets;\n this.playlistItems = manager.playlistItems;\n this.settings = manager.settings;\n this.tracks = manager.tracks;\n this.ready = manager.ready;\n }\n\n // METHODS\n\n /**\n * The id of the current output, used to scope the \"initialized\" flag per\n * output. When connected to an output configurator this is the id of the\n * selected sub-output; when connected directly to an output element it is\n * that element's own id. Falls back to \"local\" (the default/local storage).\n */\n #selectedId() {\n const output = /** @type {OutputConfiguratorElement | undefined} */ (\n this.output.signal()\n );\n if (!output) return \"local\";\n return typeof output.selected === \"function\"\n ? output.selected()?.id ?? \"local\"\n : output.id || \"local\";\n }\n\n /**\n * Whether the current output is initialized.\n * @returns {boolean}\n */\n #isInitialized() {\n const id = this.#selectedId();\n try {\n const map = /** @type {Record} */ (\n JSON.parse(localStorage.getItem(STORAGE_KEY) ?? \"{}\")\n );\n return !!map?.[id];\n } catch {\n return false;\n }\n }\n\n /**\n * Mark the current output as initialized by updating its flag in the\n * in-memory map and persisting to localStorage.\n */\n #markInitialized() {\n const id = this.#selectedId();\n let map = /** @type {Record} */ ({});\n try {\n map = /** @type {Record} */ (\n JSON.parse(localStorage.getItem(STORAGE_KEY) ?? \"{}\")\n ) ?? {};\n } catch {}\n if (map[id]) return;\n\n map[id] = true;\n localStorage.setItem(STORAGE_KEY, JSON.stringify(map));\n }\n}\n\nexport default InitialContentsTransformer;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = InitialContentsTransformer;\nexport const NAME = \"dtor-initial-contents\";\n\ndefineElement(NAME, CLASS);"],"mappings":"uPAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAoBA,IAAMC,EACJ,kEASIC,EAAN,cAAyCC,CAAkB,CA9B3D,MA8B2D,CAAAC,EAAA,mCACzD,OAAO,KAAO,sDAEd,aAAc,CACZ,MAAM,EAEN,IAAMC,EAAO,KAAK,KAAK,EAIvB,KAAK,OAAO,IAAM,CAChB,IAAMC,EAAMD,EAAK,OAAO,WAAW,EAC/BC,EAAI,QAAU,WACL,MAAM,QAAQA,EAAI,IAAI,EAAIA,EAAI,KAAO,CAAC,GAC1C,SAAW,GACpB,KAAKC,GAAiB,CACxB,CAAC,EAGD,IAAMC,EAAU,CACd,OAAQ,CACN,GAAGH,EAAK,OACR,WAAYI,EAAS,IAAM,CACzB,IAAMH,EAAMD,EAAK,OAAO,WAAW,EACnC,GAAIC,EAAI,QAAU,SAAU,OAAOA,EAKnC,IAAMI,EAAO,MAAM,QAAQJ,EAAI,IAAI,EAAIA,EAAI,KAAO,CAAC,EACnD,OAAII,EAAK,OAAS,EACT,CAAE,MAAO,SAAU,KAAAA,CAAK,EAG7B,KAAKC,GAAe,EACf,CAAE,MAAO,SAAU,KAAAD,CAAK,EAI1B,CAAE,MAAO,SAAU,KAAME,EAAYC,CAAiB,CAAE,CACjE,CAAC,EAED,KAAMT,EAAA,MAAOU,GAAc,CAIzB,MAAMT,EAAK,OAAO,KAAKS,CAAS,EAChC,KAAKP,GAAiB,CACxB,EANM,OAOR,EAEA,cAAeF,EAAK,cACpB,SAAUA,EAAK,SACf,OAAQA,EAAK,OACb,MAAOA,EAAK,KACd,EAEA,KAAK,OAASG,EAAQ,OACtB,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,SAAWA,EAAQ,SACxB,KAAK,OAASA,EAAQ,OACtB,KAAK,MAAQA,EAAQ,KACvB,CAUAO,IAAc,CACZ,IAAMC,EACJ,KAAK,OAAO,OAAO,EAErB,OAAKA,EACE,OAAOA,EAAO,UAAa,WAC9BA,EAAO,SAAS,GAAG,IAAM,QACzBA,EAAO,IAAM,QAHG,OAItB,CAMAL,IAAiB,CACf,IAAMM,EAAK,KAAKF,GAAY,EAC5B,GAAI,CAIF,MAAO,CAAC,CAFN,KAAK,MAAM,aAAa,QAAQd,CAAW,GAAK,IAAI,IAEvCgB,CAAE,CACnB,MAAQ,CACN,MAAO,EACT,CACF,CAMAV,IAAmB,CACjB,IAAMU,EAAK,KAAKF,GAAY,EACxBG,EAA8C,CAAC,EACnD,GAAI,CACFA,EACE,KAAK,MAAM,aAAa,QAAQjB,CAAW,GAAK,IAAI,GACjD,CAAC,CACR,MAAQ,CAAC,CACLiB,EAAID,CAAE,IAEVC,EAAID,CAAE,EAAI,GACV,aAAa,QAAQhB,EAAa,KAAK,UAAUiB,CAAG,CAAC,EACvD,CACF,EAEOC,EAAQjB,EAMFkB,EAAQlB,EACRmB,EAAO,wBAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","STORAGE_KEY","InitialContentsTransformer","OutputTransformer","__name","base","col","#markInitialized","manager","computed","data","#isInitialized","buildFacets","STARTING_SET_URIS","newFacets","#selectedId","output","id","map","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-RZNPNMPI.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SIM5AC6S.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SIM5AC6S.js new file mode 100644 index 00000000..4540c9c5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SIM5AC6S.js @@ -0,0 +1,3 @@ +import{a as l}from"./chunk-BGNSH7PO.js";import{a as f}from"./chunk-GEJ7GEJO.js";import{a,e as s}from"./chunk-5AREERZ7.js";import{b as p}from"./chunk-ARPMZXXD.js";import{c}from"./chunk-VQAZGKWE.js";import{a as u}from"./chunk-BD6UIPEI.js";import{a as n}from"./chunk-75KFZLU6.js";var m="2026-08-23T00:00:00.000Z";function R(t){return l.flatMap(e=>t.includes(e.url)?[{$type:a,id:S("diffuse://"+e.url),createdAt:m,description:e.desc,enabled:!s.includes(e.url),kind:e.kind==="prelude"?"prelude":"interactive",name:e.title,tags:e.tags?.length?e.tags:void 0,updatedAt:m,uri:"diffuse://"+e.url}]:[])}n(R,"buildFacets");async function M({description:t,kind:e,name:T,tags:i,uri:d},{fetchHTML:I}){let r=I?await p(d):void 0,D=r?await u(85,new TextEncoder().encode(r)):void 0,o=new Date().toISOString();return{$type:"sh.diffuse.output.facet",createdAt:o,id:c(),cid:D,description:t,html:r,name:T,kind:e==="interactive"||e==="prelude"?e:void 0,tags:i?.length?i:void 0,updatedAt:o,uri:d}}n(M,"facetFromURI");function S(t){return f(new TextEncoder().encode(t)).toString(16).padStart(8,"0")}n(S,"uriToRkey");export{R as a,M as b}; + +//# sourceMappingURL=./chunk-SIM5AC6S.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SIM5AC6S.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SIM5AC6S.js.br new file mode 100644 index 0000000000000000000000000000000000000000..22302f3c021b1155eaf05611cefb85ade5aba86b GIT binary patch literal 556 zcmb0RXJL3!_x?-0ef-U{58irN8wOpUxw)WnX{pn*pTBort?w>f_$Dr=dsRnVQBhxdI_mAGk3Rnj8bv){7Tu`cvw!_J4z=PMYb{$dt8&u@hc`Q7Z1-mJ zX6y1tJUHiP_4W9>vzlv}7gq9_DW?a`{Cwr%#ZoopXpbkx{SP*qmYtmQsCCawgU)C3 zq6|+xoh$I#(oJcbaa_f(+jVPSSg*X0QF+v1wn2~bq?aadeoLKN9#T})mnOa`ZR@fL zDuynuTW_p>nzp4$YtF3JX)0E4cgFCAO;h{myzrankE%cFq86V$8@Nr?Js+qum56qi_DO zh<|w+dwKh6U6Z{zlHymy)2E$(7WHh|o~Y113Guv}yQE|qIM#nHFgopIBBrwX(3{l6 z3zPYbDmAZPW_&Cmp}YE1vE`j f.kind === \"prelude\")) throw new Error(\"base preludes should be preludes\");\n * if (facets.some((f) => !f.id)) throw new Error(\"every facet needs an id\");\n * ```\n */\n\nexport function buildFacets(uris) {\n return facetsData.flatMap((facet) => {\n if (!uris.includes(facet.url)) return [];\n\n return [{\n $type: TYPE,\n id: uriToRkey(\"diffuse://\" + facet.url),\n createdAt: SEED_TIMESTAMP,\n description: facet.desc,\n enabled: STARTING_SET_DISABLED.includes(facet.url) ? false : true,\n kind: facet.kind === \"prelude\" ? \"prelude\" : \"interactive\",\n name: facet.title,\n tags: facet.tags?.length ? facet.tags : undefined,\n updatedAt: SEED_TIMESTAMP,\n uri: \"diffuse://\" + facet.url,\n }];\n });\n}\n\n/**\n * @param {{ description?: string; kind: string | undefined; name: string; tags?: string[]; uri: string }} _args\n * @param {{ fetchHTML: boolean }} options\n *\n * @example Creates a facet with correct $type, name, uri, id, and timestamps\n * ```js\n * import { facetFromURI } from \"~/common/facets/utils.js\";\n *\n * const facet = await facetFromURI({ name: \"My Facet\", uri: \"facets/test/index.html\", kind: undefined, description: undefined }, { fetchHTML: false });\n *\n * if (facet.$type !== \"sh.diffuse.output.facet\") throw new Error(\"$type should be sh.diffuse.output.facet\");\n * if (facet.name !== \"My Facet\") throw new Error(\"name should be preserved\");\n * if (facet.uri !== \"facets/test/index.html\") throw new Error(\"uri should be preserved\");\n * if (typeof facet.id !== \"string\" || facet.id.length === 0) throw new Error(\"id should be a non-empty string\");\n * if (!facet.createdAt) throw new Error(\"createdAt should be set\");\n * if (facet.createdAt !== facet.updatedAt) throw new Error(\"createdAt and updatedAt should match\");\n * if (new Date(facet.createdAt).toISOString() !== facet.createdAt) throw new Error(\"createdAt should be a valid ISO string\");\n * ```\n *\n * @example fetchHTML false leaves html and cid undefined; kind is validated\n * ```js\n * import { facetFromURI } from \"~/common/facets/utils.js\";\n *\n * const base = { name: \"Test\", uri: \"test.html\", description: undefined };\n *\n * const noHtml = await facetFromURI({ ...base, kind: undefined }, { fetchHTML: false });\n * if (noHtml.html !== undefined) throw new Error(\"html should be undefined when fetchHTML is false\");\n * if (noHtml.cid !== undefined) throw new Error(\"cid should be undefined when fetchHTML is false\");\n *\n * const prelude = await facetFromURI({ ...base, kind: \"prelude\" }, { fetchHTML: false });\n * if (prelude.kind !== \"prelude\") throw new Error(\"prelude kind should be preserved\");\n *\n * const interactive = await facetFromURI({ ...base, kind: \"interactive\" }, { fetchHTML: false });\n * if (interactive.kind !== \"interactive\") throw new Error(\"interactive kind should be preserved\");\n *\n * const unknown = await facetFromURI({ ...base, kind: \"unknown\" }, { fetchHTML: false });\n * if (unknown.kind !== undefined) throw new Error(\"unrecognised kind should be set to undefined\");\n * ```\n *\n * @example Generates unique ids across calls\n * ```js\n * import { facetFromURI } from \"~/common/facets/utils.js\";\n *\n * const a = await facetFromURI({ name: \"A\", uri: \"a.html\", kind: undefined, description: undefined }, { fetchHTML: false });\n * const b = await facetFromURI({ name: \"B\", uri: \"b.html\", kind: undefined, description: undefined }, { fetchHTML: false });\n * if (a.id === b.id) throw new Error(\"ids should be unique across calls\");\n * ```\n */\nexport async function facetFromURI(\n { description, kind, name, tags, uri },\n { fetchHTML },\n) {\n const html = fetchHTML ? await loadURI(uri) : undefined;\n const cid = html\n ? await CID.create(0x55, new TextEncoder().encode(html))\n : undefined;\n const timestamp = new Date().toISOString();\n\n /** @type {Facet} */\n const facet = {\n $type: \"sh.diffuse.output.facet\",\n createdAt: timestamp,\n id: TID.now(),\n cid,\n description,\n html,\n name,\n kind: kind === \"interactive\" || kind === \"prelude\" ? kind : undefined,\n tags: tags?.length ? tags : undefined,\n updatedAt: timestamp,\n uri,\n };\n\n return facet;\n}\n\n/** @param {string} uri */\nfunction uriToRkey(uri) {\n return xxh32r(new TextEncoder().encode(uri)).toString(16).padStart(8, \"0\");\n}\n"],"mappings":"qRAgBA,IAAMA,EAAiB,2BAyBhB,SAASC,EAAYC,EAAM,CAChC,OAAOC,EAAW,QAASC,GACpBF,EAAK,SAASE,EAAM,GAAG,EAErB,CAAC,CACN,MAAOC,EACP,GAAIC,EAAU,aAAeF,EAAM,GAAG,EACtC,UAAWJ,EACX,YAAaI,EAAM,KACnB,QAAS,CAAAG,EAAsB,SAASH,EAAM,GAAG,EACjD,KAAMA,EAAM,OAAS,UAAY,UAAY,cAC7C,KAAMA,EAAM,MACZ,KAAMA,EAAM,MAAM,OAASA,EAAM,KAAO,OACxC,UAAWJ,EACX,IAAK,aAAeI,EAAM,GAC5B,CAAC,EAbqC,CAAC,CAcxC,CACH,CAjBgBI,EAAAP,EAAA,eAmEhB,eAAsBQ,EACpB,CAAE,YAAAC,EAAa,KAAAC,EAAM,KAAAC,EAAM,KAAAC,EAAM,IAAAC,CAAI,EACrC,CAAE,UAAAC,CAAU,EACZ,CACA,IAAMC,EAAOD,EAAY,MAAME,EAAQH,CAAG,EAAI,OACxCI,EAAMF,EACR,MAAUG,EAAO,GAAM,IAAI,YAAY,EAAE,OAAOH,CAAI,CAAC,EACrD,OACEI,EAAY,IAAI,KAAK,EAAE,YAAY,EAiBzC,MAdc,CACZ,MAAO,0BACP,UAAWA,EACX,GAAQC,EAAI,EACZ,IAAAH,EACA,YAAAR,EACA,KAAAM,EACA,KAAAJ,EACA,KAAMD,IAAS,eAAiBA,IAAS,UAAYA,EAAO,OAC5D,KAAME,GAAM,OAASA,EAAO,OAC5B,UAAWO,EACX,IAAAN,CACF,CAGF,CA1BsBN,EAAAC,EAAA,gBA6BtB,SAASH,EAAUQ,EAAK,CACtB,OAAOQ,EAAO,IAAI,YAAY,EAAE,OAAOR,CAAG,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAC3E,CAFSN,EAAAF,EAAA","names":["SEED_TIMESTAMP","buildFacets","uris","facets_default","facet","TYPE","uriToRkey","STARTING_SET_DISABLED","__name","facetFromURI","description","kind","name","tags","uri","fetchHTML","html","loadURI","cid","create","timestamp","now","xxh32r"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-SIM5AC6S.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js new file mode 100644 index 00000000..a76d7bd4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js @@ -0,0 +1,3 @@ +import{c as h}from"./chunk-Z642TAXO.js";import{a as i}from"./chunk-4M37HRVT.js";import{b as r,e}from"./chunk-IA3NIKPO.js";import{a as o,c as u}from"./chunk-75KFZLU6.js";var a={};u(a,{CLASS:()=>p,NAME:()=>c,default:()=>l});var t=class extends r{static{o(this,"HttpsInput")}static NAME="diffuse/input/https";static WORKER_URL="components/input/https/worker.js";SCHEME=i;constructor(){super(),this.proxy=this.workerProxy(),this.artwork=this.proxy.artwork,this.consult=this.proxy.consult,this.detach=this.proxy.detach,this.groupConsult=this.proxy.groupConsult,this.list=this.proxy.list,this.resolve=this.proxy.resolve}sources(n){return Object.values(h(n)).map(s=>({label:s,uri:`https://${s}`}))}},l=t,p=t,c="di-https";e(c,p);export{l as a,p as b,c,a as d}; + +//# sourceMappingURL=./chunk-SL4KJ27C.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js.br new file mode 100644 index 0000000000000000000000000000000000000000..bdfff651e3ddf24982a1119528b286cb4b901665 GIT binary patch literal 405 zcmb3Cz{HTUz#CN_} z?d@qE2MhY`UaBtL{+w;`q#GQmZby0?#sB{}%Dt)Z^P3ZTb9?kx%{I(`xSmO@Lqg53 zXvT?>wAHK=(gXt5o8HYzy7Jb4(JZ?gEXR1KdVY=GebC7F%2R&9wk-w8t^(KCul}?- zU$jA_A+YquoLfc~A}gmkTV@OYI9?&-e3Zpla}6cD!aa|8z8P|A8a6 zjqzP8GtJj^~Ygjz4NB7$oHC4CH%T=)N9X3J??oN zYnWiDvr+M4bR|#Ti8Jw^e&)pq)H(U+PkF4t%BP~xz;YsWlJeHf)oXZ|)-AAG$tvT* P;;6$Y8K4`K@sJq+xo@{s literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js.map new file mode 100644 index 00000000..8e091cbf --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SL4KJ27C.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/input/https/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\nimport { SCHEME } from \"./constants.js\";\nimport { hostsFromTracks } from \"./common.js\";\n\n/**\n * @import {InputActions, InputSchemeProvider} from \"@specs/components/input/types.d.ts\"\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {Track} from \"~/definitions/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n * @implements {InputSchemeProvider}\n */\nclass HttpsInput extends DiffuseElement {\n static NAME = \"diffuse/input/https\";\n static WORKER_URL = \"components/input/https/worker.js\";\n\n SCHEME = SCHEME;\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n this.proxy = this.workerProxy();\n\n this.artwork = this.proxy.artwork;\n this.consult = this.proxy.consult;\n this.detach = this.proxy.detach;\n this.groupConsult = this.proxy.groupConsult;\n this.list = this.proxy.list;\n this.resolve = this.proxy.resolve;\n }\n\n // 🛠️\n\n /** @param {Track[]} tracks */\n sources(tracks) {\n const hosts = Object.values(hostsFromTracks(tracks));\n\n return hosts.map((host) => ({\n label: host,\n uri: `https://${host}`,\n }));\n }\n}\n\nexport default HttpsInput;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = HttpsInput;\nexport const NAME = \"di-https\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"yKAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAkBA,IAAMC,EAAN,cAAyBC,CAAe,CAlBxC,MAkBwC,CAAAC,EAAA,mBACtC,OAAO,KAAO,sBACd,OAAO,WAAa,mCAEpB,OAASC,EAET,aAAc,CACZ,MAAM,EAGN,KAAK,MAAQ,KAAK,YAAY,EAE9B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,OAAS,KAAK,MAAM,OACzB,KAAK,aAAe,KAAK,MAAM,aAC/B,KAAK,KAAO,KAAK,MAAM,KACvB,KAAK,QAAU,KAAK,MAAM,OAC5B,CAKA,QAAQC,EAAQ,CAGd,OAFc,OAAO,OAAOC,EAAgBD,CAAM,CAAC,EAEtC,IAAKE,IAAU,CAC1B,MAAOA,EACP,IAAK,WAAWA,CAAI,EACtB,EAAE,CACJ,CACF,EAEOC,EAAQP,EAMFQ,EAAQR,EACRS,EAAO,WAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","HttpsInput","DiffuseElement","__name","SCHEME","tracks","hostsFromTracks","host","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-SL4KJ27C.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js new file mode 120000 index 00000000..16ea026c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-SVXEMCXP.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js.br new file mode 120000 index 00000000..cc954ca2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-SVXEMCXP.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js.map new file mode 120000 index 00000000..2f31f94b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-SVXEMCXP.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-SVXEMCXP.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js new file mode 100644 index 00000000..477383d7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js @@ -0,0 +1,3 @@ +import{c as r}from"./chunk-VQAZGKWE.js";import{a as i}from"./chunk-75KFZLU6.js";function s(t){let e=["toLowerCase"],a=new Date().toISOString();return{$type:"sh.diffuse.output.playlistItem",id:r(),playlist:"Favourites",criteria:[{field:"tags.artist",value:t.tags?.artist,transformations:e},{field:"tags.title",value:t.tags?.title,transformations:e}],createdAt:a,updatedAt:a}}i(s,"createFavouriteItem");function l(t){return t.filter(e=>e.playlist==="Favourites")}i(l,"filterFavourites");export{s as a,l as b}; + +//# sourceMappingURL=./chunk-T35PKO5E.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js.br new file mode 100644 index 0000000000000000000000000000000000000000..1f333759abc098af8c529ad938b873e5a97880a8 GIT binary patch literal 283 zcmb3C&B&1QzxeaHr&q*}9D2@jyG}iCYQSWcjjglo4tOwozue>fac4-0Tt=g+T>4X? zBUa}VGM{i&8Fseah_q@u>b6tvk5I_{kH<5wRM%Sku-RQ@9jMrx$t~vAa7!X)Ze84d zo}H}!PwHmsCkr)~?Q_`lI>+nj#G@?s8E^kMoKV?av8(#m&K9ohNbdtXuOHY~)O<1H z%#w!skjk91j~kvkX)yA{#BRH_qT)h9mhYxQNe;t=3ogI1Uv68eIOo?XE!70ZC5;(@ zr{bo5C<}^o2yuvuyey@D;PlEPDpPzqKR55W%zRO-Y5A|WU#&6>n^?E!o?06#t#rg> r@(qE~64&msGR`B3>FLK`msQJdNn&~3sArT})^K29YoYPR>uIb2Uj&M{ literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js.map new file mode 100644 index 00000000..af4f6252 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-T35PKO5E.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/orchestrator/favourites/common.js"],"sourcesContent":["import * as TID from \"@atcute/tid\";\n\n/**\n * @import {PlaylistItem, Track} from \"~/definitions/types.d.ts\"\n */\n\n/**\n * Create a favourites playlist item from a track.\n * @param {Track} track\n * @returns {PlaylistItem}\n */\nexport function createFavouriteItem(track) {\n const transformations = [\"toLowerCase\"];\n const now = new Date().toISOString();\n\n return /** @type {PlaylistItem} */ ({\n $type: \"sh.diffuse.output.playlistItem\",\n id: TID.now(),\n playlist: \"Favourites\",\n criteria: [\n {\n field: \"tags.artist\",\n value: /** @type {unknown} */ (track.tags?.artist),\n transformations,\n },\n {\n field: \"tags.title\",\n value: /** @type {unknown} */ (track.tags?.title),\n transformations,\n },\n ],\n createdAt: now,\n updatedAt: now,\n });\n}\n\n/**\n * Filter playlist items that belong to the favourites playlist.\n *\n * @param {import(\"~/definitions/types.d.ts\").PlaylistItem[]} playlistItems\n * @returns {import(\"~/definitions/types.d.ts\").PlaylistItem[]}\n */\nexport function filterFavourites(playlistItems) {\n return playlistItems.filter((item) => item.playlist === \"Favourites\");\n}\n"],"mappings":"gFAWO,SAASA,EAAoBC,EAAO,CACzC,IAAMC,EAAkB,CAAC,aAAa,EAChCC,EAAM,IAAI,KAAK,EAAE,YAAY,EAEnC,MAAoC,CAClC,MAAO,iCACP,GAAQA,EAAI,EACZ,SAAU,aACV,SAAU,CACR,CACE,MAAO,cACP,MAA+BF,EAAM,MAAM,OAC3C,gBAAAC,CACF,EACA,CACE,MAAO,aACP,MAA+BD,EAAM,MAAM,MAC3C,gBAAAC,CACF,CACF,EACA,UAAWC,EACX,UAAWA,CACb,CACF,CAvBgBC,EAAAJ,EAAA,uBA+BT,SAASK,EAAiBC,EAAe,CAC9C,OAAOA,EAAc,OAAQC,GAASA,EAAK,WAAa,YAAY,CACtE,CAFgBH,EAAAC,EAAA","names":["createFavouriteItem","track","transformations","now","__name","filterFavourites","playlistItems","item"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-T35PKO5E.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js new file mode 120000 index 00000000..9e93c40a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-TI42YQ3Z.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js.br new file mode 120000 index 00000000..b0167c4f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-TI42YQ3Z.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js.map new file mode 120000 index 00000000..b44734cf --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI42YQ3Z.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-TI42YQ3Z.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI4M42VH.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI4M42VH.js new file mode 100644 index 00000000..ca5e74d7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI4M42VH.js @@ -0,0 +1,3 @@ +import{b as a}from"./chunk-ARPMZXXD.js";import{a as r}from"./chunk-75KFZLU6.js";async function u(l,n){n??=document.body;let o=document.createRange();o.selectNode(n);let d=l.filter(e=>e.kind==="prelude"&&e.enabled!==!1).sort((e,t)=>e.name.localeCompare(t.name));for(let e of d){let t=e.html??(e.uri?await a(e.uri):"");if(!t)continue;let c=o.createContextualFragment(t);n.append(c)}}r(u,"insertPreludes");export{u as a}; + +//# sourceMappingURL=./chunk-TI4M42VH.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI4M42VH.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TI4M42VH.js.br new file mode 100644 index 0000000000000000000000000000000000000000..3a18f8151457c0bd55aad7f815b5e07a0d89226d GIT binary patch literal 284 zcmb1M#K@2m>HGih9t$mRwV9m4pX0eQW&IL9AI`SB(&$_GcVfhr?H<sK4pM?W_; zo3SAH{OuP70tfS>3zz=5|6}p8$lKm^7MsiKtH1vHRprs_HG5+Rr|Py{HHClber`E5 zA&f(JCClQ>{{407>8Dw}H``y~dw07>Wz_{eBVmj0<}q0g!Wx-Je^^;C_OrF#mYVo~ zx#PBNt!=gMw{6>25_d|&^5WWQ1$P=wZ`-!1a!Kqu$4M_cqN?P$9Uq^}zwDzaVBOZS zOxSA%dk2^7(+}I_j_EGciMV@{abd`}@*k6b2NoLcSZF$V*`^M&A2+^x#+-c{#^GT% um4AQIql<+n?|Ni+Wc+z($t?E&zqiNbS@G|3H5Pj f.kind === \"prelude\" && f.enabled !== false)\n .sort((a, b) => a.name.localeCompare(b.name));\n\n for (const prelude of preludes) {\n const html = prelude.html ??\n (prelude.uri ? await loadURI(prelude.uri) : \"\");\n if (!html) continue;\n const preludeFragment = range.createContextualFragment(html);\n container.append(preludeFragment);\n }\n}\n"],"mappings":"gFAUA,eAAsBA,EAAeC,EAAQC,EAAW,CACtDA,IAAc,SAAS,KAEvB,IAAMC,EAAQ,SAAS,YAAY,EACnCA,EAAM,WAAWD,CAAS,EAE1B,IAAME,EAAWH,EACd,OAAQI,GAAMA,EAAE,OAAS,WAAaA,EAAE,UAAY,EAAK,EACzD,KAAK,CAACC,EAAGC,IAAMD,EAAE,KAAK,cAAcC,EAAE,IAAI,CAAC,EAE9C,QAAWC,KAAWJ,EAAU,CAC9B,IAAMK,EAAOD,EAAQ,OAClBA,EAAQ,IAAM,MAAME,EAAQF,EAAQ,GAAG,EAAI,IAC9C,GAAI,CAACC,EAAM,SACX,IAAME,EAAkBR,EAAM,yBAAyBM,CAAI,EAC3DP,EAAU,OAAOS,CAAe,CAClC,CACF,CAjBsBC,EAAAZ,EAAA","names":["insertPreludes","facets","container","range","preludes","f","a","b","prelude","html","loadURI","preludeFragment","__name"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-TI4M42VH.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js new file mode 120000 index 00000000..9bd7b8ab --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-TVBOGSPT.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js.br new file mode 120000 index 00000000..5a8a4816 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-TVBOGSPT.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js.map new file mode 120000 index 00000000..fc537209 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TVBOGSPT.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-TVBOGSPT.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TYJ2UPEO.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TYJ2UPEO.js new file mode 100644 index 00000000..a7fd8af9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TYJ2UPEO.js @@ -0,0 +1,3 @@ +import{c as l,e as r}from"./chunk-IA3NIKPO.js";import{o as f}from"./chunk-XILA3E7E.js";import{a as t,c as u}from"./chunk-75KFZLU6.js";var c={};u(c,{CLASS:()=>i,NAME:()=>o,default:()=>h});var s=class extends l{static{t(this,"RepeatShuffleEngine")}static NAME="diffuse/engine/repeat-shuffle";#e=f(!1);#t=f(!1);repeat=this.#e.get;shuffle=this.#t.get;connectedCallback(){if(this.hasAttribute("group")){let a=this.broadcast(this.identifier,{setRepeat:{strategy:"replicate",fn:this.setRepeat},setShuffle:{strategy:"replicate",fn:this.setShuffle}});a&&(this.setRepeat=a.setRepeat,this.setShuffle=a.setShuffle)}super.connectedCallback();let e=`${this.constructor.prototype.constructor.NAME}/${this.group}`;this.#e.value=localStorage.getItem(`${e}/repeat`)==="true",this.#t.value=localStorage.getItem(`${e}/shuffle`)==="true",this.effect(()=>localStorage.setItem(`${e}/repeat`,this.#e.value?"true":"false")),this.effect(()=>localStorage.setItem(`${e}/shuffle`,this.#t.value?"true":"false"))}setRepeat=t(async e=>this.#e.value=e,"setRepeat");setShuffle=t(async e=>this.#t.value=e,"setShuffle")},h=s,i=s,o="de-repeat-shuffle";r(o,i);export{h as a,i as b,o as c,c as d}; + +//# sourceMappingURL=./chunk-TYJ2UPEO.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TYJ2UPEO.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-TYJ2UPEO.js.br new file mode 100644 index 0000000000000000000000000000000000000000..a6ffe52eec8eb2482d188731b28fea446105bc64 GIT binary patch literal 498 zcmb1cV_`^%o%O#iZsqO`PrR+nijGIEzi=dG$HoQ1h9$oH*{d(HR~^}&w<rOWJk@i)O6B4l6=`{=xRA5g7u>eGAHUOb|DN4v zt>w0GNu1lbNh1Gw_;2mw(#H=(G-l2CEGi(KJzZTs{QT=Bm-nx*Q2V=7tE)ZycYptF zuFB&V&;I*bcu6v-du4`s=Y+oJZy%hLJpah?5nxGg3jVf&t2)fbEph570)oX5!-<@LlX>XYQj+d^B|CiAnlF;xc1 z&x$+$(6aU7&23Yk^nU!^*fou*Viu#}HCi21+S)U z`M)huY4N<(eN2p-n%}lh_Er1zs9lg*xyIFN#o0f5jJ6+Dv+dvVqDbxVArmgKr}G3# z!;23+%`v(3Ir#U5f=R_Yx3?TQ<=M*hbc4cFDWCMD%X)F3\n localStorage.setItem(\n `${storagePrefix}/repeat`,\n this.#repeat.value ? \"true\" : \"false\",\n )\n );\n\n this.effect(() =>\n localStorage.setItem(\n `${storagePrefix}/shuffle`,\n this.#shuffle.value ? \"true\" : \"false\",\n )\n );\n }\n\n // ACTIONS\n\n /** @param {boolean} bool */\n setRepeat = async (bool) => this.#repeat.value = bool;\n\n /** @param {boolean} bool */\n setShuffle = async (bool) => this.#shuffle.value = bool;\n}\n\nexport default RepeatShuffleEngine;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = RepeatShuffleEngine;\nexport const NAME = \"de-repeat-shuffle\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"sIAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAOA,IAAMC,EAAN,cAAkCC,CAA4B,CAP9D,MAO8D,CAAAC,EAAA,4BAC5D,OAAO,KAAO,gCAIdC,GAAUC,EAAO,EAAK,EACtBC,GAAWD,EAAO,EAAK,EAEvB,OAAS,KAAKD,GAAQ,IACtB,QAAU,KAAKE,GAAS,IAOxB,mBAAoB,CAElB,GAAI,KAAK,aAAa,OAAO,EAAG,CAC9B,IAAMC,EAAU,KAAK,UAAU,KAAK,WAAY,CAC9C,UAAW,CAAE,SAAU,YAAa,GAAI,KAAK,SAAU,EACvD,WAAY,CAAE,SAAU,YAAa,GAAI,KAAK,UAAW,CAC3D,CAAC,EAEGA,IACF,KAAK,UAAYA,EAAQ,UACzB,KAAK,WAAaA,EAAQ,WAE9B,CAGA,MAAM,kBAAkB,EAGxB,IAAMC,EACJ,GAAG,KAAK,YAAY,UAAU,YAAY,IAAI,IAAI,KAAK,KAAK,GAE9D,KAAKJ,GAAQ,MACX,aAAa,QAAQ,GAAGI,CAAa,SAAS,IAAM,OACtD,KAAKF,GAAS,MACZ,aAAa,QAAQ,GAAGE,CAAa,UAAU,IAAM,OAKvD,KAAK,OAAO,IACV,aAAa,QACX,GAAGA,CAAa,UAChB,KAAKJ,GAAQ,MAAQ,OAAS,OAChC,CACF,EAEA,KAAK,OAAO,IACV,aAAa,QACX,GAAGI,CAAa,WAChB,KAAKF,GAAS,MAAQ,OAAS,OACjC,CACF,CACF,CAKA,UAAYH,EAAA,MAAOM,GAAS,KAAKL,GAAQ,MAAQK,EAArC,aAGZ,WAAaN,EAAA,MAAOM,GAAS,KAAKH,GAAS,MAAQG,EAAtC,aACf,EAEOC,EAAQT,EAMFU,EAAQV,EACRW,EAAO,oBAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","RepeatShuffleEngine","BroadcastableDiffuseElement","__name","#repeat","signal","#shuffle","actions","storagePrefix","bool","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-TYJ2UPEO.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-U55EMLDH.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-U55EMLDH.js new file mode 100644 index 00000000..16a28be9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-U55EMLDH.js @@ -0,0 +1,3 @@ +import{b as p}from"./chunk-CR6GBUUD.js";import{b as m,d as y}from"./chunk-JZBHDDIW.js";import{a as d,b as u,d as l}from"./chunk-ELB3AQIW.js";import{a as c}from"./chunk-75KFZLU6.js";function h(e,r){return e.map(t=>{if(typeof t!="object"||t===null||Array.isArray(t))return t;let n={...t};for(let s of r.steps){let o=s;if(o?.rename_field){let a=o.rename_field.old,i=o.rename_field.new;a in n&&(n[i]=n[a],delete n[a])}else if(o?.remove_field){let a=o.remove_field.name;delete n[a]}else if(o?.add_field){let a=o.add_field.name;a in n||(n[a]=j(o.add_field.kind))}}return n})}c(h,"project");function x(e,r,t){let n=e.envelope,s=n?.$schemaHistory??[];if(!n||n.$schema===r)return{data:e.data,history:s};let o=t(n.$schema,r,{history:s});return o?{data:h(S(n),o),history:[...s,{from:n.$schema,to:r,lens:o,complement:null}]}:{data:e.data,history:s}}c(x,"migrate");function g(e,r,t){let n=l(r),{data:s,envelope:o}=u(e,{$schema:n}),a=o;if(!a||a.$schema===n)return{data:s,envelope:a};let i=x({data:s,envelope:a},n,t),f={...a,$schema:n,$schemaHistory:i.history,data:i.data};return{data:i.data,envelope:f}}c(g,"migrateEnvelope");function $(e,r){return d(e,{schema:l(r)})}c($,"encodeCollection");function v(e,r){if(e==null)return null;let{data:t}=g(e,r,p);return t}c(v,"decodeCollection");function A(e,r,t=!1){let n=JSON.stringify($(e,r));return t?new TextEncoder().encode(n):n}c(A,"encodeJsonCollection");function T(e,r){try{let t;if(e instanceof Uint8Array)t=JSON.parse(new TextDecoder().decode(e));else{if(e==null)return[];typeof e=="string"?t=JSON.parse(e):t=e}return b(v(t,r))}catch(t){return console.error(t),[]}}c(T,"decodeJsonCollection");function b(e){return Array.isArray(e)?e:[]}c(b,"normalizeCollection");async function C(e,{lens:r,toLexicon:t,complement:n}){if(!n||!t)return h([e],r)[0];let s=await m(t),o=typeof n=="string"?N(n):n;return y(r,s,e,o)}c(C,"writeBack");async function J(e,r,t,n){if(!t||t.$schema===l(r))return e;let s=t.$schemaHistory[t.$schemaHistory.length-1],o=s?.lens,a=s?.complement;return!o||!a||!n?e:await Promise.all(e.map(f=>C(f,{lens:o,toLexicon:n,complement:a})))}c(J,"writeBackCollection");function _(e,r){if(e==null)return null;let t=e;e instanceof Uint8Array?t=JSON.parse(new TextDecoder().decode(e)):typeof e=="string"&&(t=JSON.parse(e));let{envelope:n}=u(t,{$schema:l(r)});return n}c(_,"readStoredEnvelope");async function k(e,r,t,n=!1){let s=_(t,r),o=await J(e,r,s,void 0);return A(o,r,n)}c(k,"saveJsonCollection");function N(e){let r=atob(e),t=new Uint8Array(r.length);for(let n=0;nTM-u!fkKj?I(Q1)BS@VuGJ(hYZMzrB24 zPGISYKQ60yJr9;$iSl08Ca}=ZQZ!Lxk=t~`l^;KTO$dI<&at)cNS=4`7;_eSaaQF$@l7LRvIUti^YZ-Uqw1vjgNz1*hFt)jf=4)?8l zA3r1QPwUf_v(+A$txdSFW9##{m2-4W=WRYEtFw{iSzFM~rGJ8YH~r;~zI5dI7S81@ zCyUmWZ|3QgOpi5RtGU>Cp4z+b5!s9VT^_$&)6@24z7WgSlS|%c#BX5wT$XsGkVkmN ztAOB{ds^fVa5Y!?=54vg={`r-;61;WfuQ-3lPr5~*pz5lEIfENv1oR$hvm*@Z=Lhg z>IH8uo7d%QJDNk#e7s=QO8(Ra=*(wF(N-g4reSC4Nbe$1P}Rh`=@a6yH`Ct-Tb zAK`4qM*%Bs%6~Izw7hI+{qKBtV@=x0YtJ?XbKF_-gzwzOH=T_?X3kzyR`y#|&n{_i z!j8WMtX3ON+zT>}6|sLA6xaE-Z^0HO;l`;C?;JGlee(Wt8C%a$`>jTvd#Z%H_M3*> z33F5}pQ-)j^k$n={#mL{3%^Ej{h1vvbWNXQNr>pj%Mqt8Z3(qnquO11JLcMy%^s2) zMIIbvozuL+_f+^yiwQc9l=f~?Y1GJx;_;}Ds%-OWW_8Z&`ciGaa+c5KXMAE2dcn~@ zvg-@==d~|nk6TgDbNNY!klm%HTDxv~oar)3Nl3eR?ul+GC+}7XZM7-ayVvY4i0fKw zHYTK8fcfG3j|KL(mQ{mabsvn?QaG?15+M^=-*{4ZGiYRcaPE!1qc~C{=T+k$$ z={Zs-`KB&fd|Q`o_AB*dr|_O%7zqJ)&D~}vd(Na{u8P`yC6$+Z%IA_wB*G^B?|rX>e}(;C|te>G_$~KPKMY&=_LhY%nMDsdh}kq5t<@#w;olJk%yL zoo()_+o9q&FSoQueOTH&Q9WkSrDCb>=oK2vt)*s93n_cDxA2TW5fA4Lg_T^fm)7Z= z-V(ac>3)X0*NPC)*lF{hdM`eF+I}VLya3sELALXPTh6awtPfKE(G>Nl`qX2a%+}X2 GcNqXB|4S4A literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-U55EMLDH.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-U55EMLDH.js.map new file mode 100644 index 00000000..035eeacd --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-U55EMLDH.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/common/lens.js"],"sourcesContent":["/**\n * Migration projection engine: applying authored lens documents to records.\n *\n * Lens documents (see `~/common/lens-registry.js`) describe transitions between\n * lexicon NSIDs as schema-independent steps. In keeping with atproto's lexicon\n * model, the NSID is the schema identity: compatible evolution keeps the same\n * NSID, while a breaking change is a NEW NSID with an authored lens from the old\n * NSID to the new one. This engine projects records from one NSID's shape to\n * another without the panproto WASM engine for the common, reversible cases\n * (renames, additive fields). Use `migrate()` for that projection.\n *\n * Wild/disruptive changes (e.g. dropping a field where the discarded value must\n * be written back) are handled losslessly via the panproto complement machinery\n * (see the design doc, open item #1); the pure-step projection here covers the\n * additive/rename migrations diffuse actually ships.\n *\n * @import {LensDocument} from \"~/common/lens-registry.js\"\n */\n\nimport { collectionSchema, unwrap, wrap } from \"./self-describing.js\";\nimport { resolve } from \"./lens-registry.js\";\nimport { put as panprotoPut, parseLexicon } from \"./panproto.js\";\n\n/**\n * Project a collection of records from one NSID's shape to another using a lens\n * document's steps.\n *\n * Supports the DSL document steps diffuse authors: `rename_field`, `add_field`,\n * `remove_field`. Records are plain objects; unknown steps are left as-is.\n *\n * @param {unknown[]} records\n * @param {LensDocument} lens\n * @returns {unknown[]}\n *\n * @example Renames a field and adds a defaulted field\n * ```ts\n * import { project } from \"~/common/lens.js\";\n *\n * const out = project(\n * [{ $type: \"sh.diffuse.output.facet\", id: \"a\", name: \"x\", favourite: true }],\n * {\n * id: \"f\", source: \"sh.diffuse.output.facet\", target: \"sh.diffuse.output.facet2\",\n * steps: [\n * { rename_field: { old: \"favourite\", new: \"starred\" } },\n * { add_field: { parent: \"sh.diffuse.output.facet2:body\", name: \"description\", kind: \"string\" } },\n * ],\n * },\n * );\n * const rec = out[0] as Record;\n * if (!(\"starred\" in rec)) throw new Error(\"expected renamed field\");\n * if (\"favourite\" in rec) throw new Error(\"old field should be gone\");\n * if (!(\"description\" in rec)) throw new Error(\"expected added field\");\n * ```\n *\n * @example Remove a field\n * ```ts\n * import { project } from \"~/common/lens.js\";\n *\n * const out = project([{ id: \"a\", dropped: true }], {\n * id: \"f\", source: \"s\", target: \"t\",\n * steps: [{ remove_field: { name: \"dropped\" } }],\n * });\n * if (\"dropped\" in (out[0] as Record)) throw new Error(\"expected removed\");\n * ```\n */\nexport function project(records, lens) {\n return records.map((record) => {\n if (typeof record !== \"object\" || record === null || Array.isArray(record)) {\n return record;\n }\n /** @type {Record} */\n const rec = { .../** @type {Record} */ (record) };\n\n for (const step of lens.steps) {\n const s = /** @type {any} */ (step);\n if (s?.rename_field) {\n const oldName = /** @type {string} */ (s.rename_field.old);\n const newName = /** @type {string} */ (s.rename_field.new);\n if (oldName in rec) {\n rec[newName] = rec[oldName];\n delete rec[oldName];\n }\n } else if (s?.remove_field) {\n const name = /** @type {string} */ (s.remove_field.name);\n delete rec[name];\n } else if (s?.add_field) {\n const name = /** @type {string} */ (s.add_field.name);\n if (!(name in rec)) rec[name] = defaultValue(/** @type {string} */(s.add_field.kind));\n }\n }\n\n return rec;\n });\n}\n\n/**\n * Migrate a stored envelope to the current lexicon NSID if it is stale, returning\n * the migrated data and the updated `$schemaHistory`. When the stored schema\n * already matches, it is returned unchanged.\n *\n * @template {unknown[]} T\n * @template {unknown} L\n * @param {{ data: T; envelope: import(\"./self-describing.js\").SelfDescribing | null }} stored\n * @param {string} current - The current lexicon NSID\n * @param {import(\"./lens-registry.js\").resolve} resolveLens\n * @returns {{ data: T; history: import(\"./self-describing.js\").HistoryEntry[] }}\n *\n * @example Migrates a stale envelope (old NSID) to the current NSID\n * ```ts\n * import { wrap } from \"~/common/self-describing.js\";\n * import { register, resolve } from \"~/common/lens-registry.js\";\n * import { migrate } from \"~/common/lens.js\";\n *\n * register({\n * id: \"f-old-new\", source: \"sh.diffuse.output.facet\", target: \"sh.diffuse.output.facet2\",\n * steps: [{ rename_field: { old: \"favourite\", new: \"starred\" } }],\n * });\n * const envelope = wrap([{ id: \"a\", favourite: true }], { schema: \"sh.diffuse.output.facet\" });\n * const out = migrate(\n * { data: envelope.data, envelope },\n * \"sh.diffuse.output.facet2\",\n * resolve,\n * );\n * if (out.history.length !== 1) throw new Error(\"expected one history entry\");\n * if (!(\"starred\" in (out.data[0] as object))) throw new Error(\"expected migrated record\");\n * ```\n */\nexport function migrate(stored, current, resolveLens) {\n const env = stored.envelope;\n /** @type {import(\"./self-describing.js\").HistoryEntry[]} */\n const storedHistory = /** @type {any} */ (env?.$schemaHistory ?? []);\n if (!env || env.$schema === current) {\n return { data: stored.data, history: storedHistory };\n }\n\n const lens = resolveLens(env.$schema, current, { history: storedHistory });\n if (!lens) {\n // No lens available for the transition; leave data as-is rather than guess.\n return { data: stored.data, history: storedHistory };\n }\n\n const projected = /** @type {T} */ (project(envelopeToArray(env), lens));\n return {\n data: projected,\n history: [\n ...storedHistory,\n {\n from: env.$schema,\n to: current,\n lens,\n complement: null,\n },\n ],\n };\n}\n\n/**\n * Read a stored value for a collection, migrating it to the collection's current\n * lexicon NSID if it is stale. Returns the data to expose and the (possibly\n * updated) envelope.\n *\n * @template {unknown[]} T\n * @param {unknown} value\n * @param {import(\"./self-describing.js\").CollectionName} name\n * @param {import(\"./lens-registry.js\").resolve} resolveLens\n * @returns {{ data: T; envelope: import(\"./self-describing.js\").SelfDescribing | null }}\n *\n * @example Reads a stale envelope and migrates it to the current NSID\n * ```ts\n * import { wrap } from \"~/common/self-describing.js\";\n * import { register, resolve } from \"~/common/lens-registry.js\";\n * import { migrateEnvelope } from \"~/common/lens.js\";\n *\n * register({\n * id: \"f-old-current\", source: \"sh.diffuse.output.facetOld\", target: \"sh.diffuse.output.facet\",\n * steps: [{ rename_field: { old: \"favourite\", new: \"starred\" } }],\n * });\n * // A payload stored under an OLDER lexicon NSID; the current collection NSID is\n * // sh.diffuse.output.facet, so this migrates.\n * const envelope = wrap([{ id: \"a\", favourite: true }], { schema: \"sh.diffuse.output.facetOld\" });\n * const out = migrateEnvelope(envelope, \"facets\", resolve);\n * if (!(\"starred\" in (out.data[0] as object))) throw new Error(\"expected migrated record\");\n * if (!out.envelope || out.envelope.$schema !== \"sh.diffuse.output.facet\") throw new Error(\"expected migrated envelope NSID\");\n * ```\n */\nexport function migrateEnvelope(value, name, resolveLens) {\n const current = collectionSchema(name);\n const { data, envelope } = unwrap(value, { $schema: current });\n\n /** @type {import(\"./self-describing.js\").SelfDescribing | null} */\n const env = /** @type {any} */ (envelope);\n\n if (!env || env.$schema === current) {\n return { data: /** @type {T} */ (data), envelope: env };\n }\n\n const migrated = migrate({ data: /** @type {T} */ (data), envelope: env }, current, resolveLens);\n\n /** @type {import(\"./self-describing.js\").SelfDescribing} */\n const migratedEnvelope = {\n ...env,\n $schema: current,\n $schemaHistory: migrated.history,\n data: /** @type {T} */ (migrated.data),\n };\n return { data: /** @type {T} */ (migrated.data), envelope: migratedEnvelope };\n}\n\n/**\n * Wrap a collection into a self-describing envelope stamped with the collection's\n * current NSID, ready to be serialized by an encoder.\n *\n * @template {unknown[]} T\n * @param {T} data\n * @param {import(\"./self-describing.js\").CollectionName} name\n * @returns {import(\"./self-describing.js\").SelfDescribing}\n *\n * @example Wraps records for a collection\n * ```ts\n * import { encodeCollection } from \"~/common/lens.js\";\n *\n * const envelope = encodeCollection([{ id: \"a\" }], \"facets\");\n * if (envelope.$schema !== \"sh.diffuse.output.facet\") throw new Error(\"expected facet NSID\");\n * if (envelope.data[0].id !== \"a\") throw new Error(\"expected data\");\n * ```\n */\nexport function encodeCollection(data, name) {\n return wrap(data, { schema: collectionSchema(name) });\n}\n\n/**\n * Decode a stored value (envelope or legacy) into a collection, migrating it to\n * the collection's current NSID if stale. Returns `null` when `value` is `null`\n * or `undefined`, so encoders can map that to an empty collection.\n *\n * @template {unknown[]} T\n * @param {unknown} value\n * @param {import(\"./self-describing.js\").CollectionName} name\n * @returns {T | null}\n */\nexport function decodeCollection(value, name) {\n if (value === null || value === undefined) return null;\n const { data } = migrateEnvelope(value, name, resolve);\n return /** @type {T} */ (data);\n}\n\n/**\n * Encode a collection as self-describing JSON, either as a string or as bytes.\n *\n * @param {unknown[]} data\n * @param {import(\"./self-describing.js\").CollectionName} name\n * @param {boolean} [asBytes]\n * @returns {string | Uint8Array}\n *\n * @example Encodes a collection as a JSON string\n * ```ts\n * import { encodeJsonCollection } from \"~/common/lens.js\";\n *\n * const out = encodeJsonCollection([{ id: \"a\" }], \"tracks\") as string;\n * const parsed = JSON.parse(out) as { $schema: string };\n * if (parsed.$schema !== \"sh.diffuse.output.track\") throw new Error(\"expected track NSID\");\n * ```\n *\n * @example Encodes a collection as JSON bytes\n * ```ts\n * import { encodeJsonCollection } from \"~/common/lens.js\";\n *\n * const out = encodeJsonCollection([{ id: \"a\" }], \"tracks\", true);\n * if (!(out instanceof Uint8Array)) throw new Error(\"expected bytes\");\n * ```\n */\nexport function encodeJsonCollection(data, name, asBytes = false) {\n const json = JSON.stringify(encodeCollection(data, name));\n return asBytes ? new TextEncoder().encode(json) : json;\n}\n\n/**\n * Decode a JSON-encoded collection (string, bytes, or an already-parsed object —\n * an envelope or legacy array), migrating stale payloads. `undefined`/`null`\n * yields an empty collection.\n *\n * @template {unknown[]} T\n * @param {Uint8Array | string | object | null | undefined} raw\n * @param {import(\"./self-describing.js\").CollectionName} name\n * @returns {T}\n *\n * @example Round-trips through encodeJsonCollection\n * ```ts\n * import { encodeJsonCollection, decodeJsonCollection } from \"~/common/lens.js\";\n *\n * const bytes = encodeJsonCollection([{ id: \"a\" }], \"tracks\", true) as Uint8Array;\n * const out = decodeJsonCollection(bytes, \"tracks\") as Array<{ id: string }>;\n * if (out[0].id !== \"a\") throw new Error(\"expected record\");\n * ```\n *\n * @example Empty for undefined input\n * ```ts\n * import { decodeJsonCollection } from \"~/common/lens.js\";\n *\n * if (decodeJsonCollection(undefined, \"tracks\").length !== 0) throw new Error(\"expected empty\");\n * ```\n */\nexport function decodeJsonCollection(raw, name) {\n try {\n let parsed;\n if (raw instanceof Uint8Array) {\n parsed = JSON.parse(new TextDecoder().decode(raw));\n } else if (raw === undefined || raw === null) {\n return /** @type {T} */ (/** @type {unknown} */ ([]));\n } else if (typeof raw === \"string\") {\n parsed = JSON.parse(raw);\n } else {\n // Already-parsed value (e.g. a stored envelope object).\n parsed = raw;\n }\n return normalizeCollection(decodeCollection(parsed, name));\n } catch (err) {\n console.error(err);\n return /** @type {T} */ (/** @type {unknown} */ ([]));\n }\n}\n\n/**\n * Guarantee a collection is always returned as an array.\n *\n * @template {unknown[]} T\n * @param {T | null | undefined | unknown} value\n * @returns {T}\n */\nfunction normalizeCollection(value) {\n if (Array.isArray(value)) return /** @type {T} */ (value);\n return /** @type {T} */ (/** @type {unknown} */ ([]));\n}\n\n/**\n * Write back an edited record into the collection's current shape, losslessly.\n *\n * This is the panproto write-back path and the ONLY place the migration flow\n * loads `@panproto/core` (its WASM). It is never called on a plain read — it runs\n * only when an app edits a record in an older shape and needs to store it back in\n * the current shape, using the lens + complement recorded in `$schemaHistory`.\n *\n * When a complement is available (captured when the data was migrated forward), it\n * is used to reconstruct the discarded fields so the old app's edit is preserved\n * losslessly; otherwise the forward projection is pure-JS and panproto is not\n * loaded.\n *\n * @param {unknown} editedRecord - the record as the (older) app edited it\n * @param {{ lens: LensDocument; toLexicon?: object; complement?: Uint8Array | string | null }} opts\n * @returns {Promise} the record in the current shape, ready to store\n *\n * @example Runs the write-back for an empty lens (loads panproto lazily)\n * ```ts\n * import { writeBack } from \"~/common/lens.js\";\n *\n * const out = await writeBack({ $type: \"sh.diffuse.output.facet\", id: \"a\", name: \"x\", favourite: true }, {\n * lens: { id: \"l\", source: \"sh.diffuse.output.facet\", target: \"sh.diffuse.output.facet2\", steps: [] },\n * toLexicon: {\n * lexicon: 1, id: \"sh.diffuse.output.facet2\",\n * defs: { main: { type: \"record\", record: { type: \"object\", properties: {\n * $type: { type: \"string\" }, id: { type: \"string\" }, name: { type: \"string\" },\n * } } } },\n * },\n * });\n * if (typeof out !== \"object\") throw new Error(\"expected a record back\");\n * ```\n */\nexport async function writeBack(editedRecord, { lens, toLexicon, complement }) {\n // Only load panproto (WASM) when a complement is actually used for lossless\n // write-back and we have the target lexicon to instantiate it; otherwise the\n // common additive/rename path stays pure-JS via `project`.\n if (!complement || !toLexicon) {\n return project([editedRecord], lens)[0];\n }\n\n const schema = await parseLexicon(toLexicon);\n const comp = typeof complement === \"string\"\n ? base64ToBytes(complement)\n : /** @type {Uint8Array} */ (complement);\n return panprotoPut(lens, schema, editedRecord, comp);\n}\n\n/**\n * Write a collection back into its stored (possibly newer) shape on save.\n *\n * Called by encoders before wrapping a save into the envelope. If the stored\n * envelope's `$schemaHistory` ends at a non-null `complement` for the transition\n * to the current NSID, each record is written back (loading panproto lazily to\n * preserve discarded fields); otherwise the records pass through unchanged and no\n * WASM is loaded.\n *\n * @template {unknown[]} T\n * @param {T} items\n * @param {import(\"./self-describing.js\").CollectionName} name\n * @param {import(\"./self-describing.js\").SelfDescribing | null} storedEnvelope\n * @param {object} [toLexicon]\n * @returns {Promise}\n *\n * @example Passes records through when the stored envelope already matches (no panproto)\n * ```ts\n * import { writeBackCollection, encodeCollection } from \"~/common/lens.js\";\n *\n * const items = [{ id: \"a\" }];\n * const envelope = encodeCollection(items, \"tracks\");\n * const out = await writeBackCollection(items, \"tracks\", envelope);\n * if (out[0].id !== \"a\") throw new Error(\"expected unchanged records\");\n * ```\n *\n * @example Passes records through when no lexicon is available (no panproto)\n * ```ts\n * import { writeBackCollection } from \"~/common/lens.js\";\n * import { wrap } from \"~/common/self-describing.js\";\n *\n * const items = [{ id: \"a\" }];\n * const envelope = wrap([{ id: \"a\" }], { schema: \"sh.diffuse.output.track\" }) as {\n * $schema: string; $schemaHistory: any[]; data: unknown[];\n * };\n * // stored under an older NSID with a complement-carrying history, but no lexicon:\n * const out = await writeBackCollection(items, \"tracks\", {\n * ...envelope, $schema: \"sh.diffuse.output.trackOld\",\n * $schemaHistory: [{ from: \"sh.diffuse.output.trackOld\", to: \"sh.diffuse.output.track\", lens: { id: \"l\", source: \"s\", target: \"t\", steps: [] }, complement: new Uint8Array(1) }],\n * }) as Array<{ id: string }>;\n * if (out[0].id !== \"a\") throw new Error(\"expected unchanged records without a lexicon\");\n * ```\n */\nexport async function writeBackCollection(items, name, storedEnvelope, toLexicon) {\n if (!storedEnvelope || storedEnvelope.$schema === collectionSchema(name)) {\n // Nothing stale to write back — the stored envelope is already this build's\n // shape, or there is no history. Pass through (no panproto load).\n return items;\n }\n\n const entry = storedEnvelope.$schemaHistory[storedEnvelope.$schemaHistory.length - 1];\n const lens = entry?.lens;\n const complement = entry?.complement;\n if (!lens || !complement || !toLexicon) {\n // No complement recorded, or no lexicon to instantiate against — nothing\n // panproto could losslessly write back; keep the records as-is.\n return items;\n }\n\n const written = await Promise.all(\n /** @type {unknown[]} */ (items).map((item) =>\n writeBack(item, { lens, toLexicon, complement }),\n ),\n );\n return /** @type {T} */ (written);\n}\n\n/**\n * Reconstruct the stored self-describing envelope of a collection from its raw\n * encoded value (a JSON string/bytes, or a stored envelope object). Returns\n * `null` when the value is absent/legacy (no envelope).\n *\n * @template {unknown[]} T\n * @param {Uint8Array | string | unknown} raw - the raw stored payload for the collection\n * @param {import(\"./self-describing.js\").CollectionName} name\n * @returns {import(\"./self-describing.js\").SelfDescribing | null}\n *\n * @example Reads the envelope out of a stored JSON string\n * ```ts\n * import { readStoredEnvelope, encodeJsonCollection } from \"~/common/lens.js\";\n *\n * const stored = encodeJsonCollection([{ id: \"a\" }], \"tracks\", true);\n * const env = readStoredEnvelope(stored, \"tracks\");\n * if (!env || env.$schema !== \"sh.diffuse.output.track\") throw new Error(\"expected stored envelope\");\n * ```\n *\n * @example Returns null for absent/legacy (bare array) data\n * ```ts\n * import { readStoredEnvelope } from \"~/common/lens.js\";\n *\n * if (readStoredEnvelope(null, \"tracks\") !== null) throw new Error(\"expected null for absent\");\n * if (readStoredEnvelope([{ id: \"a\" }], \"tracks\") !== null) throw new Error(\"expected null for legacy array\");\n * ```\n */\nexport function readStoredEnvelope(raw, name) {\n if (raw === null || raw === undefined) return null;\n let parsed = raw;\n if (raw instanceof Uint8Array) {\n parsed = JSON.parse(new TextDecoder().decode(raw));\n } else if (typeof raw === \"string\") {\n parsed = JSON.parse(raw);\n }\n const { envelope } = unwrap(parsed, { $schema: collectionSchema(name) });\n return /** @type {import(\"./self-describing.js\").SelfDescribing | null} */ (\n /** @type {any} */ (envelope)\n );\n}\n\n/**\n * The write path for a JSON-encoded collection: write back any stale records to\n * the stored shape (guarded no-op), then encode. Used by the JSON encoders' save\n * so the write-back path is wired on save without loading panproto unless a\n * cross-NSID complement + lexicon make it necessary.\n *\n * @param {unknown[]} items\n * @param {import(\"./self-describing.js\").CollectionName} name\n * @param {Uint8Array | string | null | undefined} stored - the raw stored payload\n * @param {boolean} [asBytes]\n * @returns {Promise}\n *\n * @example Encodes a collection through the wired save path (guarded no-op)\n * ```ts\n * import { saveJsonCollection, decodeJsonCollection } from \"~/common/lens.js\";\n *\n * const out = await saveJsonCollection([{ id: \"a\" }], \"tracks\", null) as string;\n * const back = decodeJsonCollection(out, \"tracks\") as Array<{ id: string }>;\n * if (back[0].id !== \"a\") throw new Error(\"expected encoded records\");\n * ```\n *\n * @example Produces bytes when asBytes is set\n * ```ts\n * import { saveJsonCollection } from \"~/common/lens.js\";\n *\n * const out = await saveJsonCollection([{ id: \"a\" }], \"tracks\", null, true);\n * if (!(out instanceof Uint8Array)) throw new Error(\"expected bytes\");\n * ```\n */\nexport async function saveJsonCollection(items, name, stored, asBytes = false) {\n const storedEnvelope = readStoredEnvelope(stored, name);\n const written = await writeBackCollection(items, name, storedEnvelope, undefined);\n return encodeJsonCollection(written, name, asBytes);\n}\n\n/**\n * @param {string} base64\n * @returns {Uint8Array}\n */\nfunction base64ToBytes(base64) {\n const bin = atob(base64);\n const bytes = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);\n return bytes;\n}\n\n/**\n * @template {unknown[]} T\n * @template {unknown} L\n * @param {import(\"./self-describing.js\").SelfDescribing} envelope\n */\nfunction envelopeToArray(envelope) {\n return /** @type {unknown[]} */ (envelope.data);\n}\n\n/**\n * A sensible default for an `add_field` kind.\n *\n * @param {string} kind\n * @returns {unknown}\n */\nfunction defaultValue(kind) {\n switch (kind) {\n case \"boolean\":\n return false;\n case \"integer\":\n case \"float\":\n case \"number\":\n return 0;\n case \"array\":\n return [];\n case \"object\":\n return {};\n case \"null\":\n return null;\n default:\n return \"\";\n }\n}"],"mappings":"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","names":["project","records","lens","record","rec","step","s","oldName","newName","name","defaultValue","__name","migrate","stored","current","resolveLens","env","storedHistory","envelopeToArray","migrateEnvelope","value","collectionSchema","data","envelope","unwrap","migrated","migratedEnvelope","encodeCollection","wrap","decodeCollection","resolve","encodeJsonCollection","asBytes","json","decodeJsonCollection","raw","parsed","normalizeCollection","err","writeBack","editedRecord","toLexicon","complement","schema","parseLexicon","comp","base64ToBytes","put","writeBackCollection","items","storedEnvelope","entry","item","readStoredEnvelope","saveJsonCollection","written","base64","bin","bytes","i","kind"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-U55EMLDH.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js new file mode 120000 index 00000000..d33e76c4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-UFYWHVKC.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js.br new file mode 120000 index 00000000..9fd4f619 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-UFYWHVKC.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js.map new file mode 120000 index 00000000..42255434 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UFYWHVKC.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-UFYWHVKC.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UIB44MUP.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UIB44MUP.js new file mode 100644 index 00000000..b2b0084a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UIB44MUP.js @@ -0,0 +1,3 @@ +import{a,b as p}from"./chunk-QAEP7ICV.js";import{a as n}from"./chunk-6NC6NOLO.js";import{c as r,d as c}from"./chunk-ZVWOBRJZ.js";import{d as h,e as l}from"./chunk-U55EMLDH.js";import{c as d}from"./chunk-ELB3AQIW.js";import{e as o}from"./chunk-IA3NIKPO.js";import{a as t,c as f}from"./chunk-75KFZLU6.js";var I={};f(I,{CLASS:()=>y,NAME:()=>m,default:()=>g});var i=class extends a{static{t(this,"IndexedDBOutput")}static NAME="diffuse/output/polymorphic/indexed-db";static WORKER_URL="components/output/polymorphic/indexed-db/worker.js";#t;constructor(){super(),this.#t=p({facets:{empty:t(()=>{},"empty"),get:t(()=>this.#e("facets"),"get"),put:t(e=>this.#s("facets",e),"put")},init:t(()=>this.whenConnected(),"init"),playlistItems:{empty:t(()=>{},"empty"),get:t(()=>this.#e("playlistItems"),"get"),put:t(e=>this.#s("playlistItems",e),"put")},settings:{empty:t(()=>{},"empty"),get:t(()=>this.#e("settings"),"get"),put:t(e=>this.#s("settings",e),"put")},tracks:{empty:t(()=>{},"empty"),get:t(()=>this.#e("tracks"),"get"),put:t(e=>this.#s("tracks",e),"put")}}),this.facets=this.#t.facets,this.playlistItems=this.#t.playlistItems,this.settings=this.#t.settings,this.tracks=this.#t.tracks,this.ready=()=>!0}connectedCallback(){this.replicateSavedData(this.#t),super.connectedCallback()}#e=t(async e=>{let s=await r(`${n}/${this.#i(e)}`);if(s!==void 0)return l(s,e)??void 0},"#get");#s=t(async(e,s)=>{let u=s instanceof Uint8Array||typeof s=="string"||d(s)?s:h(s,e);await c(`${n}/${this.#i(e)}`,u)},"#put");#i(e){return`${this.namespace?.length?this.namespace+"/":""}${e}`}},g=i,y=i,m="dop-indexed-db";o(m,i);export{g as a,y as b,m as c,I as d}; + +//# sourceMappingURL=./chunk-UIB44MUP.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UIB44MUP.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-UIB44MUP.js.br new file mode 100644 index 0000000000000000000000000000000000000000..1c143a237fcf1075e473f416c3e0e767feb3f5ce GIT binary patch literal 706 zcmb16VPklb@B91r{y8z*4*uD`)@n(~_Hw23EZ!w8A&36lKmUDce@Q~VhkyP$Elpt! zp#rO{Tas)4oBw|h-)`|Eowg=RSV;h&k_#^8r)mU7tT+4E+6T)m7od zmOC4^te0Z{`ul7N6F z*jQL3{7XcNM)Ly!Y>mWWMU$ zsj>OQZP!&!i5~)e0=BgXPFdL4$SSwpci+{uO6Da$rXQaep3`;ga*R)_QJm-hYi~}x zUDFx3W0i){ck!yYOWJe%i&Xc+Adm=1r?E=hcVi2Z=atF3vc!b$dcn zd5_Z><@b@jXEOKd9Ie@zQxP%8ecrP}\n */\nclass IndexedDBOutput extends BroadcastedOutputElement {\n static NAME = \"diffuse/output/polymorphic/indexed-db\";\n static WORKER_URL = \"components/output/polymorphic/indexed-db/worker.js\";\n\n #manager;\n\n constructor() {\n super();\n\n /** @type {OutputManager} */\n this.#manager = outputManager({\n facets: {\n empty: () => undefined,\n get: () => this.#get(\"facets\"),\n put: (data) => this.#put(\"facets\", data),\n },\n init: () => this.whenConnected(),\n playlistItems: {\n empty: () => undefined,\n get: () => this.#get(\"playlistItems\"),\n put: (data) => this.#put(\"playlistItems\", data),\n },\n settings: {\n empty: () => undefined,\n get: () => this.#get(\"settings\"),\n put: (data) => this.#put(\"settings\", data),\n },\n tracks: {\n empty: () => undefined,\n get: () => this.#get(\"tracks\"),\n put: (data) => this.#put(\"tracks\", data),\n },\n });\n\n this.facets = this.#manager.facets;\n this.playlistItems = this.#manager.playlistItems;\n this.settings = this.#manager.settings;\n this.tracks = this.#manager.tracks;\n\n this.ready = () => true;\n }\n\n // LIFECYCLE\n\n /** @override */\n connectedCallback() {\n this.replicateSavedData(this.#manager);\n super.connectedCallback();\n }\n\n // GET & PUT\n\n /** @param {string} name */\n #get = async (name) => {\n const stored = await IDB.get(`${IDB_PREFIX}/${this.#cat(name)}`);\n if (stored === undefined) return undefined;\n return decodeCollection(\n stored,\n /** @type {CollectionName} */ (name),\n ) ?? undefined;\n };\n\n /** @param {string} name; @param {any} data */\n #put = async (name, data) => {\n // Bytes/strings produced by a transformer above (bytes/json or string/json\n // envelope bytes/JSON, or automerge/dasl binary) are already self-describing\n // at that layer, so they pass through as-is. Plain collections (arrays) are\n // wrapped so a standalone IndexedDB output is itself self-describing.\n const stored = data instanceof Uint8Array || typeof data === \"string\" ||\n isSelfDescribing(data)\n ? data\n : encodeCollection(data, /** @type {CollectionName} */ (name));\n await IDB.set(`${IDB_PREFIX}/${this.#cat(name)}`, stored);\n };\n\n // 🛠️\n\n /** @param {string} name */\n #cat(name) {\n return `${this.namespace?.length ? this.namespace + \"/\" : \"\"}${name}`;\n }\n}\n\nexport default IndexedDBOutput;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = IndexedDBOutput;\nexport const NAME = \"dop-indexed-db\";\n\ndefineElement(NAME, IndexedDBOutput);\n"],"mappings":"+SAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAqBA,IAAMC,EAAN,cAA8BC,CAAyB,CArBvD,MAqBuD,CAAAC,EAAA,wBACrD,OAAO,KAAO,wCACd,OAAO,WAAa,qDAEpBC,GAEA,aAAc,CACZ,MAAM,EAGN,KAAKA,GAAWC,EAAc,CAC5B,OAAQ,CACN,MAAOF,EAAA,IAAG,GAAH,SACP,IAAKA,EAAA,IAAM,KAAKG,GAAK,QAAQ,EAAxB,OACL,IAAKH,EAACI,GAAS,KAAKC,GAAK,SAAUD,CAAI,EAAlC,MACP,EACA,KAAMJ,EAAA,IAAM,KAAK,cAAc,EAAzB,QACN,cAAe,CACb,MAAOA,EAAA,IAAG,GAAH,SACP,IAAKA,EAAA,IAAM,KAAKG,GAAK,eAAe,EAA/B,OACL,IAAKH,EAACI,GAAS,KAAKC,GAAK,gBAAiBD,CAAI,EAAzC,MACP,EACA,SAAU,CACR,MAAOJ,EAAA,IAAG,GAAH,SACP,IAAKA,EAAA,IAAM,KAAKG,GAAK,UAAU,EAA1B,OACL,IAAKH,EAACI,GAAS,KAAKC,GAAK,WAAYD,CAAI,EAApC,MACP,EACA,OAAQ,CACN,MAAOJ,EAAA,IAAG,GAAH,SACP,IAAKA,EAAA,IAAM,KAAKG,GAAK,QAAQ,EAAxB,OACL,IAAKH,EAACI,GAAS,KAAKC,GAAK,SAAUD,CAAI,EAAlC,MACP,CACF,CAAC,EAED,KAAK,OAAS,KAAKH,GAAS,OAC5B,KAAK,cAAgB,KAAKA,GAAS,cACnC,KAAK,SAAW,KAAKA,GAAS,SAC9B,KAAK,OAAS,KAAKA,GAAS,OAE5B,KAAK,MAAQ,IAAM,EACrB,CAKA,mBAAoB,CAClB,KAAK,mBAAmB,KAAKA,EAAQ,EACrC,MAAM,kBAAkB,CAC1B,CAKAE,GAAOH,EAAA,MAAOM,GAAS,CACrB,IAAMC,EAAS,MAAUC,EAAI,GAAGC,CAAU,IAAI,KAAKC,GAAKJ,CAAI,CAAC,EAAE,EAC/D,GAAIC,IAAW,OACf,OAAOI,EACLJ,EAC+BD,CACjC,GAAK,MACP,EAPO,QAUPD,GAAOL,EAAA,MAAOM,EAAMF,IAAS,CAK3B,IAAMG,EAASH,aAAgB,YAAc,OAAOA,GAAS,UACzDQ,EAAiBR,CAAI,EACrBA,EACAS,EAAiBT,EAAqCE,CAAK,EAC/D,MAAUQ,EAAI,GAAGL,CAAU,IAAI,KAAKC,GAAKJ,CAAI,CAAC,GAAIC,CAAM,CAC1D,EAVO,QAePG,GAAKJ,EAAM,CACT,MAAO,GAAG,KAAK,WAAW,OAAS,KAAK,UAAY,IAAM,EAAE,GAAGA,CAAI,EACrE,CACF,EAEOS,EAAQjB,EAMFkB,EAAQlB,EACRmB,EAAO,iBAEpBC,EAAcD,EAAMnB,CAAe","names":["element_exports","__export","CLASS","NAME","element_default","IndexedDBOutput","BroadcastedOutputElement","__name","#manager","outputManager","#get","data","#put","name","stored","get","IDB_PREFIX","#cat","decodeCollection","isSelfDescribing","encodeCollection","set","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-UIB44MUP.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js new file mode 100644 index 00000000..90a410ca --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js @@ -0,0 +1,49 @@ +import{a as n,g as c}from"./chunk-HCA2HGAZ.js";import{d as u}from"./chunk-XQAIXFJF.js";import{b as l}from"./chunk-SIM5AC6S.js";import{a as d}from"./chunk-75KFZLU6.js";function x(){let e=document.getElementById("add-from-uri-dialog");e||(e=document.createElement("dialog"),e.id="add-from-uri-dialog",e.style.cssText="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0;",c(n` +
    +

    + Load a facet from a URI. Currently supported URI schemes: + https, at (AT Protocol) and diffuse + (references internal facets). +

    + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    + `,e),document.body.appendChild(e),e.querySelector("#add-uri-cancel")?.addEventListener("click",()=>{e.close()}),e.querySelector("#add-from-uri-form")?.addEventListener("submit",async s=>{s.preventDefault();let m=e?.querySelector("#add-uri-name"),f=e?.querySelector("#add-uri-kind"),p=e?.querySelector("#add-uri-uri"),i=m?.value.trim()??"",v=f?.value??"interactive",o=p?.value.trim()??"";if(!i||!o)return;let y=await l({kind:v,name:i,uri:o},{fetchHTML:!1});await u(y),e.close()}));let t=e.querySelector("#add-uri-name"),a=e.querySelector("#add-uri-kind"),r=e.querySelector("#add-uri-uri");t&&(t.value=""),a&&(a.value="interactive"),r&&(r.value=""),e.showModal()}d(x,"openAddFromURIModal");export{x as a}; + +//# sourceMappingURL=./chunk-URKFFLAS.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js.br new file mode 100644 index 0000000000000000000000000000000000000000..6287f85136dba3c1f70a90bc5a732f20d262ce55 GIT binary patch literal 901 zcmb0xy;bh=Im zmwZl}_Ux{TzOLEEEf*f;bgsT^esosQjSr_ptT&dfa;%p4c)vQ`Zu>_srR$&eS6vaG zuI@g2y14uOP0u@nCZ6eu3OoD!^2Mvqe}3J0CDb6`b5ZH`;*w3jo7xNx%RK#7mUnJ{ z{{6Dj*B{%WPAy~RX*kKXq{GZD;&jKZO-fRFYCaEh+(bRKS&H5-bul>+=q7sojFwEa zc8uEhf1GVr&stUFl1kDc-NUuiamtoZ}qJxFNdtn8=P2g@covUY@Ah zdhl6m^tTri<&-QJ&phEXYw?Dk8q*ae{#b=^?vy@k`6?iszczi`kvU{74@0HgRYpso3Doh!!I4!)e>~n&&iYDW+7Czl}ql>X&7Atrs ziFCG3DV<=cC;#Tc?a!exZ$e^kp0;1?yk(o((jIoc!nGTFXL*EiHB3LSSj^0qsYH{p zqrBNWg;(PIsw16i>^qg?{S*FmJC)S8o-3ANog^n2{Ha6ga7*Td!g zQo81v@Sv#zQUBVN9~a-ex6b&n<=u|Y602$p5=*A6)`*n3^-5>8RLm3+v$rk5)0PBJ zQ9ZOwV|H|kkH??zM^7^E#l7^Hza%(*sm07$=lRWj45ZDPj`tM5X`TseRrf7hq<-<>`|j8hw2|mh10)c>A-9 Qw_86r`k7~L(D_hy006SIEdT%j literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js.map new file mode 100644 index 00000000..6f3ec547 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-URKFFLAS.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/common/pages/from-uri.js"],"sourcesContent":["import { html, render } from \"lit-html\";\n\nimport { facetFromURI } from \"~/common/facets/utils.js\";\nimport { saveFacet } from \"./crud.js\";\n\n////////////////////////////////////////////\n// DIALOG\n////////////////////////////////////////////\n\nexport function openAddFromURIModal() {\n let dialog = /** @type {HTMLDialogElement | null} */ (\n document.getElementById(\"add-from-uri-dialog\")\n );\n\n if (!dialog) {\n dialog = /** @type {HTMLDialogElement} */ (\n document.createElement(\"dialog\")\n );\n\n dialog.id = \"add-from-uri-dialog\";\n dialog.style.cssText =\n \"position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0;\";\n\n render(\n html`\n
    \n

    \n Load a facet from a URI. Currently supported URI schemes:\n https, at (AT Protocol) and diffuse\n (references internal facets).\n

    \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n `,\n dialog,\n );\n\n document.body.appendChild(dialog);\n\n dialog.querySelector(\"#add-uri-cancel\")?.addEventListener(\"click\", () => {\n /** @type {HTMLDialogElement} */ (dialog).close();\n });\n\n dialog.querySelector(\"#add-from-uri-form\")?.addEventListener(\n \"submit\",\n async (e) => {\n e.preventDefault();\n\n const nameEl = /** @type {HTMLInputElement} */ (\n dialog?.querySelector(\"#add-uri-name\")\n );\n\n const kindEl = /** @type {HTMLSelectElement} */ (\n dialog?.querySelector(\"#add-uri-kind\")\n );\n\n const uriEl = /** @type {HTMLInputElement} */ (\n dialog?.querySelector(\"#add-uri-uri\")\n );\n\n const name = nameEl?.value.trim() ?? \"\";\n const kind = kindEl?.value ?? \"interactive\";\n const uri = uriEl?.value.trim() ?? \"\";\n if (!name || !uri) return;\n\n const facet = await facetFromURI({ kind, name, uri }, {\n fetchHTML: false,\n });\n\n await saveFacet(facet);\n\n /** @type {HTMLDialogElement} */ (dialog).close();\n },\n );\n }\n\n const nameEl = /** @type {HTMLInputElement} */ (\n dialog.querySelector(\"#add-uri-name\")\n );\n\n const kindEl = /** @type {HTMLSelectElement} */ (\n dialog.querySelector(\"#add-uri-kind\")\n );\n\n const uriEl = /** @type {HTMLInputElement} */ (\n dialog.querySelector(\"#add-uri-uri\")\n );\n\n if (nameEl) nameEl.value = \"\";\n if (kindEl) kindEl.value = \"interactive\";\n if (uriEl) uriEl.value = \"\";\n\n dialog.showModal();\n}\n"],"mappings":"uKASO,SAASA,GAAsB,CACpC,IAAIC,EACF,SAAS,eAAe,qBAAqB,EAG1CA,IACHA,EACE,SAAS,cAAc,QAAQ,EAGjCA,EAAO,GAAK,sBACZA,EAAO,MAAM,QACX,qFAEFC,EACEC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QA+CAF,CACF,EAEA,SAAS,KAAK,YAAYA,CAAM,EAEhCA,EAAO,cAAc,iBAAiB,GAAG,iBAAiB,QAAS,IAAM,CACrCA,EAAQ,MAAM,CAClD,CAAC,EAEDA,EAAO,cAAc,oBAAoB,GAAG,iBAC1C,SACA,MAAOG,GAAM,CACXA,EAAE,eAAe,EAEjB,IAAMC,EACJJ,GAAQ,cAAc,eAAe,EAGjCK,EACJL,GAAQ,cAAc,eAAe,EAGjCM,EACJN,GAAQ,cAAc,cAAc,EAGhCO,EAAOH,GAAQ,MAAM,KAAK,GAAK,GAC/BI,EAAOH,GAAQ,OAAS,cACxBI,EAAMH,GAAO,MAAM,KAAK,GAAK,GACnC,GAAI,CAACC,GAAQ,CAACE,EAAK,OAEnB,IAAMC,EAAQ,MAAMC,EAAa,CAAE,KAAAH,EAAM,KAAAD,EAAM,IAAAE,CAAI,EAAG,CACpD,UAAW,EACb,CAAC,EAED,MAAMG,EAAUF,CAAK,EAEaV,EAAQ,MAAM,CAClD,CACF,GAGF,IAAMI,EACJJ,EAAO,cAAc,eAAe,EAGhCK,EACJL,EAAO,cAAc,eAAe,EAGhCM,EACJN,EAAO,cAAc,cAAc,EAGjCI,IAAQA,EAAO,MAAQ,IACvBC,IAAQA,EAAO,MAAQ,eACvBC,IAAOA,EAAM,MAAQ,IAEzBN,EAAO,UAAU,CACnB,CAzHgBa,EAAAd,EAAA","names":["openAddFromURIModal","dialog","B","T","e","nameEl","kindEl","uriEl","name","kind","uri","facet","facetFromURI","saveFacet","__name"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-URKFFLAS.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VBVWJNZ5.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VBVWJNZ5.js new file mode 100644 index 00000000..aee7f0ad --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VBVWJNZ5.js @@ -0,0 +1,14 @@ +import{a as r}from"./chunk-TI4M42VH.js";import{a as i}from"./chunk-75KFZLU6.js";async function u(){let t=document.querySelector("#add-sample-content");if(!t)return;t.setAttribute("disabled",""),t.innerHTML=` + + Loading dependencies + `;let{default:e}=await import("./common/foundation.js"),n=await import("./common/output.js"),o=await e.configurator.input(),s=await e.orchestrator.output(),c=await e.orchestrator.processTracks({disableWhenReady:!0});await r(await n.data(s.facets));let a=o.querySelector("di-s3");if(!a){let{CLASS:p}=await import("./components/input/s3/element.js");a=new p,o.append(a)}t.innerHTML=` + + Adding source + `;let d=await a.demo();await s.tracks.save(n.mergeById(await n.data(s.tracks),[d.track])),t.innerHTML=` + + Processing source + `,await c.process(),t.innerHTML=` + Added + `}i(u,"addSampleContent");function m(){document.querySelector("#add-sample-content")?.addEventListener("click",u)}i(m,"setupSampleButton");export{m as a}; + +//# sourceMappingURL=./chunk-VBVWJNZ5.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VBVWJNZ5.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VBVWJNZ5.js.br new file mode 100644 index 0000000000000000000000000000000000000000..144601101f79900d7718d0c2219551542f30e997 GIT binary patch literal 499 zcmb1M$HI_eI{p9eJvEY+TD&`$)mD2p2C*LdYVY?{XLH1XMKiu%Hf8J0EiPPn{d3&L zqg$?Mh_1714&S@?A33CPGB%pkynXZX&6msB6Eh=n zw1Yjwp7nj7=a=`qaf{$W^9K|DU%k{6E2?$UDEkEWM6)#}n*@cF9#rT_=(G18YoB&L z&qC<-TkD9L>oduvl~zs=E9H%qD+zE|cWnW)(qpM@ z(|$$>TL!AQs(;zFMXl9@xxpvrXGeDCe~0Q#I=@4IEjq+xB6ei4qiJuJ@;Zg|r&gW6 z*BWYe@UT9eypT(JuG;Dnk3_+p`94Ry)OVUpyH~_mWWO`?*u?LJ&Gjc<-hIAl?tG}PU*j>`I`8XTjied>b~n$+hzf9lCsq@6?O++kZNxnz=inpoGD!Ucay9S?;22kr^=)CVgGW zuvNd6zjvR*b7P@LR_1eWFE`viGp#CeZ_Qr6%865hY@b=*6Tk7}jK^!M^&v}F_Z\n \n Loading dependencies\n `;\n\n const { default: foundation } = await import(\"~/common/foundation.js\");\n const Output = await import(\"~/common/output.js\");\n\n const input = await foundation.configurator.input();\n const output = await foundation.orchestrator.output();\n const pto = await foundation.orchestrator.processTracks({\n disableWhenReady: true,\n });\n\n // Execute prelude\n await insertPreludes(\n await Output.data(output.facets),\n );\n\n /** @type {import(\"~/components/input/s3/element.js\").CLASS | null} */\n let s3 = input.querySelector(\"di-s3\");\n\n if (!s3) {\n // The input-bundle prelude normally adds the S3 input, but it may not\n // have been inserted in this tab (e.g. when there are no saved facets\n // yet), so create it directly.\n const { CLASS: S3Input } = await import(\n \"~/components/input/s3/element.js\"\n );\n s3 = new S3Input();\n input.append(s3);\n }\n\n addDemoBtn.innerHTML = `\n \n Adding source\n `;\n\n const demo = await s3.demo();\n\n await output.tracks.save(\n Output.mergeById(await Output.data(output.tracks), [demo.track]),\n );\n\n addDemoBtn.innerHTML = `\n \n Processing source\n `;\n\n await pto.process();\n\n addDemoBtn.innerHTML = `\n Added\n `;\n}\n\nexport function setupSampleButton() {\n const addDemoBtn = document.querySelector(\"#add-sample-content\");\n addDemoBtn?.addEventListener(\"click\", addSampleContent);\n}\n"],"mappings":"gFAMA,eAAeA,GAAmB,CAChC,IAAMC,EAAa,SAAS,cAAc,qBAAqB,EAC/D,GAAI,CAACA,EAAY,OAEjBA,EAAW,aAAa,WAAY,EAAE,EACtCA,EAAW,UAAY;AAAA;AAAA;AAAA,WAKvB,GAAM,CAAE,QAASC,CAAW,EAAI,KAAM,QAAO,wBAAwB,EAC/DC,EAAS,KAAM,QAAO,oBAAoB,EAE1CC,EAAQ,MAAMF,EAAW,aAAa,MAAM,EAC5CG,EAAS,MAAMH,EAAW,aAAa,OAAO,EAC9CI,EAAM,MAAMJ,EAAW,aAAa,cAAc,CACtD,iBAAkB,EACpB,CAAC,EAGD,MAAMK,EACJ,MAAMJ,EAAO,KAAKE,EAAO,MAAM,CACjC,EAGA,IAAIG,EAAKJ,EAAM,cAAc,OAAO,EAEpC,GAAI,CAACI,EAAI,CAIP,GAAM,CAAE,MAAOC,CAAQ,EAAI,KAAM,QAC/B,kCACF,EACAD,EAAK,IAAIC,EACTL,EAAM,OAAOI,CAAE,CACjB,CAEAP,EAAW,UAAY;AAAA;AAAA;AAAA,WAKvB,IAAMS,EAAO,MAAMF,EAAG,KAAK,EAE3B,MAAMH,EAAO,OAAO,KAClBF,EAAO,UAAU,MAAMA,EAAO,KAAKE,EAAO,MAAM,EAAG,CAACK,EAAK,KAAK,CAAC,CACjE,EAEAT,EAAW,UAAY;AAAA;AAAA;AAAA,WAKvB,MAAMK,EAAI,QAAQ,EAElBL,EAAW,UAAY;AAAA;AAAA,UAGzB,CA3DeU,EAAAX,EAAA,oBA6DR,SAASY,GAAoB,CACf,SAAS,cAAc,qBAAqB,GACnD,iBAAiB,QAASZ,CAAgB,CACxD,CAHgBW,EAAAC,EAAA","names":["addSampleContent","addDemoBtn","foundation","Output","input","output","pto","insertPreludes","s3","S3Input","demo","__name","setupSampleButton"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-VBVWJNZ5.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js new file mode 100644 index 00000000..377b8bda --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js @@ -0,0 +1,3 @@ +import{c as h,e as v}from"./chunk-IA3NIKPO.js";import{a as f}from"./chunk-SIM5AC6S.js";import{c as d}from"./chunk-5AREERZ7.js";import{j as n,n as u,o as r}from"./chunk-XILA3E7E.js";import{a as i,c as y}from"./chunk-75KFZLU6.js";var I={};y(I,{CLASS:()=>p,NAME:()=>m,default:()=>b});var c="diffuse/configurator/output",o=class extends h{static{i(this,"OutputConfigurator")}static NAME="diffuse/configurator/output";constructor(){super();let a={facets:{collection:n(()=>{let t=this.#t.value;if(t)return t.facets.collection();let e=this.#e.value;if(e){let s=e.facets.collection();return s.state==="loaded"&&this.#o(s.data)?{state:"loaded",data:[...s.data,...f(d)]}:s}return this.hasDefault()?{state:"loading"}:this.#a.value?{state:"loaded",data:this.#s.facets.value}:{state:"loading"}}),reload:i(()=>{let t=this.#e.value;t&&t.facets.reload();let e=this.#t.value;return e?e.facets.reload():Promise.resolve()},"reload"),save:i(async t=>{let e=this.#t.value;if(e)return await e.facets.save(t);let s=this.#e.value;if(s)return await s.facets.save(t);this.#s.facets.value=t},"save")},playlistItems:{collection:n(()=>{let t=this.#t.value;if(t)return t.playlistItems.collection();let e=this.#e.value;return e?e.playlistItems.collection():this.hasDefault()?{state:"loading"}:this.#a.value?{state:"loaded",data:this.#s.playlistItems.value}:{state:"loading"}}),reload:i(()=>{let t=this.#e.value;t&&t.playlistItems.reload();let e=this.#t.value;return e?e.playlistItems.reload():Promise.resolve()},"reload"),save:i(async t=>{let e=this.#t.value;if(e)return await e.playlistItems.save(t);let s=this.#e.value;if(s)return await s.playlistItems.save(t);this.#s.playlistItems.value=t},"save")},settings:{collection:n(()=>{let t=this.#t.value;if(t)return t.settings.collection();let e=this.#e.value;return e?e.settings.collection():this.hasDefault()?{state:"loading"}:this.#a.value?{state:"loaded",data:this.#s.settings.value}:{state:"loading"}}),reload:i(()=>{let t=this.#e.value;t&&t.settings.reload();let e=this.#t.value;return e?e.settings.reload():Promise.resolve()},"reload"),save:i(async t=>{let e=this.#t.value;if(e)return await e.settings.save(t);let s=this.#e.value;if(s)return await s.settings.save(t);this.#s.settings.value=t},"save")},tracks:{collection:n(()=>{let t=this.#t.value;if(t)return t.tracks.collection();let e=this.#e.value;return e?e.tracks.collection():this.hasDefault()?{state:"loading"}:this.#a.value?{state:"loaded",data:this.#s.tracks.value}:{state:"loading"}}),reload:i(()=>{let t=this.#e.value;t&&t.tracks.reload();let e=this.#t.value;return e?e.tracks.reload():Promise.resolve()},"reload"),save:i(async t=>{let e=this.#t.value;if(e)return await e.tracks.save(t);let s=this.#e.value;if(s)return await s.tracks.save(t);this.#s.tracks.value=t},"save")},ready:n(()=>{let t=this.#t.value;if(t)return t.ready();let e=this.#e.value;return e?e.ready():this.#a.value})};this.facets=a.facets,this.playlistItems=a.playlistItems,this.settings=a.settings,this.tracks=a.tracks,this.ready=a.ready,this.effect(()=>{let t=this.#t.value;if(!t)return;let e=t.facets.collection();if(e.state!=="loaded")return;let s=this.#e.value;s?s.facets.save(e.data):this.#s.facets.set(e.data)}),this.effect(()=>{let t=this.#t.value;if(!t)return;let e=t.playlistItems.collection();if(e.state!=="loaded")return;let s=this.#e.value;s?s.playlistItems.save(e.data):this.#s.playlistItems.set(e.data)}),this.effect(()=>{let t=this.#t.value;if(!t)return;let e=t.settings.collection();if(e.state!=="loaded")return;let s=this.#e.value;s?s.settings.save(e.data):this.#s.settings.set(e.data)}),this.effect(()=>{let t=this.#t.value;if(!t)return;let e=t.tracks.collection();if(e.state!=="loaded")return;let s=this.#e.value;s?s.tracks.save(e.data):this.#s.tracks.set(e.data)})}#i=r(new Set);#e=r(void 0);#s={facets:r([]),playlistItems:r([]),settings:r([]),tracks:r([])};#t=r(void 0);#a=r(!1);activated=this.#i.get;selected=n(()=>this.#t.value??null);async connectedCallback(){if(this.hasAttribute("group")){let l=this.broadcast(this.identifier,{selectOutput:{strategy:"replicate",fn:this.#r}});l&&(this.#r=l.selectOutput)}super.connectedCallback();let a=this.getAttribute("default"),t=this.#n();u(()=>{let l=new Set;a&&l.add(a),t&&l.add(t),this.#i.value=l});let e=a?await this.#l(a):null,s=await this.#l(t);u(()=>{this.#t.value=s,this.#e.value=e,this.#a.value=!0})}async#l(a){let t=a?this.root().querySelector(`#${a}`):null;return!t||(await customElements.whenDefined(t.localName),!("identifier"in t)||!("tracks"in t))?null:t}#o(a){let t=this.#n(),e=this.getAttribute("default");return!t||t===e?!1:!a.some(s=>s.kind==="prelude")}#r=i(async a=>{a&&(this.#i.value=new Set([...this.#i.value.values(),a])),this.#t.value=await this.#l(a)},"#selectOutput");#n(){return localStorage.getItem(`${c}/selected/id`)}dependencies=i(()=>Object.fromEntries(Array.from(this.root().children).flatMap(a=>{if(a.hasAttribute("id")===!1)return console.warn("Missing `id` for output configurator child element with `localName` '"+a.localName+"'"),[];let t=a;return[[t.id,t]]})),"dependencies");deselect=i(async()=>{localStorage.removeItem(`${c}/selected/id`),await this.#r(null)},"deselect");hasDefault(){return this.hasAttribute("default")}hasSelected(){return this.#n()!==null}loadSelected=i(async()=>{let a=await this.#l(this.#n());this.#t.value=a},"loadSelected");options=i(async()=>{let a=this.dependencies();return Object.entries(a).map(([e,s])=>({id:e,label:s.label??s.getAttribute("label"),element:s}))},"options");select=i(async a=>{localStorage.setItem(`${c}/selected/id`,a),await this.#r(a)},"select");waitForOption=i(a=>new Promise(t=>{let e=i(async()=>{let l=(await this.options()).find(g=>g.label===a);l&&(s.disconnect(),t(l))},"check"),s=new MutationObserver(e);s.observe(this,{childList:!0}),e()}),"waitForOption")},b=o,p=o,m="dc-output";v(m,p);export{b as a,p as b,m as c,I as d}; + +//# sourceMappingURL=./chunk-VELBWKKV.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js.br new file mode 100644 index 0000000000000000000000000000000000000000..695c7058ae9ae9f72ded1ca4e21b6b37b802a2c4 GIT binary patch literal 1626 zcmb0>E5?xWIrr!Pzdya^@J(H|>gBh)A33UGzU=uf5YcdZg2A?%c51Kx-+mwd?Xu_8 z0E;7TdyPK3&QEw$oL=BR!9vAIu*`hr(Jh(DwS}b~hwm-zb=AX#>!T-1Zb2z;Cw#zy7`p7*yz8_y)FBkcUJt*Yl#yj@)w)KDB9zDKa zacTXA2OD=N>txh?cy#agcU^_^-@d%MciP>*&AN;IAMZ5Qck81zeoWkJr!x0Y@+Ub6CP&2BEM?c&ZpVIkI(^V9sMypGk{Iigp> zr&Jav{XJD4w`ty9*O@mL_?x%(@2|8?*VY|; zoS7NCQS69GuIkzKw-3DcTzG%RrBz;?SNVER7@g!?Vz+P0BPs4nK7~%wO)C#wnxsBi zLa1HDUbM9AanxMx)7Q7=Kia_UnR~^gWI9*G2>}y{CD)Jdy2VzpT;*lXNxoT^g61mj zSAF6oe1b#a_EzUpFU>l)UP|c=w}0-`_F{hGh70>9CyNKgrQCJAAhOv_WnJGgJ-lss&05sPj_T;65Yc~weZ zSZag*z2(YM6H)ZFd9_6PrW*!8X_mfyn9?ttl*sU`a1@-+tPpAI}=)V{j% zihFHR(0iepOI8_6F7j9f9WrXn-~I6J?Bwi4?{;sPw5IJ^t;h6ZK^ICVbH?mCG*|Rt zvZc?vl($bGtA3Jt+A45{bLUM3M)nOGUN$V>@Hl7h@slZ+B0tKpXxh&`XTUStpgz1j zm5DFK?!B;YJ$qAb#QKFtYHzN&?Bg_RxmWA<316c+d9G~do+h%8$!))Wv6lv?DZ{NO zLD5NZhAulY*7XPJDJV9h?{0_Yrs?m==%4Nl_IqbacsQ8M6yUwc)F8LU$ z_9gV#>eW&_5-*d46ie2hT`KwJvZI}Crd`q>%P8O!4xAb@vv0?wsF0 zc@2~4zgoFPIaeGdc3yt?=+_Rd%OA~>rT(x^+iq>NgKJg=x69EDEo*=L=>KKTZe)0H zuf)@eQf`&7&|NlLmY(`HeG~ik_gvW%KJKuoXg(7&|Bc{+Z=Yr@4E`OR#Q$uvcfeXe`deG zznOR5riVmXJXzTbj!ksiHEF@OTB)>fF3C(^w%ECs)x>Z1N~~KI zX4rPAYrekd7VDeLHQ`>%PZ&!y=TG%o%bUBYU*38?zw?_cBM-~`{NRHXn*y&(l)OCj zF|F=yEYrV@D*p>SUb;AzUw*8(uRb~8(Z`%SpV;bzbIu<<5%W$WW%JIr4H?=;n>ReX zdF-)Y+BDM?jY#=RL57SIj7sJuRZ8`-S|nEJ^Q)dcx3GS%j)Om=>-0Cp0xLvj$*_C; z@19U(t*HK@qEPf?1@rG8-*qY%*z#{lejL7?YazFOqI-48ull>&3nJCFtdGC+?&2m< K-CMPV*BJnTT|k2X literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js.map new file mode 100644 index 00000000..8411d043 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VELBWKKV.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/configurator/output/element.js"],"sourcesContent":["import { BroadcastableDiffuseElement, defineElement } from \"~/common/element.js\";\nimport { batch, computed, signal } from \"~/common/signal.js\";\n\nimport { PRELUDE_BASE } from \"~/common/facets/constants.js\";\nimport { buildFacets } from \"~/common/facets/utils.js\";\n\n/**\n * @import {DiffuseElement} from \"~/common/element.js\"\n * @import {Facet, PlaylistItem, Setting, Track} from \"~/definitions/types.d.ts\"\n * @import {OutputManagerDeputy, OutputElement} from \"@specs/components/output/types.d.ts\"\n *\n * @import {OutputConfiguratorElement} from \"@specs/components/configurator/output/types.d.ts\"\n */\n\n/**\n * @typedef {OutputElement} Output\n */\n\nconst STORAGE_PREFIX = \"diffuse/configurator/output\";\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {OutputConfiguratorElement}\n */\nclass OutputConfigurator extends BroadcastableDiffuseElement {\n static NAME = \"diffuse/configurator/output\";\n\n constructor() {\n super();\n\n /** @type {OutputManagerDeputy} */\n const manager = {\n facets: {\n collection: computed(() => {\n const out = this.#selected.value;\n if (out) return out.facets.collection();\n\n const def = this.#defaultOutput.value;\n if (def) {\n const col = def.facets.collection();\n\n // Recover from the bootstrap deadlock: a non-default output is\n // selected (but its elements aren't created yet, hence `out` is\n // null) and the local bucket has no prelude facets to inject the\n // output-bundle prelude from. Seed the base infrastructure\n // preludes so the page can bootstrap the selected output.\n if (col.state === \"loaded\" && this.#needsPreludeRecovery(col.data)) {\n return {\n state: \"loaded\",\n data: [...col.data, ...buildFacets(PRELUDE_BASE)],\n };\n }\n\n return col;\n }\n\n if (this.hasDefault()) return { state: \"loading\" };\n\n return this.#setupFinished.value\n ? { state: \"loaded\", data: this.#memory.facets.value }\n : { state: \"loading\" };\n }),\n reload: () => {\n const def = this.#defaultOutput.value;\n if (def) def.facets.reload();\n\n const out = this.#selected.value;\n if (out) return out.facets.reload();\n\n return Promise.resolve();\n },\n save: async (newFacets) => {\n const out = this.#selected.value;\n if (out) return await out.facets.save(newFacets);\n\n const def = this.#defaultOutput.value;\n if (def) return await def.facets.save(newFacets);\n\n this.#memory.facets.value = newFacets;\n },\n },\n playlistItems: {\n collection: computed(() => {\n const out = this.#selected.value;\n if (out) return out.playlistItems.collection();\n\n const def = this.#defaultOutput.value;\n if (def) return def.playlistItems.collection();\n if (this.hasDefault()) return { state: \"loading\" };\n\n return this.#setupFinished.value\n ? { state: \"loaded\", data: this.#memory.playlistItems.value }\n : { state: \"loading\" };\n }),\n reload: () => {\n const def = this.#defaultOutput.value;\n if (def) def.playlistItems.reload();\n\n const out = this.#selected.value;\n if (out) return out.playlistItems.reload();\n\n return Promise.resolve();\n },\n save: async (newPlaylistItems) => {\n const out = this.#selected.value;\n if (out) return await out.playlistItems.save(newPlaylistItems);\n\n const def = this.#defaultOutput.value;\n if (def) return await def.playlistItems.save(newPlaylistItems);\n\n this.#memory.playlistItems.value = newPlaylistItems;\n },\n },\n settings: {\n collection: computed(() => {\n const out = this.#selected.value;\n if (out) return out.settings.collection();\n\n const def = this.#defaultOutput.value;\n if (def) return def.settings.collection();\n if (this.hasDefault()) return { state: \"loading\" };\n\n return this.#setupFinished.value\n ? { state: \"loaded\", data: this.#memory.settings.value }\n : { state: \"loading\" };\n }),\n reload: () => {\n const def = this.#defaultOutput.value;\n if (def) def.settings.reload();\n\n const out = this.#selected.value;\n if (out) return out.settings.reload();\n\n return Promise.resolve();\n },\n save: async (newSettings) => {\n const out = this.#selected.value;\n if (out) return await out.settings.save(newSettings);\n\n const def = this.#defaultOutput.value;\n if (def) return await def.settings.save(newSettings);\n\n this.#memory.settings.value = newSettings;\n },\n },\n tracks: {\n collection: computed(() => {\n const out = this.#selected.value;\n if (out) return out.tracks.collection();\n\n const def = this.#defaultOutput.value;\n if (def) return def.tracks.collection();\n if (this.hasDefault()) return { state: \"loading\" };\n\n return this.#setupFinished.value\n ? { state: \"loaded\", data: this.#memory.tracks.value }\n : { state: \"loading\" };\n }),\n reload: () => {\n const def = this.#defaultOutput.value;\n if (def) def.tracks.reload();\n\n const out = this.#selected.value;\n if (out) return out.tracks.reload();\n\n return Promise.resolve();\n },\n save: async (newTracks) => {\n const out = this.#selected.value;\n if (out) return await out.tracks.save(newTracks);\n\n const def = this.#defaultOutput.value;\n if (def) return await def.tracks.save(newTracks);\n\n this.#memory.tracks.value = newTracks;\n },\n },\n\n // Other\n ready: computed(() => {\n const out = this.#selected.value;\n if (out) return out.ready();\n\n const def = this.#defaultOutput.value;\n if (def) return def.ready();\n\n return this.#setupFinished.value;\n }),\n };\n\n // Assign manager properties to class\n this.facets = manager.facets;\n this.playlistItems = manager.playlistItems;\n this.settings = manager.settings;\n this.tracks = manager.tracks;\n this.ready = manager.ready;\n\n // Effects\n\n /**\n * When there's a selected output and its collection changes,\n * save it to the default output or memory.\n */\n this.effect(() => {\n const out = this.#selected.value;\n if (!out) return;\n\n const col = out.facets.collection();\n if (col.state !== \"loaded\") return;\n\n const def = this.#defaultOutput.value;\n if (def) def.facets.save(col.data);\n else this.#memory.facets.set(col.data);\n });\n\n this.effect(() => {\n const out = this.#selected.value;\n if (!out) return;\n\n const col = out.playlistItems.collection();\n if (col.state !== \"loaded\") return;\n\n const def = this.#defaultOutput.value;\n if (def) def.playlistItems.save(col.data);\n else this.#memory.playlistItems.set(col.data);\n });\n\n this.effect(() => {\n const out = this.#selected.value;\n if (!out) return;\n\n const col = out.settings.collection();\n if (col.state !== \"loaded\") return;\n\n const def = this.#defaultOutput.value;\n if (def) def.settings.save(col.data);\n else this.#memory.settings.set(col.data);\n });\n\n this.effect(() => {\n const out = this.#selected.value;\n if (!out) return;\n\n const col = out.tracks.collection();\n if (col.state !== \"loaded\") return;\n\n const def = this.#defaultOutput.value;\n if (def) def.tracks.save(col.data);\n else this.#memory.tracks.set(col.data);\n });\n }\n\n // SIGNALS\n\n #activated = signal(/** @type {Set} */ (new Set()));\n\n #defaultOutput = signal(\n /** @type {Output | null | undefined} */ (undefined),\n );\n\n #memory = {\n facets: signal(/** @type {Facet[]} */ ([])),\n playlistItems: signal(/** @type {PlaylistItem[]} */ ([])),\n settings: signal(/** @type {Setting[]} */ ([])),\n tracks: signal(/** @type {Track[]} */ ([])),\n };\n\n #selected = signal(\n /** @type {Output | null | undefined} */ (undefined),\n );\n\n #setupFinished = signal(false);\n\n // STATE\n\n activated = this.#activated.get;\n selected = computed(() => this.#selected.value ?? null);\n\n // LIFECYCLE\n\n /**\n * @override\n */\n async connectedCallback() {\n // Broadcast if needed\n if (this.hasAttribute(\"group\")) {\n const actions = this.broadcast(this.identifier, {\n selectOutput: {\n strategy: \"replicate\",\n fn: this.#selectOutput,\n },\n });\n\n if (actions) {\n this.#selectOutput = actions.selectOutput;\n }\n }\n\n // Super\n super.connectedCallback();\n\n // Outputs\n const def_ault = this.getAttribute(\"default\");\n const selectedOutputId = this.#selectedOutputId();\n\n batch(() => {\n /** @type {Set} */\n const activated = new Set();\n\n if (def_ault) {\n activated.add(def_ault);\n }\n\n if (selectedOutputId) {\n activated.add(selectedOutputId);\n }\n\n this.#activated.value = activated;\n });\n\n /** @type {Output | null} */\n const defaultOutput = def_ault ? await this.#findOutput(def_ault) : null;\n const selectedOutput = await this.#findOutput(selectedOutputId);\n\n batch(() => {\n this.#selected.value = selectedOutput;\n this.#defaultOutput.value = defaultOutput;\n this.#setupFinished.value = true;\n });\n }\n\n // MISC\n\n /**\n * @param {string | null} id\n */\n async #findOutput(id) {\n const el = id ? this.root().querySelector(`#${id}`) : null;\n if (!el) return null;\n\n await customElements.whenDefined(el.localName);\n\n if (\n \"identifier\" in el === false ||\n \"tracks\" in el === false\n ) {\n return null;\n }\n\n return /** @type {Output} */ (/** @type {unknown} */ (el));\n }\n\n /**\n * Whether the local bucket needs the base infrastructure preludes seeded\n * into the fallback.\n *\n * @param {Facet[]} localFacets\n * @returns {boolean}\n */\n #needsPreludeRecovery(localFacets) {\n const selectedId = this.#selectedOutputId();\n const defaultId = this.getAttribute(\"default\");\n\n // Only a non-default selection depends on the prelude to be created.\n if (!selectedId || selectedId === defaultId) return false;\n\n // If the local bucket already has preludes, the normal path works.\n return !localFacets.some((f) => f.kind === \"prelude\");\n }\n\n /**\n * @param {string | null} id\n */\n #selectOutput = async (id) => {\n if (id) {\n this.#activated.value = new Set([...this.#activated.value.values(), id]);\n }\n\n this.#selected.value = await this.#findOutput(id);\n };\n\n #selectedOutputId() {\n return localStorage.getItem(`${STORAGE_PREFIX}/selected/id`);\n }\n\n /**\n * @override\n */\n dependencies = () => {\n return Object.fromEntries(\n Array.from(this.root().children).flatMap((element) => {\n if (element.hasAttribute(\"id\") === false) {\n console.warn(\n \"Missing `id` for output configurator child element with `localName` '\" +\n element.localName + \"'\",\n );\n return [];\n }\n\n const d = /** @type {DiffuseElement} */ (element);\n return [[d.id, d]];\n }),\n );\n };\n\n // ADDITIONAL ACTIONS\n\n deselect = async () => {\n localStorage.removeItem(`${STORAGE_PREFIX}/selected/id`);\n await this.#selectOutput(null);\n };\n\n hasDefault() {\n return this.hasAttribute(\"default\");\n }\n\n hasSelected() {\n return this.#selectedOutputId() !== null;\n }\n\n loadSelected = async () => {\n const selectedOutput = await this.#findOutput(this.#selectedOutputId());\n this.#selected.value = selectedOutput;\n };\n\n options = async () => {\n const deps = this.dependencies();\n const entries = Object.entries(deps);\n\n return entries.map(([k, v]) => {\n return {\n id: k,\n label: v.label ?? v.getAttribute(\"label\"),\n element: /** @type {OutputElement} */ (v),\n };\n });\n };\n\n /**\n * @param {string} id\n */\n select = async (id) => {\n localStorage.setItem(`${STORAGE_PREFIX}/selected/id`, id);\n await this.#selectOutput(id);\n };\n\n /**\n * @param {string} label\n * @returns {Promise<{ id: string, label: string, element: OutputElement }>}\n */\n waitForOption = (label) => {\n return new Promise((resolve) => {\n const check = async () => {\n const opt = (await this.options()).find((o) => o.label === label);\n if (opt) {\n observer.disconnect();\n resolve(opt);\n }\n };\n\n const observer = new MutationObserver(check);\n observer.observe(this, { childList: true });\n check();\n });\n };\n}\n\nexport default OutputConfigurator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = OutputConfigurator;\nexport const NAME = \"dc-output\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["element_exports","__export","CLASS","NAME","element_default","STORAGE_PREFIX","OutputConfigurator","BroadcastableDiffuseElement","__name","manager","computed","out","#selected","def","#defaultOutput","col","#needsPreludeRecovery","buildFacets","PRELUDE_BASE","#setupFinished","#memory","newFacets","newPlaylistItems","newSettings","newTracks","#activated","signal","actions","#selectOutput","def_ault","selectedOutputId","#selectedOutputId","batch","activated","defaultOutput","#findOutput","selectedOutput","id","el","localFacets","selectedId","defaultId","f","element","d","deps","k","v","label","resolve","check","opt","o","observer","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-VELBWKKV.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js new file mode 100644 index 00000000..fe580371 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js @@ -0,0 +1,3 @@ +import{a as h,d as n,g as u}from"./chunk-WE3IOYGI.js";import{a as c,b as l,d as p}from"./chunk-JL66OXVZ.js";import{b as s,e as i}from"./chunk-IA3NIKPO.js";import{a,c as y}from"./chunk-75KFZLU6.js";var b={};y(b,{CLASS:()=>d,NAME:()=>m,default:()=>E});var r=class extends s{static{a(this,"DropboxInput")}static NAME="diffuse/input/dropbox";static WORKER_URL="components/input/dropbox/worker.js";SCHEME=c;appKey=l;static observedAttributes=["app-key"];attributeChangedCallback(t,e,o){super.attributeChangedCallback(t,e,o),t==="app-key"&&o!==null&&(this.appKey=o)}constructor(){super(),this.proxy=this.workerProxy(),this.artwork=this.proxy.artwork,this.consult=this.proxy.consult,this.detach=this.proxy.detach,this.groupConsult=this.proxy.groupConsult,this.list=this.proxy.list,this.resolve=this.proxy.resolve}async authorize(){localStorage.setItem("oauth/callback/redirect_path",location.pathname+location.search);let{verifier:t,challenge:e}=await h();localStorage.setItem(p,t);let o=new URLSearchParams({response_type:"code",client_id:this.appKey,redirect_uri:location.origin+"/oauth/callback/",token_access_type:"offline",code_challenge:e,code_challenge_method:"S256"});location.assign(`https://www.dropbox.com/oauth2/authorize?${o}`)}sources(t){return Object.values(u(t)).map(e=>({label:`Dropbox (${e.directoryPath})`,uri:n(e)}))}},E=r,d=r,m="di-dropbox";i(m,d);export{E as a,d as b,m as c,b as d}; + +//# sourceMappingURL=./chunk-VIZWZUCQ.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js.br new file mode 100644 index 0000000000000000000000000000000000000000..f5921b492fefdc567d983c09aee4168b6182b64e GIT binary patch literal 705 zcmb0xV`X@fZ@>2c-=Cj$ux-|_TKZ~(?NZT25tj-Wg0DS%zFxC#3A6Q<%m44E>KJKE zx>dfoQSQd6MI{=p#@k&|k{`(ZHko(v$dj6#K?Ok!bRoqhMsT_?7>OvOgBq zZ@C{oI-gY?weFU6>z;Wn{LwELB)COsWcAwD-|XvqX2kFN;k4~}s_>CN z%(W37HVy*93}#D%V)DNThpcD zT%YB3iy_xug{w8?!Yh@XLhZ)uw^ZD^qsX#pwPxk>8BaXFxx{myRLav{w|bVmp^(A$ z$JRIAo>(Gs?Pj*Zi}o_UgJPlnZ%(||ezKYQBVWw(^K6k%FI}Cm+rDh)!Z(M6a*xia z5aw96pj2ifi|xm5(>JC+)~!FRVy!i&xMPRiowOYtOgb!kw(j&}DqkBqquOk8r?r2= zj?(WZHePW#aQxD&=PwkUlz852D<6oMoE?3PbE)a-(w!^*KmIPC^5(GfyHqdLi=6pM zYcKmszvVA^mvHQ;@yCA!V$Xg(ULG@p*U&5F(sQoYvW}a61aJBIe#;@rYb`h2rzQEx z7x=BpE1&#ESM1-E;@ix>TlSRB=;OWFpg+$t(T_**n8QRbjukD+{3}|Yy!ZJa$n@x= Wb}8r4{v#cQrQGh@d{~a{W(ELwzgiOj literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js.map new file mode 100644 index 00000000..9435f0b7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VIZWZUCQ.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/input/dropbox/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\nimport { DEFAULT_APP_KEY, PKCE_VERIFIER_KEY, SCHEME } from \"./constants.js\";\nimport { accountsFromTracks, buildURI, generatePKCEPair } from \"./common.js\";\n\n/**\n * @import {InputActions, InputSchemeProvider} from \"@specs/components/input/types.d.ts\"\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {Track} from \"~/definitions/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n * @implements {InputSchemeProvider}\n */\nclass DropboxInput extends DiffuseElement {\n static NAME = \"diffuse/input/dropbox\";\n static WORKER_URL = \"components/input/dropbox/worker.js\";\n\n SCHEME = SCHEME;\n\n /** @type {string} */\n appKey = DEFAULT_APP_KEY;\n\n static observedAttributes = [\"app-key\"];\n\n /**\n * @override\n * @param {string} name\n * @param {string} old\n * @param {string} next\n */\n attributeChangedCallback(name, old, next) {\n super.attributeChangedCallback(name, old, next);\n if (name === \"app-key\" && next !== null) this.appKey = next;\n }\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n this.proxy = this.workerProxy();\n\n this.artwork = this.proxy.artwork;\n this.consult = this.proxy.consult;\n this.detach = this.proxy.detach;\n this.groupConsult = this.proxy.groupConsult;\n this.list = this.proxy.list;\n this.resolve = this.proxy.resolve;\n }\n\n // 🛠️\n\n async authorize() {\n localStorage.setItem(\"oauth/callback/redirect_path\", location.pathname + location.search);\n\n // Use the authorization-code flow with PKCE so we receive a\n // long-lived refresh token that can automatically renew the\n // short-lived access token (4 h) without user interaction.\n const { verifier, challenge } = await generatePKCEPair();\n localStorage.setItem(PKCE_VERIFIER_KEY, verifier);\n\n const params = new URLSearchParams({\n response_type: \"code\",\n client_id: this.appKey,\n redirect_uri: location.origin + \"/oauth/callback/\",\n token_access_type: \"offline\",\n code_challenge: challenge,\n code_challenge_method: \"S256\",\n });\n\n location.assign(`https://www.dropbox.com/oauth2/authorize?${params}`);\n }\n\n /** @param {Track[]} tracks */\n sources(tracks) {\n return Object.values(accountsFromTracks(tracks)).map((account) => ({\n label: `Dropbox (${account.directoryPath})`,\n uri: buildURI(account),\n }));\n }\n}\n\nexport default DropboxInput;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = DropboxInput;\nexport const NAME = \"di-dropbox\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"qMAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAkBA,IAAMC,EAAN,cAA2BC,CAAe,CAlB1C,MAkB0C,CAAAC,EAAA,qBACxC,OAAO,KAAO,wBACd,OAAO,WAAa,qCAEpB,OAASC,EAGT,OAASC,EAET,OAAO,mBAAqB,CAAC,SAAS,EAQtC,yBAAyBC,EAAMC,EAAKC,EAAM,CACxC,MAAM,yBAAyBF,EAAMC,EAAKC,CAAI,EAC1CF,IAAS,WAAaE,IAAS,OAAM,KAAK,OAASA,EACzD,CAEA,aAAc,CACZ,MAAM,EAGN,KAAK,MAAQ,KAAK,YAAY,EAE9B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,OAAS,KAAK,MAAM,OACzB,KAAK,aAAe,KAAK,MAAM,aAC/B,KAAK,KAAO,KAAK,MAAM,KACvB,KAAK,QAAU,KAAK,MAAM,OAC5B,CAIA,MAAM,WAAY,CAChB,aAAa,QAAQ,+BAAgC,SAAS,SAAW,SAAS,MAAM,EAKxF,GAAM,CAAE,SAAAC,EAAU,UAAAC,CAAU,EAAI,MAAMC,EAAiB,EACvD,aAAa,QAAQC,EAAmBH,CAAQ,EAEhD,IAAMI,EAAS,IAAI,gBAAgB,CACjC,cAAe,OACf,UAAW,KAAK,OAChB,aAAc,SAAS,OAAS,mBAChC,kBAAmB,UACnB,eAAgBH,EAChB,sBAAuB,MACzB,CAAC,EAED,SAAS,OAAO,4CAA4CG,CAAM,EAAE,CACtE,CAGA,QAAQC,EAAQ,CACd,OAAO,OAAO,OAAOC,EAAmBD,CAAM,CAAC,EAAE,IAAKE,IAAa,CACjE,MAAO,YAAYA,EAAQ,aAAa,IACxC,IAAKC,EAASD,CAAO,CACvB,EAAE,CACJ,CACF,EAEOE,EAAQjB,EAMFkB,EAAQlB,EACRmB,EAAO,aAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","DropboxInput","DiffuseElement","__name","SCHEME","DEFAULT_APP_KEY","name","old","next","verifier","challenge","generatePKCEPair","PKCE_VERIFIER_KEY","params","tracks","accountsFromTracks","account","buildURI","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-VIZWZUCQ.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js new file mode 120000 index 00000000..5422b6d6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-VJVS6ZD2.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js.br new file mode 120000 index 00000000..b33220b3 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js.br @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-VJVS6ZD2.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js.map new file mode 120000 index 00000000..29cd2bd0 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VJVS6ZD2.js.map @@ -0,0 +1 @@ +../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/chunk-VJVS6ZD2.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js new file mode 100644 index 00000000..c9af7f67 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js @@ -0,0 +1,3 @@ +import{b as a,e as s}from"./chunk-IA3NIKPO.js";import{a as o,c as n}from"./chunk-75KFZLU6.js";var d={};n(d,{CLASS:()=>m,NAME:()=>c,default:()=>i});var t=class extends a{static{o(this,"MetadataConfigurator")}static NAME="diffuse/configurator/metadata";static WORKER_URL="components/configurator/metadata/worker.js";constructor(){super();let e=this.workerProxy();this.patch=e.patch}dependencies(){return Object.fromEntries(Array.from(this.children).map(e=>{let r=e;return[r.localName,r]}))}},i=t,m=t,c="dc-metadata";s(c,t);export{i as a,m as b,c,d}; + +//# sourceMappingURL=./chunk-VMZR66KW.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js.br new file mode 100644 index 0000000000000000000000000000000000000000..c33b2be1941ab932875b6f06f439ad52439fb617 GIT binary patch literal 334 zcmb1EW@30UXXWncoQ91h&w{NEX>PsrZ+B-y$dQY_^#{~zH-yjHGJA`L^yPP&AA2rY zoKiWkCHACur6=FE$L5P1T09jcC$P-kG~steN94lS>od*m?#!{bw%KQqo_pX9i{~4M z;AKZXJ^Fa>^2xW87(TZOYJS!9-)VPpfB+m!{)zzmM literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js.map new file mode 100644 index 00000000..50bd9942 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VMZR66KW.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/configurator/metadata/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\n\n/**\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {MetadataElement} from \"@specs/components/metadata/types.d.ts\"\n * @import {Actions} from \"@specs/components/configurator/metadata/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n */\nclass MetadataConfigurator extends DiffuseElement {\n static NAME = \"diffuse/configurator/metadata\";\n static WORKER_URL = \"components/configurator/metadata/worker.js\";\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n const proxy = this.workerProxy();\n\n this.patch = proxy.patch;\n }\n\n // WORKERS\n\n /**\n * @override\n */\n dependencies() {\n return Object.fromEntries(\n Array.from(this.children).map((element) => {\n const metadata = /** @type {MetadataElement} */ (element);\n return [metadata.localName, metadata];\n }),\n );\n }\n}\n\nexport default MetadataConfigurator;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = MetadataConfigurator;\nexport const NAME = \"dc-metadata\";\n\ndefineElement(NAME, MetadataConfigurator);\n"],"mappings":"8FAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAeA,IAAMC,EAAN,cAAmCC,CAAe,CAflD,MAekD,CAAAC,EAAA,6BAChD,OAAO,KAAO,gCACd,OAAO,WAAa,6CAEpB,aAAc,CACZ,MAAM,EAGN,IAAMC,EAAQ,KAAK,YAAY,EAE/B,KAAK,MAAQA,EAAM,KACrB,CAOA,cAAe,CACb,OAAO,OAAO,YACZ,MAAM,KAAK,KAAK,QAAQ,EAAE,IAAKC,GAAY,CACzC,IAAMC,EAA2CD,EACjD,MAAO,CAACC,EAAS,UAAWA,CAAQ,CACtC,CAAC,CACH,CACF,CACF,EAEOC,EAAQN,EAMFO,EAAQP,EACRQ,EAAO,cAEpBC,EAAcD,EAAMR,CAAoB","names":["element_exports","__export","CLASS","NAME","element_default","MetadataConfigurator","DiffuseElement","__name","proxy","element","metadata","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-VMZR66KW.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js new file mode 100644 index 00000000..d65cb6f6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js @@ -0,0 +1,3 @@ +import{a as T}from"./chunk-Y4Z6Z63V.js";import{a as D}from"./chunk-FESDLVUC.js";import{a as e,b as _,d as c}from"./chunk-75KFZLU6.js";var p=_((y,f)=>{f.exports={}});var h=c(D()),w=c(p()),l=c(T());var v=e(()=>{if(l.platform==="linux"){let t=(0,h.readFileSync)("/usr/bin/ldd","utf-8"),r=t.includes("musl")?"musl":t.includes("GNU C Library")?"glibc":null;if(r===null)throw new Error("unable to detect libc");return`${l.platform}-${l.arch}-${r}`}return`${l.platform}-${l.arch}`},"getPrebuildDir"),C=!1,s=e(()=>Date.now()*1e3,"now");try{let r=(0,w.createRequire)(import.meta.url)(`../prebuilds/${v()}/time-ms.node`);s=e(()=>Date.isFake?Date.now()*1e3:r.now(),"now"),C=!0}catch{}var x=e(t=>Math.floor(Math.random()*t),"random");var i="234567abcdefghijklmnopqrstuvwxyz",u=(()=>{let t=new Int16Array(123);t.fill(-1);for(let r=0;r{let t=Array.from({length:1024});for(let r=0;r<1024;r++){let o=i.charAt(r>>5&31),n=i.charAt(r&31);t[r]=o+n}return t})(),A=e(t=>{let r="";for(;t;){let o=t%32;t=Math.floor(t/32),r=i.charAt(o)+r}return r},"s32encode");var m=0,E=0,S=/^[234567abcdefghij][234567abcdefghijklmnopqrstuvwxyz]{12}$/,g=e((t,r)=>A(t).padStart(11,"2")+b[r],"createRaw"),H=e((t,r)=>{if(t<0||!Number.isSafeInteger(t))throw new Error("invalid timestamp");if(r<0||r>1023)throw new Error("invalid clockid");return g(t,r)},"create"),M=e(()=>{let t=s(),r;return t>m||t{if(t.length!==13)throw new Error("invalid TID");let r=0,o=0;for(let n=0;n<13;n++){let d=t.charCodeAt(n),a=d15)throw new Error("invalid TID");n<11?r=r*32+a:o=o*32+a}return{timestamp:r,clockid:o}},"parse"),F=e(t=>t.length===13&&S.test(t),"validate");export{g as a,H as b,M as c,z as d,F as e}; + +//# sourceMappingURL=./chunk-VQAZGKWE.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js.br new file mode 100644 index 0000000000000000000000000000000000000000..83d825c5baaa382cf92778f244f8309a7ebe25be GIT binary patch literal 932 zcmb1UWM_C1vFq3U=TlRq*G%4LYOyOk>mZ9L_eZrO(^7x@p82l+fWOrSMZS2Q-8QwK zx$d|Io5%%Tym&JvDgN{%+i4-%OvfAlN(gpX&gBXbuK9H6|B*#I=4>mItF!-K`17&R zf1$HdYR8Q#j(nMXTwZ?fuTMW0`W=4Z|F?COyQXJ(>Bmne`@`q!GrqXK?t}hwYYA?d zlE)tT&$&!)RQm7DUKa7mJ%-~(!pU&nB*&U2=bG#*bGqBl%+Oa_{GjxsMj-oo(&! zOy!>L8{%>7Kj+F4!OJ#*#kM96fdSIeOgW-z?axnG$tNUPzbh!nGhAbDDr8>pjAa8K zWAc%7$&|>ty28q(ZmCO;PhL6mthjgd`hUTXZ+%VMecL!=qG^YWf{A=>UTjt6e2=#k zvz|Kb%E%GpmRsi3m;LAli?CR=VMo6z z-=;Z+v1%`$JlTA=aGqy-#O;_l={FCAC9ZQlzdq&Dfmt@zyEqsB-|Fr2z)B-@8j^+IJ-$njI}O;lRP#cP?9kuD&!c|7gNG&G4f1-zE1CXq*b(-?z?%PRMrYkkubp3eS=jeZXUP=l=>L_B^^c{NPt)EO@F`=N=p_Z;O)-4y z_GJaDuD6+SL+O**t{Dy2Rk>X4uM{wokE~AT3h}C|%g0AJh&KFEc*3-^>BO#+w-yI~cr#7vVD_pO+t7o;v%h_k0|3?J B%VYom literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js.map new file mode 100644 index 00000000..93825f14 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VQAZGKWE.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/node-modules-polyfills-empty:node:module","/node_modules/.deno/@atcute+time-ms@1.3.3/node_modules/@atcute/time-ms/dist/index.node.js","/node_modules/.deno/@atcute+tid@1.1.4/node_modules/@atcute/tid/dist/random-node.js","/node_modules/.deno/@atcute+tid@1.1.4/node_modules/@atcute/tid/dist/s32.js","/node_modules/.deno/@atcute+tid@1.1.4/node_modules/@atcute/tid/dist/index.js"],"sourcesContent":["module.exports = {}","import { readFileSync } from 'node:fs';\nimport { createRequire } from 'node:module';\nimport { arch, platform } from 'node:process';\nconst getPrebuildDir = () => {\n if (platform === 'linux') {\n const ldd = readFileSync('/usr/bin/ldd', 'utf-8');\n const libc = ldd.includes('musl') ? 'musl' : ldd.includes('GNU C Library') ? 'glibc' : null;\n if (libc === null) {\n throw new Error(`unable to detect libc`);\n }\n return `${platform}-${arch}-${libc}`;\n }\n return `${platform}-${arch}`;\n};\n/** whether the native module is available for the current runtime. */\nexport let hasNative = false;\n/**\n * returns the current time in microseconds since unix epoch.\n *\n * @returns timestamp in microseconds\n */\nexport let now = () => {\n return Date.now() * 1_000;\n};\ntry {\n const require = createRequire(import.meta.url);\n const binding = require(`../prebuilds/${getPrebuildDir()}/time-ms.node`);\n now = () => {\n if (Date.isFake) {\n return Date.now() * 1_000;\n }\n return binding.now();\n };\n hasNative = true;\n}\ncatch {\n /* empty */\n}\n","/** returns a random integer in the range [0, max) */\nexport const random = (max) => {\n return Math.floor(Math.random() * max);\n};\n","const S32_CHAR = '234567abcdefghijklmnopqrstuvwxyz';\nexport const S32_DECODE_TABLE = /*#__PURE__*/ (() => {\n const table = new Int16Array(123);\n table.fill(-1);\n for (let i = 0; i < S32_CHAR.length; i++) {\n const code = S32_CHAR.charCodeAt(i);\n table[code] = i;\n }\n return table;\n})();\nexport const S32_2CHAR_TABLE = /*#__PURE__*/ (() => {\n const table = Array.from({ length: 1024 });\n for (let i = 0; i < 1024; i++) {\n const hi = S32_CHAR.charAt((i >> 5) & 31);\n const lo = S32_CHAR.charAt(i & 31);\n table[i] = hi + lo;\n }\n return table;\n})();\nexport const s32encode = (i) => {\n let s = '';\n while (i) {\n const c = i % 32;\n i = Math.floor(i / 32);\n s = S32_CHAR.charAt(c) + s;\n }\n return s;\n};\n","import { now as getNow } from '@atcute/time-ms';\nimport { random } from '#platform/random';\nimport { S32_2CHAR_TABLE, S32_DECODE_TABLE, s32encode } from './s32.js';\nlet lastTimestamp = 0;\nlet lastCurrentTime = 0;\nconst TID_RE = /^[234567abcdefghij][234567abcdefghijklmnopqrstuvwxyz]{12}$/;\n/** Creates a TID based off provided timestamp and clockid, with no validation. */\nexport const createRaw = (timestamp, clockid) => {\n return s32encode(timestamp).padStart(11, '2') + S32_2CHAR_TABLE[clockid];\n};\n/** Creates a TID based off provided timestamp and clockid */\nexport const create = (timestamp, clockid) => {\n if (timestamp < 0 || !Number.isSafeInteger(timestamp)) {\n throw new Error(`invalid timestamp`);\n }\n if (clockid < 0 || clockid > 1023) {\n throw new Error(`invalid clockid`);\n }\n return createRaw(timestamp, clockid);\n};\n/** Return a TID based on current time */\nexport const now = () => {\n const currentTime = getNow();\n let timestamp;\n // follow the clock backwards on correction, but never back into the overrun left by a burst that\n // outpaced it; those timestamps were already handed out\n if (currentTime > lastTimestamp || currentTime < lastCurrentTime) {\n timestamp = currentTime;\n }\n else {\n timestamp = lastTimestamp + 1;\n }\n lastCurrentTime = currentTime;\n lastTimestamp = timestamp;\n return createRaw(timestamp, random(1024));\n};\n/** Parses a TID, throws on invalid strings. */\nexport const parse = (tid) => {\n if (tid.length !== 13) {\n throw new Error(`invalid TID`);\n }\n let timestamp = 0;\n let clockid = 0;\n for (let idx = 0; idx < 13; idx++) {\n const code = tid.charCodeAt(idx);\n const value = code < S32_DECODE_TABLE.length ? S32_DECODE_TABLE[code] : -1;\n if (value < 0 || (idx === 0 && value > 15)) {\n throw new Error(`invalid TID`);\n }\n if (idx < 11) {\n timestamp = timestamp * 32 + value;\n }\n else {\n clockid = clockid * 32 + value;\n }\n }\n return { timestamp, clockid };\n};\n/** Validate if string is a valid TID */\nexport const validate = (tid) => {\n return tid.length === 13 && TID_RE.test(tid);\n};\n"],"mappings":"sIAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,CAAAA,EAAO,QAAU,CAAC,ICAlB,IAAAC,EAA6B,OAC7BC,EAA8B,OAC9BC,EAA+B,OAC/B,IAAMC,EAAiBC,EAAA,IAAM,CACzB,GAAI,aAAa,QAAS,CACtB,IAAMC,KAAM,gBAAa,eAAgB,OAAO,EAC1CC,EAAOD,EAAI,SAAS,MAAM,EAAI,OAASA,EAAI,SAAS,eAAe,EAAI,QAAU,KACvF,GAAIC,IAAS,KACT,MAAM,IAAI,MAAM,uBAAuB,EAE3C,MAAO,GAAG,UAAQ,IAAI,MAAI,IAAIA,CAAI,EACtC,CACA,MAAO,GAAG,UAAQ,IAAI,MAAI,EAC9B,EAVuB,kBAYZC,EAAY,GAMZC,EAAMJ,EAAA,IACN,KAAK,IAAI,EAAI,IADP,OAGjB,GAAI,CAEA,IAAMK,KADU,iBAAc,YAAY,GAAG,EACrB,gBAAgBN,EAAe,CAAC,eAAe,EACvEK,EAAMJ,EAAA,IACE,KAAK,OACE,KAAK,IAAI,EAAI,IAEjBK,EAAQ,IAAI,EAJjB,OAMNF,EAAY,EAChB,MACM,CAEN,CCpCO,IAAMG,EAASC,EAACC,GACZ,KAAK,MAAM,KAAK,OAAO,EAAIA,CAAG,EADnB,UCDtB,IAAMC,EAAW,mCACJC,GAAkC,IAAM,CACjD,IAAMC,EAAQ,IAAI,WAAW,GAAG,EAChCA,EAAM,KAAK,EAAE,EACb,QAASC,EAAI,EAAGA,EAAIH,EAAS,OAAQG,IAAK,CACtC,IAAMC,EAAOJ,EAAS,WAAWG,CAAC,EAClCD,EAAME,CAAI,EAAID,CAClB,CACA,OAAOD,CACX,GAAG,EACUG,GAAiC,IAAM,CAChD,IAAMH,EAAQ,MAAM,KAAK,CAAE,OAAQ,IAAK,CAAC,EACzC,QAASC,EAAI,EAAGA,EAAI,KAAMA,IAAK,CAC3B,IAAMG,EAAKN,EAAS,OAAQG,GAAK,EAAK,EAAE,EAClCI,EAAKP,EAAS,OAAOG,EAAI,EAAE,EACjCD,EAAMC,CAAC,EAAIG,EAAKC,CACpB,CACA,OAAOL,CACX,GAAG,EACUM,EAAYC,EAACN,GAAM,CAC5B,IAAIO,EAAI,GACR,KAAOP,GAAG,CACN,IAAMQ,EAAIR,EAAI,GACdA,EAAI,KAAK,MAAMA,EAAI,EAAE,EACrBO,EAAIV,EAAS,OAAOW,CAAC,EAAID,CAC7B,CACA,OAAOA,CACX,EARyB,aChBzB,IAAIE,EAAgB,EAChBC,EAAkB,EAChBC,EAAS,6DAEFC,EAAYC,EAAA,CAACC,EAAWC,IAC1BC,EAAUF,CAAS,EAAE,SAAS,GAAI,GAAG,EAAIG,EAAgBF,CAAO,EADlD,aAIZG,EAASL,EAAA,CAACC,EAAWC,IAAY,CAC1C,GAAID,EAAY,GAAK,CAAC,OAAO,cAAcA,CAAS,EAChD,MAAM,IAAI,MAAM,mBAAmB,EAEvC,GAAIC,EAAU,GAAKA,EAAU,KACzB,MAAM,IAAI,MAAM,iBAAiB,EAErC,OAAOH,EAAUE,EAAWC,CAAO,CACvC,EARsB,UAUTI,EAAMN,EAAA,IAAM,CACrB,IAAMO,EAAcD,EAAO,EACvBL,EAGJ,OAAIM,EAAcX,GAAiBW,EAAcV,EAC7CI,EAAYM,EAGZN,EAAYL,EAAgB,EAEhCC,EAAkBU,EAClBX,EAAgBK,EACTF,EAAUE,EAAWO,EAAO,IAAI,CAAC,CAC5C,EAdmB,OAgBNC,EAAQT,EAACU,GAAQ,CAC1B,GAAIA,EAAI,SAAW,GACf,MAAM,IAAI,MAAM,aAAa,EAEjC,IAAIT,EAAY,EACZC,EAAU,EACd,QAASS,EAAM,EAAGA,EAAM,GAAIA,IAAO,CAC/B,IAAMC,EAAOF,EAAI,WAAWC,CAAG,EACzBE,EAAQD,EAAOE,EAAiB,OAASA,EAAiBF,CAAI,EAAI,GACxE,GAAIC,EAAQ,GAAMF,IAAQ,GAAKE,EAAQ,GACnC,MAAM,IAAI,MAAM,aAAa,EAE7BF,EAAM,GACNV,EAAYA,EAAY,GAAKY,EAG7BX,EAAUA,EAAU,GAAKW,CAEjC,CACA,MAAO,CAAE,UAAAZ,EAAW,QAAAC,CAAQ,CAChC,EApBqB,SAsBRa,EAAWf,EAACU,GACdA,EAAI,SAAW,IAAMZ,EAAO,KAAKY,CAAG,EADvB","names":["require_node_module","__commonJSMin","exports","module","import_node_fs","import_node_module","import_node_process","getPrebuildDir","__name","ldd","libc","hasNative","now","binding","random","__name","max","S32_CHAR","S32_DECODE_TABLE","table","i","code","S32_2CHAR_TABLE","hi","lo","s32encode","__name","s","c","lastTimestamp","lastCurrentTime","TID_RE","createRaw","__name","timestamp","clockid","s32encode","S32_2CHAR_TABLE","create","now","currentTime","random","parse","tid","idx","code","value","S32_DECODE_TABLE","validate"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-VQAZGKWE.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js new file mode 100644 index 00000000..0367e767 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js @@ -0,0 +1,3 @@ +import{b as p,i as n}from"./chunk-YIHRBOZK.js";import{a as i}from"./chunk-VJVS6ZD2.js";import{b as r,e}from"./chunk-IA3NIKPO.js";import{a as o,c as l}from"./chunk-75KFZLU6.js";var x={};l(x,{CLASS:()=>u,NAME:()=>c,default:()=>a});var t=class extends r{static{o(this,"OpensubsonicInput")}static NAME="diffuse/input/opensubsonic";static WORKER_URL="components/input/opensubsonic/worker.js";SCHEME=i;constructor(){super(),this.proxy=this.workerProxy(),this.artwork=this.proxy.artwork,this.consult=this.proxy.consult,this.detach=this.proxy.detach,this.groupConsult=this.proxy.groupConsult,this.list=this.proxy.list,this.resolve=this.proxy.resolve}sources(h){return Object.values(n(h)).map(s=>({label:s.host,uri:p(s)}))}},a=t,u=t,c="di-opensubsonic";e(c,u);export{a,u as b,c,x as d}; + +//# sourceMappingURL=./chunk-VRBKFFFV.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js.br new file mode 100644 index 0000000000000000000000000000000000000000..0a5d86141232bb49168a7adf187f7a75337d05e5 GIT binary patch literal 410 zcmb2sFP~QE_YPjL$C}4Q>YtEGnAV z&c0sC&1+W3;f%$9Skr#BzYR;AFz4o575|Gq(lse}-d*k9`*p*0f#Z*-htK`iDr7oi zPhla~kqwvr)-1iDv#D9v>Bq^kiQI`vLN{9u3A3&B`0%@VW`^0_!bcpp1&uBx7wlOq zvEzr!+@%S;Qzh*u^li5f(63T@5;;Nta_7PqFMl>@+-P@u?$Yq5hF7Hc{>2khKQO8M zmOUd?ldiKb%HvR7XOy_Q(up9Ido26^E#CTE!?E*ly~~6wudQtDo&i2h+vAiwUA5Sc YFuT5eaLz(f)(n40GZX!h5!Hn literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js.map new file mode 100644 index 00000000..57e0adeb --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-VRBKFFFV.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/input/opensubsonic/element.js"],"sourcesContent":["import { defineElement, DiffuseElement } from \"~/common/element.js\";\nimport { SCHEME } from \"./constants.js\";\nimport { buildURI, serversFromTracks } from \"./common.js\";\n\n/**\n * @import {InputActions, InputSchemeProvider} from \"@specs/components/input/types.d.ts\"\n * @import {ProxiedActions} from \"~/common/worker.d.ts\"\n * @import {Track} from \"~/definitions/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// ELEMENT\n////////////////////////////////////////////\n\n/**\n * @implements {ProxiedActions}\n * @implements {InputSchemeProvider}\n */\nclass OpensubsonicInput extends DiffuseElement {\n static NAME = \"diffuse/input/opensubsonic\";\n static WORKER_URL = \"components/input/opensubsonic/worker.js\";\n\n SCHEME = SCHEME;\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n this.proxy = this.workerProxy();\n\n this.artwork = this.proxy.artwork;\n this.consult = this.proxy.consult;\n this.detach = this.proxy.detach;\n this.groupConsult = this.proxy.groupConsult;\n this.list = this.proxy.list;\n this.resolve = this.proxy.resolve;\n }\n\n // 🛠️\n\n /** @param {Track[]} tracks */\n sources(tracks) {\n return Object.values(serversFromTracks(tracks)).map((server) => {\n return {\n label: server.host,\n uri: buildURI(server),\n };\n });\n }\n}\n\nexport default OpensubsonicInput;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = OpensubsonicInput;\nexport const NAME = \"di-opensubsonic\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"gLAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAkBA,IAAMC,EAAN,cAAgCC,CAAe,CAlB/C,MAkB+C,CAAAC,EAAA,0BAC7C,OAAO,KAAO,6BACd,OAAO,WAAa,0CAEpB,OAASC,EAET,aAAc,CACZ,MAAM,EAGN,KAAK,MAAQ,KAAK,YAAY,EAE9B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,QAAU,KAAK,MAAM,QAC1B,KAAK,OAAS,KAAK,MAAM,OACzB,KAAK,aAAe,KAAK,MAAM,aAC/B,KAAK,KAAO,KAAK,MAAM,KACvB,KAAK,QAAU,KAAK,MAAM,OAC5B,CAKA,QAAQC,EAAQ,CACd,OAAO,OAAO,OAAOC,EAAkBD,CAAM,CAAC,EAAE,IAAKE,IAC5C,CACL,MAAOA,EAAO,KACd,IAAKC,EAASD,CAAM,CACtB,EACD,CACH,CACF,EAEOE,EAAQR,EAMFS,EAAQT,EACRU,EAAO,kBAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","OpensubsonicInput","DiffuseElement","__name","SCHEME","tracks","serversFromTracks","server","buildURI","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-VRBKFFFV.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WBAUNTUN.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WBAUNTUN.js new file mode 100644 index 00000000..56d8630b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WBAUNTUN.js @@ -0,0 +1,3 @@ +import{a as c}from"./chunk-RN7ZM2JO.js";import{b as o,e as i}from"./chunk-IA3NIKPO.js";import{a as s,c as n}from"./chunk-75KFZLU6.js";var p={};n(p,{CLASS:()=>u,NAME:()=>l,default:()=>a});var e=class extends o{static{s(this,"EphemeralCacheInput")}static NAME="diffuse/input/ephemeral-cache";static WORKER_URL="components/input/ephemeral-cache/worker.js";SCHEME=c;constructor(){super();let t=this.workerProxy();this.artwork=t.artwork,this.consult=t.consult,this.detach=t.detach,this.groupConsult=t.groupConsult,this.list=t.list,this.resolve=t.resolve}sources(t){return t.map(r=>({label:r.uri,uri:r.uri}))}},a=e,u=e,l="di-ephemeral-cache";i(l,u);export{a,u as b,l as c,p as d}; + +//# sourceMappingURL=./chunk-WBAUNTUN.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WBAUNTUN.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WBAUNTUN.js.br new file mode 100644 index 0000000000000000000000000000000000000000..62734d680389e4b71665bf3362f0ec0446668ed5 GIT binary patch literal 384 zcmb1M#KiC8_!EFIi^ zY1^|`sjN+L1QdxVlbJwqmVcQn~Q>!kMY&;;Z$abE{APc_r{6H(MfigurBh zM~~kg?S6b&d)4a;jck6+k+F8R6_&f>6+Qo7JUPSVuvN$I^xNCFOZS|vYv_La`R}se zgB>e#R;zfhKYjn;q)Yln?Vq=ifiweEDzl`QOdcC%xKM*PZG1I5uI^kIc6`Z{JSMFYo_${`*p~ z3$yq)yS`s1memlmepzHfi5)iUH-dibwtEY>$;1+@6nmR{7nsBJr~ zZZUt>tF3nzbas|;t?sn;49iTuzbJck{*--hRIanFzG(P=g09f~>#LH(zD0&SJ=J!$ vd9K5T$tBY*{5hw%a0o3_lA62m_Ph;TOyWOQiwie}9AXR!U9qtHlu8u}\n * @implements {InputSchemeProvider}\n */\nclass EphemeralCacheInput extends DiffuseElement {\n static NAME = \"diffuse/input/ephemeral-cache\";\n static WORKER_URL = \"components/input/ephemeral-cache/worker.js\";\n\n SCHEME = SCHEME;\n\n constructor() {\n super();\n\n /** @type {ProxiedActions} */\n const proxy = this.workerProxy();\n\n this.artwork = proxy.artwork;\n this.consult = proxy.consult;\n this.detach = proxy.detach;\n this.groupConsult = proxy.groupConsult;\n this.list = proxy.list;\n this.resolve = proxy.resolve;\n }\n\n // 🛠️\n\n /** @param {Track[]} tracks */\n sources(tracks) {\n return tracks.map((t) => ({\n label: t.uri,\n uri: t.uri,\n }));\n }\n}\n\nexport default EphemeralCacheInput;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = EphemeralCacheInput;\nexport const NAME = \"di-ephemeral-cache\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"sIAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,SAAAC,EAAA,YAAAC,IAiBA,IAAMC,EAAN,cAAkCC,CAAe,CAjBjD,MAiBiD,CAAAC,EAAA,4BAC/C,OAAO,KAAO,gCACd,OAAO,WAAa,6CAEpB,OAASC,EAET,aAAc,CACZ,MAAM,EAGN,IAAMC,EAAQ,KAAK,YAAY,EAE/B,KAAK,QAAUA,EAAM,QACrB,KAAK,QAAUA,EAAM,QACrB,KAAK,OAASA,EAAM,OACpB,KAAK,aAAeA,EAAM,aAC1B,KAAK,KAAOA,EAAM,KAClB,KAAK,QAAUA,EAAM,OACvB,CAKA,QAAQC,EAAQ,CACd,OAAOA,EAAO,IAAKC,IAAO,CACxB,MAAOA,EAAE,IACT,IAAKA,EAAE,GACT,EAAE,CACJ,CACF,EAEOC,EAAQP,EAMFQ,EAAQR,EACRS,EAAO,qBAEpBC,EAAcD,EAAMD,CAAK","names":["element_exports","__export","CLASS","NAME","element_default","EphemeralCacheInput","DiffuseElement","__name","SCHEME","proxy","tracks","t","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-WBAUNTUN.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js new file mode 100644 index 00000000..3d1d4074 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js @@ -0,0 +1,3 @@ +import{a as S,d as b}from"./chunk-OO43XB75.js";import{a as k,b as w,c as A}from"./chunk-JL66OXVZ.js";import{k as y}from"./chunk-J3G2CW6Q.js";import{a as m}from"./chunk-7NEQFE27.js";import{a as x,b as P}from"./chunk-TVBOGSPT.js";import{a as s}from"./chunk-75KFZLU6.js";function C(r){return btoa(String.fromCharCode(...r)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}s(C,"base64url");async function N(){let r=crypto.getRandomValues(new Uint8Array(32)),e=C(r),o=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e)),t=C(new Uint8Array(o));return{verifier:e,challenge:t}}s(N,"generatePKCEPair");async function $(r,e,o,t=w){let n=new URLSearchParams({code:r,grant_type:"authorization_code",client_id:t,redirect_uri:o??location.origin+"/oauth/callback/",code_verifier:e}),i=await fetch("https://api.dropboxapi.com/oauth2/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n});if(!i.ok)return null;let c=await i.json();return{refreshToken:c.refresh_token,accessToken:c.access_token}}s($,"exchangeCode");var T=new Map;function d(r,e=w){let o=Date.now(),t=T.get(r);if(t&&t.expiresAt>o+3e5)return Promise.resolve(t.accessToken);if(t?.inflight)return t.inflight;let n=(async()=>{try{let i=new URLSearchParams({grant_type:"refresh_token",refresh_token:r,client_id:e}),c=await fetch("https://api.dropboxapi.com/oauth2/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i});if(!c.ok)return null;let a=await c.json(),u=a.access_token,f=o+a.expires_in*1e3;return T.set(r,{accessToken:u,expiresAt:f,inflight:null}),u}catch{return null}})();return t?t.inflight=n:T.set(r,{accessToken:"",expiresAt:0,inflight:n}),n}s(d,"getAccessToken");function z(r,e){return P({scheme:k,userinfo:encodeURIComponent(r.refreshToken),host:"dropbox.com",path:e||"/",query:m.stringify({dir:r.directoryPath||"/"})})}s(z,"buildURI");function _(r){let e=x(r);if(e.scheme!==k||!e.userinfo)return;let o=decodeURIComponent(e.userinfo),t=y(e.path||"/"),n=m.parse(e.query||""),i=typeof n.dir=="string"?y(n.dir):"/";return{refreshToken:o,path:t,directoryPath:i}}s(_,"parseURI");function g(r){return`${r.refreshToken}:${r.directoryPath}`}s(g,"accountId");function B(r){let e={};return r.forEach(o=>{let t=_(o.uri);if(!t)return;let n=g(t);e[n]||(e[n]={refreshToken:t.refreshToken,directoryPath:t.directoryPath})}),e}s(B,"accountsFromTracks");function F(r){let e={};return r.forEach(o=>{let t=_(o.uri);if(!t)return;let n=g(t);e[n]?e[n].tracks.push(o):e[n]={account:{refreshToken:t.refreshToken,directoryPath:t.directoryPath},tracks:[o]}}),e}s(F,"groupTracksByAccount");function M(r){let e={};return r.forEach(o=>{let t=_(o);if(!t)return;let n=g(t);e[n]?e[n].uris.push(o):e[n]={account:{refreshToken:t.refreshToken,directoryPath:t.directoryPath},uris:[o]}}),e}s(M,"groupUrisByAccount");async function v(r,e){let o=await d(r);if(!o)return null;let t=e==="/"?"":e,n={Authorization:`Bearer ${o}`,"Content-Type":"application/json"},i=[],c=null,a=!0;for(;a;){let u=c?"https://api.dropboxapi.com/2/files/list_folder/continue":"https://api.dropboxapi.com/2/files/list_folder",f=JSON.stringify(c?{cursor:c}:{path:t,recursive:!0,limit:2e3}),h=await fetch(u,{method:"POST",headers:n,body:f});if(!h.ok)return null;let p=await h.json();for(let l of p.entries)l[".tag"]==="file"&&b(l.name)&&i.push({name:l.name,path_lower:l.path_lower});a=p.has_more,c=p.cursor}return i}s(v,"listFiles");async function J(r,e){let o=await d(r);if(!o)return null;let t={Authorization:`Bearer ${o}`,"Content-Type":"application/json"},n=[],i=null,c=!0;for(;c;){let a=i?"https://api.dropboxapi.com/2/files/list_folder/continue":"https://api.dropboxapi.com/2/files/list_folder",u=JSON.stringify(i?{cursor:i}:{path:e,recursive:!1,limit:2e3}),f=await fetch(a,{method:"POST",headers:t,body:u});if(!f.ok)return null;let h=await f.json();for(let p of h.entries)p[".tag"]==="file"&&n.push({name:p.name,path_lower:p.path_lower});c=h.has_more,i=h.cursor}return n}s(J,"listDirFiles");async function D(r,e){let o=await d(r);if(!o)return null;let t=await fetch("https://api.dropboxapi.com/2/files/get_temporary_link",{method:"POST",headers:{Authorization:`Bearer ${o}`,"Content-Type":"application/json"},body:JSON.stringify({path:e})});return t.ok?(await t.json()).link??null:null}s(D,"getTemporaryLink");async function R(r){let e=await d(r);if(!e)return"no";try{return(await fetch("https://api.dropboxapi.com/2/users/get_current_account",{method:"POST",headers:{Authorization:`Bearer ${e}`}})).ok?"yes":"no"}catch{return"unsure"}}s(R,"checkAccess");var L=S(R,r=>r);export{N as a,$ as b,d as c,z as d,_ as e,g as f,B as g,F as h,M as i,v as j,J as k,D as l,R as m,L as n}; + +//# sourceMappingURL=./chunk-WE3IOYGI.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js.br new file mode 100644 index 0000000000000000000000000000000000000000..d55b9052f66dab6a1c4b7efe9c0f0b38e644fdb9 GIT binary patch literal 1638 zcmb2P7h-r4wd()(dP~dSQh(M2dL4D1a%oqSYRW?vHzJJ8RbNdzZg%a~|hftqtwDxjirKj>Mg{IHzxJmKQhw{?B^>mp8G; z+eTVe+}!axvE$&oug|_-y!-LuDYe-FMn`f**UQiUp6@4@C*Q8|eo^kac$xk2cDWvh zysQ=Y{I*Kv=Bw_^kUF)>zAV6_Ji*viBDpW9Kvt|)&rP;PP37}MS0PogdUxN3wn;Jy zFE-pf7WMR(L$t)y4PR#+GhJ93|Fcba|e6BB3YS-L#)XWZhr!_tB=T-}{ngzFTogxWeLY_PRCs4BLX92KxS)c+h#H@|2bT z`#eOJzBuY=?m2DVqtt-f-=e3dKIZy(b=GeIucF=uEBY4a>GSpFEiL1j_jR^KNXEr( z!{w_4|F*u<&)srzZAnqUq*;re-AO#|`FOH$YO94q%vIy*j+31f9bT`V`=Y11q^;n| zlA>9+E$r4Y8eUlA+L2@Y@5GTU93Ltj4u$3|SkbyeH{4EFuVKBH$jOCi>m0IgpWI)S z#m>7*d!qX##%$?O%N-u}aVrw@PG%dV-1@?8+|X#3&qC)E<8FK$V8o{IS% z&3E!Ix+^R&F8ICAo!58wBxmD=GsRqa=cOE7_@ztITJ6EY{)*7f#rv-O|ND9-clPGz zIXib{XRoj+IhMUdfguiNsPk0cwHw9c84`B>#>7vub{rvhe84^~SqOj`ae&+9UW z$s#Mqm75dPnALor@P%>+?RVP6m}|@`v_yNOP|(Rz1M#xJtR-cO&i+50C2A4b>mH_+ zCv;80b5%fXrj7f<;Cs1w3nF3`@mS{N6&Y*KHTfWQehIGC8RMcVA7eT zJ|C*Lsxh!C*-zfHwa)uhx525fJ?+a^X~rp}i+UOougglcjgER8f0TQnTQe}n!_&0OjVGc( zT&-*41k?G<6=p5}b!MCM{M{vRAWY?mMQQ#iMJD${YeLkjpF}^rm0Q61ZoPINd&#kj zk#%*~i^7@w-`OVLs$nuCx7}$1>K9Ny}Zl^@WlmpKe*m z^Qmdi!4AHUTbA0LxnASFJre<#8M0epv4baN_7tV0*yTyW+djwC!i=zfCPU zWmPJ^?h8`(-(_yd#}A?b!n3Bs%x>GCUO(5OwCvnWc}*(CH0?Y zZE|IoUaQE}GL3w{_*P`Y&Kc87zqD>%T39P*wKMa<*69NJ0=sv~Y3|$5GI^Qv&#ow5 zk?zJ4m#YjX&t$L{&1RKoV(Ml~4SR2%b5CNEaMb)Yp`O3x5A1n!V0xNBc=^Hm`*Sa) zyYY$q{T-g%d(E@wc|!biZ?(+J74ubN%8;kRNh<9@TfO%cF=@>(wbk=wi>s4Lh%178PQ7 zy4W$aOU8S~+oLVwH(z@$?6Feqo2e?8u|uW(;==zE>$Zqp>g8a+(;pC9%Mi+P%qjbm z!=z&!9D=NgDdN)-o}_Ge^|;(GwbeoMduYNcuLn~~`!<-aI5SDKbw&5?@QXw_K|S02=5dr~m)} literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js.map new file mode 100644 index 00000000..e88cceef --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WE3IOYGI.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/components/input/dropbox/common.js"],"sourcesContent":["import * as URI from \"fast-uri\";\nimport QS from \"query-string\";\n\nimport { cachedConsult, isAudioFile } from \"~/components/input/common.js\";\nimport { safeDecodeURIComponent } from \"~/common/utils.js\";\nimport {\n ACCESS_TOKEN_REFRESH_MARGIN_MS,\n DEFAULT_APP_KEY,\n SCHEME,\n} from \"./constants.js\";\n\n/**\n * @import { Track } from \"~/definitions/types.d.ts\"\n * @import { ConsultResult } from \"@specs/components/input/types.d.ts\"\n */\n\n/**\n * @typedef {{ refreshToken: string; directoryPath: string }} Account\n */\n\n////////////////////////////////////////////\n// PKCE\n////////////////////////////////////////////\n\n/**\n * Base64url-encode raw bytes (no padding), as required by PKCE.\n *\n * @param {Uint8Array} bytes\n */\nfunction base64url(bytes) {\n return btoa(String.fromCharCode(...bytes))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n}\n\n/**\n * Generates a PKCE code verifier and its S256 challenge.\n *\n * The verifier is a random string the client keeps secret; the challenge\n * is `base64url(SHA-256(verifier))` and is sent to the authorization\n * server during the authorize request. When exchanging the code, the\n * verifier proves the client is the same one that started the flow.\n *\n * @returns {Promise<{ verifier: string; challenge: string }>}\n */\nexport async function generatePKCEPair() {\n const bytes = crypto.getRandomValues(new Uint8Array(32));\n const verifier = base64url(bytes);\n\n const digest = await crypto.subtle.digest(\"SHA-256\", new TextEncoder().encode(verifier));\n const challenge = base64url(new Uint8Array(digest));\n\n return { verifier, challenge };\n}\n\n////////////////////////////////////////////\n// TOKEN EXCHANGE & REFRESH\n////////////////////////////////////////////\n\n/**\n * Exchange an authorization code for a refresh token (and short-lived\n * access token) using the PKCE code verifier.\n *\n * @param {string} code - The authorization code returned by Dropbox.\n * @param {string} codeVerifier - The PKCE code verifier stored during authorize().\n * @param {string} [redirectUri] - The redirect URI registered with Dropbox.\n * @param {string} [appKey] - The Dropbox app key.\n * @returns {Promise<{ refreshToken: string; accessToken: string } | null>}\n */\nexport async function exchangeCode(code, codeVerifier, redirectUri, appKey = DEFAULT_APP_KEY) {\n const params = new URLSearchParams({\n code,\n grant_type: \"authorization_code\",\n client_id: appKey,\n redirect_uri: redirectUri ?? (location.origin + \"/oauth/callback/\"),\n code_verifier: codeVerifier,\n });\n\n const resp = await fetch(\"https://api.dropboxapi.com/oauth2/token\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n body: params,\n });\n\n if (!resp.ok) return null;\n\n /** @type {{ access_token: string; refresh_token: string }} */\n const data = await resp.json();\n return { refreshToken: data.refresh_token, accessToken: data.access_token };\n}\n\n/**\n * In-memory cache of access tokens keyed by refresh token.\n * Each entry stores the token and its expiry timestamp.\n *\n * @type {Map | null }>}\n */\nconst accessTokenCache = new Map();\n\n/**\n * Exchanges a refresh token for a fresh short-lived access token.\n *\n * Results are cached and reused until close to expiry. Concurrent calls\n * for the same refresh token share a single network request.\n *\n * @param {string} refreshToken\n * @param {string} [appKey]\n * @returns {Promise} The access token, or null if the refresh failed.\n */\nexport function getAccessToken(refreshToken, appKey = DEFAULT_APP_KEY) {\n const now = Date.now();\n const cached = accessTokenCache.get(refreshToken);\n\n // Return cached token if still valid (with a safety margin).\n if (cached && cached.expiresAt > now + ACCESS_TOKEN_REFRESH_MARGIN_MS) {\n return Promise.resolve(cached.accessToken);\n }\n\n // If a refresh is already in flight for this token, piggyback on it.\n if (cached?.inflight) {\n return cached.inflight;\n }\n\n const inflight = (async () => {\n try {\n const params = new URLSearchParams({\n grant_type: \"refresh_token\",\n refresh_token: refreshToken,\n client_id: appKey,\n });\n\n const resp = await fetch(\"https://api.dropboxapi.com/oauth2/token\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n body: params,\n });\n\n if (!resp.ok) return null;\n\n /** @type {{ access_token: string; expires_in: number }} */\n const data = await resp.json();\n const accessToken = data.access_token;\n const expiresAt = now + data.expires_in * 1000;\n\n accessTokenCache.set(refreshToken, { accessToken, expiresAt, inflight: null });\n return accessToken;\n } catch {\n return null;\n }\n })();\n\n if (cached) {\n cached.inflight = inflight;\n } else {\n accessTokenCache.set(refreshToken, { accessToken: \"\", expiresAt: 0, inflight });\n }\n\n return inflight;\n}\n\n////////////////////////////////////////////\n// URI\n////////////////////////////////////////////\n\n/**\n * @param {Account} account\n * @param {string} [filePath]\n */\nexport function buildURI(account, filePath) {\n return URI.serialize({\n scheme: SCHEME,\n userinfo: encodeURIComponent(account.refreshToken),\n host: \"dropbox.com\",\n path: filePath || \"/\",\n query: QS.stringify({ dir: account.directoryPath || \"/\" }),\n });\n}\n\n/**\n * @param {string} uriString\n * @returns {{ refreshToken: string; path: string; directoryPath: string } | undefined}\n */\nexport function parseURI(uriString) {\n const uri = URI.parse(uriString);\n if (uri.scheme !== SCHEME) return undefined;\n if (!uri.userinfo) return undefined;\n\n const refreshToken = decodeURIComponent(uri.userinfo);\n const path = safeDecodeURIComponent(uri.path || \"/\");\n const qs = QS.parse(uri.query || \"\");\n const directoryPath = typeof qs.dir === \"string\" ? safeDecodeURIComponent(qs.dir) : \"/\";\n\n return { refreshToken, path, directoryPath };\n}\n\n////////////////////////////////////////////\n// ACCOUNT HELPERS\n////////////////////////////////////////////\n\n/**\n * @param {Account} account\n */\nexport function accountId(account) {\n return `${account.refreshToken}:${account.directoryPath}`;\n}\n\n/**\n * @param {Track[]} tracks\n * @returns {Record}\n */\nexport function accountsFromTracks(tracks) {\n /** @type {Record} */\n const acc = {};\n\n tracks.forEach((track) => {\n const parsed = parseURI(track.uri);\n if (!parsed) return;\n\n const id = accountId(parsed);\n if (acc[id]) return;\n\n acc[id] = { refreshToken: parsed.refreshToken, directoryPath: parsed.directoryPath };\n });\n\n return acc;\n}\n\n/**\n * @param {Track[]} tracks\n * @returns {Record}\n */\nexport function groupTracksByAccount(tracks) {\n /** @type {Record} */\n const acc = {};\n\n tracks.forEach((track) => {\n const parsed = parseURI(track.uri);\n if (!parsed) return;\n\n const id = accountId(parsed);\n\n if (acc[id]) {\n acc[id].tracks.push(track);\n } else {\n acc[id] = {\n account: { refreshToken: parsed.refreshToken, directoryPath: parsed.directoryPath },\n tracks: [track],\n };\n }\n });\n\n return acc;\n}\n\n/**\n * @param {string[]} uris\n * @returns {Record}\n */\nexport function groupUrisByAccount(uris) {\n /** @type {Record} */\n const acc = {};\n\n uris.forEach((uri) => {\n const parsed = parseURI(uri);\n if (!parsed) return;\n\n const id = accountId(parsed);\n\n if (acc[id]) {\n acc[id].uris.push(uri);\n } else {\n acc[id] = {\n account: { refreshToken: parsed.refreshToken, directoryPath: parsed.directoryPath },\n uris: [uri],\n };\n }\n });\n\n return acc;\n}\n\n////////////////////////////////////////////\n// DROPBOX API\n////////////////////////////////////////////\n\n/**\n * @param {string} refreshToken\n * @param {string} directoryPath\n * @returns {Promise | null>}\n */\nexport async function listFiles(refreshToken, directoryPath) {\n const accessToken = await getAccessToken(refreshToken);\n if (!accessToken) return null;\n\n const apiPath = directoryPath === \"/\" ? \"\" : directoryPath;\n const headers = {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\",\n };\n\n /** @type {Array<{ name: string; path_lower: string }>} */\n const entries = [];\n let cursor = /** @type {string | null} */ (null);\n let hasMore = true;\n\n while (hasMore) {\n const url = cursor\n ? \"https://api.dropboxapi.com/2/files/list_folder/continue\"\n : \"https://api.dropboxapi.com/2/files/list_folder\";\n\n const body = cursor\n ? JSON.stringify({ cursor })\n : JSON.stringify({ path: apiPath, recursive: true, limit: 2000 });\n\n const resp = await fetch(url, { method: \"POST\", headers, body });\n if (!resp.ok) return null;\n\n /** @type {{ entries: Array<{ \".tag\": string; name: string; path_lower: string }>; has_more: boolean; cursor: string }} */\n const data = await resp.json();\n\n for (const entry of data.entries) {\n if (entry[\".tag\"] === \"file\" && isAudioFile(entry.name)) {\n entries.push({ name: entry.name, path_lower: entry.path_lower });\n }\n }\n\n hasMore = data.has_more;\n cursor = data.cursor;\n }\n\n return entries;\n}\n\n/**\n * @param {string} refreshToken\n * @param {string} dirPath\n * @returns {Promise | null>}\n */\nexport async function listDirFiles(refreshToken, dirPath) {\n const accessToken = await getAccessToken(refreshToken);\n if (!accessToken) return null;\n\n const headers = {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\",\n };\n\n /** @type {Array<{ name: string; path_lower: string }>} */\n const entries = [];\n let cursor = /** @type {string | null} */ (null);\n let hasMore = true;\n\n while (hasMore) {\n const url = cursor\n ? \"https://api.dropboxapi.com/2/files/list_folder/continue\"\n : \"https://api.dropboxapi.com/2/files/list_folder\";\n\n const body = cursor\n ? JSON.stringify({ cursor })\n : JSON.stringify({ path: dirPath, recursive: false, limit: 2000 });\n\n const resp = await fetch(url, { method: \"POST\", headers, body });\n if (!resp.ok) return null;\n\n /** @type {{ entries: Array<{ \".tag\": string; name: string; path_lower: string }>; has_more: boolean; cursor: string }} */\n const data = await resp.json();\n\n for (const entry of data.entries) {\n if (entry[\".tag\"] === \"file\") {\n entries.push({ name: entry.name, path_lower: entry.path_lower });\n }\n }\n\n hasMore = data.has_more;\n cursor = data.cursor;\n }\n\n return entries;\n}\n\n/**\n * @param {string} refreshToken\n * @param {string} filePath\n * @returns {Promise}\n */\nexport async function getTemporaryLink(refreshToken, filePath) {\n const accessToken = await getAccessToken(refreshToken);\n if (!accessToken) return null;\n\n const resp = await fetch(\n \"https://api.dropboxapi.com/2/files/get_temporary_link\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ path: filePath }),\n },\n );\n\n if (!resp.ok) return null;\n\n /** @type {{ link: string }} */\n const data = await resp.json();\n return data.link ?? null;\n}\n\n/**\n * @param {string} refreshToken\n * @returns {Promise}\n */\nexport async function checkAccess(refreshToken) {\n const accessToken = await getAccessToken(refreshToken);\n if (!accessToken) return \"no\";\n\n try {\n const resp = await fetch(\n \"https://api.dropboxapi.com/2/users/get_current_account\",\n {\n method: \"POST\",\n headers: { \"Authorization\": `Bearer ${accessToken}` },\n },\n );\n return resp.ok ? \"yes\" : \"no\";\n } catch {\n // Network error: inconclusive — let `cachedConsult` keep the last\n // known availability rather than caching a sticky \"no\".\n return \"unsure\";\n }\n}\n\nexport const checkAccessCached = cachedConsult(checkAccess, (token) => token);\n"],"mappings":"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","names":["base64url","bytes","__name","generatePKCEPair","verifier","digest","challenge","exchangeCode","code","codeVerifier","redirectUri","appKey","DEFAULT_APP_KEY","params","resp","data","accessTokenCache","getAccessToken","refreshToken","now","cached","inflight","accessToken","expiresAt","buildURI","account","filePath","serialize","SCHEME","query_string_default","parseURI","uriString","uri","parse","path","safeDecodeURIComponent","qs","directoryPath","accountId","accountsFromTracks","tracks","acc","track","parsed","id","groupTracksByAccount","groupUrisByAccount","uris","listFiles","apiPath","headers","entries","cursor","hasMore","url","body","entry","isAudioFile","listDirFiles","dirPath","getTemporaryLink","checkAccess","checkAccessCached","cachedConsult","token"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-WE3IOYGI.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js new file mode 100644 index 00000000..24858bf6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js @@ -0,0 +1,5 @@ +import{a as ut}from"./chunk-O2AMATPK.js";import{a as Lt}from"./chunk-OO43XB75.js";import{k as H}from"./chunk-J3G2CW6Q.js";import{a as dt}from"./chunk-7NEQFE27.js";import{a as Ut}from"./chunk-TVBOGSPT.js";import{a as l}from"./chunk-75KFZLU6.js";var X=class extends SyntaxError{static{l(this,"XmlSyntaxError")}line;column;offset;constructor(n,s){super(`${n} at line ${s.line}, column ${s.column}`),this.name="XmlSyntaxError",this.line=s.line,this.column=s.column,this.offset=s.offset}};function Ct(e,n){return n?e===0||e>=1&&e<=8||e===11||e===12||e>=14&&e<=31||e>=127&&e<=132||e>=134&&e<=159||e===65534||e===65535:e<32&&e!==9&&e!==10&&e!==13||e===65534||e===65535}l(Ct,"isIllegalXmlLiteralChar");var Tt={"1.0":/\r\n?/g,"1.1":/\r[\n\x85]?|\x85|\u2028/g},it=/^[ \t\r\n]*$/;function V(e){return e===32||e===9||e===10||e===13}l(V,"isXmlWhitespace");function Jt(e){if(e.length<3||!e.startsWith("1."))return!1;for(let n=2;n57)return!1}return!0}l(Jt,"isValidVersionNum");function te(e){if(e.length===0)return!1;let n=e.charCodeAt(0);if(!(n>=65&&n<=90)&&!(n>=97&&n<=122))return!1;for(let s=1;s=65&&o<=90)&&!(o>=97&&o<=122)&&!(o>=48&&o<=57)&&o!==46&&o!==95&&o!==45)return!1}return!0}l(te,"isValidEncName");function Et(e){let n=e.trimStart();if(!n.startsWith("version"))return n.startsWith("VERSION")||n.startsWith("Version")?{valid:!1,error:`'${n.slice(0,7)}' must be lowercase in XML declaration`}:{valid:!1,error:"Missing required 'version' attribute in XML declaration"};let s=0,o=e.length,f,D,_,P=!1,m=!1,S=!1;for(;s=o||e.charCodeAt(s)!==61)return{valid:!1,error:`Expected '=' after '${i}' in XML declaration`};for(s++;s=o)return{valid:!1,error:`Expected quoted value for '${i}' in XML declaration`};let h=e.charCodeAt(s);if(h!==34&&h!==39)return{valid:!1,error:`Expected quote for '${i}' value in XML declaration`};s++;let w=s;for(;s=o)return{valid:!1,error:`Unterminated ${i} value in XML declaration`};let t=e.slice(w,s);if(s++,i==="version"){if(!Jt(t))return{valid:!1,error:`Invalid version '${t}': must match '1.' followed by digits`};f=t}else if(i==="encoding"){if(!te(t))return{valid:!1,error:`Invalid encoding name '${t}': must start with a letter and contain only letters, digits, '.', '_', '-'`};D=t}else if(i==="standalone"){if(t!=="yes"&&t!=="no")return{valid:!1,error:`Invalid standalone value '${t}': must be 'yes' or 'no'`};_=t}let I=s=65&&o<=90||o>=97&&o<=122||o>=48&&o<=57||f==="-"||f==="("||f===")"||f==="+"||f===","||f==="."||f==="/"||f===":"||f==="="||f==="?"||f===";"||f==="!"||f==="*"||f==="#"||f==="@"||f==="$"||f==="_"||f==="%"||f==="'"&&n==='"'))return`Invalid character '${f}' (U+${o.toString(16).toUpperCase().padStart(4,"0")}) in public ID literal`}return null}l(nt,"validatePubidLiteral");function Ot(e,n){let s=e.indexOf(":");return s===-1?{raw:e,local:e}:{raw:e,prefix:e.slice(0,s),local:e.slice(s+1),...n!==void 0&&{uri:n}}}l(Ot,"parseName");var mt=new Uint8Array(128),Rt=new Uint8Array(128);for(let e=0;e<128;e++){let n=e+128;mt[e]=n>=192&&n<=214||n>=216&&n<=246||n>=248?1:0,Rt[e]=mt[e]===1||n===183?1:0}function bt(e){return e>=12289&&e<=55295||e>=256&&e<=767?!0:e>=880&&e<=8191?e!==894:e>=11264&&e<=12271?!0:e>=63744&&e<=65533?e<=64975||e>=65008:e>=8304&&e<=8591||e===8204||e===8205||e>=65536&&e<=983039}l(bt,"isUnicodeNameStartChar");function ee(e){return!!(bt(e)||e>=768&&e<=879||e===8255||e===8256)}l(ee,"isUnicodeNameChar");function xt(e){return e<128?e>=97&&e<=122||e>=65&&e<=90||e===95||e===58:e<256?mt[e-128]===1:bt(e)}l(xt,"isNameStartChar");function K(e){return e<128?e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57||e===95||e===58||e===45||e===46:e<256?Rt[e-128]===1:ee(e)}l(K,"isNameChar");var Dt=new Uint8Array(32);Dt[9]=1;Dt[10]=1;Dt[13]=1;var v=new Uint8Array(128);for(let e=97;e<=122;e++)v[e]=1;for(let e=65;e<=90;e++)v[e]=1;for(let e=48;e<=57;e++)v[e]=1;v[95]=1;v[58]=1;v[45]=1;v[46]=1;var rt=new Uint8Array(128);for(let e=97;e<=122;e++)rt[e]=1;for(let e=65;e<=90;e++)rt[e]=1;rt[95]=1;rt[58]=1;var ie=/&(?:([a-zA-Z][a-zA-Z0-9]*);|(#[0-9]+);|(#x[0-9a-fA-F]+);)?/g;var se={lt:"<",gt:">",amp:"&",apos:"'",quot:'"'},ne={"<":"<",">":">","&":"&","'":"'",'"':"""},Ue={...ne," ":" ","\n":" ","\r":" "};function re(e){return e===9||e===10||e===13||e>=32&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111}l(re,"isValidXml10CharRef");function ae(e){return e>=1&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111}l(ae,"isValidXml11CharRef");function at(e,n){if(!e.includes("&"))return e;let s=n?ae:re;return e.replace(ie,(o,f,D,_,P)=>{if(_!==void 0){let m=parseInt(_.slice(2),16);if(!s(m))throw new Error(`Invalid character reference '${o}' at position ${P}: code point ${m} is not a valid XML character`);return String.fromCodePoint(m)}if(D!==void 0){let m=parseInt(D.slice(1),10);if(!s(m))throw new Error(`Invalid character reference '${o}' at position ${P}: code point ${m} is not a valid XML character`);return String.fromCodePoint(m)}if(f!==void 0){let m=se[f];if(m!==void 0)return m;throw new Error(`Unknown entity '${o}' at position ${P}: only predefined entities (lt, gt, amp, apos, quot) are recognized`)}throw new Error(`Invalid bare '&' at position ${P}: use & or a valid entity reference (&name;, &#num;, &#xHex;)`)})}l(at,"decodeEntities");var $t=60,b=62,Ft=47,yt=33,j=63,ce=61,q=34,Q=39,ot=91,kt=93,y=45,le=35,_t=37,fe=40,de=41,ue=42,Ce=43,Te=44,Bt=59,Ee=124;function Yt(e,n){let s=n?.ignoreWhitespace??!1,o=n?.ignoreComments??!1,f=n?.trackPosition??!0,D=n?.disallowDoctype??!0,_=n?.maxDepth??1/0,P=n?.maxAttributes??1/0,m=n?.xmlVersion==="1.1",S=m?"1.1":"1.0",i=(m?e.includes("\r")||e.includes("\x85")||e.includes("\u2028"):e.includes("\r"))?e.replace(Tt[S],` +`):e,h=i.length;function w(c){return Ct(c,m)}l(w,"isIllegalLiteralChar");let t=0,I=[],U,O,k=!1,R={bindings:null},Nt=[],Gt=[];function Wt(){return R.bindings||(R.bindings=new Map([["xml",$]])),R.bindings}l(Wt,"getNsBindings");function Ht(c){if(!f)return{line:0,column:0,offset:0};let a=1,d=-1,g=0;for(;;){let p=i.indexOf(` +`,g);if(p===-1||p>=c)break;a++,d=p,g=p+1}return{line:a,column:c-d,offset:c}}l(Ht,"computePosition");function r(c){throw new X(c,Ht(t))}l(r,"error");function lt(c){t=h,r(c)}l(lt,"errorUnterminated");function L(){for(;t=h&&r("Unexpected end of input in DTD");let a=i.charCodeAt(t);if(a===yt)t++,qt();else if(a===j)for(t++;t=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||a===95||a===58||a===46||a===45||a>127&&K(a)){t++;continue}r("Invalid character in parameter entity reference")}continue}r(`Unexpected character '${i[t]}' in DTD internal subset`)}r("Unterminated DTD internal subset")}l(Vt,"parseDTDInternalSubset");function qt(){if(t>=h&&r("Unexpected end of input in DTD declaration"),i.charCodeAt(t)===y){for(t++,(t>=h||i.charCodeAt(t)!==y)&&r("Expected '--' to start comment in DTD"),t++;t=h||i.charCodeAt(t)!==b)&&r("Cannot use '--' within XML comments (XML 1.0 \xA72.5)"),t++;return}t++}r("Unterminated comment in DTD")}let c=t;for(;t=65&&i.charCodeAt(t)<=90||i.charCodeAt(t)>=97&&i.charCodeAt(t)<=122);)t++;let a=i.slice(c,t);a!=="ENTITY"&&a!=="ELEMENT"&&a!=="ATTLIST"&&a!=="NOTATION"&&r(`Unknown DTD declaration type '=h||!M(i.charCodeAt(t)))&&r(`Missing whitespace after '=h||!M(i.charCodeAt(t)))&&r("Missing whitespace after '%' in parameter entity declaration"),L()),G()===""&&r("Missing entity name in ENTITY declaration"),(t>=h||!M(i.charCodeAt(t)))&&r("Missing whitespace after entity name"),L();let d=i.charCodeAt(t);if(d===q||d===Q)Z(),L(),t+1=65&&i.charCodeAt(t)<=90||i.charCodeAt(t)>=97&&i.charCodeAt(t)<=122);)t++;let p=i.slice(g,t),B=p.toUpperCase();if(B==="SYSTEM"&&p!=="SYSTEM"?r(`'${p}' must be uppercase 'SYSTEM'`):B==="PUBLIC"&&p!=="PUBLIC"&&r(`'${p}' must be uppercase 'PUBLIC'`),p==="SYSTEM")(t>=h||!M(i.charCodeAt(t)))&&r("Missing whitespace after SYSTEM keyword"),L(),Z();else if(p==="PUBLIC"){(t>=h||!M(i.charCodeAt(t)))&&r("Missing whitespace after PUBLIC keyword"),L(),Z(!0),(t>=h||!M(i.charCodeAt(t)))&&r("PUBLIC identifier requires both public ID and system ID literals"),L();let F=i.charCodeAt(t);F!==q&&F!==Q&&r("PUBLIC identifier requires both public ID and system ID literals"),Z()}else r(`Expected SYSTEM, PUBLIC, or quoted string in ENTITY declaration, got '${p||i[t]}'`);L(),t=h||!M(i.charCodeAt(t)))&&r("Missing whitespace after NDATA keyword"),L(),G()===""&&r("Missing notation name after NDATA")):i.charCodeAt(t)!==b&&(i.slice(t,Math.min(t+10,h)).includes("NDATA")&&r("Missing whitespace before NDATA keyword"),r(`Unexpected content '${i[t]}' in ENTITY declaration`)))}L(),(t>=h||i.charCodeAt(t)!==b)&&r("Unterminated ENTITY declaration"),t++}l(Qt,"parseEntityDeclaration");function Z(c=!1){let a=i.charCodeAt(t);a!==q&&a!==Q&&r("Expected quoted string");let d=String.fromCharCode(a);t++;let g=t;for(;t=h&&r("Unterminated quoted string"),c){let p=nt(i.slice(g,t),d);p&&r(p)}t++}l(Z,"parseQuotedLiteral");function zt(){let c=!0,a=0;for(;t=h&&r("Unterminated string in DTD declaration"),t++,c=!1;continue}if(d===fe){!c&&a===0&&r("Missing whitespace before '(' in DTD declaration"),a++,c=!1,t++;continue}if(d===de){a===0&&r("Unexpected ')' in DTD declaration"),a--,c=!1,t++;continue}if(d===Ee){c=!1,t++;continue}if(d===Te){c=!1,t++;continue}if(d===le){!c&&a===0&&r("Missing whitespace before '#' in DTD declaration"),c=!1,t++;continue}if(d===_t){c=!1,t++;continue}if(d===Bt){c=!1,t++;continue}if(d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===58||d===46||d===45||d>127&&K(d)){c=!1,t++;continue}if(d===ot||d===kt){c=!1,t++;continue}if(d===ue||d===Ce||d===j){c=!1,t++;continue}r(`Unexpected character '${i[t]}' in DTD declaration`)}r("Unterminated DTD declaration")}l(zt,"parseDTDDeclarationContent");function G(){let c=t;if(t=97&&a<=122||a>=65&&a<=90||a===95||a===58)t++;else if(a>127){let d=i.codePointAt(t);if(xt(d))t+=d>65535?2:1;else return""}else return""}for(;t=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||a===95||a===58||a===46||a===45){t++;continue}if(a>127){let d=i.codePointAt(t);if(K(d)){t+=d>65535?2:1;continue}}break}return i.slice(c,t)}l(G,"readName");function Kt(){let c=i.charCodeAt(t);c!==q&&c!==Q&&r("Expected quote to start attribute value");let a=i[t],d=t+1,g=i.indexOf(a,d);g===-1&&(t=h,r("Unterminated attribute value"));let p=i.slice(d,g);return p.includes("<")&&(t=d+p.indexOf("<"),r("Cannot use '<' in attribute value")),t=g+1,at(p.replace(/[\t\n]/g," "),m)}l(Kt,"readQuotedValue");function jt(){let c=t,a=i.indexOf("<",t),d=a===-1?h:a;for(let p=c;p")&&(t=c+g.indexOf("]]>"),r("Cannot use ']]>' in text content (XML 1.0 \xA72.4)")),at(g,m)}l(jt,"readText");function ft(c){I.length>0&&I[I.length-1].children.push(c)}for(l(ft,"addNode");t=h&&r("Unexpected end of input after '<'");let c=i.charCodeAt(t);if(c===Ft){t++;let u=G();u===""&&r("Invalid character in end tag name"),L(),i.charCodeAt(t)!==b&&r("Expected '>' in end tag"),t++;let T=I.pop();T||r(`Unexpected closing tag `),T.name.raw!==u&&r(`Mismatched closing tag: expected but found `);let E=Nt.pop();if(E&&R.bindings){let C=R.bindings;for(let[x,A]of E)A===void 0?C.delete(x):C.set(x,A)}I.length===0&&U&&(k=!0);continue}if(c===yt){if(t++,t+1",t);T===-1&<("Unterminated comment");let E=i.slice(u,T);E.includes("--")&&(t=u+E.indexOf("--"),r("Cannot use '--' within comments (XML 1.0 \xA72.5)")),E.length>0&&E.charCodeAt(E.length-1)===y&&(t=T-1,r("Cannot use '-' immediately before '-->' (XML 1.0 \xA72.5)"));for(let C=u;C",t);T===-1&<("Unterminated CDATA section");for(let E=u;E=h&&r("Unterminated quoted string in DOCTYPE"),E){let Pt=nt(i.slice(et,t),Y);Pt&&r(Pt),E=!1}t++}else i.startsWith("PUBLIC",t)&&(t+6>=h||M(i.charCodeAt(t+6)))?(t+=6,E=!0,C=!0):i.startsWith("SYSTEM",t)&&(t+6>=h||M(i.charCodeAt(t+6)))?(t+=6,C=!0):i.slice(t,t+6).toUpperCase()==="PUBLIC"&&(t+6>=h||M(i.charCodeAt(t+6)))?r(`'${i.slice(t,t+6)}' must be uppercase 'PUBLIC'`):i.slice(t,t+6).toUpperCase()==="SYSTEM"&&(t+6>=h||M(i.charCodeAt(t+6)))?r(`'${i.slice(t,t+6)}' must be uppercase 'SYSTEM'`):t++}t",t);C===-1&<("Unterminated processing instruction");for(let A=E;Au;t>=h&&r("Unexpected end of input in start tag");let E=i.charCodeAt(t);if(E===b){t++;break}if(E===Ft){t++,i.charCodeAt(t)!==b&&r("Expected '>' after '/' in self-closing tag"),t++,F=!0;break}Mt&&!T&&r("Missing whitespace between attributes");let C=G();C===""&&r(`Unexpected character '${String.fromCharCode(E)}' in start tag`);let x=C.indexOf(":"),A=st(C,x);A&&(t-=C.length,r(`Invalid attribute name '${C}': ${A}`)),L(),i.charCodeAt(t)!==ce&&r("Expected '=' after attribute name"),t++,L();let Y=Kt();if(C==="xmlns"||C.startsWith("xmlns:")){let et=At(C,Y,m);et&&r(et)}Object.hasOwn(p,C)&&r(`Duplicate attribute '${C}'`),++B>P&&r(`Attribute count exceeds limit of ${P}`),p[C]=Y,Mt=!0}let z=[];for(let u in p)if(u!=="xmlns"&&u.startsWith("xmlns:")){let T=u.slice(6),E=p[u],C=Wt();z.push([T,C.get(T)]),C.set(T,E)}F||Nt.push(z.length>0?z:Gt);let J;if(d!==-1){let u=a.slice(0,d);u!=="xml"&&u!=="xmlns"?(J=R.bindings?.get(u),J===void 0&&(t-=a.length,r(`Unbound namespace prefix '${u}' in element <${a}>`))):u==="xml"&&(J=$)}let Zt=Ot(a,J),W=null;for(let u in p){let T=u.indexOf(":");if(T!==-1){let E=u.slice(0,T);if(E!=="xmlns"&&E!=="xml"){R.bindings?.has(E)||r(`Unbound namespace prefix '${E}' in attribute '${u}'`);let C=u.slice(T+1);W||(W=new Map);let x=W.get(C);x?x.push(E):W.set(C,[E])}}}if(W&&R.bindings){let u=R.bindings;for(let[T,E]of W)if(E.length>1){let C=new Set;for(let x of E){let A=u.get(x);C.has(A)&&r(`Duplicate expanded attribute name '{${A}}${T}'`),C.add(A)}}}let tt={type:"element",name:Zt,attributes:p,children:[]};if(I.length>0?I[I.length-1].children.push(tt):U||(U=tt),F?I.length===0&&U===tt&&(k=!0):(I.length>=_&&r(`Element nesting depth exceeds limit of ${_}`),I.push(tt)),F&&z.length>0)for(let[u,T]of z)T===void 0?R.bindings.delete(u):R.bindings.set(u,T)}if(I.length>0&&r(`Unclosed element <${I[I.length-1].name.raw}>`),!U)throw new X("No root element found in XML document",f?{line:1,column:1,offset:0}:{line:0,column:0,offset:0});return{...O!==void 0&&{declaration:O},root:U}}l(Yt,"parseSync");function It(e,n){return Yt(e,n)}l(It,"parse");function Si(e,n=""){let s=new URL(ct(e,n));return s.searchParams.set("diffuse:basic-auth",btoa(unescape(encodeURIComponent(`${e.username}:${e.password}`)))),s.href}l(Si,"buildTrackUrl");function ht(e){return`${e.username}:${e.password}@${e.host}${e.dir}`}l(ht,"serverId");function Ni(e,n=""){let s=e.host,o;s.includes("://")&&([o,s]=s.split("://"));let f=`${encodeURIComponent(e.username)}:${encodeURIComponent(e.password)}`,D=dt.stringify({dir:e.dir,protocol:o});return`${ut}://${f}@${s}${n}${D?`?${D}`:""}`}l(Ni,"buildURI");function gt(e){let n=Ut(e);if(n.scheme!==ut||!n.host)return;let s=n.userinfo??"",o=s.indexOf(":"),f=decodeURIComponent(o>=0?s.slice(0,o):s),D=decodeURIComponent(o>=0?s.slice(o+1):""),_=dt.parse(n.query||""),P=typeof _.dir=="string"?_.dir:"/",m=typeof _.protocol=="string"?_.protocol:void 0,S=n.port?`${n.host}:${n.port}`:n.host,N=m?`${m}://${S}`:S,i={username:f,password:D,host:N,dir:P},h=n.path||"";return{server:i,path:h}}l(gt,"parseURI");function ct(e,n=""){return(e.host.includes("://")?e.host:`${e.host.split(":")[0]==="localhost"||e.host.split(":")[0]==="127.0.0.1"?"http":"https"}://${e.host}`).replace(/\/$/,"")+(n?"/"+n.replace(/^\//,""):"")}l(ct,"toHttpUrl");function St(e){return`Basic ${btoa(unescape(encodeURIComponent(`${e.username}:${e.password}`)))}`}l(St,"authHeader");function Mi(e){let n={};return e.forEach(s=>{let o=gt(s.uri);if(!o)return;let f=ht(o.server);n[f]||(n[f]=o.server)}),n}l(Mi,"serversFromTracks");function Pi(e){let n={};return e.forEach(s=>{let o=gt(s.uri);if(!o)return;let f=ht(o.server);n[f]?n[f].tracks.push(s):n[f]={server:o.server,tracks:[s]}}),n}l(Pi,"groupTracksByServer");function Ui(e){let n={};return e.forEach(s=>{let o=gt(s);if(!o)return;let f=ht(o.server);n[f]?n[f].uris.push(s):n[f]={server:o.server,uris:[s]}}),n}l(Ui,"groupUrisByServer");async function pe(e){let n=ct(e,e.dir),s=new AbortController,o=setTimeout(()=>s.abort(),5e3);try{let f=await fetch(n,{method:"PROPFIND",headers:{Authorization:St(e),Depth:"0"},signal:s.signal});return clearTimeout(o),f.status===207||f.ok?"yes":"no"}catch{return clearTimeout(o),"unsure"}}l(pe,"checkAccess");var Li=Lt(pe,ht);async function wi(e){let n=[];return await Xt(e,e.dir,n),n}l(wi,"listFiles");async function Oi(e,n){let s=ct(e,n),o=await fetch(s,{method:"PROPFIND",headers:{Authorization:St(e),Depth:"1"}});if(o.status!==207&&!o.ok)return[];let f=await o.text(),D=[],P=It(f).root;if(!P)return[];let m=("/"+H(n).replace(/^\//,"")).replace(/\/$/,"");for(let S of P.children??[]){if(S.type!=="element"||S.name.local!=="response")continue;let N="",i=!1;for(let O of S.children??[])O.type==="element"&&(O.name.local==="href"?N=(O.children?.find(k=>k.type==="text")?.text??"").trim():O.name.local==="propstat"&&vt(O)&&(i=!0));if(!N)continue;i=i||N.endsWith("/");let h;try{h=new URL(N).pathname}catch{h=N}let w=H(h),t=w.replace(/\/$/,""),I=("/"+H(n).replace(/^\//,"")).replace(/\/$/,"");t===I||i||w.split("/").includes("@eaDir")||(w.slice(0,w.lastIndexOf("/"))||"/").replace(/\/$/,"")!==m||D.push(h)}return D}l(Oi,"listFilesInDir");async function Xt(e,n,s){let o=ct(e,n),f=await fetch(o,{method:"PROPFIND",headers:{Authorization:St(e),Depth:"1"}});if(f.status!==207&&!f.ok)return;let D=await f.text(),_=[],m=It(D).root;if(m){for(let S of m.children??[]){if(S.type!=="element"||S.name.local!=="response")continue;let N="",i=!1;for(let U of S.children??[])U.type==="element"&&(U.name.local==="href"?N=(U.children?.find(O=>O.type==="text")?.text??"").trim():U.name.local==="propstat"&&vt(U)&&(i=!0));if(!N)continue;i=i||N.endsWith("/");let h;try{h=new URL(N).pathname}catch{h=N}let w=H(h),t=w.replace(/\/$/,""),I=("/"+H(n).replace(/^\//,"")).replace(/\/$/,"");t!==I&&(w.split("/").includes("@eaDir")||(i?_.push(h):s.push(h)))}for(let S of _)await Xt(e,S,s)}}l(Xt,"propfindDir");function vt(e){for(let n of e.children??[])if(!(n.type!=="element"||n.name?.local!=="prop")){for(let s of n.children??[])if(!(s.type!=="element"||s.name?.local!=="resourcetype")){for(let o of s.children??[])if(o.type==="element"&&o.name?.local==="collection")return!0}}return!1}l(vt,"propstatHasCollection");export{Si as a,ht as b,Ni as c,gt as d,ct as e,St as f,Mi as g,Pi as h,Ui as i,Li as j,wi as k,Oi as l}; + +//# sourceMappingURL=./chunk-WHKNBNKF.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js.br new file mode 100644 index 0000000000000000000000000000000000000000..91b4d9a3faca06f02574295798c6c4627fde2d90 GIT binary patch literal 8261 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 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js.map new file mode 100644 index 00000000..08bbdb82 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-WHKNBNKF.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["https://jsr.io/@std/xml/0.1.3/types.ts","https://jsr.io/@std/xml/0.1.3/_common.ts","https://jsr.io/@std/xml/0.1.3/_name_chars.ts","https://jsr.io/@std/xml/0.1.3/_tokenizer.ts","https://jsr.io/@std/xml/0.1.3/_entities.ts","https://jsr.io/@std/xml/0.1.3/_parse_sync.ts","https://jsr.io/@std/xml/0.1.3/parse.ts","/components/input/webdav/common.js"],"sourcesContent":["// Copyright 2018-2026 the Deno authors. MIT license.\n// This module is browser compatible.\n\n/**\n * Type definitions for the XML parser and serializer.\n *\n * @module\n */\n\n/**\n * Position information for error reporting.\n */\nexport interface XmlPosition {\n /** Line number (1-indexed). */\n readonly line: number;\n /** Column number (1-indexed). */\n readonly column: number;\n /** Byte offset in the input. */\n readonly offset: number;\n}\n\n/**\n * Error thrown when XML parsing fails.\n *\n * @example Usage\n * ```ts\n * import { XmlSyntaxError } from \"@std/xml/types\";\n * import { assertInstanceOf } from \"@std/assert\";\n *\n * const error = new XmlSyntaxError(\"Unexpected character\", { line: 10, column: 5, offset: 150 });\n * assertInstanceOf(error, SyntaxError);\n * ```\n */\nexport class XmlSyntaxError extends SyntaxError {\n /**\n * The line number where the error occurred (1-indexed).\n *\n * @example Usage\n * ```ts\n * import { XmlSyntaxError } from \"@std/xml/types\";\n * import { assertEquals } from \"@std/assert\";\n *\n * const error = new XmlSyntaxError(\"Test\", { line: 5, column: 10, offset: 50 });\n * assertEquals(error.line, 5);\n * ```\n */\n readonly line: number;\n /**\n * The column number where the error occurred (1-indexed).\n *\n * @example Usage\n * ```ts\n * import { XmlSyntaxError } from \"@std/xml/types\";\n * import { assertEquals } from \"@std/assert\";\n *\n * const error = new XmlSyntaxError(\"Test\", { line: 5, column: 10, offset: 50 });\n * assertEquals(error.column, 10);\n * ```\n */\n readonly column: number;\n /**\n * The byte offset where the error occurred.\n *\n * @example Usage\n * ```ts\n * import { XmlSyntaxError } from \"@std/xml/types\";\n * import { assertEquals } from \"@std/assert\";\n *\n * const error = new XmlSyntaxError(\"Test\", { line: 5, column: 10, offset: 50 });\n * assertEquals(error.offset, 50);\n * ```\n */\n readonly offset: number;\n\n /**\n * Constructs a new XmlSyntaxError.\n *\n * @param message The error message describing the syntax issue.\n * @param position The position in the XML source where the error occurred.\n */\n constructor(message: string, position: XmlPosition) {\n super(`${message} at line ${position.line}, column ${position.column}`);\n this.name = \"XmlSyntaxError\";\n this.line = position.line;\n this.column = position.column;\n this.offset = position.offset;\n }\n}\n\n/**\n * A qualified XML name with optional namespace prefix and resolved URI.\n */\nexport interface XmlName {\n /** The original unsplit name (e.g., \"ns:item\" or \"item\"). */\n readonly raw: string;\n /** The local part of the name (after the colon, or the whole name). */\n readonly local: string;\n /** The namespace prefix (before the colon), if present. */\n readonly prefix?: string;\n /**\n * The resolved namespace URI, if the name has a bound prefix.\n *\n * For prefixed names (e.g., \"ns:item\"), this is the URI that the prefix\n * is bound to via an `xmlns:ns=\"...\"` declaration.\n *\n * For unprefixed names, this is undefined (the default namespace is not\n * applied to element names in this implementation for simplicity).\n */\n readonly uri?: string;\n}\n\n/**\n * An XML attribute with its qualified name and value.\n */\nexport interface XmlAttribute {\n /** The qualified name of the attribute. */\n readonly name: XmlName;\n /** The decoded attribute value. */\n readonly value: string;\n}\n\n// ============================================================================\n// Event Types (for streaming parser)\n// ============================================================================\n\n/**\n * Event emitted when an element start tag is encountered.\n */\nexport interface XmlStartElementEvent extends XmlPosition {\n /** The event type discriminant. */\n readonly type: \"start_element\";\n /** The qualified name of the element. */\n readonly name: XmlName;\n /** The attributes on the element. */\n readonly attributes: ReadonlyArray;\n /** Whether this is a self-closing tag (``). */\n readonly selfClosing: boolean;\n}\n\n/**\n * Event emitted when an element end tag is encountered.\n */\nexport interface XmlEndElementEvent extends XmlPosition {\n /** The event type discriminant. */\n readonly type: \"end_element\";\n /** The qualified name of the element. */\n readonly name: XmlName;\n}\n\n/**\n * Event emitted for text content.\n */\nexport interface XmlTextEvent extends XmlPosition {\n /** The event type discriminant. */\n readonly type: \"text\";\n /** The decoded text content. */\n readonly text: string;\n}\n\n/**\n * Event emitted for CDATA sections.\n *\n * @see {@link https://www.w3.org/TR/xml/#sec-cdata-sect | XML 1.0 §2.7 CDATA Sections}\n */\nexport interface XmlCDataEvent extends XmlPosition {\n /** The event type discriminant. */\n readonly type: \"cdata\";\n /** The raw CDATA content (not entity-decoded). */\n readonly text: string;\n}\n\n/**\n * Event emitted for comments.\n *\n * @see {@link https://www.w3.org/TR/xml/#sec-comments | XML 1.0 §2.5 Comments}\n */\nexport interface XmlCommentEvent extends XmlPosition {\n /** The event type discriminant. */\n readonly type: \"comment\";\n /** The comment text (excluding ``). */\n readonly text: string;\n}\n\n/**\n * Event emitted for processing instructions.\n *\n * @see {@link https://www.w3.org/TR/xml/#sec-pi | XML 1.0 §2.6 Processing Instructions}\n */\nexport interface XmlProcessingInstructionEvent extends XmlPosition {\n /** The event type discriminant. */\n readonly type: \"processing_instruction\";\n /** The PI target (e.g., \"xml-stylesheet\"). */\n readonly target: string;\n /** The PI content after the target. */\n readonly content: string;\n}\n\n/**\n * Event emitted for the XML declaration.\n *\n * @see {@link https://www.w3.org/TR/xml/#sec-prolog-dtd | XML 1.0 §2.8 Prolog}\n */\nexport interface XmlDeclarationEvent extends XmlPosition {\n /** The event type discriminant. */\n readonly type: \"declaration\";\n /** The XML version as declared in the document (e.g. `\"1.0\"` or `\"1.1\"`). */\n readonly version: string;\n /** The declared character encoding, if specified. */\n readonly encoding?: string;\n /** Whether the document is standalone (§2.9). */\n readonly standalone?: \"yes\" | \"no\";\n}\n\n/**\n * Discriminated union of all XML events emitted by the streaming parser.\n */\nexport type XmlEvent =\n | XmlStartElementEvent\n | XmlEndElementEvent\n | XmlTextEvent\n | XmlCDataEvent\n | XmlCommentEvent\n | XmlProcessingInstructionEvent\n | XmlDeclarationEvent;\n\n/**\n * Base options shared by parsing functions.\n */\nexport interface BaseParseOptions {\n /**\n * If true, text nodes containing only whitespace are not emitted/included.\n *\n * @default {false}\n */\n readonly ignoreWhitespace?: boolean;\n\n /**\n * If true, comments are not emitted/included.\n *\n * @default {false}\n */\n readonly ignoreComments?: boolean;\n\n /**\n * If true, track line/column positions for events and error messages.\n * Disabling improves performance but makes debugging harder.\n */\n readonly trackPosition?: boolean;\n\n /**\n * If true, DOCTYPE declarations are rejected immediately with an\n * {@linkcode XmlSyntaxError}, before any internal subset is parsed.\n * This prevents resource exhaustion attacks via hostile DTD content.\n *\n * Set to `false` to tolerate DOCTYPE declarations in trusted input (e.g.\n * legacy XHTML or RSS feeds). DTD contents are still not processed: custom\n * entity declarations are ignored, and external DTDs are never fetched.\n *\n * @default {true}\n */\n readonly disallowDoctype?: boolean;\n\n /**\n * Maximum element nesting depth. Exceeding this throws\n * {@linkcode XmlSyntaxError}. Prevents stack exhaustion from\n * deeply nested documents.\n *\n * @default {Infinity}\n */\n readonly maxDepth?: number;\n\n /**\n * Maximum number of attributes per element. Exceeding this throws\n * {@linkcode XmlSyntaxError}. Prevents memory exhaustion from\n * elements with huge attribute lists.\n *\n * @default {Infinity}\n */\n readonly maxAttributes?: number;\n\n /**\n * XML version to use for character and line-ending validation.\n *\n * When `\"1.1\"`, the parser applies XML 1.1 rules:\n * - Character references to C0 controls (``–`` except `�`)\n * are accepted\n * - Literal C1 controls (`#x7F`–`#x9F` except `#x85`) are rejected\n * - NEL (`#x85`) and Unicode line separator (`#x2028`) are normalized to LF\n * - Namespace prefix unbinding (`xmlns:prefix=\"\"`) is allowed\n *\n * This option is independent of the `` declaration\n * in the document. Set it explicitly to handle documents that declare\n * `version=\"1.0\"` but contain XML 1.1-style character references.\n *\n * @default {\"1.0\"}\n */\n readonly xmlVersion?: \"1.0\" | \"1.1\";\n}\n\n/**\n * Options for {@linkcode parseXmlStream}.\n */\nexport interface ParseStreamOptions extends BaseParseOptions {\n /**\n * If true, processing instruction events are not emitted.\n *\n * @default {false}\n */\n readonly ignoreProcessingInstructions?: boolean;\n\n /**\n * If true, CDATA sections are emitted as regular text events.\n *\n * @default {false}\n */\n readonly coerceCDataToText?: boolean;\n}\n\n/**\n * Options for {@linkcode parse}.\n */\nexport interface ParseOptions extends BaseParseOptions {}\n\n/**\n * Options for {@linkcode stringify}.\n */\nexport interface StringifyOptions {\n /**\n * Indentation string for pretty-printing (e.g., \" \" or \"\\t\").\n * When undefined, output is compact with no extra whitespace.\n *\n * @default {undefined}\n */\n readonly indent?: string;\n\n /**\n * If true, include the XML declaration when stringifying a document.\n * Only applies when the input is an XmlDocument with a declaration.\n *\n * @default {true}\n */\n readonly declaration?: boolean;\n}\n\n// ============================================================================\n// Node Types (for DOM-style tree)\n// ============================================================================\n\n/**\n * A text node in the XML tree.\n */\nexport interface XmlTextNode {\n /** The node type discriminant. */\n readonly type: \"text\";\n /** The decoded text content. */\n readonly text: string;\n}\n\n/**\n * A CDATA section node in the XML tree.\n */\nexport interface XmlCDataNode {\n /** The node type discriminant. */\n readonly type: \"cdata\";\n /** The raw CDATA content. */\n readonly text: string;\n}\n\n/**\n * A comment node in the XML tree.\n */\nexport interface XmlCommentNode {\n /** The node type discriminant. */\n readonly type: \"comment\";\n /** The comment text. */\n readonly text: string;\n}\n\n/**\n * An element node in the XML tree.\n */\nexport interface XmlElement {\n /** The node type discriminant. */\n readonly type: \"element\";\n /** The qualified name of the element. */\n readonly name: XmlName;\n /** Attribute lookup by local name. */\n readonly attributes: Readonly>;\n /** The child nodes of this element. */\n readonly children: ReadonlyArray;\n}\n\n/**\n * Discriminated union of all node types in an XML tree.\n */\nexport type XmlNode =\n | XmlElement\n | XmlTextNode\n | XmlCDataNode\n | XmlCommentNode;\n\n/**\n * A parsed XML document.\n */\nexport interface XmlDocument {\n /** The XML declaration, if present. */\n readonly declaration?: XmlDeclarationEvent;\n /** The root element of the document. */\n readonly root: XmlElement;\n}\n\n// ============================================================================\n// Callback Interfaces (for zero-allocation streaming)\n// ============================================================================\n\n/** Callback for XML declarations. */\nexport type XmlDeclarationCallback = (\n version: string,\n encoding: string | undefined,\n standalone: \"yes\" | \"no\" | undefined,\n line: number,\n column: number,\n offset: number,\n) => void;\n\n/** Callback for DOCTYPE declarations. */\nexport type XmlDoctypeCallback = (\n name: string,\n publicId: string | undefined,\n systemId: string | undefined,\n line: number,\n column: number,\n offset: number,\n) => void;\n\n/** Callback for text, CDATA, or comment content with position. */\nexport type XmlContentCallback = (\n content: string,\n line: number,\n column: number,\n offset: number,\n) => void;\n\n/** Callback for processing instructions. */\nexport type XmlProcessingInstructionCallback = (\n target: string,\n content: string,\n line: number,\n column: number,\n offset: number,\n) => void;\n\n/**\n * Callbacks for tokenizer output - enables zero-allocation token emission.\n *\n * Instead of creating token objects, the tokenizer invokes these callbacks\n * directly with primitive values.\n */\nexport interface XmlTokenCallbacks {\n /** Called when a start tag opens (e.g., `` or `/>`). */\n onStartTagClose?(selfClosing: boolean): void;\n\n /** Called when an end tag is encountered (e.g., ``). */\n onEndTag?(name: string, line: number, column: number, offset: number): void;\n\n /** Called for text content between tags. */\n onText?: XmlContentCallback;\n\n /** Called for CDATA sections. */\n onCData?: XmlContentCallback;\n\n /** Called for XML comments. */\n onComment?: XmlContentCallback;\n\n /** Called for processing instructions. */\n onProcessingInstruction?: XmlProcessingInstructionCallback;\n\n /** Called for XML declarations. */\n onDeclaration?: XmlDeclarationCallback;\n\n /** Called for DOCTYPE declarations. */\n onDoctype?: XmlDoctypeCallback;\n\n /** Called for internal entity declarations in the DTD. */\n onEntityDeclaration?(name: string, value: string): void;\n}\n\n/**\n * Reusable attribute accessor that avoids allocating XmlAttribute arrays.\n *\n * Instead of creating an array of attribute objects, attributes are accessed\n * by index through this interface. The implementation reuses internal arrays\n * across elements.\n */\nexport interface XmlAttributeIterator {\n /** The number of attributes. */\n readonly count: number;\n\n /** Get the raw attribute name at the given index. */\n getName(index: number): string;\n\n /** Get the decoded attribute value at the given index. */\n getValue(index: number): string;\n\n /**\n * Get the colon index in the attribute name (-1 if no namespace prefix).\n * This allows consumers to parse namespace prefixes without string allocation.\n */\n getColonIndex(index: number): number;\n\n /**\n * Get the resolved namespace URI for the attribute at the given index.\n * Returns undefined if the attribute has no namespace prefix or the prefix\n * is not bound (xmlns: attributes always return undefined as they declare\n * rather than use namespaces).\n */\n getUri(index: number): string | undefined;\n}\n\n/**\n * Callbacks for event-level output - enables zero-allocation event emission.\n *\n * The parser invokes these callbacks instead of creating XmlEvent objects.\n */\nexport interface XmlEventCallbacks {\n /** Called for XML declarations. */\n onDeclaration?: XmlDeclarationCallback;\n\n /** Called for DOCTYPE declarations. */\n onDoctype?: XmlDoctypeCallback;\n\n /**\n * Called when an element starts.\n * @param colonIndex Index of ':' in name, or -1 if no prefix.\n * @param uri The resolved namespace URI if the element has a bound prefix, undefined otherwise.\n */\n onStartElement?(\n name: string,\n colonIndex: number,\n uri: string | undefined,\n attributes: XmlAttributeIterator,\n selfClosing: boolean,\n line: number,\n column: number,\n offset: number,\n ): void;\n\n /**\n * Called when an element ends.\n * @param colonIndex Index of ':' in name, or -1 if no prefix.\n * @param uri The resolved namespace URI if the element has a bound prefix, undefined otherwise.\n */\n onEndElement?(\n name: string,\n colonIndex: number,\n uri: string | undefined,\n line: number,\n column: number,\n offset: number,\n ): void;\n\n /** Called for text content (entity-decoded). */\n onText?: XmlContentCallback;\n\n /** Called for CDATA sections. */\n onCData?: XmlContentCallback;\n\n /** Called for comments. */\n onComment?: XmlContentCallback;\n\n /** Called for processing instructions. */\n onProcessingInstruction?: XmlProcessingInstructionCallback;\n}\n\n// ============================================================================\n// Type Guards\n// ============================================================================\n\n/**\n * Type guard to check if a node is an element.\n *\n * @example Usage\n * ```ts\n * import { isElement } from \"@std/xml/types\";\n * import { assertEquals } from \"@std/assert\";\n *\n * const node = { type: \"element\" as const, name: { raw: \"item\", local: \"item\" }, attributes: {}, children: [] };\n * assertEquals(isElement(node), true);\n * ```\n *\n * @param node The XML node to check.\n * @returns `true` if the node is an element, `false` otherwise.\n */\nexport function isElement(node: XmlNode): node is XmlElement {\n return node.type === \"element\";\n}\n\n/**\n * Type guard to check if a node is a text node.\n *\n * @example Usage\n * ```ts\n * import { isText } from \"@std/xml/types\";\n * import { assertEquals } from \"@std/assert\";\n *\n * const node = { type: \"text\" as const, text: \"Hello\" };\n * assertEquals(isText(node), true);\n * ```\n *\n * @param node The XML node to check.\n * @returns `true` if the node is a text node, `false` otherwise.\n */\nexport function isText(node: XmlNode): node is XmlTextNode {\n return node.type === \"text\";\n}\n\n/**\n * Type guard to check if a node is a CDATA node.\n *\n * @example Usage\n * ```ts\n * import { isCData } from \"@std/xml/types\";\n * import { assertEquals } from \"@std/assert\";\n *\n * const node = { type: \"cdata\" as const, text: \" diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/split-view/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/split-view/index.html.br new file mode 100644 index 0000000000000000000000000000000000000000..05ebd63a3b206ba4aa373dbbfe34d75356224bff GIT binary patch literal 4758 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 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/webmcp/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/webmcp/index.html new file mode 100644 index 00000000..6c8f9f2d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/webmcp/index.html @@ -0,0 +1,370 @@ +
    +
    + +

    WebMCP

    +

    + Exposes Diffuse's facet tools to your browser's built-in AI agent. While + this facet is open, the agent can list, read, create and update your + facets. +

    +
    + +
    +

    Checking WebMCP support…

    + +
      +
    • + + + list-facets + Enumerate your facets. + +
    • +
    • + + + get-facet + Read one facet, including its HTML source. + +
    • +
    • + + + create-facet + Save a new facet. + +
    • +
    • + + + update-facet + Edit an existing facet's code or metadata. + +
    • +
    +
    +
    + + + + diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/webmcp/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/misc/webmcp/index.html.br new file mode 100644 index 0000000000000000000000000000000000000000..9324463262c6b6bae01dcc8be78cc656b7bc75d3 GIT binary patch literal 3256 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.$controller.value?.audio(),"audio");currentTrack=t(()=>this.$controller.value?.currentTrack(),"currentTrack");isPlaying=t(()=>this.$controller.value?.isPlaying(),"isPlaying");connectedCallback(){super.connectedCallback();let e=c(this,"controller-orchestrator-selector"),l=c(this,"repeat-shuffle-engine-selector");d({controller:e,repeatShuffle:l}).then(()=>{this.$controller.value=e,this.$repeatShuffle.value=l,this.effect(()=>{let a=!!this.$controller.value?.$queue.value?.now(),s=this.audio()?.loadingState(),i=a&&typeof s=="object"&&s!==null&&"error"in s,o=a&&!i&&s!=="loaded";this.#e.value=i,this.#t&&clearTimeout(this.#t),o?this.#t=setTimeout(()=>this.#l.value=!0,2e3):this.#l.value=!1})})}reload=t(()=>{let e=this.$controller.value?.$queue.value?.now()?.id;if(e){let l=this.audio()?.progress();this.$controller.value?.$audio.value?.reload({audioId:e,play:!0,progress:l})}},"reload");next=t(()=>{this.$controller.value?.$queue.value?.shift()},"next");playPause=t(()=>{let e=this.$controller.value?.$queue.value?.now()?.id;this.isPlaying()&&e?this.$controller.value?.$audio.value?.pause({audioId:e}):e&&this.$controller.value?.$audio.value?.play({audioId:e})},"playPause");previous=t(()=>{this.$controller.value?.$queue.value?.unshift()},"previous");seek=t(e=>{let l=e.currentTarget?e.currentTarget:null,a=l?e.offsetX/l.clientWidth:0,s=this.$controller.value?.$queue.value?.now()?.id;s&&this.$controller.value?.$audio.value?.seek({audioId:s,percentage:a})},"seek");toggleRepeat=t(()=>{let e=this.$repeatShuffle.value;e&&e.setRepeat(!e.repeat())},"toggleRepeat");toggleShuffle=t(()=>{let e=this.$repeatShuffle.value;e&&e.setShuffle(!e.shuffle())},"toggleShuffle");render({html:e}){let l=this.currentTrack(),a=this.$repeatShuffle.value?.repeat()??!1,s=this.$repeatShuffle.value?.shuffle()??!1,i=this.isPlaying(),o="Diffuse";if(this.#e.value)o="(!) An error occurred while decoding the audio";else if(this.#l.value)o="Loading track ...";else if(l){let u=l.tags?.artist,h=l.tags?.title??"";o=u?`${u} - ${h}`:h}let g=(this.audio()?.progress()??0)*100;return e` + + + + +
    + +

    ${o}

    + + +
    +
    +
    +
    +
    + + +
    + + + + + + + + + + + + + + + + + +
    +
    + `}},S=r,v=r,$="db-blur-classic-controller";f($,v);export{v as CLASS,$ as NAME,S as default}; + +//# sourceMappingURL=./element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.js.br new file mode 100644 index 0000000000000000000000000000000000000000..2c99761b4e745c8359e633b7866cff4b931af3c3 GIT binary patch literal 1565 zcmb1sDa!C9fB&Wbe`+2^zjk0ZIIgMqWRLIq!=XJ}Ldsh1<{o>verx=f33VPVei~6m zEn5G=_Pvq)BwKj@uCFfea9>9)Ns?h&g1p#F0!sTbX#$f1!vJi zpXRWmE~n+xvt4}N$es@kj|x|J{w874+!5l>ueZDMcGTR?Uyiks25O%c22sxBt*>rClae!stON!`_0``^phoME9Dqw&Rae}WR*+SudOrEG*^ zBQj2X-E_$9kgibHOM_!eW3xVbv$%b#)!pVkLugAz^i&_AV;f5<7HY~?Z9mddwK6ec z4d2nVm+z*oXgby+6`6Xo`lZxvu}aN{(H^gyr~Py}RX$;9y5x+NyArCNtaRR}&US?9 z%coN2MN^J=KCSirr;;*rFZ1TC^3QfxX81EL^t=03pLao^qKvTjYp;`9vDc-SoXFfD z=BZM+=Y{@E|LIK91iAhOMKNyB_Lmnob3`>)=~j#H4?cloW;w9Km|r`It3 zdFSI2^g`!we8%eSu4PLuXk;w7zd-!hSEc#K&i*!CI*HB2BBa$Qq4vbKAnDc0p@&!V zX`KyPQSTh(x!Oej%=P+ny5A$`9?g3HN;j>)>p6eO%-MaPuWa8UD!Q3LgSq2_=Z(#* z7q2ku-kzjfGR@a`58n({i;FUsx;P6PS8Wuqn)Kz_ye9|ZzLx*AZ9KuCWTU1nXB!p3 zwlMls+mysGSM`#!tG}InODsIBKMvuc!Nc)BJ!v zQcWKl%Q}BVFS)l)q@kc_UET7>HcD-mHg@mt))R`jw))7mwcSChpZvY`Dr>{U_4Vr) zaNE{t{QR`-y7;dAI}_y3Sv^mmD?Ot*=J<1O+p~Y`^&D<{JN#t4cp;7KS7Yw^DwZl%L#q#W>kEZ*C51RP9P4WnvK43ZuC%dijkV~a$m3E;mKATDgBtb(BtNl# z!Dak1;Kph94V^NaYrK*|Q+Sp=*n1>Kr@7LFL!<~J`H?FAF|D74--)!J;acnr@R{2f2w3~VNEM}!U_Z7uIoj6mOx>Yi3 z^;VgZtJ9SGx2!*!vgMwn+rb{uyNPT9)eNNx?#5oSoza>t`ZK?F-MFCa#S=PfbKr}O z%lAd{^#x5VBKs__jAdtb r^Bj1`bn(#?y^ah2<-5PcU9sJ1tK~iG-rC~&l5)4xtd%p&b-P3XA@BW8 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.js.map new file mode 120000 index 00000000..82e37f59 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/controller/element.js.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-classic/controller/element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css new file mode 120000 index 00000000..15225c65 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-classic/facet/index.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css.br new file mode 120000 index 00000000..8bbe3e12 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-classic/facet/index.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css.map new file mode 120000 index 00000000..b2fd4179 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-classic/facet/index.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.html new file mode 120000 index 00000000..4368d6f4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.html @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-classic/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.html.br new file mode 120000 index 00000000..b12d092c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-classic/facet/index.html.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-classic/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css new file mode 120000 index 00000000..257d7a03 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-pocket/facet/index.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css.br new file mode 120000 index 00000000..34d58589 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-pocket/facet/index.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css.map new file mode 120000 index 00000000..343172c9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-pocket/facet/index.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.html new file mode 120000 index 00000000..62639883 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.html @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-pocket/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.html.br new file mode 120000 index 00000000..a373f338 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/facet/index.html.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-pocket/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css new file mode 120000 index 00000000..7326efa5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-pocket/variables.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css.br new file mode 120000 index 00000000..50c36354 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-pocket/variables.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css.map new file mode 120000 index 00000000..4c952e8e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur-pocket/variables.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur-pocket/variables.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css new file mode 120000 index 00000000..1dd595b4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/artwork-controller/element.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css.br new file mode 120000 index 00000000..05b5a36e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/artwork-controller/element.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css.map new file mode 120000 index 00000000..bead707a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/artwork-controller/element.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js new file mode 100644 index 00000000..6d7ac69f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js @@ -0,0 +1,154 @@ +import{b as H}from"../../../../chunk-QSEZLSGM.js";import{a as O}from"../../../../chunk-M5LB6FBL.js";import{a as I}from"../../../../chunk-RL4C7EJ7.js";import"../../../../chunk-H4ULOOR2.js";import"../../../../chunk-OLJU5MZL.js";import{a as C,b as x,e as A,f as $,i as S}from"../../../../chunk-IA3NIKPO.js";import"../../../../chunk-7NEQFE27.js";import"../../../../chunk-NYGD7JS5.js";import"../../../../chunk-WMITNTCW.js";import"../../../../chunk-OBMOK4KY.js";import"../../../../chunk-HCA2HGAZ.js";import{a as R}from"../../../../chunk-GEJ7GEJO.js";import{o as v,p as E}from"../../../../chunk-XILA3E7E.js";import{a as s}from"../../../../chunk-75KFZLU6.js";function G(t){var e=t.toString(16);return e.length===1?"0"+e:e}s(G,"toHex");function P(t){return"#"+t.map(G).join("")}s(P,"arrayToHex");function z(t){var e=(t[0]*299+t[1]*587+t[2]*114)/1e3;return e<128}s(z,"isDark");function X(t){return t?Z(t)?t:[t]:[]}s(X,"prepareIgnoredColor");function Z(t){return Array.isArray(t[0])}s(Z,"isRGBArray");function M(t,e,r){for(var i=0;i=e-r&&t<=e+r}s(y,"inRange");function K(t,e,r){var i=r[0],a=r[1],o=r[2],n=r[3],u=r[4],l=t[e+3],h=y(l,n,u);return n?!!(!l&&h||y(t[e],i,u)&&y(t[e+1],a,u)&&y(t[e+2],o,u)&&h):h}s(K,"isIgnoredRGBAColorWithThreshold");var ee=24;function te(t,e,r){for(var i={},a=r.dominantDivider||ee,o=r.ignoredColor,n=r.step,u=[0,0,0,0,0],l=0;lo?(l=a/o,n=L,u=Math.round(n/l)):(l=o/a,u=L,n=Math.round(u/l)),(n>a||u>o||n"u";function fe(){return he?q?new OffscreenCanvas(1,1):null:document.createElement("canvas")}s(fe,"makeCanvas");var de="FastAverageColor: ";function m(t){return Error(de+t)}s(m,"getError");function k(t,e){e||console.error(t)}s(k,"outputError");var V=(function(){function t(){this.canvas=null,this.ctx=null}return s(t,"FastAverageColor"),t.prototype.getColorAsync=function(e,r){if(!e)return Promise.reject(m("call .getColorAsync() without resource"));if(typeof e=="string"){if(typeof Image>"u")return Promise.reject(m("resource as string is not supported in this environment"));var i=new Image;i.crossOrigin=r&&r.crossOrigin||"";var a=this.bindImageEvents(i,r);return i.src=e,a}else{if(D(e)&&!e.complete)return this.bindImageEvents(e,r);var o=this.getColor(e,r);return o.error?Promise.reject(o.error):Promise.resolve(o)}},t.prototype.getColor=function(e,r){r=r||{};var i=F(r);if(!e){var a=m("call .getColor() without resource");return k(a,r.silent),this.prepareResult(i,a)}var o=ne(e),n=ce(o,r);if(!n.srcWidth||!n.srcHeight||!n.destWidth||!n.destHeight){var a=m('incorrect sizes for resource "'.concat(_(e),'"'));return k(a,r.silent),this.prepareResult(i,a)}if(!this.canvas&&(this.canvas=fe(),!this.canvas)){var a=m("OffscreenCanvas is not supported in this browser");return k(a,r.silent),this.prepareResult(i,a)}if(!this.ctx){if(this.ctx=this.canvas.getContext("2d",{willReadFrequently:!0}),!this.ctx){var a=m("Canvas Context 2D is not supported in this browser");return k(a,r.silent),this.prepareResult(i,a)}this.ctx.imageSmoothingEnabled=!1}this.canvas.width=n.destWidth,this.canvas.height=n.destHeight;try{this.ctx.clearRect(0,0,n.destWidth,n.destHeight),this.ctx.drawImage(e,n.srcLeft,n.srcTop,n.srcWidth,n.srcHeight,0,0,n.destWidth,n.destHeight);var u=this.ctx.getImageData(0,0,n.destWidth,n.destHeight).data;return this.prepareResult(this.getColorFromArray4(u,r))}catch(l){var a=m("security error (CORS) for resource ".concat(_(e),`. +Details: https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image`));return k(a,r.silent),r.silent||console.error(l),this.prepareResult(i,a)}},t.prototype.getColorFromArray4=function(e,r){r=r||{};var i=4,a=e.length,o=F(r);if(a1;#e=v({current:null,previous:null});#i=v(void 0);#l=v(!1);#a=v("0:00");#n=v(!1);#r=v(!0);#t=v("0:00");$artwork=v(void 0);$controller=v(void 0);$favourites=v(void 0);$input=v(void 0);$repeatShuffle=v(void 0);audio=s(()=>this.$controller.value?.audio(),"audio");currentTrack=s(()=>this.$controller.value?.currentTrack(),"currentTrack");isPlaying=s(()=>this.$controller.value?.isPlaying(),"isPlaying");connectedCallback(){super.connectedCallback();let e=$(this,"artwork-selector"),r=$(this,"controller-orchestrator-selector"),i=$(this,"input-selector"),a=$(this,"favourites-orchestrator-selector"),o=$(this,"repeat-shuffle-engine-selector");S({artwork:e,controller:r,favourites:a,input:i,repeatShuffle:o}).then(()=>{this.$artwork.value=e,this.$controller.value=r,this.$input.value=i,this.$favourites.value=a,this.$repeatShuffle.value=o;let n=H(1e3,this.#h.bind(this));this.effect(()=>{let u=this.currentTrack();n()}),this.effect(()=>this.#f()),this.effect(()=>this.#c()),this.effect(()=>{let u=!!this.$controller.value?.$queue.value?.now(),l=this.audio()?.loadingState(),h=u&&typeof l=="object"&&l!==null&&"error"in l,c=u&&!h&&l!=="loaded";this.#n.value=h,this.#s&&clearTimeout(this.#s),c?this.#s=setTimeout(()=>this.#r.value=!0,2e3):this.#r.value=!1})})}#c(){let e=this.root().querySelector(".controller__inner");e&&(this.#l.value?e.classList.add("controller__inner--light-mode"):e.classList.remove("controller__inner--light-mode"))}async#h(){let e=this.currentTrack(),r=E(this.#e.get);if(!e){r.current&&(r.previous?.url&&URL.revokeObjectURL(r.previous.url),this.#e.value={current:null,previous:r.current});return}if(this.$controller.value?.$queue.value?.now()?.id!==e?.id)return;let i=await this.$artwork.value?.get(e)??null,a=this.currentTrack();e.id===a?.id&&(r.previous?.url&&URL.revokeObjectURL(r.previous.url),this.#e.set({previous:r.current?{...r.current,loaded:!1}:null,current:i?(()=>{let o=ve(i);return{bytes:i,mime:o,hash:R(i).toString(),index:(r.current?.index??0)+1,loaded:!1,url:URL.createObjectURL(new Blob([i.buffer],{type:o}))}})():null}),i||(this.#i.value=void 0,this.#l.value=!1))}#f(){let e=this.currentTrack(),r=this.audio(),i=(r?.currentTime()??0)*1e3,a=e?.stats?.duration??(r?.duration()!=null?r.duration()*1e3:void 0);if(r&&a&&!isNaN(a)){let o=I.Duration.from({milliseconds:Math.round(i)}).round({largestUnit:"hours",smallestUnit:"seconds"});if(a===1/0){this.#t.value=this.#u(o),this.#a.value="\u221E";return}let n=I.Duration.from({milliseconds:Math.round(a)}).round({largestUnit:"hours",smallestUnit:"seconds"});this.#t.value=this.#u(o),this.#a.value=this.#u(n)}else this.#t.value="0:00",this.#a.value="0:00"}#u(e){return`${e.hours>0?e.hours.toFixed(0)+":":""}${e.hours>0?e.minutes>9?e.minutes.toFixed(0):"0"+e.minutes.toFixed(0):e.minutes.toFixed(0)}:${e.seconds>9?e.seconds.toFixed(0):"0"+e.seconds.toFixed(0)}`}artworkLoaded=s(e=>{if(!(e.target instanceof HTMLImageElement))return;let r=e.target.getAttribute("data-hash");if(!r||r!==this.#e.value.current?.hash||this.#e.value.current?.loaded)return;let a=new V().getColor(e.target),o=a.value,n=Math.round((o[0]*299+o[1]*587+o[2]*114)/1e3);this.#i.value=a.rgba,this.#l.value=n>165,this.#e.value={previous:this.#e.value.previous,current:{...this.#e.value.current,loaded:!0}}},"artworkLoaded");reload=s(()=>{let e=this.$controller.value?.$queue.value?.now()?.id;if(e){let r=this.audio()?.progress();this.$controller.value?.$audio.value?.reload({audioId:e,play:!0,progress:r})}},"reload");fullVolume=s(()=>{this.$controller.value?.$audio.value?.adjustVolume({volume:1})},"fullVolume");mute=s(()=>{this.$controller.value?.$audio.value?.adjustVolume({volume:0})},"mute");next=s(()=>{this.$controller.value?.$queue.value?.shift()},"next");playPause=s(()=>{let e=this.$controller.value?.$queue.value?.now()?.id;this.isPlaying()&&e?this.$controller.value?.$audio.value?.pause({audioId:e}):e&&this.$controller.value?.$audio.value?.play({audioId:e})},"playPause");previous=s(()=>{this.$controller.value?.$queue.value?.unshift()},"previous");seek=s(e=>{let r=e.target?e.target:null,i=r?e.offsetX/r.clientWidth:0,a=this.$controller.value?.$queue.value?.now()?.id;a&&this.$controller.value?.$audio.value?.seek({audioId:a,percentage:i})},"seek");setVolume=s(e=>{let r=e.target?e.target:null,i=r?e.offsetX/r.clientWidth:0;this.$controller.value?.$audio.value?.adjustVolume({volume:i})},"setVolume");toggleFavourite=s(()=>{let e=this.currentTrack();e&&this.$favourites.value?.toggle(e)},"toggleFavourite");toggleRepeat=s(()=>{let e=this.$repeatShuffle.value;e&&e.setRepeat(!e.repeat())},"toggleRepeat");toggleShuffle=s(()=>{let e=this.$repeatShuffle.value;e&&e.setShuffle(!e.shuffle())},"toggleShuffle");render({html:e}){let r=this.currentTrack(),i=r?this.$favourites.value?.isFavourite(r)??!1:!1,a=this.$repeatShuffle.value?.repeat()??!1,o=this.$repeatShuffle.value?.shuffle()??!1,u=[this.#e.value.previous,this.#e.value.current].sort((l,h)=>!l||!h?0:l.index%2?1:-1).map(l=>l===null?null:O(e` + + `));return e` + + + + + +
    +
    + + + ${u} +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    + + +
    + + ${r?.tags?.title||"Diffuse"} + + ${r?.tags?.artist??(r?"":"Waiting on queue ...")} + + + +
    + + + +
    + +
    + + +
    +
    + + + + + +
  • + +
  • + + +
  • + +
  • + + + + + + + + +
  • + +
  • + + +
  • + +
  • + + +
  • + +
  • + + +
  • + +
  • +
    + + + +
    + +
    + +
    + +
    +
    +
    +
    + `}},Me=T;function ve(t){return t[0]===255&&t[1]===216?"image/jpeg":t[0]===137&&t[1]===80?"image/png":t[0]===71&&t[1]===73?"image/gif":t[0]===82&&t[1]===73?"image/webp":"image/jpeg"}s(ve,"detectMime");var ge=T,me="db-artwork-controller";A(me,ge);export{ge as CLASS,me as NAME,Me as default}; +/*! Bundled license information: + +fast-average-color/dist/index.esm.js: + (*! Fast Average Color | © 2026 Denis Seleznev | MIT License | https://github.com/fast-average-color/fast-average-color *) +*/ + +//# sourceMappingURL=./element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js.br new file mode 100644 index 0000000000000000000000000000000000000000..414d11c042987390fccdf019c2f83b25e08243f0 GIT binary patch literal 6006 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 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js.map new file mode 120000 index 00000000..c780360c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/element.js.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/artwork-controller/element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/facet/index.html new file mode 120000 index 00000000..c3664125 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/facet/index.html @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/artwork-controller/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/facet/index.html.br new file mode 120000 index 00000000..30fbacdd --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/artwork-controller/facet/index.html.br @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/artwork-controller/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css new file mode 120000 index 00000000..d960b11f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/browser/element.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css.br new file mode 120000 index 00000000..129f5d41 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/browser/element.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css.map new file mode 120000 index 00000000..7509b3ec --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/browser/element.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js new file mode 100644 index 00000000..71c9cb76 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js @@ -0,0 +1,466 @@ +import"../../../../chunk-3U47TTXA.js";import{a as E}from"../../../../chunk-IYPBPO5F.js";import{c as D}from"../../../../chunk-MKIFSH6R.js";import"../../../../chunk-RL4C7EJ7.js";import"../../../../chunk-H4ULOOR2.js";import"../../../../chunk-OLJU5MZL.js";import{b as F,e as B,f as C,g as x,i as A}from"../../../../chunk-IA3NIKPO.js";import"../../../../chunk-7NEQFE27.js";import"../../../../chunk-NYGD7JS5.js";import"../../../../chunk-WMITNTCW.js";import"../../../../chunk-OBMOK4KY.js";import"../../../../chunk-HCA2HGAZ.js";import{c as P}from"../../../../chunk-VQAZGKWE.js";import"../../../../chunk-Y4Z6Z63V.js";import"../../../../chunk-FESDLVUC.js";import{j as w,n as L,o as $,p as O}from"../../../../chunk-XILA3E7E.js";import{a as h}from"../../../../chunk-75KFZLU6.js";function V(p){if(p.tags?.title)return p.tags.title;let e=p.uri.split("?")[0].split("/").filter(Boolean).at(-1);return e?decodeURIComponent(e):p.uri}h(V,"trackTitle");var _=8,T=40,N=52,I=10,R={title:["tags.title"],artist:["tags.artist","tags.album","tags.disc.no","tags.track.no"],album:["tags.album","tags.disc.no","tags.track.no"]},H=["createdAt"],W=[{value:"firstLetter",label:"Group by first letter",icon:"ph-text-aa"},{value:"directory",label:"Group by path",icon:"ph-folder"},{value:"createdAt",label:"Group by processing date",icon:"ph-clock"},{value:"tags.year",label:"Group by track year",icon:"ph-calendar"}],M=class extends F{static{h(this,"Browser")}constructor(){super(),this.attachShadow({mode:"open"})}$artwork=$(void 0);$coverGroups=$(void 0);$output=$(void 0);$provider=$(void 0);$queue=$(void 0);$scope=$(void 0);$favourites=$(void 0);$input=$(void 0);#h=$(new Set);#l=$(localStorage.getItem("diffuse/browser/view-mode")==="list"?"list":"cover");#T=$("albums");#s=$(null);#e=$(null);$albumTrackMap=w(()=>{let t=new Map;for(let{groups:e}of this.$coverGroups.value?.coverGroups()??[])for(let{albumKey:s,track:i}of e)t.set(s,i);for(let{groups:e}of this.$coverGroups.value?.artistGroups()??[])for(let{artistKey:s,track:i}of e)t.set(s,i);return t});$tracksByAlbum=w(()=>{let t=new Map;for(let e of this.$provider.value?.tracks()??[]){let s=String(e.tags?.album??"").toLowerCase();t.has(s)||t.set(s,[]),t.get(s)?.push(e)}return t});$tracksByArtist=w(()=>{let t=new Map;for(let e of this.$provider.value?.tracks()??[]){let s=String(e.tags?.artist??"").toLowerCase();t.has(s)||t.set(s,[]),t.get(s)?.push(e)}return t});$favouritesSet=w(()=>{let t=this.$favourites.value?.playlistItems()??[];return new Set(t.map(e=>{let s=e.criteria.find(r=>r.field==="tags.artist"),i=e.criteria.find(r=>r.field==="tags.title");return`${String(s?.value??"").toLowerCase()}|${String(i?.value??"").toLowerCase()}`}))});$sortedArtistGroups=w(()=>{let t=this.$coverGroups.value?.artistGroups()??[];return this.$scope.value?.sortDirection()==="desc"?t.map(e=>({...e,groups:[...e.groups].reverse()})):t});$sortedCoverGroups=w(()=>{let t=this.$coverGroups.value?.coverGroups()??[];return this.$scope.value?.sortDirection()==="desc"?t.map(e=>({...e,groups:[...e.groups].reverse()})):t});$detailTracks=w(()=>{let t=this.#s.value;return t?t.type==="album"?this.$tracksByAlbum().get(t.albumKey)??[]:this.$tracksByArtist().get(t.artistKey)??[]:[]});$groupedPlaylists=w(()=>{let t=this.$output.value?.playlistItems.collection();if(!t||t.state!=="loaded"||!t.data.length)return[];let e=t.data,i=[...D(e).values()].sort((o,l)=>o.name.localeCompare(l.name)),r=i.filter(o=>!o.unordered),a=i.filter(o=>o.unordered);return[{label:"Ordered",playlists:r},{label:"Unordered",playlists:a}].filter(o=>o.playlists.length>0)});#t=new Map;#c=new Set;#g=[];#m=0;#y=!1;#a=void 0;#v=new Map;#k=void 0;#n=[];#x=void 0;#I=void 0;#f=0;#M=0;#q=-1;#G=-1;#P=0;#o;#u;#i;#w=void 0;#r=[];#S=void 0;#C=0;connectedCallback(){super.connectedCallback();let t=x(this,"artwork-selector"),e=x(this,"cover-groups-orchestrator-selector"),s=C(this,"output-selector"),i=C(this,"tracks-selector"),r=C(this,"queue-engine-selector"),a=C(this,"scope-engine-selector"),o=C(this,"favourites-orchestrator-selector"),l=x(this,"input-selector");A({output:s,provider:i,queue:r,scope:a,favourites:o}).then(()=>{L(()=>{this.$output.value=s,this.$provider.value=i,this.$queue.value=r,this.$scope.value=a,this.$favourites.value=o})}),l&&A({input:l}).then(async()=>{this.$input.value=l;let c=await l.listCached();this.#h.value=new Set(c)}),t&&A({artwork:t}).then(()=>{this.$artwork.value=t}),e&&A({coverGroups:e}).then(()=>{this.$coverGroups.value=e}),this.effect(()=>{let c=this.$provider.value?.tracks();O(()=>{if(this.#S===void 0){this.#S=c;return}this.#S=c;let d=this.root().querySelector(".scroll-panel");d&&(d.scrollTo(0,0),this.#f=0)})}),this.effect(()=>{let c=this.$sortedCoverGroups(),d=this.$sortedArtistGroups();this.#l.value==="cover"&&(this.#s.value||O(()=>{requestAnimationFrame(()=>{this.#A(),this.#R(),requestAnimationFrame(()=>this.#R())})}))}),this.#L()}disconnectedCallback(){super.disconnectedCallback(),this.#u?.abort(),this.#u=void 0,this.#i?.disconnect(),this.#i=void 0,this.#o?.disconnect(),this.#o=void 0,this.#p(),this.#w!==void 0&&(cancelAnimationFrame(this.#w),this.#w=void 0)}playTrack(t){this.$queue.value?.add({inFront:!0,trackIds:[t.id]}),this.$queue.value?.shift()}setSearchTerm=h(()=>{let e=this.root().querySelector("#search-input")?.value?.trim();this.$scope.value?.setSearchTerm(e)},"setSearchTerm");clearSearch=h(()=>{let t=this.root().querySelector("#search-input");t&&(t.value=""),this.$scope.value?.setSearchTerm(void 0)},"clearSearch");setGroupBy=h(t=>{this.$scope.value?.setGroupBy(t)},"setGroupBy");setSelectedPlaylist=h(t=>{this.#p(),this.$scope.value?.setPlaylist(t)},"setSelectedPlaylist");sortByColumn=h(t=>{let e=this.$scope.value;if(!e)return;JSON.stringify(R[t])===JSON.stringify(e.sortBy())?e.sortDirection()==="desc"?e.revertToDefaultSort():e.setSortDirection("desc"):(e.setSortBy(R[t]??[]),e.setSortDirection(void 0))},"sortByColumn");toggleFavourite=h(t=>{this.$favourites.value?.toggle(t)},"toggleFavourite");addTracksToPlaylist=h(async(t,e)=>{let s=this.$output.value;if(!s||!e.length)return;let i=s.playlistItems.collection(),r=i.state==="loaded"?i.data:[],a=new Set(r.filter(d=>d.playlist===t).map(d=>{let u=d.criteria.find(b=>b.field==="tags.artist")?.value??"",v=d.criteria.find(b=>b.field==="tags.title")?.value??"";return`${String(u).toLowerCase()}.${String(v).toLowerCase()}`})),o=["toLowerCase"],l=new Date().toISOString(),c=e.filter(d=>{let u=`${String(d.tags?.artist??"").toLowerCase()}.${String(d.tags?.title??"").toLowerCase()}`;return!a.has(u)}).map(d=>({$type:"sh.diffuse.output.playlistItem",id:P(),playlist:t,criteria:[{field:"tags.artist",value:d.tags?.artist,transformations:o},{field:"tags.title",value:d.tags?.title,transformations:o}],createdAt:l,updatedAt:l}));c.length&&await s.playlistItems.save([...r,...c])},"addTracksToPlaylist");createPlaylistWithTracks=h(async(t,e,s)=>{let i=this.$output.value;if(!i||!e.length)return;let r=i.playlistItems.collection(),a=r.state==="loaded"?r.data:[],o=["toLowerCase"],l=new Date().toISOString(),c=[],d;for(let u of e){let v=P();c.push({$type:"sh.diffuse.output.playlistItem",id:v,playlist:t,criteria:[{field:"tags.artist",value:u.tags?.artist,transformations:o},{field:"tags.title",value:u.tags?.title,transformations:o}],...s?{positionedAfter:d}:{},createdAt:l,updatedAt:l}),s&&(d=v)}await i.playlistItems.save([...a,...c])},"createPlaylistWithTracks");#d(t,e,s){let i=s.map(a=>a.uri),r=i.length>0&&i.every(a=>this.#h.value.has(a));return t` + + `}toggleViewMode=h(()=>{this.#l.value==="cover"&&(this.#p(),this.#s.value=null);let t=this.#l.value==="list"?"cover":"list";localStorage.setItem("diffuse/browser/view-mode",t),this.#l.value=t,t==="list"&&this.#L()},"toggleViewMode");setCoverViewMode=h(t=>{this.#s.value=null,this.#p(),this.#T.value=t},"setCoverViewMode");#b(t,e){this.#t.has(t)||this.#c.has(t)||(this.#c.add(t),this.#g.push({albumKey:t,track:e}),this.#O())}#O(){for(;this.#m<_&&this.#g.length>0;){let t=this.#g.shift();if(!t)break;this.#m++,this.#D(t.albumKey,t.track)}}async#D(t,e){let s=this.$artwork.value;try{let i=new Promise(a=>setTimeout(()=>a(null),3e4)),r=s?await Promise.race([s.get(e),i]):null;if(r){let a=j(r),o=URL.createObjectURL(new Blob([r],{type:a}));this.#t.set(t,o)}else this.#t.set(t,null)}catch{}finally{this.#c.delete(t),this.#m--,this.#O()}this.#$()}#$(){this.#y||(this.#y=!0,requestAnimationFrame(()=>{this.#y=!1,this.forceRender()}))}#R(){let t=this.root().querySelector(".cover-scroll-panel");if(!t)return;let e=t.getBoundingClientRect(),s=200;for(let i of this.root().querySelectorAll(".cover-card[data-album-key]")){let r=i.dataset.albumKey;if(!r||this.#t.has(r)||this.#c.has(r))continue;let a=i.getBoundingClientRect();if(a.bottom+se.bottom)continue;let o=this.$albumTrackMap().get(r);o&&this.#b(r,o)}}#A(){let t=this.root().querySelector(".cover-scroll-panel");if(t){this.#a||(this.#a=new IntersectionObserver(e=>{let s=!1;for(let i of e){if(!i.isIntersecting)continue;s=!0;let r=i.target.dataset.albumKey;if(!r)continue;let a=this.$albumTrackMap().get(r);a&&this.#v.set(r,a),this.#a?.unobserve(i.target)}s&&(clearTimeout(this.#k),this.#k=setTimeout(()=>{for(let[i,r]of this.#v)this.#b(i,r);this.#v.clear()},150))},{root:t,rootMargin:"200px"}));for(let e of this.root().querySelectorAll(".cover-card[data-album-key]")){let s=e.dataset.albumKey;s&&(this.#t.has(s)||this.#c.has(s))||this.#a.observe(e)}}}#L(){this.#u?.abort(),this.#u=new AbortController,this.#i?.disconnect(),this.#i=void 0,this.#o?.disconnect(),this.#o=void 0,this.#f=0;let t=this.#u,e=h(()=>{if(t.signal.aborted)return;let s=this.root().querySelector(".scroll-panel");s&&(s.addEventListener("scroll",()=>{this.#f=s.scrollTop,this.#F()},{passive:!0,signal:t.signal}),this.#o=new ResizeObserver(i=>{this.#M=Math.min(i[0].contentRect.height,window.innerHeight),this.#F()}),this.#o.observe(s))},"attach");this.#i=new IntersectionObserver((s,i)=>{s[0].isIntersecting&&(i.disconnect(),this.#i=void 0,requestAnimationFrame(e))}),this.#i.observe(this)}#F(){let{startIndex:t,endIndex:e}=this.#B(this.#P);t===this.#q&&e===this.#G||this.forceRender()}#B(t){let e=this.#f,s=this.#M;if(this.#r.length===0){let o=Math.max(0,Math.floor(e/T)-I),l=Math.ceil(s/T)+2*I;return{startIndex:o,endIndex:Math.min(t,o+l)}}let i=this.#r,r=Math.max(0,U(i,e)-I),a=Math.min(t,U(i,e+s)+1+I);return{startIndex:r,endIndex:a}}#E(){let t=this.#n;if(t.length===0){this.#r=[];return}let e=new Array(t.length+1);e[0]=0;for(let s=0;s + + + `:"",o=t` + + + + + `,l=s?t` +
    + + + +
    + `:t` +
    + ${e.mode==="filter"?t` + + `:""} ${e.mode==="add"?t` + + ${r.length>0?t` +
    + `:""} + `:""} ${r.length===0?e.mode==="add"?"":t` +
    No playlists yet
    + `:r.map(({label:c,playlists:d})=>t` +
    ${c}
    + ${d.map(u=>t` + + `)} + `)} +
    + `;return t` +
    +
    +
    + ${a} + ${i} + ${o} +
    + ${l} +
    +
    + `}#U(t,e){if(this.#s.value)return this.#N(t);let s=this.#T.value,i=this.$scope.value?.sortDirection()??"asc",a=(s==="artists"?this.$sortedArtistGroups():this.$sortedCoverGroups()).reduce((u,v)=>u+v.groups.length,0),o=s==="artists"?`${a} ${a===1?"artist":"artists"}`:`${a} ${a===1?"album":"albums"}`,l=t` +
    +
    + + +
    +
    + ${o} + +
    +
    + `;if(e)return t` + ${l} +
    Loading ...
    + `;let c=this.$tracksByAlbum(),d=this.$tracksByArtist();return s==="artists"?(requestAnimationFrame(()=>this.#A()),t` + ${l} +
    + ${this.$sortedArtistGroups().map(({label:u,groups:v},b)=>t` + ${u?t` +
    + + ${u} +
    + `:""} +
    + ${v.map(({artistKey:f,artistName:g,trackCount:y,track:n})=>{let k=this.#t.get(f),S=d.get(f)??[];return t` +
    +
    + ${k?t` + ${g} + `:t` +
    + `} + + ${this.#d(t,`artist-card-menu-${n.id}`,S)} +
    +
    + ${g} + ${y} ${y===1?"track":"tracks"} +
    +
    + `})} +
    + `)} +
    + `):(requestAnimationFrame(()=>this.#A()),t` + ${l} +
    + ${this.$sortedCoverGroups().map(({label:u,groups:v},b)=>t` + ${u?t` +
    + + ${u} +
    + `:""} +
    + ${v.map(({albumKey:f,albumName:g,artist:y,track:n})=>{let k=this.#t.get(f),S=c.get(f)??[];return t` +
    +
    + ${k?t` + ${g} + `:t` +
    + `} + + ${this.#d(t,`album-card-menu-${n.id}`,S)} +
    +
    + ${g} + ${y} +
    +
    + `})} +
    + `)} +
    + `)}#_(t,e,s){let i=this.$provider.value?.tracks()??[],r=this.$provider.value?.groups?.(),a=this.$scope.value?.sortDirection(),o=this.$provider.value?.playlistIsOrdered?.()??!1,l=o?void 0:Object.entries(R).find(([,n])=>JSON.stringify(n)===JSON.stringify(s))?.[0],c=h(n=>l===n?a==="desc"?"descending":"ascending":"none","ariaSort"),d=o?new Map(i.map((n,k)=>[n.id,k+1])):null;(r!==this.#I||i!==this.#x)&&(this.#n=r?z(r):[],this.#E(),this.#I=r,this.#x=i);let u=r?this.#n.length:i.length;this.#P=u;let{startIndex:v,endIndex:b}=this.#B(u);this.#q=v,this.#G=b;let f=this.#r.length>0?this.#r[this.#n.length]:u*T,g=this.$favouritesSet(),y=h((n,k,S)=>{let m=`${String(n.tags?.artist??"").toLowerCase()}|${String(n.tags?.title??"").toLowerCase()}`,q=g.has(m);return t` +
    +
    + +
    + ${o?t`
    ${d?.get(n.id)}
    `:""} +
    + ${V(n)} +
    +
    + ${n.tags?.artist} +
    +
    + ${n.tags?.album} +
    +
    + + ${this.#d(t,`list-track-menu-${n.id}`,[n])} +
    +
    + `},"renderTrackRow");return t` +
    +
    + ${o?t`
    #
    `:""} +
    + Title ${l==="title"?t` + + `:""} +
    +
    + Artist ${l==="artist"?t` + + `:""} +
    +
    + Album ${l==="album"?t` + + `:""} +
    +
    +
    + +
    +
    + ${e?t` +
    Loading ...
    + `:E(J(r,i,this.#n,this.#r,v,b),n=>n.key,n=>n.type==="group"?t` +
    + + ${n.label} +
    + `:y(n.track,n.top,n.index))} +
    +
    + `}#N(t){let e=this.#s.value;if(!e)return t` + + `;let s=this.$detailTracks(),i=this.$favouritesSet(),r="",a="",o="";e.type==="album"?(r=e.albumKey,a=e.albumName,o=e.artist):(r=e.artistKey,a=e.artistName,o=`${e.trackCount} ${e.trackCount===1?"track":"tracks"}`);let l=this.#t.get(r);return t` +
    +
    + + + ${this.#d(t,"album-actions-menu",s)} +
    +
    +
    +
    + ${l?t` + ${a} + `:t` +
    + `} +
    +
    + ${a} + ${o} +
    +
    +
    + ${s.map((c,d)=>{let u=`${String(c.tags?.artist??"").toLowerCase()}|${String(c.tags?.title??"").toLowerCase()}`,v=i.has(u);return t` +
    +
    + +
    +
    + ${V(c)} +
    +
    + ${c.tags?.artist} +
    +
    + + ${this.#d(t,`detail-track-menu-${c.id}`,[c])} +
    +
    + `})} +
    +
    +
    + `}#H(t,e,s){return t` + + + `}#W(t,e){return t` + + `}render({html:t}){let e=this.$output.value?.tracks?.collection().state!=="loaded",s=this.$scope.value?.playlist(),i=this.$scope.value?.groupBy(),r=this.$scope.value?.searchTerm()??"",a=this.$scope.value?.sortBy()??H,o=this.#l.value;return t` + + + + + + + +
    + + +
    + + ${r?t` + + `:""} + + + + + + ${this.#H(t,a,i)} ${this.#W(t,s)} +
    +
    + + ${o==="cover"?this.#U(t,e):this.#_(t,e,a)} ${this.#V(t)} + `}},st=M;function j(p){return p[0]===255&&p[1]===216?"image/jpeg":p[0]===137&&p[1]===80?"image/png":p[0]===71&&p[1]===73?"image/gif":p[0]===82&&p[1]===73?"image/webp":"image/jpeg"}h(j,"detectMime");function U(p,t){let e=0,s=p.length;for(;e>>1;p[i]<=t?e=i+1:s=i}return Math.max(0,e-1)}h(U,"bisectRight");function z(p){let t=[];for(let e of p){t.push({type:"group",label:e.label});for(let s of e.tracks)t.push({type:"track",track:s})}return t}h(z,"buildFlatList");function J(p,t,e,s,i,r){let a=[];for(let o=i;o0?s[o]:o*T;l&&(l.type==="group"?a.push({type:"group",key:`group:${l.label}`,label:l.label,index:o,top:c}):a.push({type:"track",key:`track:${l.track.id}`,track:l.track,index:o,top:c}))}return a}h(J,"buildWindowItems");var Y=M,Q="db-browser";B(Q,Y);export{Y as CLASS,Q as NAME,st as default}; + +//# sourceMappingURL=./element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js.br new file mode 100644 index 0000000000000000000000000000000000000000..1734bacf4811ebc82a420ac9be4fbbbc5cd8918f GIT binary patch literal 7919 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%0APby~#2O{?^&rfRjOe%s9CyvO4 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 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js.map new file mode 100644 index 00000000..c5e52fd9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/element.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/element.js"],"sourcesContent":["import * as TID from \"@atcute/tid\";\n\nimport {\n defineElement,\n DiffuseElement,\n query,\n queryOptional,\n whenElementsDefined,\n} from \"~/common/element.js\";\nimport { batch, computed, signal, untracked } from \"~/common/signal.js\";\nimport * as Playlist from \"~/common/playlist.js\";\nimport { repeat } from \"~/vendor/lit-html/directives/repeat.js\";\n\n/**\n * @import {RenderArg} from \"~/common/element.d.ts\"\n * @import {SignalReader} from \"~/common/signal.d.ts\";\n * @import {Track} from \"~/definitions/types.d.ts\"\n * @import {OutputElement} from \"@specs/components/output/types.d.ts\"\n * @import {ArtworkElement} from \"@specs/components/artwork/types.d.ts\"\n */\n\n/**\n * @param {Track} track\n */\nfunction trackTitle(track) {\n if (track.tags?.title) return track.tags.title;\n const path = track.uri.split(\"?\")[0];\n const filename = path.split(\"/\").filter(Boolean).at(-1);\n return filename ? decodeURIComponent(filename) : track.uri;\n}\n\nconst MAX_ART_CONCURRENT = 8;\n\nconst TRACK_ROW_HEIGHT = 40;\nconst GROUP_HEADER_HEIGHT = 52;\nconst OVERSCAN = 10;\n\n/** @type {Record} */\nconst COLUMN_SORT = {\n title: [\"tags.title\"],\n artist: [\"tags.artist\", \"tags.album\", \"tags.disc.no\", \"tags.track.no\"],\n album: [\"tags.album\", \"tags.disc.no\", \"tags.track.no\"],\n};\n\nconst DEFAULT_SORT = [\"createdAt\"];\n\nconst GROUP_BY_OPTIONS = [\n { value: \"firstLetter\", label: \"Group by first letter\", icon: \"ph-text-aa\" },\n { value: \"directory\", label: \"Group by path\", icon: \"ph-folder\" },\n { value: \"createdAt\", label: \"Group by processing date\", icon: \"ph-clock\" },\n { value: \"tags.year\", label: \"Group by track year\", icon: \"ph-calendar\" },\n];\n\n/**\n * @typedef {{ type: \"group\"; label: string }} GroupItem\n * @typedef {{ type: \"track\"; track: Track }} TrackItem\n * @typedef {GroupItem | TrackItem} VirtualItem\n */\n\n/**\n * @typedef {{ type: \"album\"; albumKey: string; albumName: string; artist: string; track: Track }} OpenAlbumItem\n * @typedef {{ type: \"artist\"; artistKey: string; artistName: string; trackCount: number; track: Track }} OpenArtistItem\n * @typedef {OpenAlbumItem | OpenArtistItem} OpenCoverItem\n */\n\nclass Browser extends DiffuseElement {\n constructor() {\n super();\n this.attachShadow({ mode: \"open\" });\n }\n\n // SIGNALS\n\n $artwork = signal(\n /** @type {ArtworkElement | undefined} */ (undefined),\n );\n\n $coverGroups = signal(\n /** @type {import(\"~/components/orchestrator/cover-groups/element.js\").CLASS | undefined} */ (undefined),\n );\n\n $output = signal(\n /** @type {OutputElement | undefined} */ (undefined),\n );\n\n $provider = signal(\n /** @type {DiffuseElement & { tracks: SignalReader } | undefined} */ (undefined),\n );\n\n $queue = signal(\n /** @type {import(\"~/components/engine/queue/element.js\").CLASS | undefined} */ (undefined),\n );\n\n $scope = signal(\n /** @type {import(\"~/components/engine/scope/element.js\").CLASS | undefined} */ (undefined),\n );\n\n $favourites = signal(\n /** @type {import(\"~/components/orchestrator/favourites/element.js\").CLASS | undefined} */ (undefined),\n );\n\n $input = signal(\n /** @type {import(\"~/components/configurator/input/element.js\").CLASS | undefined} */ (undefined),\n );\n\n #cachedUris = signal(/** @type {Set} */ (new Set()));\n\n // SIGNALS - Pt. 2\n\n #viewMode = signal(\n /** @type {\"list\" | \"cover\"} */ (\n localStorage.getItem(\"diffuse/browser/view-mode\") === \"list\"\n ? \"list\"\n : \"cover\"\n ),\n );\n\n #coverViewMode = signal(/** @type {\"albums\" | \"artists\"} */ (\"albums\"));\n\n #openCoverItem = signal(/** @type {OpenCoverItem | null} */ (null));\n\n #playlistPickerState = signal(\n /** @type {{ mode: \"filter\" } | { mode: \"add\"; tracks: Track[] } | { mode: \"create\"; tracks: Track[] } | null} */ (null),\n );\n\n // SIGNALS - Pt. 3\n\n $albumTrackMap = computed(() => {\n /** @type {Map} */\n const map = new Map();\n for (const { groups } of this.$coverGroups.value?.coverGroups() ?? []) {\n for (const { albumKey, track } of groups) {\n map.set(albumKey, track);\n }\n }\n for (const { groups } of this.$coverGroups.value?.artistGroups() ?? []) {\n for (const { artistKey, track } of groups) {\n map.set(artistKey, track);\n }\n }\n return map;\n });\n\n $tracksByAlbum = computed(() => {\n /** @type {Map} */\n const map = new Map();\n for (const t of this.$provider.value?.tracks() ?? []) {\n const key = String(t.tags?.album ?? \"\").toLowerCase();\n if (!map.has(key)) map.set(key, []);\n map.get(key)?.push(t);\n }\n return map;\n });\n\n $tracksByArtist = computed(() => {\n /** @type {Map} */\n const map = new Map();\n for (const t of this.$provider.value?.tracks() ?? []) {\n const key = String(t.tags?.artist ?? \"\").toLowerCase();\n if (!map.has(key)) map.set(key, []);\n map.get(key)?.push(t);\n }\n return map;\n });\n\n $favouritesSet = computed(() => {\n const favItems = this.$favourites.value?.playlistItems() ?? [];\n return new Set(\n favItems.map((item) => {\n const a = item.criteria.find((c) => c.field === \"tags.artist\");\n const t = item.criteria.find((c) => c.field === \"tags.title\");\n return `${String(a?.value ?? \"\").toLowerCase()}|${\n String(t?.value ?? \"\").toLowerCase()\n }`;\n }),\n );\n });\n\n $sortedArtistGroups = computed(() => {\n const groups = this.$coverGroups.value?.artistGroups() ?? [];\n return this.$scope.value?.sortDirection() === \"desc\"\n ? groups.map((g) => ({ ...g, groups: [...g.groups].reverse() }))\n : groups;\n });\n\n $sortedCoverGroups = computed(() => {\n const groups = this.$coverGroups.value?.coverGroups() ?? [];\n return this.$scope.value?.sortDirection() === \"desc\"\n ? groups.map((g) => ({ ...g, groups: [...g.groups].reverse() }))\n : groups;\n });\n\n $detailTracks = computed(() => {\n const item = this.#openCoverItem.value;\n if (!item) return /** @type {Track[]} */ ([]);\n if (item.type === \"album\") {\n return this.$tracksByAlbum().get(item.albumKey) ?? [];\n }\n return this.$tracksByArtist().get(item.artistKey) ?? [];\n });\n\n $groupedPlaylists = computed(() => {\n const col = this.$output.value?.playlistItems.collection();\n if (!col || col.state !== \"loaded\" || !col.data.length) return [];\n const items = col.data;\n\n /** @type {Map} */\n const playlistMap = Playlist.gather(items);\n\n const all = [...playlistMap.values()].sort((a, b) =>\n a.name.localeCompare(b.name)\n );\n\n const ordered = all.filter((p) => !p.unordered);\n const unordered = all.filter((p) => p.unordered);\n\n return [\n { label: \"Ordered\", playlists: ordered },\n { label: \"Unordered\", playlists: unordered },\n ].filter((g) => g.playlists.length > 0);\n });\n\n // STATE\n\n /** @type {Map} */\n #coverArtCache = new Map();\n\n /** @type {Set} */\n #pendingArtFetch = new Set();\n\n /** @type {{ albumKey: string; track: Track }[]} */\n #artFetchQueue = [];\n\n #artFetchActive = 0;\n #artRenderScheduled = false;\n\n /** @type {IntersectionObserver | undefined} */\n #coverObserver = undefined;\n\n /** @type {Map} */\n #pendingVisibleCards = new Map();\n\n /** @type {ReturnType | undefined} */\n #artFetchDebounce = undefined;\n\n /** @type {VirtualItem[]} */\n #flatItems = [];\n\n /** @type {Track[] | undefined} */\n #lastTracks = undefined;\n\n /** @type {{ label: string; tracks: Track[] }[] | undefined} */\n #lastGroups = undefined;\n\n // Custom virtual scroll state\n #scrollTop = 0;\n #viewportHeight = 0;\n #renderedStartIndex = -1;\n #renderedEndIndex = -1;\n #itemCount = 0;\n\n /** @type {ResizeObserver | undefined} */\n #resizeObserver;\n\n /** @type {AbortController | undefined} */\n #scrollAbort;\n\n /** @type {IntersectionObserver | undefined} */\n #scrollVisibilityObserver;\n\n /** @type {number | undefined} */\n #scrollRenderRaf = undefined;\n\n /** @type {number[]} */\n #offsets = [];\n\n /** @type {Track[] | undefined} */\n #previousTracks = undefined;\n\n #coverScrollTop = 0;\n\n // LIFECYCLE\n\n /**\n * @override\n */\n connectedCallback() {\n super.connectedCallback();\n\n /** @type {import(\"~/components/configurator/artwork/element.js\").CLASS | null} */\n const artwork = queryOptional(this, \"artwork-selector\");\n\n /** @type {import(\"~/components/orchestrator/cover-groups/element.js\").CLASS | null} */\n const coverGroups = queryOptional(\n this,\n \"cover-groups-orchestrator-selector\",\n );\n\n /** @type {OutputElement} */\n const output = query(this, \"output-selector\");\n\n /** @type {DiffuseElement & { tracks: SignalReader }} */\n const provider = query(this, \"tracks-selector\");\n\n /** @type {import(\"~/components/engine/queue/element.js\").CLASS} */\n const queue = query(this, \"queue-engine-selector\");\n\n /** @type {import(\"~/components/engine/scope/element.js\").CLASS} */\n const scope = query(this, \"scope-engine-selector\");\n\n /** @type {import(\"~/components/orchestrator/favourites/element.js\").CLASS} */\n const favourites = query(this, \"favourites-orchestrator-selector\");\n\n /** @type {import(\"~/components/configurator/input/element.js\").CLASS | null} */\n const input = queryOptional(this, \"input-selector\");\n\n whenElementsDefined({ output, provider, queue, scope, favourites }).then(\n () => {\n batch(() => {\n this.$output.value = output;\n this.$provider.value = provider;\n this.$queue.value = queue;\n this.$scope.value = scope;\n this.$favourites.value = favourites;\n });\n },\n );\n\n if (input) {\n whenElementsDefined({ input }).then(async () => {\n this.$input.value = input;\n const uris = await input.listCached();\n this.#cachedUris.value = new Set(uris);\n });\n }\n\n if (artwork) {\n whenElementsDefined({ artwork }).then(() => {\n this.$artwork.value = artwork;\n });\n }\n\n if (coverGroups) {\n whenElementsDefined({ coverGroups }).then(() => {\n this.$coverGroups.value = coverGroups;\n });\n }\n\n // Reset scroll when track list changes (skip the initial population)\n this.effect(() => {\n const tracks = this.$provider.value?.tracks();\n\n untracked(() => {\n if (this.#previousTracks === undefined) {\n this.#previousTracks = tracks;\n return;\n }\n this.#previousTracks = tracks;\n const panel = this.root().querySelector(\".scroll-panel\");\n if (panel) {\n panel.scrollTo(0, 0);\n this.#scrollTop = 0;\n }\n });\n });\n\n // Re-observe cover cards when groups change (track filtering, sorting, search)\n this.effect(() => {\n const _coverGroups = this.$sortedCoverGroups();\n const _artistGroups = this.$sortedArtistGroups();\n\n if (this.#viewMode.value !== \"cover\") return;\n if (this.#openCoverItem.value) return;\n\n untracked(() => {\n requestAnimationFrame(() => {\n this.#setupCoverObserver();\n this.#fetchVisibleCoverArt();\n // Fallback: IntersectionObserver may not deliver initial callbacks\n // before paint, and layout may not be stable yet. Re-check after\n // a frame to catch any cards that were missed.\n requestAnimationFrame(() => this.#fetchVisibleCoverArt());\n });\n });\n });\n\n // Set up scroll tracking after first render, when .scroll-panel exists in the DOM.\n this.#setupScrollTracking();\n }\n\n /**\n * @override\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#scrollAbort?.abort();\n this.#scrollAbort = undefined;\n this.#scrollVisibilityObserver?.disconnect();\n this.#scrollVisibilityObserver = undefined;\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = undefined;\n this.#disconnectCoverObserver();\n if (this.#scrollRenderRaf !== undefined) {\n cancelAnimationFrame(this.#scrollRenderRaf);\n this.#scrollRenderRaf = undefined;\n }\n }\n\n // EVENTS\n\n /**\n * @param {Track} track\n */\n playTrack(track) {\n this.$queue.value?.add({ inFront: true, trackIds: [track.id] });\n this.$queue.value?.shift();\n }\n\n setSearchTerm = () => {\n /** @type {HTMLInputElement | null} */\n const input = this.root().querySelector(\"#search-input\");\n const term = input?.value?.trim();\n this.$scope.value?.setSearchTerm(term);\n };\n\n clearSearch = () => {\n /** @type {HTMLInputElement | null} */\n const input = this.root().querySelector(\"#search-input\");\n if (input) input.value = \"\";\n this.$scope.value?.setSearchTerm(undefined);\n };\n\n /**\n * @param {string | undefined} value\n */\n setGroupBy = (value) => {\n this.$scope.value?.setGroupBy(value);\n };\n\n /**\n * @param {string | undefined} value\n */\n setSelectedPlaylist = (value) => {\n this.#disconnectCoverObserver();\n this.$scope.value?.setPlaylist(value);\n };\n\n /**\n * @param {string} column\n */\n sortByColumn = (column) => {\n const scope = this.$scope.value;\n if (!scope) return;\n\n const isActive = JSON.stringify(COLUMN_SORT[column]) ===\n JSON.stringify(scope.sortBy());\n\n if (isActive) {\n if (scope.sortDirection() === \"desc\") {\n scope.revertToDefaultSort();\n } else {\n scope.setSortDirection(\"desc\");\n }\n } else {\n scope.setSortBy(COLUMN_SORT[column] ?? []);\n scope.setSortDirection(undefined);\n }\n };\n\n /**\n * @param {Track} track\n */\n toggleFavourite = (track) => {\n this.$favourites.value?.toggle(track);\n };\n\n /**\n * @param {string} playlistName\n * @param {Track[]} tracks\n */\n addTracksToPlaylist = async (playlistName, tracks) => {\n const output = this.$output.value;\n if (!output || !tracks.length) return;\n\n const col = output.playlistItems.collection();\n const existing = col.state === \"loaded\" ? col.data : [];\n\n const existingKeys = new Set(\n existing\n .filter((item) => item.playlist === playlistName)\n .map((item) => {\n const a = item.criteria.find((c) =>\n c.field === \"tags.artist\"\n )?.value ?? \"\";\n const t =\n item.criteria.find((c) => c.field === \"tags.title\")?.value ?? \"\";\n return `${String(a).toLowerCase()}.${String(t).toLowerCase()}`;\n }),\n );\n\n const transformations = /** @type {string[]} */ ([\"toLowerCase\"]);\n const now = new Date().toISOString();\n\n const newItems = tracks\n .filter((track) => {\n const key = `${String(track.tags?.artist ?? \"\").toLowerCase()}.${\n String(track.tags?.title ?? \"\").toLowerCase()\n }`;\n return !existingKeys.has(key);\n })\n .map((\n track,\n ) => /** @type {import(\"~/definitions/types.d.ts\").PlaylistItem} */ ({\n $type: \"sh.diffuse.output.playlistItem\",\n id: TID.now(),\n playlist: playlistName,\n criteria: [\n {\n field: \"tags.artist\",\n value: /** @type {unknown} */ (track.tags?.artist),\n transformations,\n },\n {\n field: \"tags.title\",\n value: /** @type {unknown} */ (track.tags?.title),\n transformations,\n },\n ],\n createdAt: now,\n updatedAt: now,\n }));\n\n if (!newItems.length) return;\n await output.playlistItems.save([...existing, ...newItems]);\n };\n\n /**\n * @param {string} playlistName\n * @param {Track[]} tracks\n * @param {boolean} ordered\n */\n createPlaylistWithTracks = async (playlistName, tracks, ordered) => {\n const output = this.$output.value;\n if (!output || !tracks.length) return;\n\n const col = output.playlistItems.collection();\n const existing = col.state === \"loaded\" ? col.data : [];\n\n const transformations = /** @type {string[]} */ ([\"toLowerCase\"]);\n const now = new Date().toISOString();\n\n /** @type {import(\"~/definitions/types.d.ts\").PlaylistItem[]} */\n const newItems = [];\n let prevId = /** @type {string | undefined} */ (undefined);\n\n for (const track of tracks) {\n const id = TID.now();\n newItems.push(\n /** @type {import(\"~/definitions/types.d.ts\").PlaylistItem} */ ({\n $type: \"sh.diffuse.output.playlistItem\",\n id,\n playlist: playlistName,\n criteria: [\n {\n field: \"tags.artist\",\n value: /** @type {unknown} */ (track.tags?.artist),\n transformations,\n },\n {\n field: \"tags.title\",\n value: /** @type {unknown} */ (track.tags?.title),\n transformations,\n },\n ],\n ...(ordered ? { positionedAfter: prevId } : {}),\n createdAt: now,\n updatedAt: now,\n }),\n );\n if (ordered) prevId = id;\n }\n\n await output.playlistItems.save([...existing, ...newItems]);\n };\n\n /**\n * @param {Function} html\n * @param {string} menuId\n * @param {Track[]} tracks\n */\n #renderTrackMenu(html, menuId, tracks) {\n const uris = tracks.map((t) => t.uri);\n const allCached = uris.length > 0 &&\n uris.every((u) => this.#cachedUris.value.has(u));\n return html`\n
    e.stopPropagation()}\">\n \n \n \n \n
    \n `;\n }\n\n toggleViewMode = () => {\n if (this.#viewMode.value === \"cover\") {\n this.#disconnectCoverObserver();\n this.#openCoverItem.value = null;\n }\n const next = this.#viewMode.value === \"list\" ? \"cover\" : \"list\";\n localStorage.setItem(\"diffuse/browser/view-mode\", next);\n this.#viewMode.value = next;\n if (next === \"list\") this.#setupScrollTracking();\n };\n\n /**\n * @param {\"albums\" | \"artists\"} mode\n */\n setCoverViewMode = (mode) => {\n this.#openCoverItem.value = null;\n this.#disconnectCoverObserver();\n this.#coverViewMode.value = mode;\n };\n\n // HELPERS\n\n /**\n * Enqueue an artwork fetch if not already pending or cached.\n * @param {string} albumKey\n * @param {Track} track\n */\n #fetchAlbumArt(albumKey, track) {\n if (this.#coverArtCache.has(albumKey)) return;\n if (this.#pendingArtFetch.has(albumKey)) return;\n this.#pendingArtFetch.add(albumKey);\n this.#artFetchQueue.push({ albumKey, track });\n this.#drainArtQueue();\n }\n\n #drainArtQueue() {\n while (\n this.#artFetchActive < MAX_ART_CONCURRENT &&\n this.#artFetchQueue.length > 0\n ) {\n const job = this.#artFetchQueue.shift();\n if (!job) break;\n this.#artFetchActive++;\n this.#doFetchAlbumArt(job.albumKey, job.track);\n }\n }\n\n /**\n * @param {string} albumKey\n * @param {Track} track\n */\n async #doFetchAlbumArt(albumKey, track) {\n const artwork = this.$artwork.value;\n try {\n const timeout = new Promise(\n (resolve) => setTimeout(() => resolve(null), 30_000),\n );\n const bytes = artwork\n ? await Promise.race([artwork.get(track), timeout])\n : null;\n if (bytes) {\n const mime = detectMime(bytes);\n const url = URL.createObjectURL(\n new Blob([bytes], { type: mime }),\n );\n this.#coverArtCache.set(albumKey, url);\n } else {\n this.#coverArtCache.set(albumKey, null);\n }\n } catch {\n // don't cache on error — let it be retried\n } finally {\n this.#pendingArtFetch.delete(albumKey);\n this.#artFetchActive--;\n this.#drainArtQueue();\n }\n this.#scheduleArtRender();\n }\n\n #scheduleArtRender() {\n if (this.#artRenderScheduled) return;\n this.#artRenderScheduled = true;\n requestAnimationFrame(() => {\n this.#artRenderScheduled = false;\n this.forceRender();\n });\n }\n\n #fetchVisibleCoverArt() {\n const panel = this.root().querySelector(\".cover-scroll-panel\");\n if (!panel) return;\n const panelRect = panel.getBoundingClientRect();\n const margin = 200;\n for (\n const card of this.root().querySelectorAll(\n \".cover-card[data-album-key]\",\n )\n ) {\n const albumKey = /** @type {HTMLElement} */ (card).dataset.albumKey;\n if (\n !albumKey || this.#coverArtCache.has(albumKey) ||\n this.#pendingArtFetch.has(albumKey)\n ) continue;\n const cardRect = card.getBoundingClientRect();\n if (\n cardRect.bottom + margin < panelRect.top ||\n cardRect.top - margin > panelRect.bottom\n ) continue;\n const track = this.$albumTrackMap().get(albumKey);\n if (track) this.#fetchAlbumArt(albumKey, track);\n }\n }\n\n #setupCoverObserver() {\n const root = this.root().querySelector(\".cover-scroll-panel\");\n if (!root) return;\n\n if (!this.#coverObserver) {\n this.#coverObserver = new IntersectionObserver(\n (entries) => {\n let hasNew = false;\n for (const entry of entries) {\n if (!entry.isIntersecting) continue;\n hasNew = true;\n const albumKey =\n /** @type {HTMLElement} */ (entry.target).dataset.albumKey;\n if (!albumKey) continue;\n const track = this.$albumTrackMap().get(albumKey);\n if (track) this.#pendingVisibleCards.set(albumKey, track);\n this.#coverObserver?.unobserve(entry.target);\n }\n if (!hasNew) return;\n clearTimeout(this.#artFetchDebounce);\n this.#artFetchDebounce = setTimeout(() => {\n for (const [albumKey, track] of this.#pendingVisibleCards) {\n this.#fetchAlbumArt(albumKey, track);\n }\n this.#pendingVisibleCards.clear();\n }, 150);\n },\n { root, rootMargin: \"200px\" },\n );\n }\n\n for (\n const card of this.root().querySelectorAll(\".cover-card[data-album-key]\")\n ) {\n const albumKey = /** @type {HTMLElement} */ (card).dataset.albumKey;\n if (\n albumKey &&\n (this.#coverArtCache.has(albumKey) ||\n this.#pendingArtFetch.has(albumKey))\n ) continue;\n this.#coverObserver.observe(card);\n }\n }\n\n #setupScrollTracking() {\n this.#scrollAbort?.abort();\n this.#scrollAbort = new AbortController();\n this.#scrollVisibilityObserver?.disconnect();\n this.#scrollVisibilityObserver = undefined;\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = undefined;\n this.#scrollTop = 0;\n\n const abort = this.#scrollAbort;\n\n const attach = () => {\n if (abort.signal.aborted) return;\n const panel = this.root().querySelector(\".scroll-panel\");\n if (!panel) return;\n\n panel.addEventListener(\n \"scroll\",\n () => {\n this.#scrollTop = panel.scrollTop;\n this.#renderIfWindowChanged();\n },\n { passive: true, signal: abort.signal },\n );\n\n this.#resizeObserver = new ResizeObserver((entries) => {\n // Cap to window.innerHeight to guard against measuring the scroll height\n // before shadow DOM stylesheets finish loading (when the panel has no\n // flex constraints and expands to its full virtual content size).\n this.#viewportHeight = Math.min(\n entries[0].contentRect.height,\n window.innerHeight,\n );\n this.#renderIfWindowChanged();\n });\n\n this.#resizeObserver.observe(panel);\n };\n\n this.#scrollVisibilityObserver = new IntersectionObserver(\n (entries, observer) => {\n if (!entries[0].isIntersecting) return;\n observer.disconnect();\n this.#scrollVisibilityObserver = undefined;\n requestAnimationFrame(attach);\n },\n );\n\n this.#scrollVisibilityObserver.observe(this);\n }\n\n #renderIfWindowChanged() {\n const { startIndex, endIndex } = this.#computeWindow(this.#itemCount);\n\n if (\n startIndex === this.#renderedStartIndex &&\n endIndex === this.#renderedEndIndex\n ) return;\n\n this.forceRender();\n }\n\n /**\n * @param {number} count\n * @returns {{ startIndex: number; endIndex: number }}\n */\n #computeWindow(count) {\n const scrollTop = this.#scrollTop;\n const viewportHeight = this.#viewportHeight;\n\n if (this.#offsets.length === 0) {\n const startIndex = Math.max(\n 0,\n Math.floor(scrollTop / TRACK_ROW_HEIGHT) - OVERSCAN,\n );\n const visibleCount = Math.ceil(viewportHeight / TRACK_ROW_HEIGHT) +\n 2 * OVERSCAN;\n return {\n startIndex,\n endIndex: Math.min(count, startIndex + visibleCount),\n };\n }\n\n const offsets = this.#offsets;\n const startIndex = Math.max(0, bisectRight(offsets, scrollTop) - OVERSCAN);\n const endIndex = Math.min(\n count,\n bisectRight(offsets, scrollTop + viewportHeight) + 1 + OVERSCAN,\n );\n return { startIndex, endIndex };\n }\n\n #buildOffsets() {\n const items = this.#flatItems;\n if (items.length === 0) {\n this.#offsets = [];\n return;\n }\n const offsets = new Array(items.length + 1);\n offsets[0] = 0;\n for (let i = 0; i < items.length; i++) {\n offsets[i + 1] = offsets[i] +\n (items[i].type === \"group\" ? GROUP_HEADER_HEIGHT : TRACK_ROW_HEIGHT);\n }\n this.#offsets = offsets;\n }\n\n #disconnectCoverObserver() {\n this.#coverObserver?.disconnect();\n this.#coverObserver = undefined;\n clearTimeout(this.#artFetchDebounce);\n this.#pendingVisibleCards.clear();\n }\n\n // RENDER\n\n /**\n * @param {Function} html\n */\n #renderPlaylistPicker(html) {\n const state = this.#playlistPickerState.value;\n if (!state) {\n return html`\n\n `;\n }\n\n const isCreate = state.mode === \"create\";\n const title = state.mode === \"filter\"\n ? \"Filter by playlist\"\n : isCreate\n ? \"New playlist\"\n : \"Add to playlist\";\n\n const groups = this.$groupedPlaylists();\n\n const headerBackBtn = isCreate\n ? html`\n {\n this.#playlistPickerState.value = {\n mode: \"add\",\n tracks: /** @type {any} */ (state).tracks,\n };\n }}\"\n title=\"Back\"\n >\n \n \n `\n : ``;\n\n const closeBtn = html`\n \n \n \n {\n this.#playlistPickerState.value = null;\n }}\"\n title=\"Close\"\n >\n \n \n `;\n\n const body = isCreate\n ? html`\n {\n e.preventDefault();\n const form = /** @type {HTMLFormElement} */ (e.currentTarget);\n const name =\n /** @type {HTMLInputElement} */ (form.elements.namedItem(\n `playlist-name`,\n ))?.value.trim();\n const ordered =\n /** @type {HTMLInputElement} */ (form.elements.namedItem(\n `playlist-ordered`,\n ))?.checked ?? false;\n if (!name) return;\n await this.createPlaylistWithTracks(\n name,\n /** @type {any} */ (state).tracks,\n ordered,\n );\n this.#playlistPickerState.value = null;\n }}\"\n >\n \n \n \n Ordered\n \n \n \n `\n : html`\n
    \n ${state.mode === \"filter\"\n ? html`\n {\n this.setSelectedPlaylist(undefined);\n this.#playlistPickerState.value = null;\n }}\"\n >\n All tracks\n \n `\n : ``} ${state.mode === \"add\"\n ? html`\n {\n this.#playlistPickerState.value = {\n mode: \"create\",\n tracks: state.tracks,\n };\n }}\"\n >\n \n Create new playlist\n \n ${groups.length > 0\n ? html`\n
    \n `\n : ``}\n `\n : ``} ${groups.length === 0\n ? (state.mode === \"add\" ? `` : html`\n
    No playlists yet
    \n `)\n : groups.map(({ label, playlists }) =>\n html`\n
    ${label}
    \n ${playlists.map((p) =>\n html`\n {\n if (state.mode === \"add\") {\n await this.addTracksToPlaylist(p.name, state.tracks);\n } else {\n this.setSelectedPlaylist(p.name);\n }\n this.#playlistPickerState.value = null;\n }}\"\n >\n ${p.name}\n \n `\n )}\n `\n )}\n
    \n `;\n\n return html`\n {\n if (e.target === e.currentTarget) {\n this.#playlistPickerState.value = null;\n }\n }}\"\n >\n
    \n
    \n ${headerBackBtn}\n ${title}\n ${closeBtn}\n
    \n ${body}\n
    \n \n `;\n }\n\n /**\n * @param {Function} html\n * @param {boolean} isLoading\n */\n #renderCoverView(html, isLoading) {\n if (this.#openCoverItem.value) return this.#renderCoverDetail(html);\n\n const coverViewMode = this.#coverViewMode.value;\n const sortDirection = this.$scope.value?.sortDirection() ?? \"asc\";\n\n const groups = coverViewMode === \"artists\"\n ? this.$sortedArtistGroups()\n : this.$sortedCoverGroups();\n const totalCount = groups.reduce((n, g) => n + g.groups.length, 0);\n\n const countLabel = coverViewMode === \"artists\"\n ? `${totalCount} ${totalCount === 1 ? \"artist\" : \"artists\"}`\n : `${totalCount} ${totalCount === 1 ? \"album\" : \"albums\"}`;\n\n const tabs = html`\n
    \n
    \n this.setCoverViewMode(`artists`)}\"\n >\n \n Artists\n \n this.setCoverViewMode(`albums`)}\"\n >\n \n Albums\n \n
    \n
    \n ${countLabel}\n {\n const scope = this.$scope.value;\n if (!scope) return;\n this.#disconnectCoverObserver();\n scope.setSortDirection(\n scope.sortDirection() === `asc` ? `desc` : `asc`,\n );\n }}\"\n title=\"${sortDirection === `desc`\n ? `Sort ascending`\n : `Sort descending`}\"\n >\n \n \n
    \n
    \n `;\n\n if (isLoading) {\n return html`\n ${tabs}\n
    Loading ...
    \n `;\n }\n\n const albumTracksMap = this.$tracksByAlbum();\n const artistTracksMap = this.$tracksByArtist();\n\n if (coverViewMode === \"artists\") {\n requestAnimationFrame(() => this.#setupCoverObserver());\n\n return html`\n ${tabs}\n
    \n ${this.$sortedArtistGroups().map(({ label, groups }, groupIndex) =>\n html`\n ${label\n ? html`\n
    \n \n ${label}\n
    \n `\n : ``}\n
    \n ${groups.map(({ artistKey, artistName, trackCount, track }) => {\n const artUrl = this.#coverArtCache.get(artistKey);\n const cardTracks = artistTracksMap.get(artistKey) ?? [];\n return html`\n {\n const panel = this.root().querySelector(\n \".cover-scroll-panel\",\n );\n if (panel) this.#coverScrollTop = panel.scrollTop;\n this.#openCoverItem.value = {\n type: \"artist\",\n artistKey,\n artistName,\n trackCount,\n track,\n };\n if (!this.#coverArtCache.has(artistKey)) {\n this.#fetchAlbumArt(artistKey, track);\n }\n }}\"\n title=\"${artistName}\"\n >\n
    \n ${artUrl\n ? html`\n \"${artistName}\" {\n this.#coverArtCache.set(artistKey, null);\n this.#scheduleArtRender();\n }}\" />\n `\n : html`\n
    \n `}\n \n e.stopPropagation()}\"\n >\n \n \n ${this.#renderTrackMenu(\n html,\n `artist-card-menu-${track.id}`,\n cardTracks,\n )}\n
    \n
    \n ${artistName}\n ${trackCount} ${trackCount ===\n 1\n ? `track`\n : `tracks`}\n
    \n
    \n `;\n })}\n
    \n `\n )}\n \n `;\n }\n\n // Albums mode\n requestAnimationFrame(() => this.#setupCoverObserver());\n\n return html`\n ${tabs}\n
    \n ${this.$sortedCoverGroups().map(({ label, groups }, groupIndex) =>\n html`\n ${label\n ? html`\n
    \n \n ${label}\n
    \n `\n : ``}\n
    \n ${groups.map(({ albumKey, albumName, artist, track }) => {\n const artUrl = this.#coverArtCache.get(albumKey);\n const cardTracks = albumTracksMap.get(albumKey) ?? [];\n return html`\n {\n const panel = this.root().querySelector(\n \".cover-scroll-panel\",\n );\n if (panel) this.#coverScrollTop = panel.scrollTop;\n this.#openCoverItem.value = {\n type: \"album\",\n albumKey,\n albumName,\n artist,\n track,\n };\n if (!this.#coverArtCache.has(albumKey)) {\n this.#fetchAlbumArt(albumKey, track);\n }\n }}\"\n title=\"${albumName} — ${artist}\"\n >\n
    \n ${artUrl\n ? html`\n \"${albumName}\" {\n this.#coverArtCache.set(albumKey, null);\n this.#scheduleArtRender();\n }}\" />\n `\n : html`\n
    \n `}\n \n e.stopPropagation()}\"\n >\n \n \n ${this.#renderTrackMenu(\n html,\n `album-card-menu-${track.id}`,\n cardTracks,\n )}\n
    \n
    \n ${albumName}\n ${artist}\n
    \n
    \n `;\n })}\n
    \n `\n )}\n \n `;\n }\n\n /**\n * @param {Function} html\n * @param {boolean} isLoading\n * @param {string[]} sortBy\n */\n #renderListView(html, isLoading, sortBy) {\n const tracks = this.$provider.value?.tracks() ?? [];\n const groups = /** @type {any} */ (this.$provider.value)?.groups?.();\n const sortDirection = this.$scope.value?.sortDirection();\n const playlistOrdered = /** @type {any} */ (this.$provider.value)\n ?.playlistIsOrdered?.() ?? false;\n\n const sortedColumn = playlistOrdered\n ? undefined\n : Object.entries(COLUMN_SORT).find(\n ([, v]) => JSON.stringify(v) === JSON.stringify(sortBy),\n )?.[0];\n\n const ariaSort = /** @param {string} col */ (col) =>\n sortedColumn === col\n ? (sortDirection === \"desc\" ? \"descending\" : \"ascending\")\n : \"none\";\n\n // 1-indexed position of each track within the playlist order\n const trackPositions = playlistOrdered\n ? new Map(tracks.map((t, i) => [t.id, i + 1]))\n : null;\n\n // Rebuild flat items and pixel offsets only when data reference changes\n if (groups !== this.#lastGroups || tracks !== this.#lastTracks) {\n this.#flatItems = groups ? buildFlatList(groups) : [];\n this.#buildOffsets();\n this.#lastGroups = groups;\n this.#lastTracks = tracks;\n }\n\n const count = groups ? this.#flatItems.length : tracks.length;\n this.#itemCount = count;\n\n const { startIndex, endIndex } = this.#computeWindow(count);\n this.#renderedStartIndex = startIndex;\n this.#renderedEndIndex = endIndex;\n\n const totalSize = this.#offsets.length > 0\n ? this.#offsets[this.#flatItems.length]\n : count * TRACK_ROW_HEIGHT;\n\n const favSet = this.$favouritesSet();\n\n /**\n * @param {Track} track\n * @param {number} top\n * @param {number} index\n */\n const renderTrackRow = (track, top, index) => {\n const key = `${String(track.tags?.artist ?? \"\").toLowerCase()}|${\n String(track.tags?.title ?? \"\").toLowerCase()\n }`;\n const isFav = favSet.has(key);\n return html`\n this.playTrack(track)}\"\n >\n
    \n {\n e.stopPropagation();\n this.toggleFavourite(track);\n }}\"\n title=\"${isFav ? `Remove from favourites` : `Add to favourites`}\"\n >\n \n \n
    \n ${playlistOrdered\n ? html`
    ${trackPositions?.get(track.id)}
    `\n : ``}\n
    \n ${trackTitle(track)}\n
    \n
    \n ${track.tags?.artist}\n
    \n
    \n ${track.tags?.album}\n
    \n
    \n e.stopPropagation()}\"\n >\n \n \n ${this.#renderTrackMenu(html, `list-track-menu-${track.id}`, [\n track,\n ])}\n
    \n \n `;\n };\n\n return html`\n
    \n
    \n ${playlistOrdered ? html`
    #
    ` : ``}\n this.sortByColumn(`title`)}\"\n aria-sort=\"${ariaSort(`title`)}\"\n >\n Title ${sortedColumn === `title`\n ? html`\n \n `\n : ``}\n
    \n this.sortByColumn(`artist`)}\"\n aria-sort=\"${ariaSort(`artist`)}\"\n >\n Artist ${sortedColumn === `artist`\n ? html`\n \n `\n : ``}\n \n this.sortByColumn(`album`)}\"\n aria-sort=\"${ariaSort(`album`)}\"\n >\n Album ${sortedColumn === `album`\n ? html`\n \n `\n : ``}\n \n
    \n \n\n
    \n
    \n ${isLoading\n ? html`\n
    Loading ...
    \n `\n : repeat(\n buildWindowItems(\n groups,\n tracks,\n this.#flatItems,\n this.#offsets,\n startIndex,\n endIndex,\n ),\n (entry) => entry.key,\n (entry) => {\n if (entry.type === \"group\") {\n return html`\n \n \n ${entry.label}\n
    \n `;\n }\n return renderTrackRow(entry.track, entry.top, entry.index);\n },\n )}\n
    \n \n `;\n }\n\n /**\n * @param {Function} html\n */\n #renderCoverDetail(html) {\n const item = this.#openCoverItem.value;\n if (!item) {\n return html`\n\n `;\n }\n\n const detailTracks = this.$detailTracks();\n const favSet = this.$favouritesSet();\n\n let key = \"\",\n name = \"\",\n subtitle = \"\";\n\n if (item.type === \"album\") {\n key = item.albumKey;\n name = item.albumName;\n subtitle = item.artist;\n } else {\n key = item.artistKey;\n name = item.artistName;\n subtitle = `${item.trackCount} ${\n item.trackCount === 1 ? \"track\" : \"tracks\"\n }`;\n }\n\n const artUrl = this.#coverArtCache.get(key);\n\n return html`\n
    \n
    \n {\n this.#openCoverItem.value = null;\n requestAnimationFrame(() => {\n const panel = this.root().querySelector(\".cover-scroll-panel\");\n if (panel) panel.scrollTop = this.#coverScrollTop;\n });\n }}\"\n title=\"Back\"\n >\n \n \n \n \n \n ${this.#renderTrackMenu(html, `album-actions-menu`, detailTracks)}\n
    \n
    \n
    \n
    \n ${artUrl\n ? html`\n \"${name}\" {\n this.#coverArtCache.set(key, null);\n this.#scheduleArtRender();\n }}\" />\n `\n : html`\n
    \n `}\n
    \n
    \n ${name}\n ${subtitle}\n
    \n
    \n
    \n ${detailTracks.map((t, i) => {\n const favKey = `${String(t.tags?.artist ?? \"\").toLowerCase()}|${\n String(t.tags?.title ?? \"\").toLowerCase()\n }`;\n const isFav = favSet.has(favKey);\n return html`\n this.playTrack(t)}\"\n >\n
    \n {\n e.stopPropagation();\n this.toggleFavourite(t);\n }}\"\n title=\"${isFav\n ? `Remove from favourites`\n : `Add to favourites`}\"\n >\n \n \n
    \n
    \n ${trackTitle(t)}\n
    \n
    \n ${t.tags?.artist}\n
    \n
    \n \n e.stopPropagation()}\"\n >\n \n \n ${this.#renderTrackMenu(html, `detail-track-menu-${t.id}`, [\n t,\n ])}\n
    \n
    \n `;\n })}\n
    \n
    \n \n `;\n }\n\n /**\n * @param {RenderArg} _\n */\n /**\n * @param {Function} html\n * @param {string[]} sortBy\n * @param {string | undefined} groupBy\n */\n #renderGroupByMenu(html, sortBy, groupBy) {\n return html`\n \n
    \n ${GROUP_BY_OPTIONS.map(\n ({ value, label }) => {\n const primarySortField = sortBy[0] ?? \"tags.title\";\n const resolvedValue = value === \"firstLetter\"\n ? `firstLetter:${primarySortField}`\n : value;\n const isActive = value === \"firstLetter\"\n ? groupBy?.startsWith(\"firstLetter:\")\n : groupBy === value;\n return html`\n {\n if (isActive) {\n this.setGroupBy(undefined);\n } else {\n this.setGroupBy(resolvedValue);\n }\n /** @type {HTMLElement | null} */ (this.root().querySelector(\n `#groupby-menu`,\n ))?.hidePopover();\n }}\"\n >\n ${isActive\n ? html`\n \n `\n : ``} ${label}\n \n `;\n },\n )}\n
    \n `;\n }\n\n /**\n * @param {Function} html\n * @param {string | undefined} playlist\n */\n #renderPlaylistMenu(html, playlist) {\n return html`\n {\n this.#playlistPickerState.value = { mode: \"filter\" };\n }}\"\n >\n \n ${playlist ?? `All tracks`}\n \n `;\n }\n\n /**\n * @param {RenderArg} _\n */\n render({ html }) {\n const isLoading =\n this.$output.value?.tracks?.collection().state !== \"loaded\";\n\n const playlist = this.$scope.value?.playlist();\n const groupBy = this.$scope.value?.groupBy();\n const searchTerm = this.$scope.value?.searchTerm() ?? \"\";\n const sortBy = this.$scope.value?.sortBy() ?? DEFAULT_SORT;\n const viewMode = this.#viewMode.value;\n\n return html`\n \n \n \n \n \n \n\n
    \n \n\n
    \n \n ${searchTerm\n ? html`\n \n `\n : ``}\n\n \n \n \n \n\n \n ${this.#renderGroupByMenu(html, sortBy, groupBy)} ${this\n .#renderPlaylistMenu(html, playlist)}\n
    \n
    \n\n ${viewMode === `cover`\n ? this.#renderCoverView(html, isLoading)\n : this.#renderListView(html, isLoading, sortBy)} ${this\n .#renderPlaylistPicker(html)}\n `;\n }\n}\n\nexport default Browser;\n\n////////////////////////////////////////////\n// HELPERS\n////////////////////////////////////////////\n\n/**\n * @param {Uint8Array} bytes\n * @returns {string}\n */\nfunction detectMime(bytes) {\n if (bytes[0] === 0xFF && bytes[1] === 0xD8) return \"image/jpeg\";\n if (bytes[0] === 0x89 && bytes[1] === 0x50) return \"image/png\";\n if (bytes[0] === 0x47 && bytes[1] === 0x49) return \"image/gif\";\n if (bytes[0] === 0x52 && bytes[1] === 0x49) return \"image/webp\";\n return \"image/jpeg\";\n}\n\n/**\n * Largest index i where sortedArr[i] <= target (sorted ascending).\n * Returns 0 when target is below all values.\n * @param {number[]} sortedArr\n * @param {number} target\n * @returns {number}\n */\nfunction bisectRight(sortedArr, target) {\n let lo = 0, hi = sortedArr.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (sortedArr[mid] <= target) lo = mid + 1;\n else hi = mid;\n }\n return Math.max(0, lo - 1);\n}\n\n/**\n * @param {{ label: string; tracks: Track[] }[]} groups\n * @returns {VirtualItem[]}\n */\nfunction buildFlatList(groups) {\n /** @type {VirtualItem[]} */\n const items = [];\n for (const group of groups) {\n items.push({ type: \"group\", label: group.label });\n for (const track of group.tracks) {\n items.push({ type: \"track\", track });\n }\n }\n return items;\n}\n\n/**\n * @typedef {{ type: \"group\"; key: string; label: string; index: number; top: number }} WindowGroupEntry\n * @typedef {{ type: \"track\"; key: string; track: Track; index: number; top: number }} WindowTrackEntry\n * @typedef {WindowGroupEntry | WindowTrackEntry} WindowEntry\n */\n\n/**\n * @param {{ label: string; tracks: Track[] }[] | undefined} groups\n * @param {Track[]} tracks\n * @param {VirtualItem[]} flatItems\n * @param {number[]} offsets\n * @param {number} startIndex\n * @param {number} endIndex\n * @returns {WindowEntry[]}\n */\nfunction buildWindowItems(\n groups,\n tracks,\n flatItems,\n offsets,\n startIndex,\n endIndex,\n) {\n /** @type {WindowEntry[]} */\n const entries = [];\n for (let i = startIndex; i < endIndex; i++) {\n const item = groups\n ? flatItems[i]\n : /** @type {VirtualItem} */ ({ type: \"track\", track: tracks[i] });\n const top = offsets.length > 0 ? offsets[i] : i * TRACK_ROW_HEIGHT;\n if (!item) continue;\n if (item.type === \"group\") {\n entries.push({\n type: \"group\",\n key: `group:${item.label}`,\n label: item.label,\n index: i,\n top,\n });\n } else {\n entries.push({\n type: \"track\",\n key: `track:${item.track.id}`,\n track: item.track,\n index: i,\n top,\n });\n }\n }\n return entries;\n}\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = Browser;\nexport const NAME = \"db-browser\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["trackTitle","track","filename","__name","MAX_ART_CONCURRENT","TRACK_ROW_HEIGHT","GROUP_HEADER_HEIGHT","OVERSCAN","COLUMN_SORT","DEFAULT_SORT","GROUP_BY_OPTIONS","Browser","DiffuseElement","signal","#cachedUris","#viewMode","#coverViewMode","#openCoverItem","#playlistPickerState","computed","map","groups","albumKey","artistKey","t","key","favItems","item","a","c","g","col","items","all","gather","b","ordered","p","unordered","#coverArtCache","#pendingArtFetch","#artFetchQueue","#artFetchActive","#artRenderScheduled","#coverObserver","#pendingVisibleCards","#artFetchDebounce","#flatItems","#lastTracks","#lastGroups","#scrollTop","#viewportHeight","#renderedStartIndex","#renderedEndIndex","#itemCount","#resizeObserver","#scrollAbort","#scrollVisibilityObserver","#scrollRenderRaf","#offsets","#previousTracks","#coverScrollTop","artwork","queryOptional","coverGroups","output","query","provider","queue","scope","favourites","input","whenElementsDefined","batch","uris","tracks","untracked","panel","_coverGroups","_artistGroups","#setupCoverObserver","#fetchVisibleCoverArt","#setupScrollTracking","#disconnectCoverObserver","term","value","column","playlistName","existing","existingKeys","transformations","now","newItems","prevId","id","#renderTrackMenu","html","menuId","allCached","u","e","updated","next","mode","#fetchAlbumArt","#drainArtQueue","job","#doFetchAlbumArt","timeout","resolve","bytes","mime","detectMime","url","#scheduleArtRender","panelRect","margin","card","cardRect","root","entries","hasNew","entry","abort","attach","#renderIfWindowChanged","observer","startIndex","endIndex","#computeWindow","count","scrollTop","viewportHeight","visibleCount","offsets","bisectRight","#buildOffsets","i","#renderPlaylistPicker","state","isCreate","title","headerBackBtn","closeBtn","body","form","name","label","playlists","#renderCoverView","isLoading","#renderCoverDetail","coverViewMode","sortDirection","totalCount","n","countLabel","tabs","albumTracksMap","artistTracksMap","groupIndex","artistName","trackCount","artUrl","cardTracks","albumName","artist","#renderListView","sortBy","playlistOrdered","sortedColumn","v","ariaSort","trackPositions","buildFlatList","totalSize","favSet","renderTrackRow","top","index","isFav","buildWindowItems","detailTracks","subtitle","favKey","#renderGroupByMenu","groupBy","primarySortField","resolvedValue","isActive","#renderPlaylistMenu","playlist","searchTerm","viewMode","element_default","sortedArr","target","lo","hi","mid","group","flatItems","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/facets/themes/blur/browser/element.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/facet/index.html new file mode 120000 index 00000000..f8528456 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/facet/index.html @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/browser/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/facet/index.html.br new file mode 120000 index 00000000..2b57b84d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/browser/facet/index.html.br @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/browser/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css new file mode 120000 index 00000000..30590dd2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/facet/index.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css.br new file mode 120000 index 00000000..966dc127 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/facet/index.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css.map new file mode 120000 index 00000000..b924427a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/facet/index.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.html new file mode 120000 index 00000000..3dd7ed26 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.html @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.html.br new file mode 120000 index 00000000..f2768d9f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/facet/index.html.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css new file mode 120000 index 00000000..e909318e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/font-faces.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css.br new file mode 120000 index 00000000..03de2980 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/font-faces.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css.map new file mode 120000 index 00000000..1e0a0102 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/font-faces.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/font-faces.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css new file mode 120000 index 00000000..d03b42b0 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/variables.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css.br new file mode 120000 index 00000000..272db7ea --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/variables.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css.map new file mode 120000 index 00000000..c80f7375 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/blur/variables.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/blur/variables.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css new file mode 120000 index 00000000..779b0e68 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/catalogue-one/facet/index.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css.br new file mode 120000 index 00000000..dc71e47b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/catalogue-one/facet/index.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css.map new file mode 120000 index 00000000..ef4b3692 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/catalogue-one/facet/index.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.html new file mode 100644 index 00000000..2ba645a2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.html @@ -0,0 +1,1384 @@ + + + + + + +
    +
    +
    +
    + + +
    + +
    + + +
    + +
    +
    + +
    + +
    +
    + + + + diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/facet/index.html.br new file mode 100644 index 0000000000000000000000000000000000000000..15b5ecc736701e10b4ab8f06f5d5239d64599cba GIT binary patch literal 9959 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 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css new file mode 120000 index 00000000..4ce4b8ac --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/catalogue-one/variables.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css.br new file mode 120000 index 00000000..e92d11ee --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/catalogue-one/variables.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css.map new file mode 120000 index 00000000..9d0dbc4d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/catalogue-one/variables.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/catalogue-one/variables.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css new file mode 120000 index 00000000..1bac1623 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/ipod/facet.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css.br new file mode 120000 index 00000000..5bd7a539 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/ipod/facet.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css.map new file mode 120000 index 00000000..138cdc8a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/ipod/facet.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet/index.html new file mode 120000 index 00000000..6a13f996 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet/index.html @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/ipod/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet/index.html.br new file mode 120000 index 00000000..9b3c47ee --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/facet/index.html.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/ipod/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css new file mode 120000 index 00000000..fa2c85b4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/ipod/variables.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css.br new file mode 120000 index 00000000..d5b3e359 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/ipod/variables.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css.map new file mode 120000 index 00000000..f361d388 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/ipod/variables.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/ipod/variables.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css new file mode 120000 index 00000000..5e5ffde4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/browser/element.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css.br new file mode 120000 index 00000000..975c2baf --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/browser/element.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css.map new file mode 120000 index 00000000..f221ab1e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/browser/element.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js new file mode 100644 index 00000000..34e61551 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js @@ -0,0 +1,288 @@ +import"../../../../chunk-3U47TTXA.js";import{a as S}from"../../../../chunk-IYPBPO5F.js";import{c as A}from"../../../../chunk-MKIFSH6R.js";import"../../../../chunk-RL4C7EJ7.js";import"../../../../chunk-H4ULOOR2.js";import"../../../../chunk-OLJU5MZL.js";import{b as w,e as _,f,g,i as $}from"../../../../chunk-IA3NIKPO.js";import"../../../../chunk-7NEQFE27.js";import"../../../../chunk-NYGD7JS5.js";import"../../../../chunk-WMITNTCW.js";import"../../../../chunk-OBMOK4KY.js";import{e as v}from"../../../../chunk-HCA2HGAZ.js";import{j as h,n as y,o as u,p as b}from"../../../../chunk-XILA3E7E.js";import{a as c}from"../../../../chunk-75KFZLU6.js";var T=48,m=48,C=10,x=6;function q(d){if(d.tags?.title)return d.tags.title;let e=d.uri.split("?")[0].split("/").filter(Boolean).at(-1);return e?decodeURIComponent(e):d.uri}c(q,"trackTitle");var k=class extends w{static{c(this,"Browser")}constructor(){super(),this.attachShadow({mode:"open"})}$artwork=u(void 0);$coverGroups=u(void 0);$output=u(void 0);$provider=u(void 0);$queue=u(void 0);$scope=u(void 0);$favourites=u(void 0);#t=u({type:"tracks",playlist:void 0});#s=u([]);#i=u([]);#e=new Map;#c=new Set;#$=[];#b=0;#g=!1;#a=void 0;#u=new Map;#k=void 0;#S=0;#h=0;#C=0;#v=-1;#p=-1;#m=0;#j=T;#K=m;#o;#l;#r;#y=void 0;#n=void 0;$currentTracks=h(()=>this.#t.value.type==="tracks"?this.$provider.value?.tracks()??[]:[]);$detailTracks=h(()=>{let t=this.#t.value;return t.type==="album"?this.$tracksByAlbum().get(t.albumKey)??[]:t.type==="artist"?this.$tracksByArtist().get(t.artistKey)??[]:[]});$tracksByAlbum=h(()=>{let t=new Map;for(let e of this.$provider.value?.tracks()??[]){let s=String(e.tags?.album??"").toLowerCase();t.has(s)||t.set(s,[]),t.get(s)?.push(e)}return t});$tracksByArtist=h(()=>{let t=new Map;for(let e of this.$provider.value?.tracks()??[]){let s=String(e.tags?.artist??"").toLowerCase();t.has(s)||t.set(s,[]),t.get(s)?.push(e)}return t});$sortedCoverGroups=h(()=>{let t=this.$coverGroups.value?.coverGroups()??[];return this.#T(t)});$sortedArtistGroups=h(()=>{let t=this.$coverGroups.value?.artistGroups()??[];return this.#T(t)});$groupedPlaylists=h(()=>{let t=this.$output.value?.playlistItems.collection();if(!t||t.state!=="loaded"||!t.data.length)return[];let e=t.data;return[{label:"Playlists",playlists:[...A(e).values()].sort((i,o)=>i.name.localeCompare(o.name))}]});$favouritesSet=h(()=>{let t=this.$favourites.value?.playlistItems()??[];return new Set(t.map(e=>{let s=e.criteria.find(i=>i.field==="tags.artist"),a=e.criteria.find(i=>i.field==="tags.title");return`${String(s?.value??"").toLowerCase()}|${String(a?.value??"").toLowerCase()}`}))});connectedCallback(){super.connectedCallback();let t=g(this,"artwork-selector"),e=g(this,"cover-groups-orchestrator-selector"),s=f(this,"output-selector"),a=f(this,"tracks-selector"),i=f(this,"queue-engine-selector"),o=f(this,"scope-engine-selector"),n=g(this,"favourites-orchestrator-selector");$({output:s,provider:a,queue:i,scope:o}).then(()=>{y(()=>{this.$output.value=s,this.$provider.value=a,this.$queue.value=i,this.$scope.value=o})}),n&&$({favourites:n}).then(()=>{this.$favourites.value=n}),t&&$({artwork:t}).then(()=>{this.$artwork.value=t}),e&&$({coverGroups:e}).then(()=>{this.$coverGroups.value=e}),this.effect(()=>{let r=this.$currentTracks(),l=this.$detailTracks();b(()=>{let p=this.root().querySelector(".td-tracks-panel");p&&(p.scrollTo(0,0),this.#h=0)})}),this.effect(()=>{let r=this.#t.value;r.type==="albums"||r.type==="artists"||b(()=>{requestAnimationFrame(()=>this.#R())})}),this.effect(()=>{let r=this.$sortedCoverGroups(),l=this.$sortedArtistGroups(),p=this.#t.value;p.type!=="albums"&&p.type!=="artists"||b(()=>{requestAnimationFrame(()=>{this.#A(),this.#q(),requestAnimationFrame(()=>this.#q())})})}),this.#R()}disconnectedCallback(){super.disconnectedCallback(),this.#l?.abort(),this.#l=void 0,this.#r?.disconnect(),this.#r=void 0,this.#o?.disconnect(),this.#o=void 0,this.#d(),this.#y!==void 0&&(cancelAnimationFrame(this.#y),this.#y=void 0)}#T(t){return(this.$scope.value?.sortDirection()??"asc")!=="desc"?t:t.map(s=>({...s,groups:[...s.groups].reverse()}))}setSelectedPlaylist=c(t=>{this.#d(),this.#N(),this.$scope.value?.setPlaylist(t),this.#t.value={type:"tracks",playlist:t}},"setSelectedPlaylist");#f(t){this.#d(),this.#s.value=[...this.#s.value,this.#t.value],this.#i.value=[],this.#t.value=t,this.#n=void 0}goBack=c(()=>{let t=this.#s.value;if(t.length===0)return;let e=t[t.length-1];e&&(this.#d(),this.#i.value=[this.#t.value,...this.#i.value],this.#s.value=t.slice(0,-1),this.#t.value=e,this.#n=void 0)},"goBack");goForward=c(()=>{let t=this.#i.value;if(t.length===0)return;let e=t[0];e&&(this.#d(),this.#s.value=[...this.#s.value,this.#t.value],this.#i.value=t.slice(1),this.#t.value=e,this.#n=void 0)},"goForward");#N(){this.#s.value=[],this.#i.value=[]}playTrack=c(t=>{this.$queue.value?.add({inFront:!0,trackIds:[t.id]}),this.$queue.value?.shift()},"playTrack");addToQueue=c(t=>{this.$queue.value?.add({trackIds:[t.id]})},"addToQueue");toggleFavourite=c(t=>{this.$favourites.value?.toggle(t)},"toggleFavourite");setSearchTerm=c(()=>{let e=this.root().querySelector("#td-search-input")?.value?.trim();this.$scope.value?.setSearchTerm(e||void 0)},"setSearchTerm");clearSearch=c(()=>{let t=this.root().querySelector("#td-search-input");t&&(t.value=""),this.$scope.value?.setSearchTerm(void 0)},"clearSearch");openAlbum=c(t=>{let e=this.root().querySelector(".td-covers-panel");e&&(this.#S=e.scrollTop),this.#f(t)},"openAlbum");openArtist=c(t=>{let e=this.root().querySelector(".td-covers-panel");e&&(this.#S=e.scrollTop),this.#f(t)},"openArtist");browseAlbums=c(()=>{this.#f({type:"albums"})},"browseAlbums");browseArtists=c(()=>{this.#f({type:"artists"})},"browseArtists");#w(t,e){this.#e.has(t)||this.#c.has(t)||(this.#c.add(t),this.#$.push({key:t,track:e}),this.#x())}#x(){for(;this.#b0;){let t=this.#$.shift();if(!t)break;this.#b++,this.#G(t.key,t.track)}}async#G(t,e){let s=this.$artwork.value;try{let a=new Promise(o=>setTimeout(()=>o(null),3e4)),i=s?await Promise.race([s.get(e),a]):null;if(i){let o=R(i),n=URL.createObjectURL(new Blob([i],{type:o}));this.#e.set(t,n)}else this.#e.set(t,null)}catch{}finally{this.#c.delete(t),this.#b--,this.#x()}this.#_()}#_(){this.#g||(this.#g=!0,requestAnimationFrame(()=>{this.#g=!1,this.forceRender()}))}#q(){let t=this.root().querySelector(".td-covers-panel");if(!t)return;let e=t.getBoundingClientRect(),s=200;for(let a of this.root().querySelectorAll(".td-cover-card[data-cover-key]")){let i=a,o=i.dataset.coverKey;if(!o||this.#e.has(o)||this.#c.has(o))continue;let n=i.getBoundingClientRect();if(n.bottom+se.bottom)continue;let r=i.dataset.coverTrackId,l=r?this.$provider.value?.tracks().find(p=>p.id===r):void 0;l&&this.#w(o,l)}}#A(){let t=this.root().querySelector(".td-covers-panel");if(t){this.#a||(this.#a=new IntersectionObserver(e=>{let s=!1;for(let a of e){if(!a.isIntersecting)continue;s=!0;let i=a.target.dataset.coverKey;if(!i)continue;let o=a.target.dataset.coverTrackId,n=o?this.$provider.value?.tracks().find(r=>r.id===o):void 0;n&&this.#u.set(i,n),this.#a?.unobserve(a.target)}s&&(clearTimeout(this.#k),this.#k=setTimeout(()=>{for(let[a,i]of this.#u)this.#w(a,i);this.#u.clear()},150))},{root:t,rootMargin:"200px"}));for(let e of this.root().querySelectorAll(".td-cover-card[data-cover-key]")){let s=e.dataset.coverKey;s&&(this.#e.has(s)||this.#c.has(s))||this.#a.observe(e)}}}#d(){this.#a?.disconnect(),this.#a=void 0,clearTimeout(this.#k),this.#u.clear()}#R(){this.#l?.abort(),this.#l=new AbortController,this.#r?.disconnect(),this.#r=void 0,this.#o?.disconnect(),this.#o=void 0,this.#h=0;let t=this.#l,e=c(()=>{if(t.signal.aborted)return;let s=this.root().querySelector(".td-tracks-panel");s&&(s.addEventListener("scroll",()=>{this.#h=s.scrollTop,this.#I()},{passive:!0,signal:t.signal}),this.#o=new ResizeObserver(a=>{this.#C=Math.min(a[0].contentRect.height,window.innerHeight),this.#I()}),this.#o.observe(s))},"attach");this.#r=new IntersectionObserver((s,a)=>{s[0].isIntersecting&&(a.disconnect(),this.#r=void 0,requestAnimationFrame(e))}),this.#r.observe(this)}#I(){let{startIndex:t,endIndex:e}=this.#F(this.#m);t===this.#v&&e===this.#p||this.forceRender()}#F(t){let e=this.#h,s=this.#C,a=this.#K,i=Math.max(0,Math.floor(e/a)-C),o=Math.ceil(s/a)+2*C;return{startIndex:i,endIndex:Math.min(t,i+o)}}#M(t){let e=this.$scope.value?.playlist(),a=this.$groupedPlaylists()[0]?.playlists??[];return t` + + `}#P(t){let e=this.$scope.value?.searchTerm()??"",s=this.#s.value.length>0,a=this.#i.value.length>0;return t` +
    +
    + + +
    + +
    + `}#L(t){return this.#t.value.type!=="tracks"?v:t` +
    + + +
    + `}#O(t){let e=this.#t.value;if(e.type!=="album"&&e.type!=="artist")return v;let s="",a="",i="",o;e.type==="album"?(s=e.albumKey,a=e.albumName,i=e.artist,o=e.track):(s=e.artistKey,a=e.artistName,i=`${e.trackCount} ${e.trackCount===1?"track":"tracks"}`,o=e.track);let n=this.#e.get(s);return t` +
    +
    + ${n?t`${a}`:t` +
    + +
    + `} +
    +
    +
    ${a}
    +
    ${i}
    +
    +
    + `}#B(t){let s=this.#t.value.type==="tracks"?this.$currentTracks():this.$detailTracks();if(s.length===0)return this.#m=0,this.#n=void 0,this.#v=-1,this.#p=-1,t` +
    +
    +
    Title
    +
    Artist
    +
    Album
    +
    + +
    +
    +
    +
    +
    + +

    No tracks

    +
    +
    +
    + `;s!==this.#n&&(this.#v=-1,this.#p=-1,this.#n=s);let a=s.length;this.#m=a;let{startIndex:i,endIndex:o}=this.#F(a);this.#v=i,this.#p=o;let n=a*m;return t` +
    +
    +
    Title
    +
    Artist
    +
    Album
    +
    + +
    +
    +
    +
    +
    + ${S(s.slice(i,o).map((r,l)=>({track:r,index:i+l,top:(i+l)*m})),r=>`td-tr-${r.track.id}`,r=>this.#E(t,r.track,r.top,r.index))} +
    +
    +
    + `}#E(t,e,s,a){let i=String(e.tags?.album??"").toLowerCase();this.#w(i,e);let o=this.#e.get(i),n=`${String(e.tags?.artist??"").toLowerCase()}|${String(e.tags?.title??"").toLowerCase()}`,r=this.$favouritesSet().has(n);return t` +
    +
    +
    + ${o?t``:t` +
    + +
    + `} +
    + ${q(e)} +
    +
    + ${e.tags?.artist??""} +
    +
    + ${e.tags?.album??""} +
    +
    ${I(e)}
    +
    + + +
    +
    + `}#D(t){let e=this.#t.value;return e.type==="albums"?this.#H(t):e.type==="artists"?this.#U(t):v}#H(t){let e=this.$sortedCoverGroups(),s=e.reduce((i,o)=>i+o.groups.length,0),a=`${s} ${s===1?"album":"albums"}`;return requestAnimationFrame(()=>this.#A()),s===0?t` +
    + +

    No albums

    +
    + `:t` +
    + ${a} +
    +
    + ${e.map(({label:i,groups:o},n)=>t` + ${i?t` +
    + ${i} +
    + `:v} +
    + ${o.map(r=>{let l=this.#e.get(r.albumKey);return t` +
    +
    + ${l?t` + ${r.albumName} + `:t` +
    + +
    + `} +
    +
    + ${r.albumName} + ${r.artist} +
    +
    + `})} +
    + `)} +
    + `}#U(t){let e=this.$sortedArtistGroups(),s=e.reduce((i,o)=>i+o.groups.length,0),a=`${s} ${s===1?"artist":"artists"}`;return requestAnimationFrame(()=>this.#A()),s===0?t` +
    + +

    No artists

    +
    + `:t` +
    + ${a} +
    +
    + ${e.map(({label:i,groups:o},n)=>t` + ${i?t` +
    + ${i} +
    + `:v} +
    + ${o.map(r=>{let l=this.#e.get(r.artistKey);return t` +
    +
    + ${l?t` + ${r.artistName} + `:t` +
    + +
    + `} +
    +
    + ${r.artistName} + ${r.trackCount} + ${r.trackCount===1?"track":"tracks"} +
    +
    + `})} +
    + `)} +
    + `}#z(t){let e=this.#t.value;return t` +
    + ${this.#P(t)} ${e.type==="albums"||e.type==="artists"?this.#D(t):t` + ${this.#L(t)} ${e.type==="album"||e.type==="artist"?this.#O(t):v} ${this.#B(t)} + `} +
    + `}render({html:t}){return t` + + + + + + +
    + ${this.#M(t)} ${this.#z(t)} +
    + `}},L=k;function R(d){return d[0]===255&&d[1]===216?"image/jpeg":d[0]===137&&d[1]===80?"image/png":d[0]===71&&d[1]===73?"image/gif":d[0]===82&&d[1]===73?"image/webp":"image/jpeg"}c(R,"detectMime");function I(d){let t=d.stats?.duration;if(!t)return"\u2014";let e=Math.round(t/1e3),s=Math.floor(e/60),a=e%60;return`${s}:${String(a).padStart(2,"0")}`}c(I,"formatDuration");var F=k,K="db-tidal-browser";_(K,F);export{F as CLASS,K as NAME,L as default}; + +//# sourceMappingURL=./element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js.br new file mode 100644 index 0000000000000000000000000000000000000000..7ae687cdacb0f7678ad651f15acee00725c8aa2b GIT binary patch literal 5111 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 literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js.map new file mode 120000 index 00000000..9ebcaf3b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/element.js.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/browser/element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/facet/index.html new file mode 120000 index 00000000..c9d69f2a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/facet/index.html @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/browser/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/facet/index.html.br new file mode 120000 index 00000000..de48714c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/browser/facet/index.html.br @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/browser/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/facet/index.html new file mode 120000 index 00000000..092ed182 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/facet/index.html @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/facet/index.html.br new file mode 120000 index 00000000..a46df7d9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/facet/index.html.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css new file mode 120000 index 00000000..c676c046 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/player/element.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css.br new file mode 120000 index 00000000..936ead20 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/player/element.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css.map new file mode 120000 index 00000000..e119ca02 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/player/element.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js new file mode 100644 index 00000000..8e5ebaa7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js @@ -0,0 +1,127 @@ +import{b as g,e as _,f as h,g as k,i as $}from"../../../../chunk-IA3NIKPO.js";import"../../../../chunk-7NEQFE27.js";import"../../../../chunk-NYGD7JS5.js";import"../../../../chunk-WMITNTCW.js";import"../../../../chunk-OBMOK4KY.js";import"../../../../chunk-HCA2HGAZ.js";import{n as m,o as u}from"../../../../chunk-XILA3E7E.js";import{a as l}from"../../../../chunk-75KFZLU6.js";var p=class extends g{static{l(this,"Player")}constructor(){super(),this.attachShadow({mode:"open"})}$artwork=u(void 0);$controller=u(void 0);$favourites=u(void 0);$queue=u(void 0);$repeatShuffle=u(void 0);$input=u(void 0);#l=u(void 0);#n=u(!1);#o=u(!1);#i=void 0;#s=void 0;#u=u(!1);#a=u(.75);#t=void 0;#e=void 0;connectedCallback(){super.connectedCallback();let e=h(this,"artwork-selector"),t=h(this,"controller-orchestrator-selector"),s=h(this,"favourites-orchestrator-selector"),n=h(this,"queue-engine-selector"),r=h(this,"repeat-shuffle-engine-selector"),a=k(this,"input-selector");$({artwork:e,controller:t,favourites:s,queue:n,repeatShuffle:r}).then(()=>{m(()=>{this.$artwork.value=e,this.$controller.value=t,this.$favourites.value=s,this.$queue.value=n,this.$repeatShuffle.value=r})}),a&&$({input:a}).then(()=>{this.$input.value=a}),this.effect(()=>{let o=this.$controller.value?.currentTrack(),c=o?String(o.tags?.album??"").toLowerCase():"";if(!o||!c){this.#r(),this.#l.value=void 0,this.#i=void 0;return}this.#i!==c&&(this.#i=c,this.#l.value=void 0,this.$artwork.value?.get(o).then(f=>{if(this.#i!==c)return;if(!f){this.#r(),this.#l.value=null;return}let d=T(f),v=URL.createObjectURL(new Blob([f],{type:d}));this.#r(),this.#s=v,this.#l.value=v}))}),this.effect(()=>{let o=this.$controller.value,c=!!o?.$queue.value?.now(),d=o?.audio()?.loadingState(),v=c&&typeof d=="object"&&d!==null&&"error"in d,b=c&&!v&&d!==void 0&&d!=="loaded";this.#n.value=!!v,this.#t&&clearTimeout(this.#t),b?this.#t=setTimeout(()=>this.#o.value=!0,2e3):this.#o.value=!1})}disconnectedCallback(){super.disconnectedCallback(),this.#r(),this.#t&&(clearTimeout(this.#t),this.#t=void 0),this.#e&&(clearTimeout(this.#e),this.#e=void 0)}#r(){this.#s&&(URL.revokeObjectURL(this.#s),this.#s=void 0)}playPause=l(()=>{let e=this.$controller.value;if(!e)return;let t=e.$queue.value?.now()?.id;t&&(e.isPlaying()?e.$audio.value?.pause({audioId:t}):e.$audio.value?.play({audioId:t}))},"playPause");next=l(()=>this.$queue.value?.shift(),"next");previous=l(()=>this.$queue.value?.unshift(),"previous");toggleShuffle=l(()=>{let e=this.$repeatShuffle.value;e&&e.setShuffle(!e.shuffle())},"toggleShuffle");toggleRepeat=l(()=>{let e=this.$repeatShuffle.value;e&&e.setRepeat(!e.repeat())},"toggleRepeat");toggleFavourite=l(()=>{let e=this.$controller.value?.currentTrack();e&&this.$favourites.value?.toggle(e)},"toggleFavourite");reload=l(()=>{let e=this.$controller.value;if(!e)return;let t=e.$queue.value?.now()?.id;if(!t)return;let s=e.audio()?.progress();e.$audio.value?.reload({audioId:t,play:!0,progress:s})},"reload");mute=l(()=>{let e=this.$controller.value?.$audio.value?.volume()??1;e>0&&(this.#a.value=e),this.$controller.value?.$audio.value?.adjustVolume({volume:0})},"mute");fullVolume=l(()=>{this.$controller.value?.$audio.value?.adjustVolume({volume:1})},"fullVolume");toggleMute=l(()=>{if((this.$controller.value?.$audio.value?.volume()??1)===0){let t=this.#a.value>0?this.#a.value:.75;this.$controller.value?.$audio.value?.adjustVolume({volume:t})}else this.mute()},"toggleMute");openVolume=l(()=>{this.#e&&(clearTimeout(this.#e),this.#e=void 0),this.#u.value=!0},"openVolume");scheduleCloseVolume=l(()=>{this.#e&&clearTimeout(this.#e),this.#e=setTimeout(()=>{this.#u.value=!1,this.#e=void 0},150)},"scheduleCloseVolume");cancelCloseVolume=l(()=>{this.#e&&(clearTimeout(this.#e),this.#e=void 0)},"cancelCloseVolume");setVolume=l(e=>{let t=e.target;if(!t)return;let s=t.getBoundingClientRect(),n=e.clientY-s.top,r=s.height,a=Math.max(0,Math.min(1,1-n/r));a>0&&(this.#a.value=a),this.$controller.value?.$audio.value?.adjustVolume({volume:a})},"setVolume");seek=l(e=>{let t=e.target?e.target:null,s=t?e.offsetX/t.clientWidth:0,n=this.$controller.value,r=n?.$queue.value?.now()?.id;r&&n?.$audio.value?.seek({audioId:r,percentage:s})},"seek");render({html:e}){let t=this.#l.value,s=this.$controller.value?.currentTrack(),n=s?this.$favourites.value?.isFavourite(s)??!1:!1;return e` + + + + + +
    + +
    +
    + ${t?e``:e` +
    + +
    + `} +
    +
    + + ${s?.tags?.title??""} + + + ${s?.tags?.artist??""} + +
    + +
    + + +
    +
    + + + + + +
    +
    + + ${y(this.$controller.value?.audio()?.currentTime()??0)} + +
    +
    +
    + + ${(()=>{let r=this.$controller.value?.audio(),a=this.$controller.value?.currentTrack(),o=a?.stats?.duration?a.stats.duration/1e3:r?.duration()??0;return o>0?y(o):"0:00"})()} + +
    +
    + + +
    + + ${this.#u.value?e` +
    +
    +
    +
    +
    + `:""} +
    +
    + `}};function y(i){(!Number.isFinite(i)||i<0)&&(i=0);let e=Math.floor(i/60),t=Math.floor(i%60);return`${e}:${String(t).padStart(2,"0")}`}l(y,"formatTime");function T(i){return i[0]===255&&i[1]===216?"image/jpeg":i[0]===137&&i[1]===80?"image/png":i[0]===71&&i[1]===73?"image/gif":i[0]===82&&i[1]===73?"image/webp":"image/jpeg"}l(T,"detectMime");var C=p,w=p,x="db-tidal-player";_(x,w);export{w as CLASS,x as NAME,C as default}; + +//# sourceMappingURL=./element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js.br new file mode 100644 index 0000000000000000000000000000000000000000..47abf936640acc1f26094692697a38e94942a89c GIT binary patch literal 2568 zcmb2%q0W#Jwd(8r^W1`K+1>?sTXCr^6-(wkzDD!{M~o5I_4nWRtKAb=8)Bq5v*lbs z=A+%|=WDg@^K8zqdUJ32438v_Wt}eGJiQC2xi4{vbAJ0~x&5X4h8+z%IwVt_WbW`b zYZkLEm=^OD$*zfg z6EFWpf8E;V?&pX1Zk>F4YUziHx|;IB?Z0>M>6M?;_n+=RKfG$o?!6TyJN^p2G&x^- z|Hz-&*IT|$wUeEntN(WWTX!qLta+~@uZ8*X$DMl@?s)nUZ?#sn-2`_logc466mMOX zl2bM~K9_N${hQx@mzC~hhRYseG0@$4=!*ZHK9|(A6~E1=csz)d~w&z%;Pyt z%iKa04!cH3y*0WfxGA>TI(TiuB`tN`Y3h^IgU_qq>r*?N__z6#+Ad|Wtp1?8+9wJ( zCWs|rrP~Cuv7oFIusbc~WnRm(s`M z=`JsmqdGd71zIkfn&nzfDx1DV*++W8EiNPD;;T}wFS}0*ajx2xx~cc*w{^_(wQfi( z)m?Wlre($Bw%M&eKH@|;Vqtsfi?cetGMzYc(4HwzP?m>+JjcslO_iJJu<7%!HW$;{3|7u~=;^v!GI8FO=DB%u3xo^x`-eW${YHRXXJ=bcLLWvJ&WXe%Z>S=cmqyIGJTTL%dT~gN}H6F zw<&$Pmrz`irkI#E;nJCF(ZvrI_-&Z`=F}lcrPK?jR;4aZ4wPw2c@tK`D

    mnqnk z!(g`d*09DS(f1todhL}6d^ElN#WgXh6qN+ot@GsB{sbuK?Ne_GK60!|B3ba6jed&$ z>QtshQudrP6khACsuzAO7x2sKO5iL(t}j;|V@mWTc+|~8Z=5b>T)Wim4 z$QC~%ae9M7e~FJm`ZuF@-&bU8+7|R7@YRc-hm_Y+h|jsA zw!D%_(A+uZ&AfLv-yWImlAatC8h>+F#O9|dZ$GHSpPX^^XdT;;qm$p8E<4fr>-h_o zMaG!OI78Ghm`&u){u-jQ|NQ21`mi#^fWEART=W{G-ZIP=Rx=kpt-ANn{) zrA^+vWu7O??xe1~`$>I9n|`!UakD&`Ja?OfxYBW5n?OAswTTatPaCdh-1lIi?_8^- znfk_pCU#5vHctP#Ld$%Se7ZGzt8g{!g+R8{9}o%ywBl~8Hc600R* zl2`nCH~HrJh`H6-doNuUzWu_3RTd5mZW62qN^U&O`TwAg>GpNL1z#>iXt8SOPJ8kE z`9pJ;n6wSf$qj(g(eI8&}4} z8h2gZAZxPt#-eAvZ)*f^7%Q)y`$c75=<0LZ-~V@*DbU3p6c{*tV`i+#!JC#2SLfvL zS)aDv&B3DAef*{8d%h!|=eWL}Qd-WI`g@@uvvK1oN7Ix&7Xo}7Z)CpvKf6%JYxy#v zAP(CjkM9~iShUX}aZ#4rDy9Vs67DUu+%wTFihsk0rHw)_Rw}mM4&Cb3s(rwBQ^Wfc z2b@+s$$cs5rlTb-wM2PBm2;!YjyG}Nb)5HpRS?uRded?DZ};xM(p+8lbjAMgOD)^> zS#QeERdxXF@i~~kmt7$5vZ|zO zN!fz9;G@gV1QhK&e0kpF1tqt(H*>V)x(Dnzo~5GvUzBGx+rL%P=k=`LM3`=zx@5x= zmjAb_3T`)ERNlYgxXMhUJp%qBmvkAWSoKT_g>vs0v~FGPcVMp9)oEMTeD%|Jcd(J& z78v#H-@ew@3?@dm>fAh@J}7&VT;!b1e>|0iT`2YQ{>R1qH`;r)JgVP6p?G?BhIGRG#IX5zqAWnCI`Bo6$CV z0$WP5df?1S8YXJ|>no?-e6+4>!~fH% z>*Cy^w%uO80~mQBaMw(l!p_FlBfx>>n+gK8eDKu=RuyK+`n=`!oZegRrK8{W#? z%RXG#;-vPeb?_)9Tlw2>YUi<(!aL$eYa!s-TDcKWVzh-G)^>K z^yRm?$iKg#vnBhKmPD9cV(WcuVYPvGWl8De);F=grgME1{JUZDytca^y7Tzddspb? zrLaY*7)U?*z0b{_MXvv*_Nw4JA6%wPy&G8i!Sd^@y~fAH!owDM?0t56_UBN(`SJDV zzr-u=S7@C*Pk*iIwaqU#xcQ&lS|hc6TT6SpUev8$NvD1Iq|}f8N{e4?&7}P@<>fia z2E+LIH&c0MZfrXvxrS}y&8g8r@xe8VEN4D+I>$bF>RGGz^K$RsoAfhjdH37TwVSLj LuGni8|A!F(Na^M% literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js.map new file mode 120000 index 00000000..e2f0086f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/element.js.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/player/element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/facet/index.html new file mode 120000 index 00000000..0ba3ce99 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/facet/index.html @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/player/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/facet/index.html.br new file mode 120000 index 00000000..328a6af7 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/player/facet/index.html.br @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/player/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css new file mode 120000 index 00000000..0a58d239 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/variables.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css.br new file mode 120000 index 00000000..1c520722 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/variables.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css.map new file mode 120000 index 00000000..5eeb8b73 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/tidal/variables.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/tidal/variables.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css new file mode 120000 index 00000000..037e22c2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/98-extra.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css.br new file mode 120000 index 00000000..1487f4a2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/98-extra.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css.map new file mode 120000 index 00000000..385ce04c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-extra.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/98-extra.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css new file mode 120000 index 00000000..2d091fdb --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/98-scrollbar.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css.br new file mode 120000 index 00000000..c01ed006 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/98-scrollbar.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css.map new file mode 120000 index 00000000..f7af8632 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-scrollbar.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/98-scrollbar.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css new file mode 120000 index 00000000..3b1e77f9 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/98-vars.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css.br new file mode 120000 index 00000000..0593c287 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/98-vars.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css.map new file mode 120000 index 00000000..9546847d --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/98-vars.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/98-vars.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/artwork/element.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/artwork/element.js new file mode 100644 index 00000000..69cc2c73 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/artwork/element.js @@ -0,0 +1,39 @@ +import{b as u,e as h,f as a,i as f}from"../../../../chunk-IA3NIKPO.js";import"../../../../chunk-7NEQFE27.js";import"../../../../chunk-NYGD7JS5.js";import"../../../../chunk-WMITNTCW.js";import"../../../../chunk-OBMOK4KY.js";import"../../../../chunk-HCA2HGAZ.js";import{o,p as s}from"../../../../chunk-XILA3E7E.js";import{a as i}from"../../../../chunk-75KFZLU6.js";var n=class extends u{static{i(this,"ArtworkWindowElement")}constructor(){super(),this.attachShadow({mode:"open"})}#t=o(null);#e=null;$artwork=o(void 0);$controller=o(void 0);currentTrack=i(()=>this.$controller.value?.currentTrack(),"currentTrack");connectedCallback(){super.connectedCallback();let e=a(this,"artwork-selector"),r=a(this,"controller-orchestrator-selector");f({artwork:e,controller:r}).then(()=>{this.$artwork.value=e,this.$controller.value=r,this.effect(()=>{let l=this.currentTrack();s(()=>this.#r(l))})})}disconnectedCallback(){this.#e&&(URL.revokeObjectURL(this.#e),this.#e=null)}async#r(e){let r=e?await this.$artwork.value?.get(e)??null:null;if(this.$controller.value?.$queue.value?.now()?.id===e?.id)if(this.#e&&(URL.revokeObjectURL(this.#e),this.#e=null),r){let l=k(r),c=URL.createObjectURL(new Blob([r.buffer],{type:l}));this.#e=c,this.#t.value=c}else this.#t.value=null}render({html:e}){let r=this.#t.value;return e` + + +
    + ${r?e``:e`No artwork`} +
    + `}},m=n,w=n,d="dtw-winamp-artwork";h(d,n);function k(t){return t[0]===255&&t[1]===216?"image/jpeg":t[0]===137&&t[1]===80?"image/png":t[0]===71&&t[1]===73?"image/gif":t[0]===82&&t[1]===73?"image/webp":"image/jpeg"}i(k,"detectMime");export{w as CLASS,d as NAME,m as default}; + +//# sourceMappingURL=./element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/artwork/element.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/artwork/element.js.br new file mode 100644 index 0000000000000000000000000000000000000000..814d7d74349aa330b05bcc27b92063111e7a6e00 GIT binary patch literal 958 zcmb0R=45zMzVhGR>B5V+Ro?XEo+>{cbHv8ng41ONPi^=A`u(1lE*}m4a5-~J(l@x&Ej)cw3t zx@64~!S?my4nG$KE~*s$`O$0ntED{eE%$H9+hfYFQSFx~752w2L3Uy2uTz4jcIke! zTUJ&n;h8#p$*d?=&c3Iu78f?WYgO%j^(A;8-y`?Ne2@5DT;5_~+9Atpls6xHzHRXX zg9+>A96jc;kaOXq`SVxj{&=iXs?&RZJ4fn|{YuMh^nF-L71Sp$v=r*OoAgG=j_&e(KAjh&*DX&KTB7WynDsTJs)59`DpOIf36j4)F$zlVcWJ7m;a`|Nk}|C z;pc4s@6(U4xY!=aoYS@`H{q_}f+c?@3Qst-^okto8fU5hjp`1Uuk6$R`AK12vC#H^ zyq%AJE#JJ++v#$IwjxUnf8c9r&$1@VqUZicW>}mux_Drl=M}s3gwAj3Wgd1hHgld^ z?$8g@oo=o>lf`T2;)7>?F6dw2ux;xsS%E_jixouX8U}T43u0_@mtmf*V#0%`Zsy)MlpDWgO0ehy` z7Y4uQGZa~SZnc_w{goHGlJP-TqE59uEA!&l`;uPz+e~Vlt@?#uw)CD_`eF6Dpf}DP zd*$Q}f+j@Tc0bcG{BY^%`a0nscP|EnvDS0^-@WaH`HRKTb)8xodq4dAzF%>}N`o9t zo?s^J{XNreop^a>t!Ryli18F{<)wxnU)|b$qW;SM7J;*V>Dj02O>U(vp8ZH!WlofK z+J|=G;!AF;r@y-X@WdI1UDp}>)<2CoFn!(H`)hO(EmlulKc9P6k7U>b#n0hYTr-Ly fPS$)Y`g8E{let t=this.$provider.value?.tracks()??[],e=this.$highlightedTracks.value;return e.size===0?[]:t.filter(a=>e.has(a.id))});#v=C(()=>{let t=this.#r();if(t.length===0)return!1;let e=this.#i.value;return t.every(a=>e.has(a.uri))});#t=v(null);$groupedPlaylists=C(()=>{let t=this.$output.value?.playlistItems.collection();if(!t||t.state!=="loaded"||!t.data.length)return[];let e=t.data,l=[...W(e).values()].sort((i,n)=>i.name.localeCompare(n.name)),r=l.filter(i=>!i.unordered),c=l.filter(i=>i.unordered);return[{label:"Ordered",playlists:r},{label:"Unordered",playlists:c}].filter(i=>i.playlists.length>0)});#a=0;#o=0;#n=-1;#c=-1;#e=[];#d=void 0;#u=void 0;#l;connectedCallback(){super.connectedCallback();let t=T(this,"output-selector"),e=T(this,"tracks-selector"),a=T(this,"queue-engine-selector"),l=T(this,"scope-engine-selector"),r=T(this,"favourites-orchestrator-selector"),c=H(this,"input-selector");B({output:t,provider:e,queue:a,scope:l,favourites:r}).then(()=>{this.$output.value=t,this.$provider.value=e,this.$queue.value=a,this.$scope.value=l,this.$favourites.value=r}),c&&B({input:c}).then(async()=>{this.$input.value=c;let i=await c.listCached();this.#i.value=new Set(i)}),this.effect(()=>{let i=this.$provider.value?.tracks();G(()=>{let n=this.root().querySelector(".sunken-panel");n&&(n.scrollTo(0,0),this.#a=0)})}),this.#f(),this.effect(()=>{let i=this.$scope.value?.playlist(),n=this.root().querySelector("#playlist-select");n&&(n.value=i??"")}),this.effect(()=>{let i=this.$scope.value?.groupBy(),n=this.root().querySelector("#groupby-select");if(n){let f=i?.startsWith("firstLetter:")?"firstLetter":i??"";n.value=f}})}disconnectedCallback(){super.disconnectedCallback(),this.#l?.disconnect()}#f(){requestAnimationFrame(()=>{let t=this.root().querySelector(".sunken-panel");t&&(t.addEventListener("scroll",()=>{this.#a=t.scrollTop,this.#p()},{passive:!0}),this.#l=new ResizeObserver(e=>{this.#o=Math.min(e[0].contentRect.height,window.innerHeight),this.#p()}),this.#l.observe(t))})}#h(){let t=Math.max(0,Math.floor(this.#a/S)-J),e=Math.ceil(this.#o/S)+2*J;return{startIndex:t,endIndex:t+e}}#p(){let{startIndex:t,endIndex:e}=this.#h();t===this.#n&&e===this.#c||this.forceRender()}playTrack(t){this.$queue.value?.add({inFront:!0,trackIds:[t.id]}),this.$queue.value?.shift()}setSearchTerm=p(()=>{let e=this.root().querySelector("#search-input")?.value?.trim();this.$scope.value?.setSearchTerm(e)},"setSearchTerm");setSelectedPlaylist=p(t=>{let e=t.currentTarget.value;this.$scope.value?.setPlaylist(e===""?void 0:e)},"setSelectedPlaylist");setGroupBy=p(t=>{let e=this.$scope.value;if(!e)return;let a=t.currentTarget.value;if(!a){e.setGroupBy(void 0);return}let l=a==="firstLetter"?`firstLetter:${e.sortBy()[0]??"tags.title"}`:a;e.setGroupBy(l)},"setGroupBy");sortByColumn=p(t=>{let e=this.$scope.value;if(!e)return;JSON.stringify(L[t])===JSON.stringify(e.sortBy())?e.sortDirection()==="desc"?e.revertToDefaultSort():e.setSortDirection("desc"):(e.setSortBy(L[t]??[]),e.setSortDirection(void 0))},"sortByColumn");toggleFavourite=p(t=>{this.$favourites.value?.toggle(t)},"toggleFavourite");addTracksToPlaylist=p(async(t,e)=>{let a=this.$output.value;if(!a||!e.length)return;let l=a.playlistItems.collection(),r=l.state==="loaded"?l.data:[],c=new Set(r.filter(u=>u.playlist===t).map(u=>{let h=u.criteria.find(k=>k.field==="tags.artist")?.value??"",m=u.criteria.find(k=>k.field==="tags.title")?.value??"";return`${String(h).toLowerCase()}.${String(m).toLowerCase()}`})),i=["toLowerCase"],n=new Date().toISOString(),f=e.filter(u=>{let h=`${String(u.tags?.artist??"").toLowerCase()}.${String(u.tags?.title??"").toLowerCase()}`;return!c.has(h)}).map(u=>({$type:"sh.diffuse.output.playlistItem",id:q(),playlist:t,criteria:[{field:"tags.artist",value:u.tags?.artist,transformations:i},{field:"tags.title",value:u.tags?.title,transformations:i}],createdAt:n,updatedAt:n}));f.length&&await a.playlistItems.save([...r,...f])},"addTracksToPlaylist");createPlaylistWithTracks=p(async(t,e,a)=>{let l=this.$output.value;if(!l||!e.length)return;let r=l.playlistItems.collection(),c=r.state==="loaded"?r.data:[],i=["toLowerCase"],n=new Date().toISOString(),f=[],u;for(let h of e){let m=q();f.push({$type:"sh.diffuse.output.playlistItem",id:m,playlist:t,criteria:[{field:"tags.artist",value:h.tags?.artist,transformations:i},{field:"tags.title",value:h.tags?.title,transformations:i}],...a?{positionedAfter:u}:{},createdAt:n,updatedAt:n}),a&&(u=m)}await l.playlistItems.save([...c,...f])},"createPlaylistWithTracks");#g(t){let e=this.#t.value;if(!e)return t` + + `;let a=e.mode==="create",l=this.$groupedPlaylists();return t` +
    +
    +
    +
    ${a?"New playlist":"Add to playlist"}
    +
    + +
    +
    +
    + ${a?t` +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + `:t` +
    + + ${l.length>0?t` +
    + `:""} ${l.map(({label:r,playlists:c})=>t` +
    ${r}
    + ${c.map(i=>t` + + `)} + `)} +
    + `} +
    +
    +
    + `}render({html:t}){let e=this.$highlightedTrack.value,a=this.$output.value?.tracks?.collection().state!=="loaded",l=this.$provider.value?.tracks()??[],r=this.$provider.value?.groups?.(),c=this.$scope.value?.playlist(),i=this.$scope.value?.groupBy(),n=this.$scope.value?.searchTerm()??"",f=this.$scope.value?.sortBy()??[],u=this.$scope.value?.sortDirection(),h=this.$provider.value?.playlistIsOrdered?.()??!1,m=h?void 0:Object.entries(L).find(([,s])=>JSON.stringify(s)===JSON.stringify(f))?.[0],k=p(s=>m===s?u==="desc"?"descending":"ascending":"none","ariaSort"),z=h?new Map(l.map((s,o)=>[s.id,o+1])):null,K=h?4:3;(r!==this.#u||l!==this.#d)&&(this.#e=r?tt(r):[],this.#u=r,this.#d=l);let M=r?this.#e.length:l.length,{startIndex:x,endIndex:V}=this.#h(),A=Math.min(M,V);this.#n=x,this.#c=A;let Y=r?this.#e.slice(x,A):l.slice(x,A).map(s=>({type:"track",track:s})),j=M*S,Q=x*S,X=this.$highlightedTracks.value,d=this.#r(),F=this.#v();return t` + + + + + + + + + + + + + + +
    w.id===b):-1,g=s.key==="ArrowUp"?Math.max(0,I-1):Math.min(o.length-1,I+1),$=o[g];this.#s=$.id,this.$highlightedTracks.value=new Set([$.id]),this.$highlightedTrack.value=$.id;let y=this.root().querySelector(".sunken-panel");if(y){let w=this.#e.length>0?this.#e.findIndex(E=>E.type==="track"&&E.track.id===$.id):g,O=(w<0?g:w)*S,N=O+S;Oy.scrollTop+y.clientHeight&&(y.scrollTop=N-y.clientHeight)}}}" + > + + + + ${h?t``:""} + + + + + +
    # + Title + + Artist + + Album +
    +
    + + + ${h?t``:""} + + + + + + ${a?t` + + ${h?t``:""} + + + + + `:_(Y,s=>s.type==="group"?`group:${s.label}`:`track:${s.track.id}`,s=>{if(s.type==="group")return t` + + + + `;let o=s.track;return t` + + ${h?t``:""} + + + + + `})} + +
    Loading ...
    ${s.label}
    ${z?.get(o.id)}${o.tags?.title}${o.tags?.artist}${o.tags?.album}
    +
    +
    + +
    + + + + + ${this.$input.value?t` + + `:""} +
    + + ${this.#g(t)} + `}};function tt(D){let t=[];for(let e of D){t.push({type:"group",label:e.label});for(let a of e.tracks)t.push({type:"track",track:a})}return t}p(tt,"buildFlatList");var nt=P,et=P,st="dtw-browser";U(st,et);export{et as CLASS,st as NAME,nt as default}; + +//# sourceMappingURL=./element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.js.br new file mode 100644 index 0000000000000000000000000000000000000000..1f9fac70c2d37d57c967189065a7d7a37b5e2275 GIT binary patch literal 4549 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 Qx~?8@|Kg^vYx>I>02gn%lK=n! literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.js.map new file mode 100644 index 00000000..a0d84842 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/element.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/element.js"],"sourcesContent":["import * as TID from \"@atcute/tid\";\n\nimport {\n defineElement,\n DiffuseElement,\n query,\n queryOptional,\n whenElementsDefined,\n} from \"~/common/element.js\";\nimport { computed, signal, untracked } from \"~/common/signal.js\";\nimport * as Playlist from \"~/common/playlist.js\";\nimport { repeat } from \"~/vendor/lit-html/directives/repeat.js\";\n\n/**\n * @import {RenderArg} from \"~/common/element.d.ts\"\n * @import {SignalReader} from \"~/common/signal.d.ts\";\n * @import {Track} from \"~/definitions/types.d.ts\"\n * @import {OutputElement} from \"@specs/components/output/types.d.ts\"\n */\n\nconst ROW_HEIGHT = 14;\nconst OVERSCAN = 10;\n\n/** @type {Record} */\nconst COLUMN_SORT = {\n title: [\"tags.title\"],\n artist: [\"tags.artist\", \"tags.album\", \"tags.disc.no\", \"tags.track.no\"],\n album: [\"tags.album\", \"tags.disc.no\", \"tags.track.no\"],\n};\n\nconst GROUP_BY_OPTIONS = [\n { value: \"firstLetter\", label: \"First letter\" },\n { value: \"directory\", label: \"Path\" },\n { value: \"createdAt\", label: \"Processing date\" },\n { value: \"tags.year\", label: \"Track year\" },\n];\n\n/**\n * @typedef {{ type: \"group\"; label: string }} GroupItem\n * @typedef {{ type: \"track\"; track: Track }} TrackItem\n * @typedef {GroupItem | TrackItem} VirtualItem\n */\n\nclass Browser extends DiffuseElement {\n constructor() {\n super();\n this.attachShadow({ mode: \"open\" });\n }\n\n // SIGNALS\n\n $output = signal(\n /** @type {OutputElement | undefined} */ (undefined),\n );\n\n $provider = signal(\n /** @type {DiffuseElement & { tracks: SignalReader } | undefined} */ (undefined),\n );\n\n $queue = signal(\n /** @type {import(\"~/components/engine/queue/element.js\").CLASS | undefined} */ (undefined),\n );\n\n $scope = signal(\n /** @type {import(\"~/components/engine/scope/element.js\").CLASS | undefined} */ (undefined),\n );\n\n $favourites = signal(\n /** @type {import(\"~/components/orchestrator/favourites/element.js\").CLASS | undefined} */ (undefined),\n );\n\n $highlightedTrack = signal(/** @type {string | null} */ (null));\n $highlightedTracks = signal(/** @type {Set} */ (new Set()));\n #anchorTrackId = /** @type {string | null} */ (null);\n\n $input = signal(\n /** @type {import(\"~/components/configurator/input/element.js\").CLASS | undefined} */ (undefined),\n );\n\n #cachedUris = signal(/** @type {Set} */ (new Set()));\n\n #selectedTracks = computed(() => {\n const tracks = this.$provider.value?.tracks() ?? [];\n const highlightedTracks = this.$highlightedTracks.value;\n if (highlightedTracks.size === 0) return [];\n return tracks.filter((t) => highlightedTracks.has(t.id));\n });\n\n #allCached = computed(() => {\n const selectedTracks = this.#selectedTracks();\n if (selectedTracks.length === 0) return false;\n const cachedUris = this.#cachedUris.value;\n return selectedTracks.every((t) => cachedUris.has(t.uri));\n });\n\n #playlistPickerState = signal(\n /** @type {{ mode: \"add\"; tracks: Track[] } | { mode: \"create\"; tracks: Track[] } | null} */ (null),\n );\n\n $groupedPlaylists = computed(() => {\n const col = this.$output.value?.playlistItems.collection();\n if (!col || col.state !== \"loaded\" || !col.data.length) return [];\n const items = col.data;\n\n // Group items by playlist name\n /** @type {Map} */\n const playlistMap = Playlist.gather(items);\n\n const all = [...playlistMap.values()].sort((a, b) =>\n a.name.localeCompare(b.name)\n );\n\n const ordered = all.filter((p) => !p.unordered);\n const unordered = all.filter((p) => p.unordered);\n\n return [\n { label: \"Ordered\", playlists: ordered },\n { label: \"Unordered\", playlists: unordered },\n ].filter((g) => g.playlists.length > 0);\n });\n\n // STATE\n\n #scrollTop = 0;\n #viewportHeight = 0;\n #renderedStartIndex = -1;\n #renderedEndIndex = -1;\n\n /** @type {VirtualItem[]} */\n #flatItems = [];\n\n /** @type {Track[] | undefined} */\n #lastTracks = undefined;\n\n /** @type {{ label: string; tracks: Track[] }[] | undefined} */\n #lastGroups = undefined;\n\n /** @type {ResizeObserver | undefined} */\n #resizeObserver;\n\n // LIFECYCLE\n\n /**\n * @override\n */\n connectedCallback() {\n super.connectedCallback();\n\n /** @type {OutputElement} */\n const output = query(this, \"output-selector\");\n\n /** @type {DiffuseElement & { tracks: SignalReader }} */\n const provider = query(this, \"tracks-selector\");\n\n /** @type {import(\"~/components/engine/queue/element.js\").CLASS} */\n const queue = query(this, \"queue-engine-selector\");\n\n /** @type {import(\"~/components/engine/scope/element.js\").CLASS} */\n const scope = query(this, \"scope-engine-selector\");\n\n /** @type {import(\"~/components/orchestrator/favourites/element.js\").CLASS} */\n const favourites = query(this, \"favourites-orchestrator-selector\");\n\n /** @type {import(\"~/components/configurator/input/element.js\").CLASS | null} */\n const input = queryOptional(this, \"input-selector\");\n\n // Wait for the above dependencies to be defined, then render again.\n whenElementsDefined({ output, provider, queue, scope, favourites }).then(\n () => {\n this.$output.value = output;\n this.$provider.value = provider;\n this.$queue.value = queue;\n this.$scope.value = scope;\n this.$favourites.value = favourites;\n },\n );\n\n if (input) {\n whenElementsDefined({ input }).then(async () => {\n this.$input.value = input;\n const uris = await input.listCached();\n this.#cachedUris.value = new Set(uris);\n });\n }\n\n // Effects\n this.effect(() => {\n const _results = this.$provider.value?.tracks();\n\n untracked(() => {\n const panel = this.root().querySelector(\".sunken-panel\");\n if (panel) {\n panel.scrollTo(0, 0);\n this.#scrollTop = 0;\n }\n });\n });\n\n // Scroll & resize tracking (set up once after first render)\n this.#setupScrollTracking();\n\n this.effect(() => {\n const playlist = this.$scope.value?.playlist();\n const select = this.root().querySelector(\"#playlist-select\");\n\n if (select) {\n /** @type {HTMLSelectElement} */ (select).value = playlist ?? \"\";\n }\n });\n\n this.effect(() => {\n const groupBy = this.$scope.value?.groupBy();\n const select = this.root().querySelector(\"#groupby-select\");\n if (select) {\n const displayValue = groupBy?.startsWith(\"firstLetter:\")\n ? \"firstLetter\"\n : (groupBy ?? \"\");\n /** @type {HTMLSelectElement} */ (select).value = displayValue;\n }\n });\n }\n\n /**\n * @override\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#resizeObserver?.disconnect();\n }\n\n // SCROLL\n\n #setupScrollTracking() {\n requestAnimationFrame(() => {\n const panel = this.root().querySelector(\".sunken-panel\");\n if (!panel) return;\n\n panel.addEventListener(\n \"scroll\",\n () => {\n this.#scrollTop = panel.scrollTop;\nthis.#renderIfWindowChanged();\n },\n { passive: true },\n );\n\n this.#resizeObserver = new ResizeObserver((entries) => {\n // Cap to window.innerHeight to guard against measuring the scroll height\n // before shadow DOM stylesheets finish loading (when the panel has no\n // flex constraints and expands to its full virtual content size).\n this.#viewportHeight = Math.min(\n entries[0].contentRect.height,\n window.innerHeight,\n );\n this.#renderIfWindowChanged();\n });\n\n this.#resizeObserver.observe(panel);\n });\n }\n\n #computeWindow() {\n const startIndex = Math.max(\n 0,\n Math.floor(this.#scrollTop / ROW_HEIGHT) - OVERSCAN,\n );\n const visibleCount = Math.ceil(this.#viewportHeight / ROW_HEIGHT) +\n 2 * OVERSCAN;\n\n return { startIndex, endIndex: startIndex + visibleCount };\n }\n\n #renderIfWindowChanged() {\n const { startIndex, endIndex } = this.#computeWindow();\n\n if (\n startIndex === this.#renderedStartIndex &&\n endIndex === this.#renderedEndIndex\n ) {\n return;\n }\n\n this.forceRender();\n }\n\n // EVENTS\n\n /**\n * @param {Track} track\n */\n playTrack(track) {\n this.$queue.value?.add({\n inFront: true,\n trackIds: [track.id],\n });\n\n this.$queue.value?.shift();\n }\n\n setSearchTerm = () => {\n /** @type {HTMLInputElement | null} */\n const input = this.root().querySelector(\"#search-input\");\n const term = input?.value?.trim();\n\n this.$scope.value?.setSearchTerm(term);\n };\n\n /**\n * @param {Event} event\n */\n setSelectedPlaylist = (event) => {\n const value = /** @type {HTMLSelectElement} */ (event.currentTarget).value;\n\n this.$scope.value?.setPlaylist(value === \"\" ? undefined : value);\n };\n\n /**\n * @param {Event} event\n */\n setGroupBy = (event) => {\n const scope = this.$scope.value;\n if (!scope) return;\n const raw = /** @type {HTMLSelectElement} */ (event.currentTarget).value;\n if (!raw) {\n scope.setGroupBy(undefined);\n return;\n }\n const value = raw === \"firstLetter\"\n ? `firstLetter:${scope.sortBy()[0] ?? \"tags.title\"}`\n : raw;\n scope.setGroupBy(value);\n };\n\n /**\n * @param {string} column\n */\n sortByColumn = (column) => {\n const scope = this.$scope.value;\n if (!scope) return;\n\n const isActive = JSON.stringify(COLUMN_SORT[column]) ===\n JSON.stringify(scope.sortBy());\n\n if (isActive) {\n if (scope.sortDirection() === \"desc\") {\n scope.revertToDefaultSort();\n } else {\n scope.setSortDirection(\"desc\");\n }\n } else {\n scope.setSortBy(COLUMN_SORT[column] ?? []);\n scope.setSortDirection(undefined);\n }\n };\n\n /**\n * @param {Track} track\n */\n toggleFavourite = (track) => {\n this.$favourites.value?.toggle(track);\n };\n\n /**\n * @param {string} playlistName\n * @param {Track[]} tracks\n */\n addTracksToPlaylist = async (playlistName, tracks) => {\n const output = this.$output.value;\n if (!output || !tracks.length) return;\n\n const col = output.playlistItems.collection();\n const existing = col.state === \"loaded\" ? col.data : [];\n\n const existingKeys = new Set(\n existing\n .filter((item) => item.playlist === playlistName)\n .map((item) => {\n const a = item.criteria.find((c) =>\n c.field === \"tags.artist\"\n )?.value ?? \"\";\n const t =\n item.criteria.find((c) => c.field === \"tags.title\")?.value ?? \"\";\n return `${String(a).toLowerCase()}.${String(t).toLowerCase()}`;\n }),\n );\n\n const transformations = /** @type {string[]} */ ([\"toLowerCase\"]);\n const now = new Date().toISOString();\n\n const newItems = tracks\n .filter((track) => {\n const key = `${String(track.tags?.artist ?? \"\").toLowerCase()}.${\n String(track.tags?.title ?? \"\").toLowerCase()\n }`;\n return !existingKeys.has(key);\n })\n .map((\n track,\n ) => /** @type {import(\"~/definitions/types.d.ts\").PlaylistItem} */ ({\n $type: \"sh.diffuse.output.playlistItem\",\n id: TID.now(),\n playlist: playlistName,\n criteria: [\n {\n field: \"tags.artist\",\n value: /** @type {unknown} */ (track.tags?.artist),\n transformations,\n },\n {\n field: \"tags.title\",\n value: /** @type {unknown} */ (track.tags?.title),\n transformations,\n },\n ],\n createdAt: now,\n updatedAt: now,\n }));\n\n if (!newItems.length) return;\n await output.playlistItems.save([...existing, ...newItems]);\n };\n\n /**\n * @param {string} playlistName\n * @param {Track[]} tracks\n * @param {boolean} ordered\n */\n createPlaylistWithTracks = async (playlistName, tracks, ordered) => {\n const output = this.$output.value;\n if (!output || !tracks.length) return;\n\n const col = output.playlistItems.collection();\n const existing = col.state === \"loaded\" ? col.data : [];\n\n const transformations = /** @type {string[]} */ ([\"toLowerCase\"]);\n const now = new Date().toISOString();\n\n /** @type {import(\"~/definitions/types.d.ts\").PlaylistItem[]} */\n const newItems = [];\n let prevId = /** @type {string | undefined} */ (undefined);\n\n for (const track of tracks) {\n const id = TID.now();\n newItems.push(\n /** @type {import(\"~/definitions/types.d.ts\").PlaylistItem} */ ({\n $type: \"sh.diffuse.output.playlistItem\",\n id,\n playlist: playlistName,\n criteria: [\n {\n field: \"tags.artist\",\n value: /** @type {unknown} */ (track.tags?.artist),\n transformations,\n },\n {\n field: \"tags.title\",\n value: /** @type {unknown} */ (track.tags?.title),\n transformations,\n },\n ],\n ...(ordered ? { positionedAfter: prevId } : {}),\n createdAt: now,\n updatedAt: now,\n }),\n );\n if (ordered) prevId = id;\n }\n\n await output.playlistItems.save([...existing, ...newItems]);\n };\n\n // RENDER\n\n /**\n * @param {Function} html\n */\n #renderPlaylistPicker(html) {\n const state = this.#playlistPickerState.value;\n if (!state) {\n return html`\n\n `;\n }\n\n const isCreate = state.mode === \"create\";\n const groups = this.$groupedPlaylists();\n\n return html`\n {\n if (e.target === e.currentTarget) {\n this.#playlistPickerState.value = null;\n }\n }}\"\n >\n
    \n
    \n
    ${isCreate\n ? `New playlist`\n : `Add to playlist`}
    \n
    \n \n
    \n
    \n
    \n ${isCreate\n ? html`\n {\n e.preventDefault();\n const form =\n /** @type {HTMLFormElement} */ (e.currentTarget);\n const name =\n /** @type {HTMLInputElement} */ (form.elements.namedItem(\n `playlist-name`,\n ))?.value.trim();\n const ordered =\n /** @type {HTMLInputElement} */ (form.elements.namedItem(\n `playlist-ordered`,\n ))?.checked ?? false;\n if (!name) return;\n await this.createPlaylistWithTracks(\n name,\n state.tracks,\n ordered,\n );\n this.#playlistPickerState.value = null;\n }}\"\n >\n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n \n `\n : html`\n
    \n {\n this.#playlistPickerState.value = {\n mode: `create`,\n tracks: state.tracks,\n };\n }}\"\n >\n + Create new playlist\n \n ${groups.length > 0\n ? html`\n
    \n `\n : ``} ${groups.map(({ label, playlists }) =>\n html`\n
    ${label}
    \n ${playlists.map((p) =>\n html`\n {\n await this.addTracksToPlaylist(\n p.name,\n state.tracks,\n );\n this.#playlistPickerState.value = null;\n }}\"\n >\n ${p.name}\n \n `\n )}\n `\n )}\n
    \n `}\n
    \n
    \n \n `;\n }\n\n /**\n * @param {RenderArg} _\n */\n render({ html }) {\n const highlighted = this.$highlightedTrack.value;\n const isLoading =\n this.$output.value?.tracks?.collection().state !== \"loaded\";\n\n const tracks = this.$provider.value?.tracks() ?? [];\n const groups = /** @type {{ label: string; tracks: Track[] }[] | undefined} */ (\n /** @type {any} */ (this.$provider.value)?.groups?.()\n );\n const playlist = this.$scope.value?.playlist();\n const groupBy = this.$scope.value?.groupBy();\n const searchTerm = this.$scope.value?.searchTerm() ?? \"\";\n const sortBy = this.$scope.value?.sortBy() ?? [];\n const sortDirection = this.$scope.value?.sortDirection();\n const playlistOrdered = /** @type {any} */ (this.$provider.value)\n ?.playlistIsOrdered?.() ?? false;\n const sortedColumn = playlistOrdered\n ? undefined\n : Object.entries(COLUMN_SORT).find(\n ([, v]) => JSON.stringify(v) === JSON.stringify(sortBy),\n )?.[0];\n\n const ariaSort = /** @param {string} col */ (col) =>\n sortedColumn === col\n ? (sortDirection === \"desc\" ? \"descending\" : \"ascending\")\n : \"none\";\n\n // 1-indexed position of each track within the playlist order\n const trackPositions = playlistOrdered\n ? new Map(tracks.map((t, i) => [t.id, i + 1]))\n : null;\n const colspan = playlistOrdered ? 4 : 3;\n\n // Virtual list\n if (groups !== this.#lastGroups || tracks !== this.#lastTracks) {\n this.#flatItems = groups ? buildFlatList(groups) : [];\n this.#lastGroups = groups;\n this.#lastTracks = tracks;\n }\n\n const totalItems = groups ? this.#flatItems.length : tracks.length;\n const { startIndex, endIndex: rawEnd } = this.#computeWindow();\n const endIndex = Math.min(totalItems, rawEnd);\n\n this.#renderedStartIndex = startIndex;\n this.#renderedEndIndex = endIndex;\n\n const visibleItems = groups\n ? this.#flatItems.slice(startIndex, endIndex)\n : tracks.slice(startIndex, endIndex).map(\n (t) => /** @type {VirtualItem} */ ({ type: \"track\", track: t }),\n );\n const totalHeight = totalItems * ROW_HEIGHT;\n const topPad = startIndex * ROW_HEIGHT;\n\n const highlightedTracks = this.$highlightedTracks.value;\n const selectedTracks = this.#selectedTracks();\n const allCached = this.#allCached();\n\n return html`\n \n \n \n \n\n \n \n \n \n \n \n \n \n\n {\n if (e.key !== `ArrowUp` && e.key !== `ArrowDown`) return;\n e.preventDefault();\n const allTracks = this.$provider.value?.tracks() ?? [];\n if (allTracks.length === 0) return;\n const current = this.$highlightedTrack.value;\n const currentIdx = current\n ? allTracks.findIndex((t) => t.id === current)\n : -1;\n const nextIdx = e.key === `ArrowUp`\n ? Math.max(0, currentIdx - 1)\n : Math.min(allTracks.length - 1, currentIdx + 1);\n const next = allTracks[nextIdx];\n this.#anchorTrackId = next.id;\n this.$highlightedTracks.value = new Set([next.id]);\n this.$highlightedTrack.value = next.id;\n const panel = this.root().querySelector(`.sunken-panel`);\n if (panel) {\n const flatIdx = this.#flatItems.length > 0\n ? this.#flatItems.findIndex(\n (item) => item.type === \"track\" && item.track.id === next.id,\n )\n : nextIdx;\n const rowTop = (flatIdx < 0 ? nextIdx : flatIdx) * ROW_HEIGHT;\n const rowBottom = rowTop + ROW_HEIGHT;\n if (rowTop < panel.scrollTop) {\n panel.scrollTop = rowTop;\n } else if (rowBottom > panel.scrollTop + panel.clientHeight) {\n panel.scrollTop = rowBottom - panel.clientHeight;\n }\n }\n }}\"\n >\n \n \n \n ${playlistOrdered\n ? html``\n : ``}\n this.sortByColumn(`title`)}\"\n >\n Title\n \n this.sortByColumn(`artist`)}\"\n >\n Artist\n \n this.sortByColumn(`album`)}\"\n >\n Album\n \n \n \n
    #
    \n
    \n \n \n ${playlistOrdered ? html`` : ``}\n \n \n \n \n \n ${isLoading\n ? html`\n \n ${playlistOrdered ? html`` : ``}\n \n \n \n \n `\n : repeat(\n visibleItems,\n (item) =>\n item.type === \"group\"\n ? `group:${item.label}`\n : `track:${item.track.id}`,\n (item) => {\n if (item.type === \"group\") {\n return html`\n \n \n \n `;\n }\n const track = item.track;\n return html`\n {\n const idx = tracks.findIndex(\n (t) => t.id === track.id,\n );\n if (e.shiftKey && this.#anchorTrackId !== null) {\n const anchorIdx = tracks.findIndex(\n (t) => t.id === this.#anchorTrackId,\n );\n if (anchorIdx !== -1) {\n const from = Math.min(anchorIdx, idx);\n const to = Math.max(anchorIdx, idx);\n this.$highlightedTracks.value = new Set(\n tracks.slice(from, to + 1).map((t) => t.id),\n );\n this.$highlightedTrack.value = track.id;\n return;\n }\n }\n this.#anchorTrackId = track.id;\n this.$highlightedTracks.value = new Set([track.id]);\n this.$highlightedTrack.value = track.id;\n }}\"\n @dblclick=\"${() => this.playTrack(track)}\"\n >\n ${playlistOrdered\n ? html``\n : ``}\n \n \n \n \n `;\n })}\n \n
    Loading ...
    ${item.label}
    ${trackPositions?.get(track.id)}${track.tags?.title}${track.tags?.artist}${track.tags?.album}
    \n
    \n \n\n
    \n {\n if (selectedTracks.length === 0) return;\n this.$queue.value?.add({\n inFront: true,\n trackIds: selectedTracks.map((t) => t.id),\n });\n }}\"\n >\n Play next\n \n {\n if (selectedTracks.length === 0) return;\n this.$queue.value?.add({ trackIds: selectedTracks.map((t) => t.id) });\n }}\"\n >\n Add to queue\n \n {\n if (selectedTracks.length === 0) return;\n this.#playlistPickerState.value = {\n mode: `add`,\n tracks: selectedTracks,\n };\n }}\"\n >\n Add to playlist\n \n {\n if (selectedTracks.length !== 1) return;\n this.toggleFavourite(selectedTracks[0]);\n }}\"\n >\n ${selectedTracks.length === 1 && this.$favourites.value?.isFavourite(selectedTracks[0])\n ? `Unfavourite`\n : `Favourite`}\n \n ${this.$input.value\n ? html`\n {\n if (selectedTracks.length === 0) return;\n const uris = selectedTracks.map((t) => t.uri);\n if (allCached) {\n await this.$input.value?.removeFromCache(uris);\n } else {\n await this.$input.value?.cache(uris);\n }\n const updated = await this.$input.value?.listCached();\n if (updated) this.#cachedUris.value = new Set(updated);\n }}\"\n >\n ${allCached ? `Remove from cache` : `Store in cache`}\n \n `\n : ``}\n
    \n\n ${this.#renderPlaylistPicker(html)}\n `;\n }\n}\n\n////////////////////////////////////////////\n// HELPERS\n////////////////////////////////////////////\n\n/**\n * @param {{ label: string; tracks: Track[] }[]} groups\n * @returns {VirtualItem[]}\n */\nfunction buildFlatList(groups) {\n /** @type {VirtualItem[]} */\n const items = [];\n for (const group of groups) {\n items.push({ type: \"group\", label: group.label });\n for (const track of group.tracks) {\n items.push({ type: \"track\", track });\n }\n }\n return items;\n}\n\nexport default Browser;\n\n////////////////////////////////////////////\n// REGISTER\n////////////////////////////////////////////\n\nexport const CLASS = Browser;\nexport const NAME = \"dtw-browser\";\n\ndefineElement(NAME, CLASS);\n"],"mappings":"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","names":["ROW_HEIGHT","OVERSCAN","COLUMN_SORT","GROUP_BY_OPTIONS","Browser","DiffuseElement","__name","signal","#anchorTrackId","#cachedUris","#selectedTracks","computed","tracks","highlightedTracks","t","#allCached","selectedTracks","cachedUris","#playlistPickerState","col","items","all","gather","a","b","ordered","p","unordered","g","#scrollTop","#viewportHeight","#renderedStartIndex","#renderedEndIndex","#flatItems","#lastTracks","#lastGroups","#resizeObserver","output","query","provider","queue","scope","favourites","input","queryOptional","whenElementsDefined","uris","_results","untracked","panel","#setupScrollTracking","playlist","select","groupBy","displayValue","#renderIfWindowChanged","entries","#computeWindow","startIndex","visibleCount","endIndex","track","term","event","value","raw","column","playlistName","existing","existingKeys","item","c","transformations","now","newItems","key","prevId","id","#renderPlaylistPicker","html","state","isCreate","groups","e","form","name","label","playlists","highlighted","isLoading","searchTerm","sortBy","sortDirection","playlistOrdered","sortedColumn","v","ariaSort","trackPositions","i","colspan","buildFlatList","totalItems","rawEnd","visibleItems","totalHeight","topPad","allCached","group","opt","allTracks","current","currentIdx","nextIdx","next","flatIdx","rowTop","rowBottom","idx","anchorIdx","from","to","updated","element_default","CLASS","NAME","defineElement"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/facets/themes/winamp/browser/element.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/facet/index.html new file mode 120000 index 00000000..435537c4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/facet/index.html @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/browser/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/facet/index.html.br new file mode 120000 index 00000000..a17c103f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/browser/facet/index.html.br @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/browser/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js new file mode 120000 index 00000000..665951c4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/common/ui.js \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js.br new file mode 120000 index 00000000..7fe2ea53 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/common/ui.js.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js.map new file mode 120000 index 00000000..22770542 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/common/ui.js.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/common/ui.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css new file mode 120000 index 00000000..3d1f32fe --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/facet.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css.br new file mode 120000 index 00000000..efc01ba3 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/facet.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css.map new file mode 120000 index 00000000..add9d97b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/facet.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet/index.html new file mode 120000 index 00000000..9ab69400 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet/index.html @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/facet/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet/index.html.br new file mode 120000 index 00000000..e676d2c4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/facet/index.html.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/facet/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css new file mode 120000 index 00000000..7e10b384 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/fonts.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css.br new file mode 120000 index 00000000..35dd24a8 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/fonts.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css.map new file mode 120000 index 00000000..ce1f07db --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/fonts.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/fonts.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css new file mode 120000 index 00000000..2c1b8555 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/index.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css.br new file mode 120000 index 00000000..fc076a2a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css.br @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/index.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css.map new file mode 120000 index 00000000..5f3dd561 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/index.css.map @@ -0,0 +1 @@ +../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/index.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js new file mode 100644 index 00000000..efce9a27 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js @@ -0,0 +1,107 @@ +import{b as f,e as h,f as o,i as b}from"../../../../chunk-IA3NIKPO.js";import"../../../../chunk-7NEQFE27.js";import"../../../../chunk-NYGD7JS5.js";import"../../../../chunk-WMITNTCW.js";import"../../../../chunk-OBMOK4KY.js";import"../../../../chunk-HCA2HGAZ.js";import{o as n}from"../../../../chunk-XILA3E7E.js";import{a as e}from"../../../../chunk-75KFZLU6.js";var t=class extends f{static{e(this,"TrackDetailsElement")}constructor(){super(),this.attachShadow({mode:"open"})}$controller=n(void 0);$favourites=n(void 0);currentTrack=e(()=>this.$controller.value?.currentTrack(),"currentTrack");connectedCallback(){super.connectedCallback();let a=o(this,"controller-orchestrator-selector"),s=o(this,"favourites-orchestrator-selector");b({controller:a,favourites:s}).then(()=>{this.$controller.value=a,this.$favourites.value=s})}toggleFavourite=e(()=>{let a=this.currentTrack();a&&this.$favourites.value?.toggle(a)},"toggleFavourite");render({html:a}){let s=this.currentTrack(),l=s?this.$favourites.value?.isFavourite(s)??!1:!1,c=s?.tags?.title??"\u2014",i=s?.tags?.artist??"\u2014",d=s?.tags?.album??"\u2014",p=s?.tags?.year??null,u=s?.stats?.duration??null,$=u!=null?k(u):"\u2014",w=s?.stats?.bitrate!=null?`${Math.round(s.stats.bitrate/1e3)} kbps`:"\u2014",g=s?.stats?.sampleRate!=null?`${Math.round(s.stats.sampleRate/1e3)} kHz`:"\u2014",m=s?.stats?.codec??"\u2014",v=s?.stats?.numberOfChannels??null;return a` + + + + + +
    + ${s?a` +
    + Track +
    + Title + ${c} +
    +
    + Artist + ${i} +
    +
    + Album + ${d} +
    + ${p!=null?a`
    + Year + ${p} +
    `:a``} +
    + +
    + Audio +
    + Duration + ${$} +
    +
    + Bitrate + ${w} +
    +
    + Sample rate + ${g} +
    +
    + Codec + ${m} +
    + ${v!=null?a`
    + Channels + ${v} +
    `:a``} +
    + + + `:a`
    No track playing
    `} +
    + `}},C=t,M=t,y="dtw-winamp-track-details";h(y,t);function k(r){let a=Math.floor(r/1e3),s=Math.floor(a/60),l=a%60;return`${s}:${l.toString().padStart(2,"0")}`}e(k,"formatDuration");export{M as CLASS,y as NAME,C as default}; + +//# sourceMappingURL=./element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js.br new file mode 100644 index 0000000000000000000000000000000000000000..a94c196dc8380593449f9860eedb4140259ec6e9 GIT binary patch literal 1320 zcmb0>C&=(5fB%;M|7!Mb%41J+nEdV7>f@Ci6IJqhESfww^Vq+;ZY6$eX;W*{cAb6O z-@1rqJgfe1mv-yKqNx%uK6FuIzdZ1S*5uPxH+I?WvbKx5yQ=y1_Q{9Wes1rzs@Q2& zy{FEmVrBE}zpH0=f9>Ax<~f*POX*)^#f5xpSsVP9YhR`&mOJZhh_8!UXWl|d=-SiXKYb71IB>sN1A*4%bXRORi6aBWoBU>p24 zLFeoBLrkkuooAE;>neo^b0kho{nl!^E$4cnWc3*5=PvDH>gP}fa*b5FK= z%tTYU{Kzveb5}HkDQ)W$?3yY%?c0_6wp`qgG#w=8`31v@OcDi=oo#o9D%j;aT{r?s^M_m%BE%PdtU9@y-^p;~i=EoNu{ipSQ*=i-; zn$IVuE!*XE`{o3l`+m#oE^aloi{4UExLwBn^)$Z%cZ&6NSi`5z_zIWsS8_r=){ z4@yYf(3UM)*Osgl-6U;kY9f7Y#e1J?ty#@;a~TSgSR9=^zVuzrVEuh)&zhrKILo%p z(jeQvW4WsF9Dtb4B< z7SS=V=&e=IcS>=!Wj>!F=Cp0XR>A(7ecWqjx!b$w9ZY%jnxod?%E<}LGuZRpm46(O z&$alnfc-~o8^a2jjSHs)e+#~Nj&Ysh?_#%qQqNv^Muw&?_MSU4`SGO_HczI@Tu4dd zzj#6BCI3;KBlqlY@0E7(mA78B;LfM(W}2sNN?b`Ylx*iJJGI$rZN-V+hA*z&Zpj^N z%P*_GIx5Jz-orwemFd!PJvGKZJS$&1oLrN$=~-`%kcYfzTkhkVjm{?*_dLlki#&d< zdY7%M`7L+XnR}nQh`h~^7jbPBVLWe^Rp_ep`Blk*-N!2?FN*bLUU%Kg=C*~_tBcjf zdYjHz3P^`--ZEwW|C4dyQ?iU?l4f4?oNYh5;@WA=U$r78S#_sw{ajM*5V)D^->F*{ zm)JIBFMhU|Yv#MP>FKN;%tr%tT_O!8rOq{i^VY!}5vO_S@P{*Df$j z%sQ696niM^NBZ_%H*YsA-?cKy{m!ASoLlssRLu$T@rVfc!&H^!dU9(MpSW(r1c%6e zCcO-=(5AmC#eH%|+TxD3=_Q5Cuyo#Hb?nH2Dz~=91wG#U sFHxc824B6kl@|VaTX14$R&~M7?;jk*{cp#-kCnaHEc*KN$6W=S0BPxo{Qv*} literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js.map new file mode 120000 index 00000000..f9479c1e --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/track-details/element.js.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/track-details/element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/README/index.html b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/README/index.html new file mode 120000 index 00000000..ed5290c5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/README/index.html @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/README/index.html \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/README/index.html.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/README/index.html.br new file mode 120000 index 00000000..8420d44b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/README/index.html.br @@ -0,0 +1 @@ +../../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/README/index.html.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css new file mode 120000 index 00000000..13c025e6 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/base-skin.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css.br new file mode 120000 index 00000000..efeee6aa --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/base-skin.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css.map new file mode 120000 index 00000000..e88296bb --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/base-skin.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/base-skin.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css new file mode 120000 index 00000000..078f7121 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/context-menu.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css.br new file mode 120000 index 00000000..2c5790a5 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/context-menu.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css.map new file mode 120000 index 00000000..badb486c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/context-menu.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/context-menu.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css new file mode 120000 index 00000000..74fc496b --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/equalizer-window.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css.br new file mode 120000 index 00000000..310e526c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/equalizer-window.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css.map new file mode 120000 index 00000000..7cbbf10a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/equalizer-window.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/equalizer-window.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css new file mode 120000 index 00000000..b16f3842 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/gen-window.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css.br new file mode 120000 index 00000000..0ffa6c3c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/gen-window.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css.map new file mode 120000 index 00000000..8f6bcc29 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/gen-window.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/gen-window.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css new file mode 120000 index 00000000..512de5ed --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/main-window.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css.br new file mode 120000 index 00000000..1c659d63 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/main-window.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css.map new file mode 120000 index 00000000..56878271 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/main-window.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/main-window.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css new file mode 120000 index 00000000..6c239c50 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/milkdrop-window.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css.br new file mode 120000 index 00000000..6bd4cc4f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/milkdrop-window.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css.map new file mode 120000 index 00000000..e3afe415 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/milkdrop-window.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/milkdrop-window.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css new file mode 120000 index 00000000..d7d9caa3 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/mini-time.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css.br new file mode 120000 index 00000000..c4d2181a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/mini-time.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css.map new file mode 120000 index 00000000..f206369c --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/mini-time.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/mini-time.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css new file mode 120000 index 00000000..5fb1cb79 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/playlist-window.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css.br new file mode 120000 index 00000000..0322e597 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/playlist-window.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css.map new file mode 120000 index 00000000..ad67653a --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/playlist-window.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/playlist-window.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css new file mode 120000 index 00000000..b264aba3 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/webamp.css \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css.br new file mode 120000 index 00000000..16100034 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css.br @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/webamp.css.br \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css.map new file mode 120000 index 00000000..972910d4 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/vendor/webamp.css.map @@ -0,0 +1 @@ +../../../../../bafybeigx2hscmy6rxj5pb6xwdmcm2ufun4miwt5pdzblxsi5z23mo72lai/facets/themes/winamp/vendor/webamp.css.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js new file mode 100644 index 00000000..c9c6cd8f --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js @@ -0,0 +1,364 @@ +import{a as ct}from"../../../../chunk-TI42YQ3Z.js";import{a as Z}from"../../../../chunk-IYPBPO5F.js";import"../../../../chunk-H4ULOOR2.js";import"../../../../chunk-OLJU5MZL.js";import{b as ot,e as rt,f as Q,i as dt}from"../../../../chunk-IA3NIKPO.js";import"../../../../chunk-7NEQFE27.js";import"../../../../chunk-NYGD7JS5.js";import"../../../../chunk-WMITNTCW.js";import"../../../../chunk-OBMOK4KY.js";import"../../../../chunk-HCA2HGAZ.js";import{j as U,n as V,o as M,p as z}from"../../../../chunk-XILA3E7E.js";import{a as c}from"../../../../chunk-75KFZLU6.js";var et="facets/themes/winamp/winamp/ui";function O(b=et){try{return{eqOpen:!0,playlistOpen:!0,milkdropOpen:!0,eqOn:!1,eqSliders:null,mainShade:!1,eqShade:!1,playlistShade:!1,positions:null,sizes:null,...JSON.parse(localStorage.getItem(b)??"{}")}}catch{return{eqOpen:!0,playlistOpen:!0,milkdropOpen:!0,eqOn:!1,eqSliders:null,mainShade:!1,eqShade:!1,playlistShade:!1,positions:null,sizes:null}}}c(O,"loadUiState");var tt=[60,170,310,600,1e3,3e3,6e3,12e3,14e3,16e3],it=class b{static{c(this,"WinampFFT")}static#n=6.2831853;static#C=1.5707963268;constructor(){this.#F=this.#E(1024),this.#o=this.#T(1024),this.#$=this.#W(1024,1),this.#i=this.#x(1024),this.#p=new Float32Array(1024),this.#m=new Float32Array(1024)}#F;#o;#$;#i;#p;#m;#E(t){let e=Array.from({length:t},(i,s)=>s);for(let i=0,s=0;ii){let a=e[i];e[i]=e[s],e[s]=a}let n=t>>1;for(;n>=1&&s>=n;)s-=n,n>>=1;s+=n}return e}#T(t){let e=[],i=2;for(;i<=t;){let s=-2*Math.PI/i;e.push(new Float32Array([Math.cos(s),Math.sin(s)])),i<<=1}return e}#W(t,e){let i=1/t*b.#n;return Float32Array.from({length:t},(s,n)=>Math.pow(.5+.5*Math.sin(n*i-b.#C),e))}#x(t){let e=new Float32Array(t/2),i=.04;for(let s=0;s>1;for(let g=0;g{let t=this.$controller.value?.$output.value?.tracks.collection();return t?.state!=="loaded"?new Map:new Map(t.data.map(e=>[e.id,e]))});#Z=U(()=>{let{past:t,now:e,future:i}=this.#o.value;return[...t,...e?[e]:[],...i]});#ut=U(()=>{let t=this.#Z(),e=this.#i.value;if(!e||e.fromIdx===e.toIdx)return t;let i=[...t],s=this.#s.value;if(e.multiDrag&&s.size>1){let a=[...s].sort((d,p)=>d-p),l=e.toIdx-e.fromIdx,r=new Set(a),h=new Array(i.length).fill(null);a.forEach(d=>{h[d+l]=i[d]});let o=i.filter((d,p)=>!r.has(p)),v=0;for(let d=0;d{let t=this.#ut(),e=this.#ht(),i=this.#Z(),{now:s}=this.#o.value,n=this.#i.value,a=this.#s.value,l=s?t.indexOf(s):-1,r=n&&n.multiDrag&&a.size>1?new Set([...a].map(h=>i[h])):null;return t.map((h,o)=>{let v=e.get(h.id),d=o===l,p=n?n.multiDrag&&a.size>1?r?.has(h)??!1:o===n.toIdx:a.has(o),m=v?.tags?.artist??"",g=v?.tags?.title??"",y=m?`${m} - ${g}`:g,w=v?.stats?.duration?v.stats.duration/1e3:0,$=w>0?`${Math.floor(w/60)}:${String(Math.floor(w%60)).padStart(2,"0")}`:"",x=d?"#FFFFFF":"#00FF00",k=p&&!d?"#0000FF":"transparent";return{id:h.id,item:h,idx:o,n:o+1,label:y,dur:$,color:x,bg:k}})});#q=null;#R=void 0;#H=void 0;#tt=[];$controller=M(void 0);$repeatShuffle=M(void 0);audio=c(()=>this.$controller.value?.audio(),"audio");currentTrack=c(()=>this.$controller.value?.currentTrack(),"currentTrack");isPlaying=c(()=>this.$controller.value?.isPlaying(),"isPlaying");#t(){let t=this.namespace;return t?`${et}/${t}`:et}connectedCallback(){super.connectedCallback();let t=Q(this,"controller-orchestrator-selector"),e=Q(this,"repeat-shuffle-engine-selector");dt({controller:t,repeatShuffle:e}).then(()=>{this.$controller.value=t,this.$repeatShuffle.value=e,this.effect(()=>{let l=this.$controller.value?.$queue.value,r=l?.past()??[],h=l?.now()??null,o=l?.future()??[];clearTimeout(this.#$),this.#$=setTimeout(()=>{this.#o.value={past:r,now:h,future:o}},100)}),this.effect(()=>{let l=this.currentTrack();if(!l)return;let r=this.audio(),h=(l.tags?.artist??"").toUpperCase(),o=(l.tags?.title??"").toUpperCase(),v=l.stats?.duration?l.stats.duration/1e3:z(()=>r?.duration()??0),d=Math.floor(v/60),p=Math.floor(v%60);this.#J.value=`${h} - ${o} (${d}:${p.toString().padStart(2,"0")})`,this.#x=0}),this.effect(()=>{let l=this.#st(),r=this.isPlaying();z(()=>{l&&this.#_(),r&&(this.#_(),this.#z?.resume(),this.#Xt())})}),this.effect(()=>{let l=!!this.$controller.value?.$queue.value?.now(),r=this.audio()?.loadingState(),h=l&&typeof r=="object"&&r!==null&&"error"in r,o=l&&!h&&r!=="loaded";clearTimeout(this.#F),h?this.#n.value="Audio error ...":o?this.#F=setTimeout(()=>{this.#n.value="Loading audio ..."},2e3):(this.#n.value==="Loading audio ..."||this.#n.value==="Audio error ...")&&(this.#n.value=null)}),this.effect(()=>{let l=this.#S.value;if(l===null)return;let r=this.audio()?.progress()??0;Math.abs(r-l)<.005&&z(()=>{this.#S.value=null})}),this.effect(()=>{this.$controller.value?.$queue.value?.now()?.id,z(()=>{this.#S.value=null})})});let i=O(this.#t());if(this.#I.value=i.eqOpen,this.#A.value=i.eqOn,this.#f.value=i.mainShade,this.#y.value=i.eqShade,this.#L.value=i.playlistShade,this.#k.value=i.playlistOpen,this.#w.value=i.milkdropOpen,i.eqSliders){let l=i.eqSliders;this.#d.value={preamp:l.preamp??50,bands:tt.map((r,h)=>l[`band_${h}`]??50)}}if(i.sizes&&(i.sizes.playlist&&Object.assign(this.#r,i.sizes.playlist),i.sizes.milkdrop&&Object.assign(this.#e,i.sizes.milkdrop)),i.positions)i.positions.main&&Object.assign(this.#c,i.positions.main),i.positions.eq&&Object.assign(this.#h,i.positions.eq),i.positions.playlist&&Object.assign(this.#a,i.positions.playlist),i.positions.milkdrop&&Object.assign(this.#u,i.positions.milkdrop);else{let l=232+this.#r.height,r=this.#w.value,h=r?275+this.#e.width:275,o=r?Math.max(l,this.#e.height):l,v=Math.round((window.innerWidth-h)/2),d=Math.round((window.innerHeight-o)/2);this.#c.x=v,this.#c.y=d,this.#h.x=v,this.#h.y=d+116,this.#a.x=v,this.#a.y=d+232,this.#u.x=v+275,this.#u.y=d}this.effect(()=>{let l=!!this.#st();if(!this.#w.value){z(()=>this.#Mt());return}l&&z(()=>{requestAnimationFrame(()=>{let r=this.root().querySelector("#milkdrop-canvas");r instanceof HTMLCanvasElement&&(this.#q?this.#St():this.#ee(r))})})}),this.forceRender(),this.#O=this.root().querySelector("#marquee > div"),this.#Y=this.root().querySelector(".playlist-scrollbar-handle"),requestAnimationFrame(()=>{this.#N(),this.#it()});let s=this.root().querySelector(".playlist-middle-center"),n=this.root().querySelector(".playlist-scrollbar-handle"),a=this.root().querySelector(".playlist-scrollbar");s instanceof HTMLElement&&s.addEventListener("scroll",()=>this.#it()),n instanceof HTMLElement&&a instanceof HTMLElement&&s instanceof HTMLElement&&n.addEventListener("mousedown",l=>{l.preventDefault();let r=13,o=a.clientHeight-18,v=l.clientY,d=parseFloat(n.style.top)||0,p=s.scrollHeight-s.clientHeight,m=c(y=>{let $=Math.max(0,Math.min(o,d+y.clientY-v))/o*p;s.scrollTop=Math.round($/r)*r},"onMove"),g=c(()=>{document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",g)},"onUp");document.addEventListener("mousemove",m),document.addEventListener("mouseup",g)}),this.#dt=setInterval(()=>{let l=z(()=>this.#n.value??this.#J.value),r=b.#pt,h=b.#Nt,o=b.#mt;if(l.length>=r){let v=(l.length+o.length)*h;this.#x=b.#Wt(this.#x+h,v)}else this.#x=0;this.#O?.isConnected||(this.#O=this.root().querySelector("#marquee > div")),this.#O&&(this.#O.style.transform=`translateX(-${this.#x}px)`)},220),this.root().addEventListener("pointerdown",l=>{if(!(l.target instanceof HTMLElement))return;let r=l.target.closest("#main-window, #equalizer-window, #playlist-window, #playlist-window-shade, #milkdrop-window");if(r instanceof HTMLElement&&(r.id==="main-window"?this.#M.value="main":r.id==="equalizer-window"?this.#M.value="eq":r.id==="milkdrop-window"?this.#M.value="milkdrop":this.#M.value="playlist"),l.target.tagName!=="DIV"||!l.target.id)return;let h=l.target;h.classList.add("winamp-active");let o=c(()=>{h.classList.remove("winamp-active"),document.removeEventListener("pointerup",o)},"cleanup");document.addEventListener("pointerup",o)}),this.#T=l=>{this.#W=l.composedPath().includes(this)},document.addEventListener("mousedown",this.#T),this.#E=l=>{this.#W&&this.#M.value==="playlist"&&(l.key!=="Delete"&&l.key!=="Backspace"||this.#Et())},document.addEventListener("keydown",this.#E),this.root().addEventListener("mousedown",this.#vt)}disconnectedCallback(){clearInterval(this.#dt),this.#T&&document.removeEventListener("mousedown",this.#T),this.#E&&document.removeEventListener("keydown",this.#E),this.root().removeEventListener("mousedown",this.#vt),this.#D!==void 0&&(cancelAnimationFrame(this.#D),this.#D=void 0),this.#Mt(),this.#g&&this.#g.disconnect(),this.#l&&this.#l.disconnect(),this.#z=null,this.#g=null,this.#v=[],this.#l=null}static#et=15;static#At(t,e){return Math.abs(t-e){if(!(t.target instanceof HTMLElement))return;if(t.target.id==="playlist-resize-target"){this.#Pt(t);return}if(t.target.id==="gen-resize-target"){this.#Dt(t);return}let e=t.target.closest(".draggable");if(!e)return;let i=e.closest("#main-window, #equalizer-window, #playlist-window, #milkdrop-window");if(!(i instanceof HTMLElement))return;t.preventDefault();let s=this.#Rt(),n=s.find(m=>m.el===i);if(!n)return;let a=new Set;if(i.id==="main-window"){let m=c(g=>{for(let y of s)y===g||y===n||a.has(y)||b.#zt(g.box(),y.box())&&(a.add(y),m(y))},"trace");m(n)}let l=t.clientX,r=t.clientY,h={x:n.pos.x,y:n.pos.y},o=[...a].map(m=>({w:m,x:m.pos.x,y:m.pos.y})),v=s.filter(m=>m!==n&&!a.has(m)).map(m=>m.box()),d=c(m=>{let g=m.clientX-l,y=m.clientY-r,w=h.x+g,$=h.y+y,x=b.#Ot({...n.box(),x:w,y:$},v),k=x.x??w,C=x.y??$;n.pos.x=k,n.pos.y=C,i.style.left=`${k}px`,i.style.top=`${C}px`;let D=k-w,P=C-$;for(let{w:T,x:Y,y:R}of o)T.pos.x=Y+g+D,T.pos.y=R+y+P,T.el.style.left=`${T.pos.x}px`,T.el.style.top=`${T.pos.y}px`},"onMove"),p=c(()=>{document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",p),this.forceRender(),this.#B()},"onUp");document.addEventListener("mousemove",d),document.addEventListener("mouseup",p)},"#onWindowDragStart");#Dt=c(t=>{t.preventDefault();let e=this.root().querySelector("#milkdrop-window");if(!(e instanceof HTMLElement))return;let i=t.clientX,s=t.clientY,n=this.#e.width,a=this.#e.height,l=25,r=29,h=275,o=116,v=c(p=>{let m=Math.max(h,n+Math.round((p.clientX-i)/l)*l),g=Math.max(o,a+Math.round((p.clientY-s)/r)*r);this.#e.width=m,this.#e.height=g,e.style.width=`${m}px`,e.style.height=`${g}px`;let y=this.root().querySelector("#milkdrop-canvas");if(y instanceof HTMLCanvasElement){let w=y.clientWidth,$=y.clientHeight;y.width=w,y.height=$,this.#q?.setRendererSize(w,$)}},"onMove"),d=c(()=>{document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",d),this.#B()},"onUp");document.addEventListener("mousemove",v),document.addEventListener("mouseup",d)},"#onMilkdropResizeStart");#Pt=c(t=>{t.preventDefault();let e=this.root().querySelector("#playlist-window");if(!(e instanceof HTMLElement))return;let i=t.clientX,s=t.clientY,n=this.#r.width,a=this.#r.height,l=25,r=29,h=275,o=116,v=c(p=>{let m=Math.max(h,n+Math.round((p.clientX-i)/l)*l),g=Math.max(o,a+Math.round((p.clientY-s)/r)*r);this.#r.width=m,this.#r.height=g,e.style.width=`${m}px`,e.style.height=`${g}px`},"onMove"),d=c(()=>{document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",d),this.#B()},"onUp");document.addEventListener("mousemove",v),document.addEventListener("mouseup",d)},"#onPlaylistResizeStart");#it(){this.#Y?.isConnected||(this.#Y=this.root().querySelector(".playlist-scrollbar-handle"));let t=this.#Y,e=this.root().querySelector(".playlist-middle-center"),i=this.root().querySelector(".playlist-scrollbar");if(!t||!(e instanceof HTMLElement)||!(i instanceof HTMLElement))return;let n=Math.max(0,i.clientHeight-18),a=e.scrollHeight>e.clientHeight?e.scrollTop/(e.scrollHeight-e.clientHeight):0;t.style.top=`${a*n}px`}#Rt(){let t=this.root(),e=this.#r;return[{el:t.querySelector("#main-window"),pos:this.#c,box:c(()=>({x:this.#c.x,y:this.#c.y,width:275,height:this.#f.value?14:116}),"box")},{el:t.querySelector("#equalizer-window"),pos:this.#h,box:c(()=>({x:this.#h.x,y:this.#h.y,width:275,height:this.#y.value?14:116}),"box")},{el:t.querySelector("#playlist-window"),pos:this.#a,box:c(()=>({x:this.#a.x,y:this.#a.y,width:e.width,height:e.height}),"box")},{el:t.querySelector("#milkdrop-window"),pos:this.#u,box:c(()=>({x:this.#u.x,y:this.#u.y,width:this.#e.width,height:this.#e.height}),"box")}].filter(i=>i.el!=null)}static#pt=31;static#mt=" *** ";static#Nt=5;static#Wt(t,e){return(t%e+e)%e}static#Yt(t){let e=b.#pt;return t.length>=e?`${t}${b.#mt}${t}`:t.padEnd(e," ")}static#gt=["rgb(0,0,0)","rgb(24,33,41)","rgb(239,49,16)","rgb(206,41,16)","rgb(214,90,0)","rgb(214,102,0)","rgb(214,115,0)","rgb(198,123,8)","rgb(222,165,24)","rgb(214,181,33)","rgb(189,222,41)","rgb(148,222,33)","rgb(41,206,16)","rgb(50,190,16)","rgb(57,181,16)","rgb(49,156,8)"];#st(){return this.$controller.value?.$audio.value??null}#_(){if(this.#l)return;let t=this.#st();if(!t)return;let{context:e,input:i,destination:s}=t.webAudio;this.#z=e,this.#g=e.createGain(),this.#v=tt.map(n=>{let a=e.createBiquadFilter();return a.type="peaking",a.frequency.value=n,a.Q.value=1,a.gain.value=0,a}),this.#l=e.createAnalyser(),this.#l.fftSize=1024,this.#l.smoothingTimeConstant=0,i.disconnect(s),i.connect(this.#g),this.#g.connect(this.#v[0]);for(let n=0;n{if(y.width=I,y.height=q,w){w.fillStyle="rgb(0,0,0)",w.fillRect(0,0,I,q),w.fillStyle="rgb(24,33,41)";for(let F=0;F1?Math.round(E/(q-1)*F):0;x.fillStyle=b.#gt[_]??"rgb(0,0,0)",x.fillRect(0,E,1,1)}}D=q,P=I},"rebuildCaches"),Y=Math.log10(512),R=.91,X=c(()=>{this.#D=requestAnimationFrame(X);let I=t.width,q=t.height;(I!==P||q!==D)&&T(I,q);let F=15,E=q-1,_=E/F,j=q>=16?2:0;this.#_(),a.getByteTimeDomainData(o);for(let f=0;f<1024;f++)r[f]=(o[f]-128)/24;l.timeToFrequencyDomain(r,h);for(let f=0;f=E*256&&(p[f]=E*256),d[f]-=s,d[f]0&&e.drawImage($,0,q-A,1,A,f,q-A,1,A);let H=g[f]+1-j;H>0&&e.drawImage(k,0,0,1,1,f,q-H,1,1)}},"step");X()}#j(){if(!this.#g||!this.#v.length)return;let{preamp:t,bands:e}=this.#d.value,i=this.#A.value,s=i?(t-50)/50*12:0;this.#g.gain.value=Math.pow(10,s/20),this.#v.forEach((n,a)=>{n.gain.value=i?(e[a]-50)/50*12:0})}#nt(){let{preamp:t,bands:e}=this.#d.value,i={preamp:t};e.forEach((n,a)=>{i[`band_${a}`]=n});let s=O(this.#t());localStorage.setItem(this.#t(),JSON.stringify({...s,eqOn:this.#A.value,eqSliders:i}))}#_t(t,e,i=0){t.preventDefault();let s=52,n=5,a=t.clientY,l=e?this.#d.value.preamp:this.#d.value.bands[i],r=Math.floor((1-l/100)*s),h=c(v=>{let d=Math.max(0,Math.min(s,r+v.clientY-a)),p=Math.round((1-d/s)*100),m=Math.abs(p-50){document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",o),this.#nt()},"onUp");document.addEventListener("mousemove",h),document.addEventListener("mouseup",o)}#jt=c(()=>{this.#A.value=!this.#A.value,this.#j(),this.#nt(),requestAnimationFrame(()=>this.#N())},"#toggleEqOn");#Ut=c(()=>{this.#d.value={preamp:50,bands:Array(10).fill(50)},this.#j(),this.#nt(),requestAnimationFrame(()=>this.#N())},"#resetEq");static#ft=[[211,34,27],[239,82,33],[239,123,33],[224,146,40],[224,146,40],[224,146,40],[224,178,40],[239,220,49],[239,220,49],[239,220,49],[210,235,53],[210,235,53],[164,226,56],[164,226,56],[137,226,48],[113,205,52],[90,176,44],[42,154,22],[42,154,22]];#N(){let t=this.root().querySelector("#eqGraph");if(!(t instanceof HTMLCanvasElement))return;let e=t.getContext("2d");if(!e)return;let{bands:i}=this.#d.value,s=t.height-1,n=2,a=108;e.clearRect(0,0,t.width,t.height);for(let l=0;l<=a;l++){let r=l/a*9,h=Math.min(9,Math.floor(r)),o=Math.min(9,h+1),v=i[h]*(1-(r-h))+i[o]*(r-h),d=Math.round((1-v/100)*s),[p,m,g]=b.#ft[d]??b.#ft[0];e.fillStyle=`rgb(${p},${m},${g})`,e.fillRect(n+l,d,1,1)}}#yt=c(t=>{if(!(t.target instanceof HTMLInputElement))return;let e=Number(t.target.value)/100;this.$controller.value?.$audio.value?.adjustVolume({volume:e}),this.#n.value=`Volume: ${Math.round(e*100)}%`,clearTimeout(this.#C),this.#C=setTimeout(()=>{this.#n.value=null},2e3)},"#onVolumeInput");#Bt=c(t=>{t.target instanceof HTMLInputElement&&(this.#ct.value=Number(t.target.value))},"#onBalanceInput");#Kt=c(t=>{if(!(t.target instanceof HTMLInputElement))return;let e=Number(t.target.value)/100;this.#S.value=e;let i=this.audio()?.duration()??0,s=Math.round(e*i),n=Math.floor(s/60),a=s%60;this.#n.value=`Seek to: ${n}:${String(a).padStart(2,"0")} (${Math.round(e*100)}%)`,clearTimeout(this.#C)},"#onPositionInput");#Gt=c(t=>{if(!(t.target instanceof HTMLInputElement))return;let e=Number(t.target.value)/100,i=this.$controller.value?.$queue.value?.now()?.id;i&&this.$controller.value?.$audio.value?.seek({audioId:i,percentage:e}),this.#n.value=null},"#onPositionChange");#Jt=c(()=>{let t=this.$controller.value?.$queue.value?.now()?.id;if(t){let e=this.audio()?.progress();this.$controller.value?.$audio.value?.reload({audioId:t,play:!0,progress:e})}},"#reload");#U=c(()=>{let t=this.$controller.value?.$queue.value?.now()?.id,e=this.audio()?.loadingState();if(typeof e=="object"&&e!==null&&"error"in e){this.#Jt();return}this.#X.value=!1,this.isPlaying()&&t?this.$controller.value?.$audio.value?.pause({audioId:t}):t&&this.$controller.value?.$audio.value?.play({audioId:t})},"#playPause");#wt=c(()=>{let t=this.$controller.value?.$queue.value?.now()?.id;t&&(this.isPlaying()&&this.$controller.value?.$audio.value?.pause({audioId:t}),this.$controller.value?.$audio.value?.seek({audioId:t,percentage:0}),this.#X.value=!0)},"#stop");#lt=c(()=>{window.open("l/?path=facets%2Fconnect%2Findex.html","_blank")},"#openConnect");#$t=c(()=>{this.$controller.value?.$queue.value?.shift()},"#next");#xt=c(()=>{this.$controller.value?.$queue.value?.unshift()},"#previous");#Vt=c(()=>{let t=this.$repeatShuffle.value;t&&t.setShuffle(!t.shuffle())},"#toggleShuffle");#Qt=c(()=>{let t=this.$repeatShuffle.value;t&&t.setRepeat(!t.repeat())},"#toggleRepeat");#Zt=c(()=>{let t=232+this.#r.height,e=this.#w.value,i=e?275+this.#e.width:275,s=e?Math.max(t,this.#e.height):t,n=Math.round((window.innerWidth-i)/2),a=Math.round((window.innerHeight-s)/2);this.#c.x=n,this.#c.y=a,this.#h.x=n,this.#h.y=a+116,this.#a.x=n,this.#a.y=a+232,this.#u.x=n+275,this.#u.y=a,this.forceRender(),this.#B()},"#centerWindows");#B=c(()=>{let t=O(this.#t());localStorage.setItem(this.#t(),JSON.stringify({...t,positions:{main:{...this.#c},eq:{...this.#h},playlist:{...this.#a},milkdrop:{...this.#u}},sizes:{playlist:{...this.#r},milkdrop:{...this.#e}}}))},"#saveLayout");#bt=c(()=>{this.#w.value=!this.#w.value;let t=O(this.#t());localStorage.setItem(this.#t(),JSON.stringify({...t,milkdropOpen:this.#w.value}))},"#toggleMilkdrop");#te=c(()=>{let t=this.root().querySelector("#milkdrop-canvas");t instanceof HTMLCanvasElement&&(document.fullscreenElement?document.exitFullscreen():(t.requestFullscreen(),t.addEventListener("fullscreenchange",()=>{let e=t.clientWidth,i=t.clientHeight;t.width=e,t.height=i,this.#q?.setRendererSize(e,i)},{once:!0})))},"#toggleMilkdropFullscreen");#ee=c(async t=>{if(this.#_(),!this.#z||!this.#l)return;let{default:e}=await import("../../../../butterchurn-Q7SUG6GB.js"),i=t.clientWidth||t.offsetWidth||this.#e.width,s=t.clientHeight||t.offsetHeight||this.#e.height-34;t.width=i,t.height=s,this.#q=e.createVisualizer(this.#z,t,{width:i,height:s}),this.#q.connectAudio(this.#l);let{default:n}=await import("../../../../base-DQOOZU4W.js"),a=typeof n?.default=="object"&&n.default!==null?n.default:n;this.#tt=Object.values(a??{}),this.#K(0),this.#H=setInterval(()=>this.#K(5.7),15e3),this.#St()},"#initButterchurn");#St=c(()=>{if(this.#R!==void 0)return;let t=c(()=>{if(this.#R=requestAnimationFrame(t),this.isPlaying())try{this.#q?.render()}catch{this.#K(0)}},"step");t(),this.#H===void 0&&this.#tt.length&&(this.#H=setInterval(()=>this.#K(5.7),15e3))},"#startButterchurn");#K=c(t=>{let e=this.#tt;if(!e.length)return;let i=e[Math.floor(Math.random()*e.length)];this.#q?.loadPreset(i,t)},"#cyclePreset");#Mt=c(()=>{this.#R!==void 0&&(cancelAnimationFrame(this.#R),this.#R=void 0),this.#H!==void 0&&(clearInterval(this.#H),this.#H=void 0)},"#stopButterchurn");#ie=c(()=>{let t=this.$controller.value?.$queue.value?.now()?.id;t&&this.isPlaying()&&this.$controller.value?.$audio.value?.pause({audioId:t}),this.#V.value=!1},"#closeMain");open=c(()=>{this.#V.value=!0},"open");#at=c(()=>{this.#I.value=!this.#I.value;let t=O(this.#t());localStorage.setItem(this.#t(),JSON.stringify({...t,eqOpen:this.#I.value}))},"#toggleEq");#se=c(()=>{this.#Q.value=!this.#Q.value},"#toggleTimeCountdown");#kt=c(()=>{this.#f.value=!this.#f.value;let t=O(this.#t());localStorage.setItem(this.#t(),JSON.stringify({...t,mainShade:this.#f.value}))},"#toggleMainShade");#G=c(()=>{this.#y.value=!this.#y.value;let t=O(this.#t());localStorage.setItem(this.#t(),JSON.stringify({...t,eqShade:this.#y.value})),this.#y.value||requestAnimationFrame(()=>this.#N())},"#toggleEqShade");#ot=c(()=>{this.#L.value=!this.#L.value;let t=O(this.#t());localStorage.setItem(this.#t(),JSON.stringify({...t,playlistShade:this.#L.value}))},"#togglePlaylistShade");#rt=c(()=>{this.#k.value=!this.#k.value;let t=O(this.#t());localStorage.setItem(this.#t(),JSON.stringify({...t,playlistOpen:this.#k.value}))},"#togglePlaylist");#qt=c((t,e=!1)=>{if(this.#P.value=t,e&&this.#b!==null){let i=Math.min(this.#b,t),s=Math.max(this.#b,t),n=new Set;for(let a=i;a<=s;a++)n.add(a);this.#s.value=n}else this.#b=t,this.#s.value=new Set([t])},"#selectTrack");#Et=c(()=>{let t=this.$controller.value?.$queue.value;if(!t)return;let e=[...this.#s.value].sort((v,d)=>d-v);if(e.length===0)return;let{past:i,now:s,future:n}=this.#o.value,a=i.length,l=s?1:0,r=a+l+n.length;for(let v of e){let d=v{t.preventDefault();let n=this.#s.value.size>1&&this.#s.value.has(e);this.#i.value={fromIdx:e,fromKey:i,toIdx:e,startY:t.clientY,multiDrag:n},this.#p=a=>{let l=this.#i.value;if(!l)return;let r=Math.round((a.clientY-l.startY)/b.#ne),h;if(l.multiDrag){let o=[...this.#s.value].sort((d,p)=>d-p),v=Math.max(-o[0],Math.min(s-1-o[o.length-1],r));h=l.fromIdx+v}else h=Math.max(0,Math.min(s-1,l.fromIdx+r));h!==l.toIdx&&(this.#i.value={...l,toIdx:h})},this.#m=()=>{let a=this.#i.value;if(a&&a.fromIdx!==a.toIdx){let{past:l,now:r,future:h}=this.#o.value,o=[...l,...r?[r]:[],...h],v=this.$controller.value?.$queue.value;if(a.multiDrag){let d=[...this.#s.value].sort((x,k)=>x-k),p=a.toIdx-a.fromIdx,m=new Set(d),g=new Array(o.length).fill(null);d.forEach(x=>{g[x+p]=o[x]});let y=o.filter((x,k)=>!m.has(k)),w=0;for(let x=0;x0?[...d].reverse():d;for(let k of x)v.move({key:o[k].key,to:k+p})}let $=r?g.indexOf(r):l.length;clearTimeout(this.#$),this.#b=a.toIdx,V(()=>{this.#i.value=null,this.#o.value={past:g.slice(0,$),now:r?g[$]??null:null,future:g.slice($+(r?1:0))},this.#s.value=new Set(d.map(x=>x+p)),this.#P.value=a.toIdx})}else{v&&v.move({key:a.fromKey,to:a.toIdx});let[d]=o.splice(a.fromIdx,1);o.splice(a.toIdx,0,d);let p=r?o.indexOf(r):l.length;clearTimeout(this.#$),this.#b=a.toIdx,V(()=>{this.#i.value=null,this.#o.value={past:o.slice(0,p),now:r?o[p]??null:null,future:o.slice(p+(r?1:0))},this.#s.value=new Set([a.toIdx]),this.#P.value=a.toIdx})}}else this.#i.value=null;this.#p&&window.removeEventListener("mousemove",this.#p),this.#m&&window.removeEventListener("mouseup",this.#m),this.#p=null,this.#m=null},window.addEventListener("mousemove",this.#p),window.addEventListener("mouseup",this.#m)},"#onTrackMouseDown");#It=c(t=>{this.#b=t,this.#s.value=new Set([t]),this.#P.value=t;let e=this.$controller.value?.$queue.value;if(!e)return;let s=e.past().length;if(t!==s){if(tthis.#it());let{preamp:e,bands:i}=this.#d.value,s=c((u,S,W=0)=>{let G=Math.floor((1-u/100)*52),at=Math.round(u/100*27),yt=at%14*15,wt=Math.floor(at/14)*65;return t` +
    +
    +
    +
    + `},"bandSlider"),n=this.$controller.value?.$audio.value?.volume()??1,l=`0 -${(Math.round(n*28)-1)*15}px`,r=Math.round(n*100),h=r<50?"left":r>50?"right":"center",o=this.#ct.value,v=o<0?"left":o>0?"right":"center",d=this.audio(),p=this.#M.value,m=this.currentTrack(),g=m?.stats?.bitrate?Math.round(m.stats.bitrate/1e3):null,y=m?.stats?.sampleRate?Math.round(m.stats.sampleRate/1e3):null,w=m?.stats?.numberOfChannels??null,$=w!==null&&w>=2,x=w===1,k=g!=null?[...String(g)].map(u=>t`${u}`):[],C=y!=null?[...String(y)].map(u=>t`${u}`):[],D=this.#S.value,P=d?.duration()??0,T=D!==null?D*P:d?.currentTime()??0,Y=this.#Q.value,R=Y?Math.max(0,P-T):T,X=Math.floor(R/60),I=Math.floor(R%60),q=`${String(X).padStart(2,"0")}:${String(I).padStart(2,"0")}`,F=[...q].map((u,S)=>u===":"?null:t`${u}`),E={mFirst:Math.floor(X/10),mSecond:X%10,sFirst:Math.floor(I/10),sSecond:I%10},{now:_}=this.#o.value,j=this.#Z(),f=this.#ut(),L=this.#ht(),N=this.#Lt(),A=this.#i.value,H=this.#s.value,K=(()=>{let u=L.get(_?.id??"")?.stats?.duration;return u?u/1e3:0})(),ht=j.reduce((u,S)=>{let W=L.get(S.id)?.stats?.duration;return u+(W?W/1e3:0)},0),st=c(u=>{let S=Math.floor(u/3600),W=Math.floor(u%3600/60),G=Math.floor(u%60);return S>0?`${S}:${String(W).padStart(2,"0")}:${String(G).padStart(2,"0")}`:`${W}:${String(G).padStart(2,"0")}`},"fmtDur"),ut=[...`${st(K)}/${st(ht)}`].map(u=>t`${u}`),nt=!!d&&!this.isPlaying()&&!this.#X.value,vt=[...q].map((u,S)=>u===":"?null:t`${u}`),J=L.get(_?.id??""),lt=J?.tags?.artist??"",pt=[...lt?`${lt} - ${J?.tags?.title??""}`.toLowerCase():(J?.tags?.title??"").toLowerCase()].map(u=>t`${u}`),mt=[...q].map((u,S)=>u===":"?null:t`${u}`),gt=this.#n.value??this.#J.value,ft=[...b.#Yt(gt)].map(u=>t`${u}`);return t` + + +
    +
    +
    +
    +
    +
    +
    +
    + ${this.#f.value?t` +
    ${F}
    + `:""} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + ${ft} +
    +
    +
    ${k}
    +
    ${C}
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + +
    + ${this.#y.value?t` +
    +
    +
    + + +
    + `:t` +
    +
    +
    +
    +
    +
    + +
    +
    ${s(e,!0)}
    +
    +
    +
    +
    + ${tt.map((u,S)=>t` +
    ${s(i[S],!1,S)}
    + `)} + `} +
    + + ${this.#L.value&&this.#k.value?t` +
    +
    +
    +
    ${pt}
    +
    ${mt}
    +
    +
    +
    +
    +
    + `:""} + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + ${ct([this.#o.value,H,this.#i.value],()=>t` +
    +
    + ${Z(N,u=>u.id,u=>t` +
    + ${u.n}. ${u.label} +
    + `)} +
    +
    + ${Z(N,u=>u.id,u=>t` +
    + ${u.dur} +
    + `)} +
    +
    + `)} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    ${ut}
    +
    ${vt}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + ${"MILKDROP".split("").map(u=>t` +
    + `)} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + `}},It=B,Lt=B,xt="dtw-winamp";rt(xt,B);export{Lt as CLASS,xt as NAME,It as default}; + +//# sourceMappingURL=./element.js.map \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js.br b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js.br new file mode 100644 index 0000000000000000000000000000000000000000..a34acad10c1d9d8c6030b5998e36ab66a04cf8bc GIT binary patch literal 11987 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 X{K7xgN3VDP&Ylr_Q)R_jwIBQd2fc^= literal 0 HcmV?d00001 diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js.map b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js.map new file mode 100644 index 00000000..19b34bbf --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/facets/themes/winamp/winamp/element.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/element.js"],"sourcesContent":["import {\n defineElement,\n DiffuseElement,\n query,\n whenElementsDefined,\n} from \"~/common/element.js\";\nimport { batch, computed, signal, untracked } from \"~/common/signal.js\";\nimport { repeat } from \"lit-html/directives/repeat.js\";\nimport { guard } from \"lit-html/directives/guard.js\";\n\n/**\n * @import {RenderArg} from \"~/common/element.d.ts\"\n *\n * @import ControllerOrchestrator from \"~/components/orchestrator/controller/element.js\"\n * @import RepeatShuffleEngine from \"~/components/engine/repeat-shuffle/element.js\"\n * @import {Item} from \"@specs/components/engine/queue/types.d.ts\"\n */\n\n////////////////////////////////////////////\n// UI STATE\n////////////////////////////////////////////\n\nconst UI_STATE_KEY = \"facets/themes/winamp/winamp/ui\";\n\n/**\n * @param {string} [key] The localStorage key to load the UI state from.\n * @returns {{ eqOpen: boolean, playlistOpen: boolean, milkdropOpen: boolean, eqOn: boolean, eqSliders: Record | null, mainShade: boolean, eqShade: boolean, playlistShade: boolean, positions: Record | null, sizes: Record | null }} */\nfunction loadUiState(key = UI_STATE_KEY) {\n try {\n return {\n eqOpen: true,\n playlistOpen: true,\n milkdropOpen: true,\n eqOn: false,\n eqSliders: null,\n mainShade: false,\n eqShade: false,\n playlistShade: false,\n positions: null,\n sizes: null,\n ...JSON.parse(localStorage.getItem(key) ?? \"{}\"),\n };\n } catch {\n return {\n eqOpen: true,\n playlistOpen: true,\n milkdropOpen: true,\n eqOn: false,\n eqSliders: null,\n mainShade: false,\n eqShade: false,\n playlistShade: false,\n positions: null,\n sizes: null,\n };\n }\n}\n\n////////////////////////////////////////////\n// EQ\n////////////////////////////////////////////\n\nconst EQ_BANDS = [60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000];\n\n// EQ band at center (0dB): spriteNumber(50) = 14, spriteOffsets(14) = {x:0, y:1}\n// backgroundPosition = \"0px -65px\", handle top = (62-11) * (1 - 0.5) = 26px\n\n////////////////////////////////////////////\n// CONSTANTS\n////////////////////////////////////////////\n\n/**\n * Webamp's Nullsoft FFT — ported from webamp.bundle.js\n * Converts 1024 time-domain samples → 512 spectral magnitude values.\n */\nclass WinampFFT {\n static #TWO_PI = 6.2831853;\n static #HALF_PI = 1.5707963268;\n\n constructor() {\n const NFREQ = 1024; // samplesOut * 2\n this.#bitrev = this.#initBitRev(NFREQ);\n this.#cossint = this.#initCosSin(NFREQ);\n this.#envelope = this.#initEnvelope(1024, 1.0);\n this.#equalize = this.#initEqualize(NFREQ);\n this.#temp1 = new Float32Array(NFREQ);\n this.#temp2 = new Float32Array(NFREQ);\n }\n\n /** @type {number[]} */ #bitrev;\n /** @type {Float32Array[]} */ #cossint;\n /** @type {Float32Array} */ #envelope;\n /** @type {Float32Array} */ #equalize;\n /** @type {Float32Array} */ #temp1;\n /** @type {Float32Array} */ #temp2;\n\n /** @param {number} NFREQ */\n #initBitRev(NFREQ) {\n const t = Array.from({ length: NFREQ }, (_, i) => i);\n for (let i = 0, j = 0; i < NFREQ; i++) {\n if (j > i) {\n const tmp = t[i];\n t[i] = t[j];\n t[j] = tmp;\n }\n let m = NFREQ >> 1;\n while (m >= 1 && j >= m) {\n j -= m;\n m >>= 1;\n }\n j += m;\n }\n return t;\n }\n\n /** @param {number} NFREQ */\n #initCosSin(NFREQ) {\n const table = [];\n let d = 2;\n while (d <= NFREQ) {\n const theta = (-2.0 * Math.PI) / d;\n table.push(new Float32Array([Math.cos(theta), Math.sin(theta)]));\n d <<= 1;\n }\n return table;\n }\n\n /** @param {number} n @param {number} power */\n #initEnvelope(n, power) {\n const mult = (1.0 / n) * WinampFFT.#TWO_PI;\n return Float32Array.from(\n { length: n },\n (_, i) =>\n Math.pow(0.5 + 0.5 * Math.sin(i * mult - WinampFFT.#HALF_PI), power),\n );\n }\n\n /** @param {number} NFREQ */\n #initEqualize(NFREQ) {\n const eq = new Float32Array(NFREQ / 2);\n let bias = 0.04;\n for (let i = 0; i < NFREQ / 2; i++) {\n const inv = (9.0 - bias) / (NFREQ / 2);\n eq[i] = Math.log10(1.0 + bias + (i + 1) * inv);\n bias /= 1.0025;\n }\n return eq;\n }\n\n /**\n * @param {Float32Array} inWave 1024 samples\n * @param {Float32Array} outSpec 512 output magnitudes\n */\n timeToFrequencyDomain(inWave, outSpec) {\n const real = this.#temp1;\n const imag = this.#temp2;\n const bitrev = this.#bitrev;\n const env = this.#envelope;\n\n for (let i = 0; i < real.length; i++) {\n const idx = bitrev[i];\n real[i] = idx < inWave.length ? inWave[idx] * env[idx] : 0;\n }\n imag.fill(0);\n\n let dftsize = 2, t = 0;\n while (dftsize <= real.length) {\n const [wpr, wpi] = this.#cossint[t];\n let wr = 1.0, wi = 0.0;\n const half = dftsize >> 1;\n for (let m = 0; m < half; m++) {\n for (let i = m; i < real.length; i += dftsize) {\n const j = i + half;\n const tr = wr * real[j] - wi * imag[j];\n const ti = wr * imag[j] + wi * real[j];\n real[j] = real[i] - tr;\n imag[j] = imag[i] - ti;\n real[i] += tr;\n imag[i] += ti;\n }\n const wt = wr;\n wr = wr * wpr - wi * wpi;\n wi = wi * wpr + wt * wpi;\n }\n dftsize <<= 1;\n t++;\n }\n\n const eq = this.#equalize;\n for (let i = 0; i < outSpec.length; i++) {\n outSpec[i] = Math.sqrt(real[i] * real[i] + imag[i] * imag[i]) * eq[i];\n }\n }\n}\n\nclass WinampElement extends DiffuseElement {\n constructor() {\n super();\n this.attachShadow({ mode: \"open\" });\n }\n\n // SIGNALS - UI\n\n #marqueeOverride = signal(/** @type {string | null} */ (null));\n /** @type {ReturnType | undefined} */\n #marqueeOverrideTimeout = undefined;\n /** @type {ReturnType | undefined} */\n #isLoadingTimeout = undefined;\n #playlist = signal(\n /** @type {{ past: Item[]; now: Item | null; future: Item[] }} */ ({\n past: [],\n now: null,\n future: [],\n }),\n );\n /** @type {ReturnType | undefined} */\n #playlistDebounce = undefined;\n #dragState = signal(\n /** @type {{ fromIdx: number; fromKey: string; toIdx: number; startY: number; multiDrag: boolean } | null} */ (null),\n );\n /** @type {((e: MouseEvent) => void) | null} */\n #dragMouseMove = null;\n /** @type {((e: MouseEvent) => void) | null} */\n #dragMouseUp = null;\n /** @type {((e: KeyboardEvent) => void) | null} */\n #onKeyDown = null;\n /** @type {((e: MouseEvent) => void) | null} */\n #onMouseDownFocus = null;\n #isWinampFocused = false;\n #marqueeCurrentOffset = 0;\n /** @type {HTMLElement | null} */\n #marqueeScroller = null;\n /** @type {HTMLElement | null} */\n #playlistHandle = null;\n\n // Web Audio / Visualizer\n /** @type {AudioContext | null} */\n #audioCtx = null;\n /** @type {GainNode | null} */\n #preampNode = null;\n /** @type {BiquadFilterNode[]} */\n #eqNodes = [];\n /** @type {AnalyserNode | null} */\n #analyser = null;\n /** @type {number | undefined} */\n #visRAF = undefined;\n /** @type {ReturnType | undefined} */\n #marqueeStepInterval = undefined;\n #marqueeText = signal(\"\");\n #selectedIndex = signal(/** @type {number | null} */ (null));\n #selectedIndices = signal(/** @type {Set} */ (new Set()));\n #anchorIdx = /** @type {number | null} */ (null);\n #mainOpen = signal(true);\n #eqOpen = signal(true);\n #mainShade = signal(false);\n #eqShade = signal(false);\n #playlistShade = signal(false);\n #eqOn = signal(false);\n #eqSliders = signal({\n preamp: 50,\n bands: /** @type {number[]} */ (Array(10).fill(50)),\n });\n #balance = signal(0);\n #stopped = signal(false);\n #seekingProgress = signal(/** @type {number | null} */ (null));\n #timeCountdown = signal(false);\n #focusedWindow = signal(\n /** @type {\"main\" | \"eq\" | \"playlist\" | \"milkdrop\"} */ (\"main\"),\n );\n #playlistOpen = signal(true);\n #milkdropOpen = signal(true);\n\n // Window positions — plain objects (not signals) so dragging doesn't\n // trigger re-renders, but the current value is always read on each render.\n #mainPos = { x: 0, y: 0 };\n #eqPos = { x: 0, y: 116 };\n #playlistPos = { x: 0, y: 232 };\n #playlistSize = { width: 275, height: 232 };\n #milkdropPos = { x: 275, y: 0 };\n #milkdropSize = { width: 275, height: 232 };\n\n // COMPUTED — memoised so frequent re-renders (e.g. on every `timeupdate`\n // during playback) don't rebuild a Map / array of 20+ rows each frame.\n\n #trackMap = computed(() => {\n const col = this.$controller.value?.$output.value?.tracks.collection();\n if (col?.state !== \"loaded\") return new Map();\n return new Map(col.data.map((t) => [t.id, t]));\n });\n\n #allItems = computed(() => {\n const { past, now, future } = this.#playlist.value;\n return [...past, ...(now ? [now] : []), ...future];\n });\n\n #displayItems = computed(() => {\n const allItems = this.#allItems();\n const dragState = this.#dragState.value;\n if (!dragState || dragState.fromIdx === dragState.toIdx) return allItems;\n\n const arr = [...allItems];\n const selectedIndices = this.#selectedIndices.value;\n if (dragState.multiDrag && selectedIndices.size > 1) {\n const sortedSel = [...selectedIndices].sort((a, b) => a - b);\n const delta = dragState.toIdx - dragState.fromIdx;\n const selectedSet = new Set(sortedSel);\n const result = new Array(arr.length).fill(null);\n sortedSel.forEach((i) => {\n result[i + delta] = arr[i];\n });\n const nonSelected = arr.filter((_, i) => !selectedSet.has(i));\n let nsIdx = 0;\n for (let i = 0; i < result.length; i++) {\n if (result[i] === null) result[i] = nonSelected[nsIdx++];\n }\n return result;\n }\n const [item] = arr.splice(dragState.fromIdx, 1);\n arr.splice(dragState.toIdx, 0, item);\n return arr;\n });\n\n #playlistRows = computed(() => {\n const displayItems = this.#displayItems();\n const trackMap = this.#trackMap();\n const allItems = this.#allItems();\n const { now: nowItem } = this.#playlist.value;\n const dragState = this.#dragState.value;\n const selectedIndices = this.#selectedIndices.value;\n const nowIdx = nowItem ? displayItems.indexOf(nowItem) : -1;\n const selectedItemSet = dragState && dragState.multiDrag &&\n selectedIndices.size > 1\n ? new Set(\n [...selectedIndices].map((/** @type {number} */ i) => allItems[i]),\n )\n : null;\n return displayItems.map((/** @type {Item} */ item, /** @type {number} */ i) => {\n const track = trackMap.get(item.id);\n const isCurrent = i === nowIdx;\n const isSelected = dragState\n ? (dragState.multiDrag && selectedIndices.size > 1\n ? selectedItemSet?.has(item) ?? false\n : i === dragState.toIdx)\n : selectedIndices.has(i);\n const artist = track?.tags?.artist ?? \"\";\n const title = track?.tags?.title ?? \"\";\n const label = artist ? `${artist} - ${title}` : title;\n const durSec = track?.stats?.duration ? track.stats.duration / 1000 : 0;\n const dur = durSec > 0\n ? `${Math.floor(durSec / 60)}:${\n String(Math.floor(durSec % 60)).padStart(2, \"0\")\n }`\n : \"\";\n const color = isCurrent ? \"#FFFFFF\" : \"#00FF00\";\n const bg = isSelected && !isCurrent ? \"#0000FF\" : \"transparent\";\n return { id: item.id, item, idx: i, n: i + 1, label, dur, color, bg };\n });\n });\n\n // Butterchurn\n /** @type {any} */\n #butterchurn = null;\n /** @type {number | undefined} */\n #butterchurnRAF = undefined;\n /** @type {ReturnType | undefined} */\n #butterchurnCycleInterval = undefined;\n /** @type {Array} */\n #butterchurnPresetList = [];\n\n // SIGNALS - DEPENDENCIES\n\n $controller = signal(\n /** @type {ControllerOrchestrator | undefined} */ (undefined),\n );\n $repeatShuffle = signal(\n /** @type {RepeatShuffleEngine | undefined} */ (undefined),\n );\n\n // SIGNALS - COMPUTED\n\n audio = () => this.$controller.value?.audio();\n currentTrack = () => this.$controller.value?.currentTrack();\n isPlaying = () => this.$controller.value?.isPlaying();\n\n // UI STATE\n\n /**\n * The localStorage key that stores this instance's UI state (window\n * positions/sizes, EQ, toggles). Per-instance when a `namespace`\n * attribute is set, so multiple Winamp player instances can keep\n * independent layouts.\n */\n #uiStateKey() {\n const ns = this.namespace;\n return ns ? `${UI_STATE_KEY}/${ns}` : UI_STATE_KEY;\n }\n\n // LIFECYCLE\n\n /**\n * @override\n */\n connectedCallback() {\n super.connectedCallback();\n\n /** @type {ControllerOrchestrator} */\n const controller = query(this, \"controller-orchestrator-selector\");\n\n /** @type {RepeatShuffleEngine} */\n const repeatShuffle = query(this, \"repeat-shuffle-engine-selector\");\n\n whenElementsDefined({ controller, repeatShuffle }).then(() => {\n this.$controller.value = controller;\n this.$repeatShuffle.value = repeatShuffle;\n\n this.effect(() => {\n const queueEl = this.$controller.value?.$queue.value;\n const past = queueEl?.past() ?? [];\n const now = queueEl?.now() ?? null;\n const future = queueEl?.future() ?? [];\n clearTimeout(this.#playlistDebounce);\n this.#playlistDebounce = setTimeout(() => {\n this.#playlist.value = { past, now, future };\n }, 100);\n });\n\n this.effect(() => {\n const track = this.currentTrack();\n if (!track) return; // preserve last text during track transitions\n const aud = this.audio();\n\n const artist = (track.tags?.artist ?? \"\").toUpperCase();\n const title = (track.tags?.title ?? \"\").toUpperCase();\n const durSeconds = track.stats?.duration\n ? track.stats.duration / 1000\n : untracked(() => aud?.duration() ?? 0);\n const durMinutes = Math.floor(durSeconds / 60);\n const durSecs = Math.floor(durSeconds % 60);\n this.#marqueeText.value = `${artist} - ${title} (${durMinutes}:${\n durSecs.toString().padStart(2, \"0\")\n })`;\n this.#marqueeCurrentOffset = 0;\n });\n\n this.effect(() => {\n const engine = this.#audioEngine();\n const playing = this.isPlaying();\n untracked(() => {\n // The engine already routes every

    `l2zOvRU6;XwaUC^F>TpP>l3f6?&f*SY3XZR5xP{?!y({E zhVBO67b={|^HRM3CR{iqXmt6}hnh^8Q!-1>y;9+1+-Pw6$jtJ&@_)rBSxLc7gSCwb^l2?P{$PU=jHnA^yE@->1^x+B;&4mhiuMA9Q)r4YRw`o*KVOGrk^IYb5@c zTbp@j?`PLvdV+_og}vIC_r=UBiPpJ0?d|^^Iv0#5N34^d&;9ufi`DO->bt)kqa4gH zx;V7fT{zyilI7(r)1i9Z+cN-Ho5E4@-XjdFRgzq z>zeUz>GdhoJ)SIbzGL!#8q)?JsoKxod&?>;V|XSheY^B!rr-&t(+ghkX}#3n+0Z*9 zd~xX)>6rnK-?wTpe(1U)?-_eoYVOk4dl@ubQ%bhpGUT0Ao+`e)c=tGu?7)Yr{0IdCmtkRJ4DEzpF@e zU2#+M>8wOg=^LS41-E__#9bHO(6ixr%Vvwv_d3ZIg%z*NE~g*jiqx2TVa}tUan1>; z%T^j(INGfgS{IovPJUu z=btke7ndGR+9zS&SNNkS*Lrhmz}My9r9`*>+9~q;YrtRIiCNN1J?byS_d2b-q}jbN z>K(VMy5+fy{tMfqLqxCbt`|Kn)PMNwA|A6jFCuuYen$Pj_(SER&_vsUUge1s)L%ZW zS~7f0{7<|8m)^ zK>3hvjQr_$4=fc0H~AMx+a2C|zkpv}VBZ1L6w#U#V+-#1hn$=0A7-1i@4v}pmu?!9 z;=SXH+=Ksbr2m}QcliABzswWcWNr_UAnuRLe| 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","module.exports = {}","module.exports = {}","module.exports = {}","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","export const defaultMessages = 'End-Of-Stream';\n/**\n * Thrown on read operation of the end of file or stream has been reached\n */\nexport class EndOfStreamError extends Error {\n constructor() {\n super(defaultMessages);\n this.name = \"EndOfStreamError\";\n }\n}\nexport class AbortError extends Error {\n constructor(message = \"The operation was aborted\") {\n super(message);\n this.name = \"AbortError\";\n }\n}\n","import { EndOfStreamError, AbortError } from \"./Errors.js\";\nexport class AbstractStreamReader {\n constructor() {\n this.endOfStream = false;\n this.interrupted = false;\n /**\n * Store peeked data\n * @type {Array}\n */\n this.peekQueue = [];\n }\n async peek(uint8Array, mayBeLess = false) {\n const bytesRead = await this.read(uint8Array, mayBeLess);\n this.peekQueue.push(uint8Array.subarray(0, bytesRead)); // Put read data back to peek buffer\n return bytesRead;\n }\n async read(buffer, mayBeLess = false) {\n if (buffer.length === 0) {\n return 0;\n }\n let bytesRead = this.readFromPeekBuffer(buffer);\n if (!this.endOfStream) {\n bytesRead += await this.readRemainderFromStream(buffer.subarray(bytesRead), mayBeLess);\n }\n if (bytesRead === 0 && !mayBeLess) {\n throw new EndOfStreamError();\n }\n return bytesRead;\n }\n /**\n * Read chunk from stream\n * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n * @returns Number of bytes read\n */\n readFromPeekBuffer(buffer) {\n let remaining = buffer.length;\n let bytesRead = 0;\n // consume peeked data first\n while (this.peekQueue.length > 0 && remaining > 0) {\n const peekData = this.peekQueue.pop(); // Front of queue\n if (!peekData)\n throw new Error('peekData should be defined');\n const lenCopy = Math.min(peekData.length, remaining);\n buffer.set(peekData.subarray(0, lenCopy), bytesRead);\n bytesRead += lenCopy;\n remaining -= lenCopy;\n if (lenCopy < peekData.length) {\n // remainder back to queue\n this.peekQueue.push(peekData.subarray(lenCopy));\n }\n }\n return bytesRead;\n }\n async readRemainderFromStream(buffer, mayBeLess) {\n let bytesRead = 0;\n // Continue reading from stream if required\n while (bytesRead < buffer.length && !this.endOfStream) {\n if (this.interrupted) {\n throw new AbortError();\n }\n const chunkLen = await this.readFromStream(buffer.subarray(bytesRead), mayBeLess);\n if (chunkLen === 0)\n break;\n bytesRead += chunkLen;\n }\n if (!mayBeLess && bytesRead < buffer.length) {\n throw new EndOfStreamError();\n }\n return bytesRead;\n }\n}\n","import { AbstractStreamReader } from \"./AbstractStreamReader.js\";\nexport class WebStreamReader extends AbstractStreamReader {\n constructor(reader) {\n super();\n this.reader = reader;\n }\n async abort() {\n return this.close();\n }\n async close() {\n this.reader.releaseLock();\n }\n}\n","import { WebStreamReader } from './WebStreamReader.js';\n/**\n * Read from a WebStream using a BYOB reader\n * Reference: https://nodejs.org/api/webstreams.html#class-readablestreambyobreader\n */\nexport class WebStreamByobReader extends WebStreamReader {\n /**\n * Read from stream\n * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n * @param mayBeLess - If true, may fill the buffer partially\n * @protected Bytes read\n */\n async readFromStream(buffer, mayBeLess) {\n if (buffer.length === 0)\n return 0;\n // @ts-expect-error\n const result = await this.reader.read(new Uint8Array(buffer.length), { min: mayBeLess ? undefined : buffer.length });\n if (result.done) {\n this.endOfStream = result.done;\n }\n if (result.value) {\n buffer.set(result.value);\n return result.value.length;\n }\n return 0;\n }\n}\n","import { EndOfStreamError } from './Errors.js';\nimport { AbstractStreamReader } from \"./AbstractStreamReader.js\";\nexport class WebStreamDefaultReader extends AbstractStreamReader {\n constructor(reader) {\n super();\n this.reader = reader;\n this.buffer = null; // Internal buffer to store excess data\n }\n /**\n * Copy chunk to target, and store the remainder in this.buffer\n */\n writeChunk(target, chunk) {\n const written = Math.min(chunk.length, target.length);\n target.set(chunk.subarray(0, written));\n // Adjust the remainder of the buffer\n if (written < chunk.length) {\n this.buffer = chunk.subarray(written);\n }\n else {\n this.buffer = null;\n }\n return written;\n }\n /**\n * Read from stream\n * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n * @param mayBeLess - If true, may fill the buffer partially\n * @protected Bytes read\n */\n async readFromStream(buffer, mayBeLess) {\n if (buffer.length === 0)\n return 0;\n let totalBytesRead = 0;\n // Serve from the internal buffer first\n if (this.buffer) {\n totalBytesRead += this.writeChunk(buffer, this.buffer);\n }\n // Continue reading from the stream if more data is needed\n while (totalBytesRead < buffer.length && !this.endOfStream) {\n const result = await this.reader.read();\n if (result.done) {\n this.endOfStream = true;\n break;\n }\n if (result.value) {\n totalBytesRead += this.writeChunk(buffer.subarray(totalBytesRead), result.value);\n }\n }\n if (!mayBeLess && totalBytesRead === 0 && this.endOfStream) {\n throw new EndOfStreamError();\n }\n return totalBytesRead;\n }\n abort() {\n this.interrupted = true;\n return this.reader.cancel();\n }\n async close() {\n await this.abort();\n this.reader.releaseLock();\n }\n}\n","import { WebStreamByobReader } from './WebStreamByobReader.js';\nimport { WebStreamDefaultReader } from './WebStreamDefaultReader.js';\nexport function makeWebStreamReader(stream) {\n try {\n const reader = stream.getReader({ mode: \"byob\" });\n if (reader instanceof ReadableStreamDefaultReader) {\n // Fallback to default reader in case `mode: byob` is ignored\n return new WebStreamDefaultReader(reader);\n }\n return new WebStreamByobReader(reader);\n }\n catch (error) {\n if (error instanceof TypeError) {\n // Fallback to default reader in case `mode: byob` rejected by a `TypeError`\n return new WebStreamDefaultReader(stream.getReader());\n }\n throw error;\n }\n}\n","import { EndOfStreamError } from './stream/index.js';\n/**\n * Core tokenizer\n */\nexport class AbstractTokenizer {\n /**\n * Constructor\n * @param options Tokenizer options\n * @protected\n */\n constructor(options) {\n this.numBuffer = new Uint8Array(8);\n /**\n * Tokenizer-stream position\n */\n this.position = 0;\n this.onClose = options?.onClose;\n if (options?.abortSignal) {\n options.abortSignal.addEventListener('abort', () => {\n this.abort();\n });\n }\n }\n /**\n * Read a token from the tokenizer-stream\n * @param token - The token to read\n * @param position - If provided, the desired position in the tokenizer-stream\n * @returns Promise with token data\n */\n async readToken(token, position = this.position) {\n const uint8Array = new Uint8Array(token.len);\n const len = await this.readBuffer(uint8Array, { position });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(uint8Array, 0);\n }\n /**\n * Peek a token from the tokenizer-stream.\n * @param token - Token to peek from the tokenizer-stream.\n * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.\n * @returns Promise with token data\n */\n async peekToken(token, position = this.position) {\n const uint8Array = new Uint8Array(token.len);\n const len = await this.peekBuffer(uint8Array, { position });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(uint8Array, 0);\n }\n /**\n * Read a numeric token from the stream\n * @param token - Numeric token\n * @returns Promise with number\n */\n async readNumber(token) {\n const len = await this.readBuffer(this.numBuffer, { length: token.len });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(this.numBuffer, 0);\n }\n /**\n * Read a numeric token from the stream\n * @param token - Numeric token\n * @returns Promise with number\n */\n async peekNumber(token) {\n const len = await this.peekBuffer(this.numBuffer, { length: token.len });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(this.numBuffer, 0);\n }\n /**\n * Ignore number of bytes, advances the pointer in under tokenizer-stream.\n * @param length - Number of bytes to ignore. Must be ≥ 0.\n * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available\n */\n async ignore(length) {\n if (length < 0) {\n throw new RangeError('ignore length must be ≥ 0 bytes');\n }\n if (this.fileInfo.size !== undefined) {\n const bytesLeft = this.fileInfo.size - this.position;\n if (length > bytesLeft) {\n this.position += bytesLeft;\n return bytesLeft;\n }\n }\n this.position += length;\n return length;\n }\n async close() {\n await this.abort();\n await this.onClose?.();\n }\n normalizeOptions(uint8Array, options) {\n if (!this.supportsRandomAccess() && options && options.position !== undefined && options.position < this.position) {\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\n }\n return {\n ...{\n mayBeLess: false,\n offset: 0,\n length: uint8Array.length,\n position: this.position\n }, ...options\n };\n }\n abort() {\n return Promise.resolve(); // Ignore abort signal\n }\n}\n","import { AbstractTokenizer } from './AbstractTokenizer.js';\nimport { EndOfStreamError } from './stream/index.js';\nconst maxBufferSize = 256000;\nexport class ReadStreamTokenizer extends AbstractTokenizer {\n /**\n * Constructor\n * @param streamReader stream-reader to read from\n * @param options Tokenizer options\n */\n constructor(streamReader, options) {\n super(options);\n this.streamReader = streamReader;\n this.fileInfo = options?.fileInfo ?? {};\n }\n /**\n * Read buffer from tokenizer\n * @param uint8Array - Target Uint8Array to fill with data read from the tokenizer-stream\n * @param options - Read behaviour options\n * @returns Promise with number of bytes read\n */\n async readBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n const skipBytes = normOptions.position - this.position;\n if (skipBytes > 0) {\n await this.ignore(skipBytes);\n return this.readBuffer(uint8Array, options);\n }\n if (skipBytes < 0) {\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\n }\n if (normOptions.length === 0) {\n return 0;\n }\n const bytesRead = await this.streamReader.read(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);\n this.position += bytesRead;\n if ((!options || !options.mayBeLess) && bytesRead < normOptions.length) {\n throw new EndOfStreamError();\n }\n return bytesRead;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param uint8Array - Uint8Array (or Buffer) to write data to\n * @param options - Read behaviour options\n * @returns Promise with number of bytes peeked\n */\n async peekBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n let bytesRead = 0;\n if (normOptions.position) {\n const skipBytes = normOptions.position - this.position;\n if (skipBytes > 0) {\n const skipBuffer = new Uint8Array(normOptions.length + skipBytes);\n bytesRead = await this.peekBuffer(skipBuffer, { mayBeLess: normOptions.mayBeLess });\n uint8Array.set(skipBuffer.subarray(skipBytes));\n return bytesRead - skipBytes;\n }\n if (skipBytes < 0) {\n throw new Error('Cannot peek from a negative offset in a stream');\n }\n }\n if (normOptions.length > 0) {\n try {\n bytesRead = await this.streamReader.peek(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);\n }\n catch (err) {\n if (options?.mayBeLess && err instanceof EndOfStreamError) {\n return 0;\n }\n throw err;\n }\n if ((!normOptions.mayBeLess) && bytesRead < normOptions.length) {\n throw new EndOfStreamError();\n }\n }\n return bytesRead;\n }\n /**\n * @param length Number of bytes to ignore. Must be ≥ 0.\n */\n async ignore(length) {\n if (length < 0) {\n throw new RangeError('ignore length must be ≥ 0 bytes');\n }\n const bufSize = Math.min(maxBufferSize, length);\n const buf = new Uint8Array(bufSize);\n let totBytesRead = 0;\n while (totBytesRead < length) {\n const remaining = length - totBytesRead;\n const bytesRead = await this.readBuffer(buf, { length: Math.min(bufSize, remaining) });\n if (bytesRead < 0) {\n return bytesRead;\n }\n totBytesRead += bytesRead;\n }\n return totBytesRead;\n }\n abort() {\n return this.streamReader.abort();\n }\n async close() {\n return this.streamReader.close();\n }\n supportsRandomAccess() {\n return false;\n }\n}\n","import { EndOfStreamError } from './stream/index.js';\nimport { AbstractTokenizer } from './AbstractTokenizer.js';\nexport class BufferTokenizer extends AbstractTokenizer {\n /**\n * Construct BufferTokenizer\n * @param uint8Array - Uint8Array to tokenize\n * @param options Tokenizer options\n */\n constructor(uint8Array, options) {\n super(options);\n this.uint8Array = uint8Array;\n this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: uint8Array.length } };\n }\n /**\n * Read buffer from tokenizer\n * @param uint8Array - Uint8Array to tokenize\n * @param options - Read behaviour options\n * @returns {Promise}\n */\n async readBuffer(uint8Array, options) {\n if (options?.position) {\n this.position = options.position;\n }\n const bytesRead = await this.peekBuffer(uint8Array, options);\n this.position += bytesRead;\n return bytesRead;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param uint8Array\n * @param options - Read behaviour options\n * @returns {Promise}\n */\n async peekBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n const bytes2read = Math.min(this.uint8Array.length - normOptions.position, normOptions.length);\n if ((!normOptions.mayBeLess) && bytes2read < normOptions.length) {\n throw new EndOfStreamError();\n }\n uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read));\n return bytes2read;\n }\n close() {\n return super.close();\n }\n supportsRandomAccess() {\n return true;\n }\n setPosition(position) {\n this.position = position;\n }\n}\n","import { EndOfStreamError } from './stream/index.js';\nimport { AbstractTokenizer } from './AbstractTokenizer.js';\nexport class BlobTokenizer extends AbstractTokenizer {\n /**\n * Construct BufferTokenizer\n * @param blob - Uint8Array to tokenize\n * @param options Tokenizer options\n */\n constructor(blob, options) {\n super(options);\n this.blob = blob;\n this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: blob.size, mimeType: blob.type } };\n }\n /**\n * Read buffer from tokenizer\n * @param uint8Array - Uint8Array to tokenize\n * @param options - Read behaviour options\n * @returns {Promise}\n */\n async readBuffer(uint8Array, options) {\n if (options?.position) {\n this.position = options.position;\n }\n const bytesRead = await this.peekBuffer(uint8Array, options);\n this.position += bytesRead;\n return bytesRead;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param buffer\n * @param options - Read behaviour options\n * @returns {Promise}\n */\n async peekBuffer(buffer, options) {\n const normOptions = this.normalizeOptions(buffer, options);\n const bytes2read = Math.min(this.blob.size - normOptions.position, normOptions.length);\n if ((!normOptions.mayBeLess) && bytes2read < normOptions.length) {\n throw new EndOfStreamError();\n }\n const arrayBuffer = await this.blob.slice(normOptions.position, normOptions.position + bytes2read).arrayBuffer();\n buffer.set(new Uint8Array(arrayBuffer));\n return bytes2read;\n }\n close() {\n return super.close();\n }\n supportsRandomAccess() {\n return true;\n }\n setPosition(position) {\n this.position = position;\n }\n}\n","import { StreamReader, makeWebStreamReader } from './stream/index.js';\nimport { ReadStreamTokenizer } from './ReadStreamTokenizer.js';\nimport { BufferTokenizer } from './BufferTokenizer.js';\nimport { BlobTokenizer } from './BlobTokenizer.js';\nexport { EndOfStreamError, AbortError } from './stream/index.js';\nexport { AbstractTokenizer } from './AbstractTokenizer.js';\n/**\n * Construct ReadStreamTokenizer from given Stream.\n * Will set fileSize, if provided given Stream has set the .path property/\n * @param stream - Read from Node.js Stream.Readable\n * @param options - Tokenizer options\n * @returns ReadStreamTokenizer\n */\nexport function fromStream(stream, options) {\n const streamReader = new StreamReader(stream);\n const _options = options ?? {};\n const chainedClose = _options.onClose;\n _options.onClose = async () => {\n await streamReader.close();\n if (chainedClose) {\n return chainedClose();\n }\n };\n return new ReadStreamTokenizer(streamReader, _options);\n}\n/**\n * Construct ReadStreamTokenizer from given ReadableStream (WebStream API).\n * Will set fileSize, if provided given Stream has set the .path property/\n * @param webStream - Read from Node.js Stream.Readable (must be a byte stream)\n * @param options - Tokenizer options\n * @returns ReadStreamTokenizer\n */\nexport function fromWebStream(webStream, options) {\n const webStreamReader = makeWebStreamReader(webStream);\n const _options = options ?? {};\n const chainedClose = _options.onClose;\n _options.onClose = async () => {\n await webStreamReader.close();\n if (chainedClose) {\n return chainedClose();\n }\n };\n return new ReadStreamTokenizer(webStreamReader, _options);\n}\n/**\n * Construct ReadStreamTokenizer from given Buffer.\n * @param uint8Array - Uint8Array to tokenize\n * @param options - Tokenizer options\n * @returns BufferTokenizer\n */\nexport function fromBuffer(uint8Array, options) {\n return new BufferTokenizer(uint8Array, options);\n}\n/**\n * Construct ReadStreamTokenizer from given Blob.\n * @param blob - Uint8Array to tokenize\n * @param options - Tokenizer options\n * @returns BufferTokenizer\n */\nexport function fromBlob(blob, options) {\n return new BlobTokenizer(blob, options);\n}\n","import { AbstractTokenizer } from './AbstractTokenizer.js';\nimport { EndOfStreamError } from './stream/index.js';\nimport { open as fsOpen } from 'node:fs/promises';\nexport class FileTokenizer extends AbstractTokenizer {\n /**\n * Create tokenizer from provided file path\n * @param sourceFilePath File path\n */\n static async fromFile(sourceFilePath) {\n const fileHandle = await fsOpen(sourceFilePath, 'r');\n const stat = await fileHandle.stat();\n return new FileTokenizer(fileHandle, { fileInfo: { path: sourceFilePath, size: stat.size } });\n }\n constructor(fileHandle, options) {\n super(options);\n this.fileHandle = fileHandle;\n this.fileInfo = options.fileInfo;\n }\n /**\n * Read buffer from file\n * @param uint8Array - Uint8Array to write result to\n * @param options - Read behaviour options\n * @returns Promise number of bytes read\n */\n async readBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n this.position = normOptions.position;\n if (normOptions.length === 0)\n return 0;\n const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);\n this.position += res.bytesRead;\n if (res.bytesRead < normOptions.length && (!options || !options.mayBeLess)) {\n throw new EndOfStreamError();\n }\n return res.bytesRead;\n }\n /**\n * Peek buffer from file\n * @param uint8Array - Uint8Array (or Buffer) to write data to\n * @param options - Read behaviour options\n * @returns Promise number of bytes read\n */\n async peekBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);\n if ((!normOptions.mayBeLess) && res.bytesRead < normOptions.length) {\n throw new EndOfStreamError();\n }\n return res.bytesRead;\n }\n async close() {\n await this.fileHandle.close();\n return super.close();\n }\n setPosition(position) {\n this.position = position;\n }\n supportsRandomAccess() {\n return true;\n }\n}\n","import { stat as fsStat } from 'node:fs/promises';\nimport { fromStream as coreFromStream } from './core.js';\nimport { FileTokenizer } from \"./FileTokenizer.js\";\nexport { FileTokenizer } from './FileTokenizer.js';\nexport * from './core.js';\n/**\n * Construct ReadStreamTokenizer from given Stream.\n * Will set fileSize, if provided given Stream has set the .path property.\n * @param stream - Node.js Stream.Readable\n * @param options - Pass additional file information to the tokenizer\n * @returns Tokenizer\n */\nexport async function fromStream(stream, options) {\n const rst = coreFromStream(stream, options);\n if (stream.path) {\n const stat = await fsStat(stream.path);\n rst.fileInfo.path = stream.path;\n rst.fileInfo.size = stat.size;\n }\n return rst;\n}\nexport const fromFile = FileTokenizer.fromFile;\n","const WINDOWS_1252_EXTRA = {\n 0x80: \"€\", 0x82: \"‚\", 0x83: \"ƒ\", 0x84: \"„\", 0x85: \"…\", 0x86: \"†\",\n 0x87: \"‡\", 0x88: \"ˆ\", 0x89: \"‰\", 0x8a: \"Š\", 0x8b: \"‹\", 0x8c: \"Œ\",\n 0x8e: \"Ž\", 0x91: \"‘\", 0x92: \"’\", 0x93: \"“\", 0x94: \"”\", 0x95: \"•\",\n 0x96: \"–\", 0x97: \"—\", 0x98: \"˜\", 0x99: \"™\", 0x9a: \"š\", 0x9b: \"›\",\n 0x9c: \"œ\", 0x9e: \"ž\", 0x9f: \"Ÿ\",\n};\nconst WINDOWS_1252_REVERSE = {};\nfor (const [code, char] of Object.entries(WINDOWS_1252_EXTRA)) {\n WINDOWS_1252_REVERSE[char] = Number.parseInt(code, 10);\n}\nlet _utf8Decoder;\nlet _utf8Encoder;\nfunction utf8Decoder() {\n if (typeof globalThis.TextDecoder === \"undefined\")\n return undefined;\n return (_utf8Decoder !== null && _utf8Decoder !== void 0 ? _utf8Decoder : (_utf8Decoder = new globalThis.TextDecoder(\"utf-8\")));\n}\nfunction utf8Encoder() {\n if (typeof globalThis.TextEncoder === \"undefined\")\n return undefined;\n return (_utf8Encoder !== null && _utf8Encoder !== void 0 ? _utf8Encoder : (_utf8Encoder = new globalThis.TextEncoder()));\n}\nconst CHUNK = 32 * 1024;\nconst REPLACEMENT = 0xfffd;\n/**\n * Decode text from binary data\n */\nexport function textDecode(bytes, encoding = \"utf-8\") {\n switch (encoding.toLowerCase()) {\n case \"utf-8\":\n case \"utf8\": {\n const dec = utf8Decoder();\n return dec ? dec.decode(bytes) : decodeUTF8(bytes);\n }\n case \"utf-16le\":\n return decodeUTF16LE(bytes);\n case \"us-ascii\":\n case \"ascii\":\n return decodeASCII(bytes);\n case \"latin1\":\n case \"iso-8859-1\":\n return decodeLatin1(bytes);\n case \"windows-1252\":\n return decodeWindows1252(bytes);\n default:\n throw new RangeError(`Encoding '${encoding}' not supported`);\n }\n}\nexport function textEncode(input = \"\", encoding = \"utf-8\") {\n switch (encoding.toLowerCase()) {\n case \"utf-8\":\n case \"utf8\": {\n const enc = utf8Encoder();\n return enc ? enc.encode(input) : encodeUTF8(input);\n }\n case \"utf-16le\":\n return encodeUTF16LE(input);\n case \"us-ascii\":\n case \"ascii\":\n return encodeASCII(input);\n case \"latin1\":\n case \"iso-8859-1\":\n return encodeLatin1(input);\n case \"windows-1252\":\n return encodeWindows1252(input);\n default:\n throw new RangeError(`Encoding '${encoding}' not supported`);\n }\n}\nfunction appendCodePoint(out, cp) {\n if (cp <= 0xffff) {\n out.push(String.fromCharCode(cp));\n return;\n }\n cp -= 0x10000;\n out.push(String.fromCharCode(0xd800 + (cp >> 10), 0xdc00 + (cp & 0x3ff)));\n}\nfunction flushChunk(parts, chunk) {\n if (chunk.length === 0)\n return;\n parts.push(String.fromCharCode.apply(null, chunk));\n chunk.length = 0;\n}\nfunction pushCodeUnit(parts, chunk, codeUnit) {\n chunk.push(codeUnit);\n if (chunk.length >= CHUNK)\n flushChunk(parts, chunk);\n}\nfunction pushCodePoint(parts, chunk, cp) {\n if (cp <= 0xffff) {\n pushCodeUnit(parts, chunk, cp);\n return;\n }\n cp -= 0x10000;\n pushCodeUnit(parts, chunk, 0xd800 + (cp >> 10));\n pushCodeUnit(parts, chunk, 0xdc00 + (cp & 0x3ff));\n}\nfunction decodeUTF8(bytes) {\n const parts = [];\n const chunk = [];\n let i = 0;\n // Match TextDecoder(\"utf-8\") default BOM handling\n if (bytes.length >= 3 &&\n bytes[0] === 0xef &&\n bytes[1] === 0xbb &&\n bytes[2] === 0xbf) {\n i = 3;\n }\n while (i < bytes.length) {\n const b1 = bytes[i];\n if (b1 <= 0x7f) {\n pushCodeUnit(parts, chunk, b1);\n i++;\n continue;\n }\n // Invalid leading bytes: continuation byte or impossible prefixes\n if (b1 < 0xc2 || b1 > 0xf4) {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n i++;\n continue;\n }\n // 2-byte sequence\n if (b1 <= 0xdf) {\n if (i + 1 >= bytes.length) {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n i++;\n continue;\n }\n const b2 = bytes[i + 1];\n if ((b2 & 0xc0) !== 0x80) {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n i++;\n continue;\n }\n const cp = ((b1 & 0x1f) << 6) | (b2 & 0x3f);\n pushCodeUnit(parts, chunk, cp);\n i += 2;\n continue;\n }\n // 3-byte sequence\n if (b1 <= 0xef) {\n if (i + 2 >= bytes.length) {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n i++;\n continue;\n }\n const b2 = bytes[i + 1];\n const b3 = bytes[i + 2];\n const valid = (b2 & 0xc0) === 0x80 &&\n (b3 & 0xc0) === 0x80 &&\n !(b1 === 0xe0 && b2 < 0xa0) && // overlong\n !(b1 === 0xed && b2 >= 0xa0); // surrogate range\n if (!valid) {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n i++;\n continue;\n }\n const cp = ((b1 & 0x0f) << 12) |\n ((b2 & 0x3f) << 6) |\n (b3 & 0x3f);\n pushCodeUnit(parts, chunk, cp);\n i += 3;\n continue;\n }\n // 4-byte sequence\n if (i + 3 >= bytes.length) {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n i++;\n continue;\n }\n const b2 = bytes[i + 1];\n const b3 = bytes[i + 2];\n const b4 = bytes[i + 3];\n const valid = (b2 & 0xc0) === 0x80 &&\n (b3 & 0xc0) === 0x80 &&\n (b4 & 0xc0) === 0x80 &&\n !(b1 === 0xf0 && b2 < 0x90) && // overlong\n !(b1 === 0xf4 && b2 > 0x8f); // > U+10FFFF\n if (!valid) {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n i++;\n continue;\n }\n const cp = ((b1 & 0x07) << 18) |\n ((b2 & 0x3f) << 12) |\n ((b3 & 0x3f) << 6) |\n (b4 & 0x3f);\n pushCodePoint(parts, chunk, cp);\n i += 4;\n }\n flushChunk(parts, chunk);\n return parts.join(\"\");\n}\nfunction decodeUTF16LE(bytes) {\n const parts = [];\n const chunk = [];\n const len = bytes.length;\n let i = 0;\n while (i + 1 < len) {\n const u1 = bytes[i] | (bytes[i + 1] << 8);\n i += 2;\n // High surrogate\n if (u1 >= 0xd800 && u1 <= 0xdbff) {\n if (i + 1 < len) {\n const u2 = bytes[i] | (bytes[i + 1] << 8);\n if (u2 >= 0xdc00 && u2 <= 0xdfff) {\n pushCodeUnit(parts, chunk, u1);\n pushCodeUnit(parts, chunk, u2);\n i += 2;\n }\n else {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n }\n }\n else {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n }\n continue;\n }\n // Lone low surrogate\n if (u1 >= 0xdc00 && u1 <= 0xdfff) {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n continue;\n }\n pushCodeUnit(parts, chunk, u1);\n }\n // Odd trailing byte\n if (i < len) {\n pushCodeUnit(parts, chunk, REPLACEMENT);\n }\n flushChunk(parts, chunk);\n return parts.join(\"\");\n}\nfunction decodeASCII(bytes) {\n const parts = [];\n for (let i = 0; i < bytes.length; i += CHUNK) {\n const end = Math.min(bytes.length, i + CHUNK);\n const codes = new Array(end - i);\n for (let j = i, k = 0; j < end; j++, k++) {\n codes[k] = bytes[j] & 0x7f;\n }\n parts.push(String.fromCharCode.apply(null, codes));\n }\n return parts.join(\"\");\n}\nfunction decodeLatin1(bytes) {\n const parts = [];\n for (let i = 0; i < bytes.length; i += CHUNK) {\n const end = Math.min(bytes.length, i + CHUNK);\n const codes = new Array(end - i);\n for (let j = i, k = 0; j < end; j++, k++) {\n codes[k] = bytes[j];\n }\n parts.push(String.fromCharCode.apply(null, codes));\n }\n return parts.join(\"\");\n}\nfunction decodeWindows1252(bytes) {\n const parts = [];\n let out = \"\";\n for (let i = 0; i < bytes.length; i++) {\n const b = bytes[i];\n const extra = b >= 0x80 && b <= 0x9f ? WINDOWS_1252_EXTRA[b] : undefined;\n out += extra !== null && extra !== void 0 ? extra : String.fromCharCode(b);\n if (out.length >= CHUNK) {\n parts.push(out);\n out = \"\";\n }\n }\n if (out)\n parts.push(out);\n return parts.join(\"\");\n}\nfunction encodeUTF8(str) {\n const out = [];\n for (let i = 0; i < str.length; i++) {\n let cp = str.charCodeAt(i);\n // Valid surrogate pair\n if (cp >= 0xd800 && cp <= 0xdbff) {\n if (i + 1 < str.length) {\n const lo = str.charCodeAt(i + 1);\n if (lo >= 0xdc00 && lo <= 0xdfff) {\n cp = 0x10000 + ((cp - 0xd800) << 10) + (lo - 0xdc00);\n i++;\n }\n else {\n cp = REPLACEMENT;\n }\n }\n else {\n cp = REPLACEMENT;\n }\n }\n else if (cp >= 0xdc00 && cp <= 0xdfff) {\n // Lone low surrogate\n cp = REPLACEMENT;\n }\n if (cp < 0x80) {\n out.push(cp);\n }\n else if (cp < 0x800) {\n out.push(0xc0 | (cp >> 6), 0x80 | (cp & 0x3f));\n }\n else if (cp < 0x10000) {\n out.push(0xe0 | (cp >> 12), 0x80 | ((cp >> 6) & 0x3f), 0x80 | (cp & 0x3f));\n }\n else {\n out.push(0xf0 | (cp >> 18), 0x80 | ((cp >> 12) & 0x3f), 0x80 | ((cp >> 6) & 0x3f), 0x80 | (cp & 0x3f));\n }\n }\n return new Uint8Array(out);\n}\nfunction encodeUTF16LE(str) {\n // Preserve JS string code units, but do not emit non-well-formed UTF-16.\n // Replace lone surrogates with U+FFFD.\n const units = [];\n for (let i = 0; i < str.length; i++) {\n const u = str.charCodeAt(i);\n if (u >= 0xd800 && u <= 0xdbff) {\n if (i + 1 < str.length) {\n const lo = str.charCodeAt(i + 1);\n if (lo >= 0xdc00 && lo <= 0xdfff) {\n units.push(u, lo);\n i++;\n }\n else {\n units.push(REPLACEMENT);\n }\n }\n else {\n units.push(REPLACEMENT);\n }\n continue;\n }\n if (u >= 0xdc00 && u <= 0xdfff) {\n units.push(REPLACEMENT);\n continue;\n }\n units.push(u);\n }\n const out = new Uint8Array(units.length * 2);\n for (let i = 0; i < units.length; i++) {\n const code = units[i];\n const o = i * 2;\n out[o] = code & 0xff;\n out[o + 1] = code >>> 8;\n }\n return out;\n}\nfunction encodeASCII(str) {\n const out = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++)\n out[i] = str.charCodeAt(i) & 0x7f;\n return out;\n}\nfunction encodeLatin1(str) {\n const out = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++)\n out[i] = str.charCodeAt(i) & 0xff;\n return out;\n}\nfunction encodeWindows1252(str) {\n const out = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n const ch = str[i];\n const code = ch.charCodeAt(0);\n if (WINDOWS_1252_REVERSE[ch] !== undefined) {\n out[i] = WINDOWS_1252_REVERSE[ch];\n continue;\n }\n if ((code >= 0x00 && code <= 0x7f) ||\n (code >= 0xa0 && code <= 0xff)) {\n out[i] = code;\n continue;\n }\n out[i] = 0x3f; // '?'\n }\n return out;\n}\n","import * as ieee754 from 'ieee754';\nimport { textDecode } from \"@borewit/text-codec\";\n// Primitive types\nfunction dv(array) {\n return new DataView(array.buffer, array.byteOffset);\n}\n/*\n * 8-bit unsigned integer\n */\nexport const UINT8 = {\n len: 1,\n get(array, offset) {\n return dv(array).getUint8(offset);\n },\n put(array, offset, value) {\n dv(array).setUint8(offset, value);\n return offset + 1;\n }\n};\n/**\n * 16-bit unsigned integer, Little Endian byte order\n */\nexport const UINT16_LE = {\n len: 2,\n get(array, offset) {\n return dv(array).getUint16(offset, true);\n },\n put(array, offset, value) {\n dv(array).setUint16(offset, value, true);\n return offset + 2;\n }\n};\n/**\n * 16-bit unsigned integer, Big Endian byte order\n */\nexport const UINT16_BE = {\n len: 2,\n get(array, offset) {\n return dv(array).getUint16(offset);\n },\n put(array, offset, value) {\n dv(array).setUint16(offset, value);\n return offset + 2;\n }\n};\n/**\n * 24-bit unsigned integer, Little Endian byte order\n */\nexport const UINT24_LE = {\n len: 3,\n get(array, offset) {\n const dataView = dv(array);\n return dataView.getUint8(offset) + (dataView.getUint16(offset + 1, true) << 8);\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint8(offset, value & 0xff);\n dataView.setUint16(offset + 1, value >> 8, true);\n return offset + 3;\n }\n};\n/**\n * 24-bit unsigned integer, Big Endian byte order\n */\nexport const UINT24_BE = {\n len: 3,\n get(array, offset) {\n const dataView = dv(array);\n return (dataView.getUint16(offset) << 8) + dataView.getUint8(offset + 2);\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint16(offset, value >> 8);\n dataView.setUint8(offset + 2, value & 0xff);\n return offset + 3;\n }\n};\n/**\n * 32-bit unsigned integer, Little Endian byte order\n */\nexport const UINT32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getUint32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setUint32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * 32-bit unsigned integer, Big Endian byte order\n */\nexport const UINT32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getUint32(offset);\n },\n put(array, offset, value) {\n dv(array).setUint32(offset, value);\n return offset + 4;\n }\n};\n/**\n * 8-bit signed integer\n */\nexport const INT8 = {\n len: 1,\n get(array, offset) {\n return dv(array).getInt8(offset);\n },\n put(array, offset, value) {\n dv(array).setInt8(offset, value);\n return offset + 1;\n }\n};\n/**\n * 16-bit signed integer, Big Endian byte order\n */\nexport const INT16_BE = {\n len: 2,\n get(array, offset) {\n return dv(array).getInt16(offset);\n },\n put(array, offset, value) {\n dv(array).setInt16(offset, value);\n return offset + 2;\n }\n};\n/**\n * 16-bit signed integer, Little Endian byte order\n */\nexport const INT16_LE = {\n len: 2,\n get(array, offset) {\n return dv(array).getInt16(offset, true);\n },\n put(array, offset, value) {\n dv(array).setInt16(offset, value, true);\n return offset + 2;\n }\n};\n/**\n * 24-bit signed integer, Little Endian byte order\n */\nexport const INT24_LE = {\n len: 3,\n get(array, offset) {\n const unsigned = UINT24_LE.get(array, offset);\n return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint8(offset, value & 0xff);\n dataView.setUint16(offset + 1, value >> 8, true);\n return offset + 3;\n }\n};\n/**\n * 24-bit signed integer, Big Endian byte order\n */\nexport const INT24_BE = {\n len: 3,\n get(array, offset) {\n const unsigned = UINT24_BE.get(array, offset);\n return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint16(offset, value >> 8);\n dataView.setUint8(offset + 2, value & 0xff);\n return offset + 3;\n }\n};\n/**\n * 32-bit signed integer, Big Endian byte order\n */\nexport const INT32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getInt32(offset);\n },\n put(array, offset, value) {\n dv(array).setInt32(offset, value);\n return offset + 4;\n }\n};\n/**\n * 32-bit signed integer, Big Endian byte order\n */\nexport const INT32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getInt32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setInt32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * 64-bit unsigned integer, Little Endian byte order\n */\nexport const UINT64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigUint64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setBigUint64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * 64-bit signed integer, Little Endian byte order\n */\nexport const INT64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigInt64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setBigInt64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * 64-bit unsigned integer, Big Endian byte order\n */\nexport const UINT64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigUint64(offset);\n },\n put(array, offset, value) {\n dv(array).setBigUint64(offset, value);\n return offset + 8;\n }\n};\n/**\n * 64-bit signed integer, Big Endian byte order\n */\nexport const INT64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigInt64(offset);\n },\n put(array, offset, value) {\n dv(array).setBigInt64(offset, value);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 16-bit (half precision) float, big endian\n */\nexport const Float16_BE = {\n len: 2,\n get(dataView, offset) {\n return ieee754.read(dataView, offset, false, 10, this.len);\n },\n put(dataView, offset, value) {\n ieee754.write(dataView, value, offset, false, 10, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 16-bit (half precision) float, little endian\n */\nexport const Float16_LE = {\n len: 2,\n get(array, offset) {\n return ieee754.read(array, offset, true, 10, this.len);\n },\n put(array, offset, value) {\n ieee754.write(array, value, offset, true, 10, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 32-bit (single precision) float, big endian\n */\nexport const Float32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getFloat32(offset);\n },\n put(array, offset, value) {\n dv(array).setFloat32(offset, value);\n return offset + 4;\n }\n};\n/**\n * IEEE 754 32-bit (single precision) float, little endian\n */\nexport const Float32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getFloat32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setFloat32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * IEEE 754 64-bit (double precision) float, big endian\n */\nexport const Float64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getFloat64(offset);\n },\n put(array, offset, value) {\n dv(array).setFloat64(offset, value);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 64-bit (double precision) float, little endian\n */\nexport const Float64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getFloat64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setFloat64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 80-bit (extended precision) float, big endian\n */\nexport const Float80_BE = {\n len: 10,\n get(array, offset) {\n return ieee754.read(array, offset, false, 63, this.len);\n },\n put(array, offset, value) {\n ieee754.write(array, value, offset, false, 63, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 80-bit (extended precision) float, little endian\n */\nexport const Float80_LE = {\n len: 10,\n get(array, offset) {\n return ieee754.read(array, offset, true, 63, this.len);\n },\n put(array, offset, value) {\n ieee754.write(array, value, offset, true, 63, this.len);\n return offset + this.len;\n }\n};\n/**\n * Ignore a given number of bytes\n */\nexport class IgnoreType {\n /**\n * @param len number of bytes to ignore\n */\n constructor(len) {\n this.len = len;\n }\n // ToDo: don't read, but skip data\n get(_array, _off) {\n }\n}\nexport class Uint8ArrayType {\n constructor(len) {\n this.len = len;\n }\n get(array, offset) {\n return array.subarray(offset, offset + this.len);\n }\n}\n/**\n * Consume a fixed number of bytes from the stream and return a string with a specified encoding.\n * Supports all encodings supported by TextDecoder, plus 'windows-1252'.\n */\nexport class StringType {\n constructor(len, encoding) {\n this.len = len;\n this.encoding = encoding;\n }\n get(data, offset = 0) {\n const bytes = data.subarray(offset, offset + this.len);\n return textDecode(bytes, this.encoding);\n }\n}\n/**\n * ANSI Latin 1 String using Windows-1252 (Code Page 1252)\n * Windows-1252 is a superset of ISO 8859-1 / Latin-1.\n */\nexport class AnsiStringType extends StringType {\n constructor(len) {\n super(len, 'windows-1252');\n }\n}\n","export const makeParseError = (name) => {\n return class ParseError extends Error {\n constructor(message) {\n super(message);\n this.name = name;\n }\n };\n};\n// Concrete error class representing a file type determination failure.\nexport class CouldNotDetermineFileTypeError extends makeParseError('CouldNotDetermineFileTypeError') {\n}\n// Concrete error class representing an unsupported file type.\nexport class UnsupportedFileTypeError extends makeParseError('UnsupportedFileTypeError') {\n}\n// Concrete error class representing unexpected file content.\nexport class UnexpectedFileContentError extends makeParseError('UnexpectedFileContentError') {\n constructor(fileType, message) {\n super(message);\n this.fileType = fileType;\n }\n // Override toString to include file type information.\n toString() {\n return `${this.name} (FileType: ${this.fileType}): ${this.message}`;\n }\n}\n// Concrete error class representing a field decoding error.\nexport class FieldDecodingError extends makeParseError('FieldDecodingError') {\n}\nexport class InternalParserError extends makeParseError('InternalParserError') {\n}\n// Factory function to create a specific type of UnexpectedFileContentError.\nexport const makeUnexpectedFileContentError = (fileType) => {\n return class extends UnexpectedFileContentError {\n constructor(message) {\n super(fileType, message);\n }\n };\n};\n","export class BasicParser {\n /**\n * Initialize parser with output (metadata), input (tokenizer) & parsing options (options).\n * @param {INativeMetadataCollector} metadata Output\n * @param {ITokenizer} tokenizer Input\n * @param {IOptions} options Parsing options\n */\n constructor(metadata, tokenizer, options) {\n this.metadata = metadata;\n this.tokenizer = tokenizer;\n this.options = options;\n }\n}\n"],"mappings":"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","names":["require_ms","__commonJSMin","exports","module","s","m","h","d","w","y","val","options","type","parse","fmtLong","fmtShort","str","match","n","__name","ms","msAbs","plural","name","isPlural","require_common","__commonJSMin","exports","module","setup","env","createDebug","coerce","disable","enable","enabled","destroy","key","selectColor","namespace","hash","i","__name","prevTime","enableOverride","namespacesCache","enabledCache","debug","args","self","curr","ms","index","match","format","formatter","val","extend","v","delimiter","newDebug","namespaces","split","ns","matchesTemplate","search","template","searchIndex","templateIndex","starIndex","matchIndex","name","skip","require_browser","__commonJSMin","exports","module","formatArgs","save","load","useColors","localstorage","warned","m","__name","args","c","index","lastC","match","namespaces","formatters","v","error","require_tty","__commonJSMin","exports","module","require_util","__commonJSMin","exports","module","require_os","__commonJSMin","exports","module","require_has_flag","__commonJSMin","exports","module","flag","argv","prefix","position","terminatorPosition","require_supports_color","__commonJSMin","exports","module","os","tty","hasFlag","env","forceColor","translateLevel","level","__name","supportsColor","haveStream","streamIsTTY","min","osRelease","sign","version","getSupportLevel","stream","require_node","__commonJSMin","exports","module","tty","util","init","log","formatArgs","save","load","useColors","supportsColor","key","obj","prop","_","k","val","__name","args","name","c","colorCode","prefix","getDate","namespaces","debug","keys","i","formatters","v","str","require_src","__commonJSMin","exports","module","require_ieee754","__commonJSMin","exports","buffer","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","i","d","s","value","c","rt","defaultMessages","EndOfStreamError","__name","AbortError","message","AbstractStreamReader","__name","uint8Array","mayBeLess","bytesRead","buffer","EndOfStreamError","remaining","peekData","lenCopy","AbortError","chunkLen","WebStreamReader","AbstractStreamReader","__name","reader","WebStreamByobReader","WebStreamReader","__name","buffer","mayBeLess","result","WebStreamDefaultReader","AbstractStreamReader","__name","reader","target","chunk","written","buffer","mayBeLess","totalBytesRead","result","EndOfStreamError","makeWebStreamReader","stream","reader","WebStreamDefaultReader","WebStreamByobReader","error","__name","AbstractTokenizer","__name","options","token","position","uint8Array","EndOfStreamError","length","bytesLeft","maxBufferSize","ReadStreamTokenizer","AbstractTokenizer","__name","streamReader","options","uint8Array","normOptions","skipBytes","bytesRead","EndOfStreamError","skipBuffer","err","length","bufSize","buf","totBytesRead","remaining","BufferTokenizer","AbstractTokenizer","__name","uint8Array","options","bytesRead","normOptions","bytes2read","EndOfStreamError","position","BlobTokenizer","AbstractTokenizer","__name","blob","options","uint8Array","bytesRead","buffer","normOptions","bytes2read","EndOfStreamError","arrayBuffer","position","fromWebStream","webStream","options","webStreamReader","makeWebStreamReader","_options","chainedClose","ReadStreamTokenizer","__name","fromBuffer","uint8Array","BufferTokenizer","fromBlob","blob","BlobTokenizer","import_promises","FileTokenizer","_FileTokenizer","AbstractTokenizer","__name","sourceFilePath","fileHandle","fsOpen","stat","options","uint8Array","normOptions","res","EndOfStreamError","position","fromFile","FileTokenizer","WINDOWS_1252_EXTRA","WINDOWS_1252_REVERSE","code","char","_utf8Decoder","_utf8Encoder","utf8Decoder","__name","utf8Encoder","CHUNK","REPLACEMENT","textDecode","bytes","encoding","dec","decodeUTF8","decodeUTF16LE","decodeASCII","decodeLatin1","decodeWindows1252","textEncode","input","enc","encodeUTF8","encodeUTF16LE","encodeASCII","encodeLatin1","encodeWindows1252","flushChunk","parts","chunk","__name","pushCodeUnit","codeUnit","CHUNK","pushCodePoint","cp","decodeUTF8","bytes","i","b1","REPLACEMENT","b2","b3","b4","decodeUTF16LE","len","u1","u2","decodeASCII","end","codes","j","k","decodeLatin1","decodeWindows1252","out","b","extra","WINDOWS_1252_EXTRA","encodeUTF8","str","lo","encodeUTF16LE","units","u","code","o","encodeASCII","encodeLatin1","encodeWindows1252","ch","WINDOWS_1252_REVERSE","lib_exports","__export","AnsiStringType","Float16_BE","Float16_LE","Float32_BE","Float32_LE","Float64_BE","Float64_LE","Float80_BE","Float80_LE","INT16_BE","INT16_LE","INT24_BE","INT24_LE","INT32_BE","INT32_LE","INT64_BE","INT64_LE","INT8","IgnoreType","StringType","UINT16_BE","UINT16_LE","UINT24_BE","UINT24_LE","UINT32_BE","UINT32_LE","UINT64_BE","UINT64_LE","UINT8","Uint8ArrayType","ieee754","dv","array","__name","UINT8","offset","value","UINT16_LE","UINT16_BE","UINT24_LE","dataView","UINT24_BE","UINT32_LE","UINT32_BE","INT8","INT16_BE","INT16_LE","INT24_LE","unsigned","INT24_BE","INT32_BE","INT32_LE","UINT64_LE","INT64_LE","UINT64_BE","INT64_BE","Float16_BE","Float16_LE","Float32_BE","Float32_LE","Float64_BE","Float64_LE","Float80_BE","Float80_LE","IgnoreType","len","_array","_off","Uint8ArrayType","StringType","encoding","data","bytes","textDecode","AnsiStringType","makeParseError","__name","name","message","CouldNotDetermineFileTypeError","UnsupportedFileTypeError","UnexpectedFileContentError","fileType","FieldDecodingError","InternalParserError","makeUnexpectedFileContentError","BasicParser","__name","metadata","tokenizer","options"],"sourceRoot":"file:///var/home/toko/Code/tokono.ma/diffuse-artifacts/diffuse","file":"/chunk-PHFIOWBZ.js.map"} \ No newline at end of file diff --git a/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PI4WZOI6.js b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PI4WZOI6.js new file mode 100644 index 00000000..ecef6cb2 --- /dev/null +++ b/artifacts/bafybeiaou3qjoves7owxzuhbkuteysxlqcuwpvrqdc7f3h3qxaibqxvhyu/chunk-PI4WZOI6.js @@ -0,0 +1,231 @@ +import{b as $e}from"./chunk-LUE74EM5.js";import{a as we}from"./chunk-EPAUM665.js";import{a as ke}from"./chunk-76OIFD3C.js";import{a as ye}from"./chunk-URKFFLAS.js";import{a as $,e as B,g as J}from"./chunk-HCA2HGAZ.js";import{a as be,b as xe,c as me}from"./chunk-XQAIXFJF.js";import{a as fe}from"./chunk-EDKAGOM6.js";import{a as ge}from"./chunk-M3YB5K5O.js";import{m as Q,n as de,o as V}from"./chunk-XILA3E7E.js";import{a as g}from"./chunk-75KFZLU6.js";function ne(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}g(ne,"A");var z=ne();function Le(r){z=r}g(Le,"j");var v={exec:g(()=>null,"exec")};function L(r){let e=[];return t=>{let n=Math.max(0,Math.min(3,t-1)),s=e[n];return s||(s=r(n),e[n]=s),s}}g(L,"I");function d(r,e=""){let t=typeof r=="string"?r:r.source,n={replace:g((s,i)=>{let a=typeof i=="string"?i:i.source;return a=a.replace(w.caret,"$1"),t=t.replace(s,a),n},"replace"),getRegex:g(()=>new RegExp(t,e),"getRegex")};return n}g(d,"k");var Qe=((r="")=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:g(r=>new RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`),"listItemRegex"),nextBulletRegex:L(r=>new RegExp(`^ {0,${r}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:L(r=>new RegExp(`^ {0,${r}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:L(r=>new RegExp(`^ {0,${r}}(?:\`\`\`|~~~)`)),headingBeginRegex:L(r=>new RegExp(`^ {0,${r}}#`)),htmlBeginRegex:L(r=>new RegExp(`^ {0,${r}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:L(r=>new RegExp(`^ {0,${r}}>`))},He=/^(?:[ \t]*(?:\n|$))+/,Ue=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Ne=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Z=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,je=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,se=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Pe=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Ie=d(Pe).replace(/bull/g,se).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Ge=d(Pe).replace(/bull/g,se).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ie=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,Xe=/^[^\n]+/,le=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,We=d(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",le).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ye=d(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,se).getRegex(),G="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ae=/|$))/,Ke=d("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|[^\\n]*\\n*|$)|[^\\n]*\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",ae).replace("tag",G).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ee=g(r=>d(ie).replace("hr",Z).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",r).replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",G).getRegex(),"le"),Ve=Ee(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),Je=Ee(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),et=d(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Je).getRegex(),oe={blockquote:et,code:Ue,def:We,fences:Ne,heading:je,hr:Z,html:Ke,lheading:Ie,list:Ye,newline:He,paragraph:Ve,table:v,text:Xe},Se=d("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Z).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",G).getRegex(),tt={...oe,lheading:Ge,table:Se,paragraph:d(ie).replace("hr",Z).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Se).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",G).getRegex()},rt={...oe,html:d(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",ae).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:v,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:d(ie).replace("hr",Z).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",Ie).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},nt=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,st=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Ce=/^( {2,}|\\)\n(?!\s*$)/,it=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Qe?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),qe=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,ht=d(qe,"u").replace(/punct/g,T).getRegex(),ut=d(qe,"u").replace(/punct/g,Be).getRegex(),gt=/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,dt=d(gt,"u").replace(/openQuote/g,at).replace(/punct/g,T).getRegex(),De="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",kt=d(De,"gu").replace(/notPunctSpace/g,O).replace(/punctSpace/g,P).replace(/punct/g,T).getRegex(),ft=d(De,"gu").replace(/notPunctSpace/g,ct).replace(/punctSpace/g,ot).replace(/punct/g,Be).getRegex(),bt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)",xt=d(bt,"gu").replace(/notPunctSpace/g,O).replace(/punctSpace/g,P).replace(/punct/g,T).getRegex(),mt=d("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,O).replace(/punctSpace/g,P).replace(/punct/g,T).getRegex(),wt="^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)",$t=d(wt,"gu").replace(/notPunctSpace/g,O).replace(/punctSpace/g,P).replace(/punct/g,T).getRegex(),yt=d(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,T).getRegex(),St="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Rt=d(St,"gu").replace(/notPunctSpace/g,O).replace(/punctSpace/g,P).replace(/punct/g,T).getRegex(),Tt=d(/\\(punct)/,"gu").replace(/punct/g,T).getRegex(),_t=d(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),vt=d(ae).replace("(?:-->|$)","-->").getRegex(),At=d("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",vt).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),U=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,zt=d(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",U).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ze=d(/^!?\[(label)\]\[(ref)\]/).replace("label",U).replace("ref",le).getRegex(),Oe=d(/^!?\[(ref)\](?:\[\])?/).replace("ref",le).getRegex(),Lt=d("reflink|nolink(?!\\()","g").replace("reflink",Ze).replace("nolink",Oe).getRegex(),Re=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ce={_backpedal:v,anyPunctuation:Tt,autolink:_t,blockSkip:pt,br:Ce,code:st,del:v,delLDelim:v,delRDelim:v,emStrongLDelim:ht,emStrongRDelimAst:kt,emStrongRDelimUnd:mt,escape:nt,link:zt,nolink:Oe,punctuation:lt,reflink:Ze,reflinkSearch:Lt,tag:At,text:it,url:v},Pt={...ce,emStrongLDelim:dt,emStrongRDelimAst:xt,emStrongRDelimUnd:$t,link:d(/^!?\[(label)\]\((.*?)\)/).replace("label",U).getRegex(),reflink:d(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",U).getRegex()},ee={...ce,emStrongRDelimAst:ft,emStrongLDelim:ut,delLDelim:yt,delRDelim:Rt,url:d(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Re).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:d(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},Te=g(r=>Et[r],"ge");function R(r,e){if(e){if(w.escapeTest.test(r))return r.replace(w.escapeReplace,Te)}else if(w.escapeTestNoEncode.test(r))return r.replace(w.escapeReplaceNoEncode,Te);return r}g(R,"T");function _e(r){try{r=encodeURI(r).replace(w.percentDecode,"%")}catch{return null}return r}g(_e,"Y");function ve(r,e){let t=r.replace(w.findPipe,(i,a,l)=>{let c=!1,o=a;for(;--o>=0&&l[o]==="\\";)c=!c;return c?"|":" |"}),n=t.split(w.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length=0&&w.blankLine.test(e[t]);)t--;return e.length-t<=2?r:e.slice(0,t+1).join(` +`)}g(Ae,"te");function Ct(r,e){if(r.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n0?-2:-1}g(Ct,"fe");function Bt(r,e=0){let t=e,n="";for(let s of r)if(s===" "){let i=4-t%4;n+=" ".repeat(i),t+=i}else n+=s,t++;return n}g(Bt,"me");function ze(r,e,t,n,s){let i=e.href,a=e.title||null,l=r[1].replace(s.other.outputLinkReplace,"$1"),c=r[0].charAt(0)==="!";n.state.inLink=!0;let o=n.state.linkEmitted,h=n.state.inRawBlock;n.state.linkEmitted=!1;let p=n.inlineTokens(l),k=n.state.linkEmitted;if(n.state.linkEmitted=o,n.state.inLink=!1,!c){if(k){n.state.inRawBlock=h;return}n.state.linkEmitted=!0}return{type:c?"image":"link",raw:t,href:i,title:a,text:l,tokens:p}}g(ze,"xe");function qt(r,e,t){let n=r.match(t.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(` +`).map(i=>{let a=i.match(t.other.beginningSpace);if(a===null)return i;let[l]=a;return l.length>=s.length?i.slice(s.length):i}).join(` +`)}g(qt,"kt");var N=class{static{g(this,"y")}options;rules;lexer;constructor(r){this.options=r||z}space(r){let e=this.rules.block.newline.exec(r);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(r){let e=this.rules.block.code.exec(r);if(e){let t=this.options.pedantic?e[0]:Ae(e[0]),n=t.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t,codeBlockStyle:"indented",text:n}}}fences(r){let e=this.rules.block.fences.exec(r);if(e){let t=e[0],n=qt(t,e[3]||"",this.rules);return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:n}}}heading(r){let e=this.rules.block.heading.exec(r);if(e){let t=e[2].trim();if(this.rules.other.endingHash.test(t)){let n=_(t,"#");(this.options.pedantic||!n||this.rules.other.endingSpaceChar.test(n))&&(t=n.trim())}return{type:"heading",raw:_(e[0],` +`),depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(r){let e=this.rules.block.hr.exec(r);if(e)return{type:"hr",raw:_(e[0],` +`)}}blockquote(r){let e=this.rules.block.blockquote.exec(r);if(e){let t=_(e[0],` +`).split(` +`),n="",s="",i=[];for(;t.length>0;){let a=!1,l=[],c;for(c=0;c1,s={type:"list",raw:"",ordered:n,start:n?+t.slice(0,-1):"",loose:!1,items:[]};t=n?`\\d{1,9}\\${t.slice(-1)}`:`\\${t}`,this.options.pedantic&&(t=n?t:"[*+-]");let i=this.rules.other.listItemRegex(t),a=!1;for(;r;){let c=!1,o="",h="";if(!(e=i.exec(r))||this.rules.block.hr.test(r))break;o=e[0],r=r.substring(o.length);let p=Bt(e[2].split(` +`,1)[0],e[1].length),k=r.split(` +`,1)[0],m=!p.trim(),x=0;if(this.options.pedantic?(x=2,h=p.trimStart()):m?x=e[1].length+1:(x=p.search(this.rules.other.nonSpaceChar),x=x>4?1:x,h=p.slice(x),x+=e[1].length),m&&this.rules.other.blankLine.test(k)&&(o+=k+` +`,r=r.substring(k.length+1),c=!0),!c){let f=this.rules.other.nextBulletRegex(x),u=this.rules.other.hrRegex(x),I=this.rules.other.fencesBeginRegex(x),F=this.rules.other.headingBeginRegex(x),E=this.rules.other.htmlBeginRegex(x),Fe=this.rules.other.blockquoteBeginRegex(x);for(;r;){let K=r.split(` +`,1)[0],C;if(k=K,this.options.pedantic?(k=k.replace(this.rules.other.listReplaceNesting," "),C=k):C=k.replace(this.rules.other.tabCharGlobal," "),I.test(k)||F.test(k)||E.test(k)||Fe.test(k)||f.test(k)||u.test(k))break;if(C.search(this.rules.other.nonSpaceChar)>=x||!k.trim())h+=` +`+C.slice(x);else{if(m||p.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||I.test(p)||F.test(p)||u.test(p))break;h+=` +`+k}m=!k.trim(),o+=K+` +`,r=r.substring(K.length+1),p=C.slice(x)}}s.loose||(a?s.loose=!0:this.rules.other.doubleBlankLine.test(o)&&(a=!0)),s.items.push({type:"list_item",raw:o,task:!!this.options.gfm&&this.rules.other.listIsTask.test(h),loose:!1,text:h,tokens:[]}),s.raw+=o}let l=s.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;s.raw=s.raw.trimEnd();for(let c of s.items)if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),!s.loose){let o=c.tokens.filter(p=>p.type==="space"),h=o.length>0&&o.some(p=>this.rules.other.anyLine.test(p.raw));s.loose=h}for(let c of s.items){let o=c.tokens[0];if(c.task&&(o?.type==="text"||o?.type==="paragraph")){c.text=c.text.replace(this.rules.other.listReplaceTask,""),o.raw=o.raw.replace(this.rules.other.listReplaceTask,""),o.text=o.text.replace(this.rules.other.listReplaceTask,"");for(let p=this.lexer.inlineQueue.length-1;p>=0;p--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[p].src)){this.lexer.inlineQueue[p].src=this.lexer.inlineQueue[p].src.replace(this.rules.other.listReplaceTask,"");break}let h=this.rules.other.listTaskCheckbox.exec(c.raw);if(h){let p={type:"checkbox",raw:h[0]+" ",checked:h[0]!=="[ ]"};c.checked=p.checked,s.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=p.raw+c.tokens[0].raw,c.tokens[0].text=p.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(p)):c.tokens.unshift({type:"paragraph",raw:p.raw,text:p.raw,tokens:[p]}):c.tokens.unshift(p)}}else c.task&&(c.task=!1)}if(s.loose)for(let c of s.items){c.loose=!0;for(let o of c.tokens)o.type==="text"&&(o.type="paragraph")}return s}}html(r){let e=this.rules.block.html.exec(r);if(e){let t=Ae(e[0]);return{type:"html",block:!0,raw:t,pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:t}}}def(r){let e=this.rules.block.def.exec(r);if(e){let t=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),n=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",s=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:t,raw:_(e[0],` +`),href:n,title:s}}}table(r){let e=this.rules.block.table.exec(r);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let t=ve(e[1]),n=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(` +`):[],i={type:"table",raw:_(e[0],` +`),header:[],align:[],rows:[]};if(t.length===n.length){for(let a of n)this.rules.other.tableAlignRight.test(a)?i.align.push("right"):this.rules.other.tableAlignCenter.test(a)?i.align.push("center"):this.rules.other.tableAlignLeft.test(a)?i.align.push("left"):i.align.push(null);for(let a=0;a({text:l,tokens:this.lexer.inline(l),header:!1,align:i.align[c]})));return i}}lheading(r){let e=this.rules.block.lheading.exec(r);if(e){let t=e[1].trim();return{type:"heading",raw:_(e[0],` +`),depth:e[2].charAt(0)==="="?1:2,text:t,tokens:this.lexer.inline(t)}}}paragraph(r){let e=this.rules.block.paragraph.exec(r);if(e){let t=e[1].charAt(e[1].length-1)===` +`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:t,tokens:this.lexer.inline(t)}}}text(r){let e=this.rules.block.text.exec(r);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(r){let e=this.rules.inline.escape.exec(r);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(r){let e=this.rules.inline.tag.exec(r);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(r){let e=this.rules.inline.link.exec(r);if(e){let t=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(t)){if(!this.rules.other.endAngleBracket.test(t))return;let i=_(t.slice(0,-1),"\\");if((t.length-i.length)%2===0)return}else{let i=Ct(e[2],"()");if(i===-2)return;if(i>-1){let a=(e[0].indexOf("!")===0?5:4)+e[1].length+i;e[2]=e[2].substring(0,i),e[0]=e[0].substring(0,a).trim(),e[3]=""}}let n=e[2],s="";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(n);i&&(n=i[1],s=i[3])}else s=e[3]?e[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(t)?n=n.slice(1):n=n.slice(1,-1)),ze(e,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(r,e){let t;if((t=this.rules.inline.reflink.exec(r))||(t=this.rules.inline.nolink.exec(r))){let n=(t[2]||t[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=e[n.toLowerCase()];if(!s){let i=t[0].charAt(0);return{type:"text",raw:i,text:i}}return ze(t,s,t[0],this.lexer,this.rules)}}emStrong(r,e,t=""){let n=this.rules.inline.emStrongLDelim.exec(r);if(!(!n||!n[1]&&!n[2]&&!n[3]&&!n[4]||n[4]&&t.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[3])||!t||this.rules.inline.punctuation.exec(t))){let s=[...n[0]].length-1,i,a,l=s,c=0,o=n[0][0],h=t===o,p=o==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(p.lastIndex=0,e=e.slice(-1*r.length+s);(n=p.exec(e))!==null;){if(i=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!i)continue;if(a=[...i].length,n[3]||n[4]){l+=a;continue}else if(n[5]||n[6]){if(s%3&&!((s+a)%3)){c+=a;continue}if(h)break}if(l-=a,l>0)continue;a=Math.min(a,a+l+c);let k=[...n[0]][0].length,m=r.slice(0,s+n.index+k+a);if(Math.min(s,a)%2){let f=m.slice(1,-1);return{type:"em",raw:m,text:f,tokens:this.lexer.inlineTokens(f)}}let x=m.slice(2,-2);return{type:"strong",raw:m,text:x,tokens:this.lexer.inlineTokens(x)}}}}codespan(r){let e=this.rules.inline.code.exec(r);if(e){let t=e[2].replace(this.rules.other.newLineCharGlobal," "),n=this.rules.other.nonSpaceChar.test(t),s=this.rules.other.startingSpaceChar.test(t)&&this.rules.other.endingSpaceChar.test(t);return n&&s&&(t=t.substring(1,t.length-1)),{type:"codespan",raw:e[0],text:t}}}br(r){let e=this.rules.inline.br.exec(r);if(e)return{type:"br",raw:e[0]}}del(r,e,t=""){let n=this.rules.inline.delLDelim.exec(r);if(n&&(!n[1]||!t||this.rules.inline.punctuation.exec(t))){let s=[...n[0]].length-1,i,a,l=s,c=this.rules.inline.delRDelim;for(c.lastIndex=0,e=e.slice(-1*r.length+s);(n=c.exec(e))!==null;){if(i=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!i||(a=[...i].length,a!==s))continue;if(n[3]||n[4]){l+=a;continue}if(l-=a,l>0)continue;a=Math.min(a,a+l);let o=[...n[0]][0].length,h=r.slice(0,s+n.index+o+a),p=h.slice(s,-s);return{type:"del",raw:h,text:p,tokens:this.lexer.inlineTokens(p)}}}}autolink(r){let e=this.rules.inline.autolink.exec(r);if(e){let t,n;return e[2]==="@"?(t=e[1],n="mailto:"+t):(t=e[1],n=t),{type:"link",raw:e[0],text:t,href:n,tokens:[{type:"text",raw:t,text:t}]}}}url(r){let e;if(e=this.rules.inline.url.exec(r)){let t,n;if(e[2]==="@")t=e[0],n="mailto:"+t;else{let s;do s=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(s!==e[0]);t=e[0],e[1]==="www."?n="http://"+e[0]:n=e[0]}return{type:"link",raw:e[0],text:t,href:n,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(r){let e=this.rules.inline.text.exec(r);if(e){let t=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:t}}}},y=class te{static{g(this,"l")}tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||z,this.options.tokenizer=this.options.tokenizer||new N,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,top:!0};let t={other:w,block:H.normal,inline:q.normal};this.options.pedantic?(t.block=H.pedantic,t.inline=q.pedantic):this.options.gfm&&(t.block=H.gfm,this.options.breaks?t.inline=q.breaks:t.inline=q.gfm),this.tokenizer.rules=t}static get rules(){return{block:H,inline:q}}static lex(e,t){return new te(t).lex(e)}static lexInline(e,t){return new te(t).inlineTokens(e)}lex(e){e=e.replace(w.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let t=0;t(i=l.call({lexer:this},e,t))?(e=e.substring(i.raw.length),t.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let l=t.at(-1);i.raw.length===1&&l!==void 0?l.raw+=` +`:t.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let l=t.at(-1);l?.type==="paragraph"||l?.type==="text"?(l.raw+=(l.raw.endsWith(` +`)?"":` +`)+i.raw,l.text+=` +`+i.text,this.inlineQueue.at(-1).src=l.text):t.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let l=t.at(-1);l?.type==="paragraph"||l?.type==="text"?(l.raw+=(l.raw.endsWith(` +`)?"":` +`)+i.raw,l.text+=` +`+i.raw,this.inlineQueue.at(-1).src=l.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},t.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),t.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let l=1/0,c=e.slice(1),o;this.options.extensions.startBlock.forEach(h=>{o=h.call({lexer:this},c),typeof o=="number"&&o>=0&&(l=Math.min(l,o))}),l<1/0&&l>=0&&(a=e.substring(0,l+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let l=t.at(-1);n&&l?.type==="paragraph"?(l.raw+=(l.raw.endsWith(` +`)?"":` +`)+i.raw,l.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):t.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let l=t.at(-1);l?.type==="text"?(l.raw+=(l.raw.endsWith(` +`)?"":` +`)+i.raw,l.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}linkInText(e){if(!e.includes("["))return!1;let t=this.tokenizer.rules.inline.link;for(let n of e.matchAll(this.tokenizer.rules.inline.blockSkip))if(t.test(n[0])&&e.charAt(n.index-1)!=="!")return!0;for(let n of e.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let s=n[0],i=s.lastIndexOf("[");if(!(s.charAt(0)==="!"||!Object.hasOwn(this.tokens.links,s.slice(i+1,-1)))&&!(i>1&&this.linkInText(s.slice(1,i-1))))return!0}return!1}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e;if(this.tokens.links&&e.includes("[")){let l=this.tokenizer.rules.inline.reflinkSearch,c=g(o=>{let h=o.lastIndexOf("[");if(!Object.hasOwn(this.tokens.links,o.slice(h+1,-1)))return o;if(h>1&&o.charAt(0)!=="!"){let p=o.slice(1,h-1);if(this.linkInText(p))return"["+p.replace(l,c)+"]["+"a".repeat(o.length-h-2)+"]"}return"["+"a".repeat(o.length-2)+"]"},"u");n=n.replace(l,c)}n=n.replace(this.tokenizer.rules.inline.anyPunctuation,l=>"+".repeat(l.length)),n=n.replace(this.tokenizer.rules.inline.blockSkip,(l,c,o)=>{let h=o?o.length:0;return l.slice(0,h)+"["+"a".repeat(l.length-h-2)+"]"}),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let s=!1,i="",a=1/0;for(;e;){if(e.length(l=o.call({lexer:this},e,t))?(e=e.substring(l.raw.length),t.push(l),!0):!1))continue;if(l=this.tokenizer.escape(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.tag(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.link(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(l.raw.length);let o=t.at(-1);l.type==="text"&&o?.type==="text"?(o.raw+=l.raw,o.text+=l.text):t.push(l);continue}if(l=this.tokenizer.emStrong(e,n,i)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.codespan(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.br(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.del(e,n,i)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.autolink(e)){e=e.substring(l.raw.length),t.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(e))){e=e.substring(l.raw.length),t.push(l);continue}let c=e;if(this.options.extensions?.startInline){let o=1/0,h=e.slice(1),p;this.options.extensions.startInline.forEach(k=>{p=k.call({lexer:this},h),typeof p=="number"&&p>=0&&(o=Math.min(o,p))}),o<1/0&&o>=0&&(c=e.substring(0,o+1))}if(l=this.tokenizer.inlineText(c)){e=e.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(i=l.raw.slice(-1)),s=!0;let o=t.at(-1);o?.type==="text"?(o.raw+=l.raw,o.text+=l.text):t.push(l);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t="Infinite loop on byte: "+e;if(this.options.silent)console.error(t);else throw new Error(t)}},j=class{static{g(this,"P")}options;parser;constructor(r){this.options=r||z}space(r){return""}code({text:r,lang:e,escaped:t}){let n=(e||"").match(w.notSpaceStart)?.[0],s=r.replace(w.endingNewline,"")+` +`;return n?'