gemi 0.4.119 → 0.4.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/index.js +2 -2
- package/dist/app/index.js.map +2 -2
- package/dist/broadcasting/index.js +1 -1
- package/dist/chunk-001ftwam.js +4 -0
- package/dist/chunk-001ftwam.js.map +10 -0
- package/dist/chunk-01td3x3h.js +4 -0
- package/dist/chunk-01td3x3h.js.map +10 -0
- package/dist/chunk-029k2gah.js +4 -0
- package/dist/chunk-029k2gah.js.map +10 -0
- package/dist/chunk-0662pv0m.js +4 -0
- package/dist/{chunk-a67a5vtk.js.map → chunk-0662pv0m.js.map} +2 -2
- package/dist/chunk-0cax9v4f.js +4 -0
- package/dist/chunk-0cax9v4f.js.map +10 -0
- package/dist/chunk-0d9amhty.js +4 -0
- package/dist/chunk-0d9amhty.js.map +10 -0
- package/dist/chunk-0e502hy4.js +4 -0
- package/dist/chunk-0e502hy4.js.map +10 -0
- package/dist/chunk-0gqrxkhr.js +4 -0
- package/dist/chunk-0gqrxkhr.js.map +10 -0
- package/dist/chunk-0kk73bxd.js +4 -0
- package/dist/chunk-0kk73bxd.js.map +10 -0
- package/dist/{chunk-x8wrqc4y.js → chunk-0nvzdwwv.js} +2 -2
- package/dist/{chunk-x8wrqc4y.js.map → chunk-0nvzdwwv.js.map} +1 -1
- package/dist/chunk-0t4b19w0.js +5 -0
- package/dist/chunk-0t4b19w0.js.map +10 -0
- package/dist/chunk-0xq80cr7.js +4 -0
- package/dist/chunk-0xq80cr7.js.map +10 -0
- package/dist/chunk-0zp3sbms.js +4 -0
- package/dist/chunk-0zp3sbms.js.map +10 -0
- package/dist/chunk-10897e1t.js +5 -0
- package/dist/chunk-10897e1t.js.map +10 -0
- package/dist/chunk-147gjb8j.js +4 -0
- package/dist/chunk-147gjb8j.js.map +10 -0
- package/dist/chunk-165evrks.js +4 -0
- package/dist/chunk-165evrks.js.map +10 -0
- package/dist/chunk-16pqbv30.js +4 -0
- package/dist/chunk-16pqbv30.js.map +10 -0
- package/dist/chunk-18akssnh.js +4 -0
- package/dist/chunk-18akssnh.js.map +10 -0
- package/dist/chunk-1d07epxn.js +4 -0
- package/dist/chunk-1d07epxn.js.map +10 -0
- package/dist/chunk-1d3brmyr.js +4 -0
- package/dist/{chunk-ef6dgp5k.js.map → chunk-1d3brmyr.js.map} +6 -6
- package/dist/chunk-1fenkptw.js +4 -0
- package/dist/chunk-1fenkptw.js.map +10 -0
- package/dist/chunk-1fpyfztm.js +4 -0
- package/dist/chunk-1fpyfztm.js.map +10 -0
- package/dist/chunk-1jr2awdv.js +4 -0
- package/dist/chunk-1jr2awdv.js.map +10 -0
- package/dist/chunk-1pjd7z7e.js +5 -0
- package/dist/chunk-1pjd7z7e.js.map +11 -0
- package/dist/chunk-1vxhaep8.js +4 -0
- package/dist/chunk-1vxhaep8.js.map +10 -0
- package/dist/chunk-1zje855e.js +4 -0
- package/dist/chunk-1zje855e.js.map +10 -0
- package/dist/chunk-2a6xtt8w.js +4 -0
- package/dist/chunk-2a6xtt8w.js.map +10 -0
- package/dist/chunk-2nbxbgja.js +4 -0
- package/dist/chunk-2nbxbgja.js.map +10 -0
- package/dist/chunk-2qek6vwk.js +5 -0
- package/dist/chunk-2qek6vwk.js.map +10 -0
- package/dist/chunk-2qs5hcvw.js +4 -0
- package/dist/chunk-2qs5hcvw.js.map +15 -0
- package/dist/chunk-2rpt28ng.js +4 -0
- package/dist/chunk-2rpt28ng.js.map +10 -0
- package/dist/chunk-2zbw9b4r.js +4 -0
- package/dist/chunk-2zbw9b4r.js.map +10 -0
- package/dist/chunk-3evg8b1k.js +4 -0
- package/dist/chunk-3evg8b1k.js.map +10 -0
- package/dist/chunk-3vasf2wf.js +4 -0
- package/dist/chunk-3vasf2wf.js.map +10 -0
- package/dist/chunk-3zmgkx0w.js +4 -0
- package/dist/chunk-3zmgkx0w.js.map +10 -0
- package/dist/chunk-44g267q3.js +77 -0
- package/dist/chunk-44g267q3.js.map +22 -0
- package/dist/chunk-4b5zjps1.js +4 -0
- package/dist/chunk-4b5zjps1.js.map +10 -0
- package/dist/chunk-4f60mvxv.js +4 -0
- package/dist/chunk-4f60mvxv.js.map +10 -0
- package/dist/chunk-4gam76xs.js +4 -0
- package/dist/chunk-4gam76xs.js.map +10 -0
- package/dist/chunk-4jzv24rt.js +4 -0
- package/dist/chunk-4jzv24rt.js.map +10 -0
- package/dist/chunk-4np6kjty.js +4 -0
- package/dist/chunk-4np6kjty.js.map +10 -0
- package/dist/chunk-4psr7qf1.js +4 -0
- package/dist/chunk-4psr7qf1.js.map +10 -0
- package/dist/chunk-4s350vgd.js +4 -0
- package/dist/chunk-4s350vgd.js.map +10 -0
- package/dist/chunk-4txy30je.js +4 -0
- package/dist/chunk-4txy30je.js.map +10 -0
- package/dist/chunk-4zq5qst4.js +4 -0
- package/dist/chunk-4zq5qst4.js.map +10 -0
- package/dist/chunk-54a103ah.js +4 -0
- package/dist/chunk-54a103ah.js.map +10 -0
- package/dist/chunk-58jyqcxt.js +4 -0
- package/dist/chunk-58jyqcxt.js.map +10 -0
- package/dist/chunk-59a4qnm6.js +4 -0
- package/dist/chunk-59a4qnm6.js.map +10 -0
- package/dist/chunk-5crks4mc.js +4 -0
- package/dist/chunk-5crks4mc.js.map +10 -0
- package/dist/chunk-5fs16qc2.js +4 -0
- package/dist/chunk-5fs16qc2.js.map +10 -0
- package/dist/chunk-5nb5v649.js +4 -0
- package/dist/chunk-5nb5v649.js.map +10 -0
- package/dist/chunk-5psj5g03.js +4 -0
- package/dist/chunk-5psj5g03.js.map +10 -0
- package/dist/chunk-5qa0wvgg.js +4 -0
- package/dist/chunk-5qa0wvgg.js.map +10 -0
- package/dist/chunk-5t6fd3qq.js +4 -0
- package/dist/chunk-5t6fd3qq.js.map +12 -0
- package/dist/chunk-5whsf328.js +4 -0
- package/dist/chunk-5whsf328.js.map +10 -0
- package/dist/chunk-612vvdg0.js +5 -0
- package/dist/chunk-612vvdg0.js.map +10 -0
- package/dist/chunk-61fr8e09.js +5 -0
- package/dist/chunk-61fr8e09.js.map +10 -0
- package/dist/chunk-629qemrx.js +4 -0
- package/dist/chunk-629qemrx.js.map +10 -0
- package/dist/chunk-65kp9t0w.js +4 -0
- package/dist/chunk-65kp9t0w.js.map +10 -0
- package/dist/chunk-66f14pqy.js +4 -0
- package/dist/chunk-66f14pqy.js.map +10 -0
- package/dist/chunk-69bs53j4.js +4 -0
- package/dist/chunk-69bs53j4.js.map +10 -0
- package/dist/chunk-6a16vs8y.js +4 -0
- package/dist/chunk-6a16vs8y.js.map +10 -0
- package/dist/chunk-6ant7bcg.js +5 -0
- package/dist/chunk-6ant7bcg.js.map +10 -0
- package/dist/chunk-6fvkzn8b.js +4 -0
- package/dist/chunk-6fvkzn8b.js.map +10 -0
- package/dist/chunk-6fvtad65.js +4 -0
- package/dist/chunk-6fvtad65.js.map +10 -0
- package/dist/chunk-6m11rfdt.js +4 -0
- package/dist/chunk-6m11rfdt.js.map +10 -0
- package/dist/chunk-6p5ty79g.js +4 -0
- package/dist/chunk-6p5ty79g.js.map +10 -0
- package/dist/chunk-6vzzwyt5.js +4 -0
- package/dist/chunk-6vzzwyt5.js.map +10 -0
- package/dist/chunk-6zfyy2sq.js +5 -0
- package/dist/chunk-6zfyy2sq.js.map +10 -0
- package/dist/chunk-73mtep9k.js +5 -0
- package/dist/chunk-73mtep9k.js.map +10 -0
- package/dist/chunk-76cxqdm5.js +4 -0
- package/dist/chunk-76cxqdm5.js.map +10 -0
- package/dist/chunk-76q7gcr7.js +4 -0
- package/dist/chunk-76q7gcr7.js.map +10 -0
- package/dist/chunk-77hx7jrk.js +4 -0
- package/dist/chunk-77hx7jrk.js.map +10 -0
- package/dist/chunk-7e7xv67y.js +4 -0
- package/dist/chunk-7e7xv67y.js.map +10 -0
- package/dist/chunk-7sj61wa1.js +4 -0
- package/dist/chunk-7sj61wa1.js.map +10 -0
- package/dist/chunk-7w7gd3mf.js +4 -0
- package/dist/chunk-7w7gd3mf.js.map +10 -0
- package/dist/chunk-7y71tyb6.js +4 -0
- package/dist/chunk-7y71tyb6.js.map +10 -0
- package/dist/chunk-7yw671gx.js +5 -0
- package/dist/chunk-7yw671gx.js.map +10 -0
- package/dist/chunk-81zgg7ah.js +4 -0
- package/dist/chunk-81zgg7ah.js.map +10 -0
- package/dist/chunk-82sj7aem.js +5 -0
- package/dist/chunk-82sj7aem.js.map +10 -0
- package/dist/chunk-83ngngpn.js +4 -0
- package/dist/chunk-83ngngpn.js.map +10 -0
- package/dist/chunk-88h3dfxg.js +4 -0
- package/dist/chunk-88h3dfxg.js.map +10 -0
- package/dist/chunk-88pbkfa6.js +4 -0
- package/dist/chunk-88pbkfa6.js.map +10 -0
- package/dist/chunk-8dj48k3f.js +4 -0
- package/dist/chunk-8dj48k3f.js.map +10 -0
- package/dist/chunk-8mmnj32j.js +4 -0
- package/dist/chunk-8mmnj32j.js.map +10 -0
- package/dist/chunk-8qf94hzv.js +4 -0
- package/dist/chunk-8qf94hzv.js.map +10 -0
- package/dist/chunk-8w9c6mxe.js +3 -0
- package/dist/chunk-8w9c6mxe.js.map +17 -0
- package/dist/chunk-93mkmwaj.js +4 -0
- package/dist/chunk-93mkmwaj.js.map +10 -0
- package/dist/chunk-96m5669w.js +4 -0
- package/dist/chunk-96m5669w.js.map +10 -0
- package/dist/chunk-9717ybek.js +4 -0
- package/dist/chunk-9717ybek.js.map +10 -0
- package/dist/chunk-997k48kg.js +4 -0
- package/dist/chunk-997k48kg.js.map +10 -0
- package/dist/chunk-9abm0pr9.js +4 -0
- package/dist/chunk-9abm0pr9.js.map +10 -0
- package/dist/chunk-9dz8xyy1.js +3 -0
- package/dist/{chunk-p9gc7ke6.js.map → chunk-9dz8xyy1.js.map} +4 -4
- package/dist/chunk-9f1r7zrg.js +4 -0
- package/dist/chunk-9f1r7zrg.js.map +10 -0
- package/dist/chunk-9fj0c4p1.js +4 -0
- package/dist/chunk-9fj0c4p1.js.map +10 -0
- package/dist/chunk-9mv0k6t0.js +4 -0
- package/dist/chunk-9mv0k6t0.js.map +11 -0
- package/dist/chunk-9q75e96q.js +4 -0
- package/dist/chunk-9q75e96q.js.map +10 -0
- package/dist/chunk-9s0w0gjc.js +4 -0
- package/dist/chunk-9s0w0gjc.js.map +10 -0
- package/dist/chunk-9seafyf3.js +4 -0
- package/dist/chunk-9seafyf3.js.map +10 -0
- package/dist/chunk-9tpfth1g.js +5 -0
- package/dist/chunk-9tpfth1g.js.map +10 -0
- package/dist/chunk-9vm0ck1e.js +4 -0
- package/dist/{chunk-kmfnx43s.js.map → chunk-9vm0ck1e.js.map} +2 -2
- package/dist/chunk-aanamgj7.js +4 -0
- package/dist/chunk-aanamgj7.js.map +10 -0
- package/dist/chunk-acfp8fm2.js +5 -0
- package/dist/chunk-acfp8fm2.js.map +10 -0
- package/dist/chunk-agf0k1k9.js +4 -0
- package/dist/chunk-agf0k1k9.js.map +10 -0
- package/dist/chunk-ajft9tzm.js +5 -0
- package/dist/chunk-ajft9tzm.js.map +10 -0
- package/dist/chunk-apgh9fht.js +4 -0
- package/dist/chunk-apgh9fht.js.map +10 -0
- package/dist/chunk-aq7h2jz2.js +4 -0
- package/dist/chunk-aq7h2jz2.js.map +10 -0
- package/dist/chunk-atx3b9qj.js +4 -0
- package/dist/chunk-atx3b9qj.js.map +10 -0
- package/dist/chunk-axa5gvjg.js +4 -0
- package/dist/chunk-axa5gvjg.js.map +10 -0
- package/dist/chunk-b44x5gst.js +4 -0
- package/dist/chunk-b44x5gst.js.map +10 -0
- package/dist/chunk-b7ap0z6v.js +4 -0
- package/dist/chunk-b7ap0z6v.js.map +10 -0
- package/dist/{chunk-35bsy26w.js → chunk-bajafpzj.js} +2 -2
- package/dist/{chunk-35bsy26w.js.map → chunk-bajafpzj.js.map} +1 -1
- package/dist/chunk-baxfcaes.js +5 -0
- package/dist/chunk-baxfcaes.js.map +10 -0
- package/dist/chunk-bbrwkw5y.js +4 -0
- package/dist/chunk-bbrwkw5y.js.map +13 -0
- package/dist/chunk-befwbt0h.js +5 -0
- package/dist/chunk-befwbt0h.js.map +14 -0
- package/dist/chunk-bej163fy.js +4 -0
- package/dist/chunk-bej163fy.js.map +10 -0
- package/dist/chunk-bfrzstr0.js +4 -0
- package/dist/chunk-bfrzstr0.js.map +10 -0
- package/dist/chunk-bgf2a50m.js +4 -0
- package/dist/chunk-bgf2a50m.js.map +10 -0
- package/dist/chunk-bk649aen.js +4 -0
- package/dist/chunk-bk649aen.js.map +10 -0
- package/dist/chunk-brsavvrn.js +4 -0
- package/dist/chunk-brsavvrn.js.map +10 -0
- package/dist/chunk-bwgwxgw8.js +4 -0
- package/dist/chunk-bwgwxgw8.js.map +10 -0
- package/dist/chunk-c7qx33ys.js +4 -0
- package/dist/chunk-c7qx33ys.js.map +10 -0
- package/dist/chunk-cb616xw5.js +4 -0
- package/dist/{chunk-ktwy9nyn.js.map → chunk-cb616xw5.js.map} +1 -1
- package/dist/chunk-ce7rcdsg.js +4 -0
- package/dist/chunk-ce7rcdsg.js.map +10 -0
- package/dist/chunk-ce89kst6.js +4 -0
- package/dist/chunk-ce89kst6.js.map +10 -0
- package/dist/chunk-cefrz6wd.js +4 -0
- package/dist/chunk-cefrz6wd.js.map +10 -0
- package/dist/chunk-cgfc4w0w.js +4 -0
- package/dist/chunk-cgfc4w0w.js.map +10 -0
- package/dist/chunk-chabgvmr.js +4 -0
- package/dist/chunk-chabgvmr.js.map +10 -0
- package/dist/chunk-cjsmqv12.js +4 -0
- package/dist/chunk-cjsmqv12.js.map +10 -0
- package/dist/chunk-d12swf8t.js +4 -0
- package/dist/chunk-d12swf8t.js.map +10 -0
- package/dist/chunk-d1vf91bx.js +5 -0
- package/dist/chunk-d1vf91bx.js.map +10 -0
- package/dist/chunk-d3vvh6x2.js +4 -0
- package/dist/chunk-d3vvh6x2.js.map +13 -0
- package/dist/chunk-d7zvjgvr.js +4 -0
- package/dist/{chunk-1gjhrqfe.js.map → chunk-d7zvjgvr.js.map} +5 -5
- package/dist/chunk-d87mx4t6.js +4 -0
- package/dist/chunk-d87mx4t6.js.map +13 -0
- package/dist/chunk-d8nm5ddh.js +7 -0
- package/dist/chunk-d8nm5ddh.js.map +65 -0
- package/dist/chunk-dgpcg2dh.js +5 -0
- package/dist/chunk-dgpcg2dh.js.map +10 -0
- package/dist/chunk-dhfkqc5x.js +4 -0
- package/dist/chunk-dhfkqc5x.js.map +10 -0
- package/dist/chunk-e5n4eyrc.js +4 -0
- package/dist/chunk-e5n4eyrc.js.map +10 -0
- package/dist/chunk-ec6tgefk.js +5 -0
- package/dist/chunk-ec6tgefk.js.map +10 -0
- package/dist/chunk-eddsdprs.js +5 -0
- package/dist/chunk-eddsdprs.js.map +10 -0
- package/dist/chunk-efkfryw1.js +4 -0
- package/dist/chunk-efkfryw1.js.map +10 -0
- package/dist/chunk-enbw3h06.js +4 -0
- package/dist/chunk-enbw3h06.js.map +10 -0
- package/dist/chunk-eqne9ppg.js +5 -0
- package/dist/chunk-eqne9ppg.js.map +10 -0
- package/dist/chunk-etcm6fh1.js +4 -0
- package/dist/chunk-etcm6fh1.js.map +10 -0
- package/dist/chunk-evmtw59h.js +4 -0
- package/dist/chunk-evmtw59h.js.map +10 -0
- package/dist/chunk-eytgtgtj.js +4 -0
- package/dist/chunk-eytgtgtj.js.map +10 -0
- package/dist/chunk-eza2c3t1.js +4 -0
- package/dist/chunk-eza2c3t1.js.map +10 -0
- package/dist/chunk-f08ksmq5.js +4 -0
- package/dist/chunk-f08ksmq5.js.map +10 -0
- package/dist/chunk-f48vajs9.js +4 -0
- package/dist/chunk-f48vajs9.js.map +10 -0
- package/dist/chunk-f6ypbp8s.js +4 -0
- package/dist/chunk-f6ypbp8s.js.map +10 -0
- package/dist/chunk-f867b961.js +4 -0
- package/dist/chunk-f867b961.js.map +10 -0
- package/dist/chunk-f9q2xx8j.js +4 -0
- package/dist/chunk-f9q2xx8j.js.map +10 -0
- package/dist/chunk-fb3xpd5h.js +4 -0
- package/dist/chunk-fb3xpd5h.js.map +10 -0
- package/dist/chunk-fc95wase.js +4 -0
- package/dist/chunk-fc95wase.js.map +10 -0
- package/dist/chunk-fqqhza9s.js +4 -0
- package/dist/chunk-fqqhza9s.js.map +10 -0
- package/dist/chunk-g28v2sg8.js +4 -0
- package/dist/chunk-g28v2sg8.js.map +10 -0
- package/dist/chunk-g3nnqcbw.js +5 -0
- package/dist/chunk-g3nnqcbw.js.map +10 -0
- package/dist/chunk-g5b9r81v.js +5 -0
- package/dist/chunk-g5b9r81v.js.map +10 -0
- package/dist/chunk-gj0zbz3g.js +4 -0
- package/dist/chunk-gj0zbz3g.js.map +10 -0
- package/dist/chunk-gn1cd35p.js +4 -0
- package/dist/chunk-gn1cd35p.js.map +10 -0
- package/dist/chunk-gprayftg.js +4 -0
- package/dist/chunk-gprayftg.js.map +10 -0
- package/dist/chunk-gr995e76.js +5 -0
- package/dist/chunk-gr995e76.js.map +10 -0
- package/dist/chunk-grva5cgq.js +4 -0
- package/dist/chunk-grva5cgq.js.map +10 -0
- package/dist/chunk-gtvgm63z.js +4 -0
- package/dist/chunk-gtvgm63z.js.map +10 -0
- package/dist/chunk-gwf5xs7m.js +18 -0
- package/dist/{chunk-qf6zg7nd.js.map → chunk-gwf5xs7m.js.map} +15 -34
- package/dist/chunk-gwnr2ycm.js +5 -0
- package/dist/chunk-gwnr2ycm.js.map +10 -0
- package/dist/chunk-gyxgxwcc.js +4 -0
- package/dist/chunk-gyxgxwcc.js.map +10 -0
- package/dist/chunk-h25tw54p.js +4 -0
- package/dist/chunk-h25tw54p.js.map +10 -0
- package/dist/chunk-h3tskj7j.js +4 -0
- package/dist/chunk-h3tskj7j.js.map +10 -0
- package/dist/chunk-hh62xvjr.js +4 -0
- package/dist/chunk-hh62xvjr.js.map +10 -0
- package/dist/chunk-hk1q1ep4.js +4 -0
- package/dist/chunk-hk1q1ep4.js.map +10 -0
- package/dist/chunk-hqhrt4re.js +5 -0
- package/dist/chunk-hqhrt4re.js.map +10 -0
- package/dist/chunk-hvk0d1ww.js +4 -0
- package/dist/chunk-hvk0d1ww.js.map +10 -0
- package/dist/chunk-j19xcy0f.js +4 -0
- package/dist/chunk-j19xcy0f.js.map +10 -0
- package/dist/chunk-j20akbzn.js +4 -0
- package/dist/chunk-j20akbzn.js.map +10 -0
- package/dist/chunk-j4xa9v2b.js +4 -0
- package/dist/chunk-j4xa9v2b.js.map +10 -0
- package/dist/chunk-jaywwzjq.js +4 -0
- package/dist/chunk-jaywwzjq.js.map +10 -0
- package/dist/chunk-jc7ftaka.js +4 -0
- package/dist/{chunk-ckds5kj4.js.map → chunk-jc7ftaka.js.map} +2 -2
- package/dist/chunk-jcs320db.js +4 -0
- package/dist/chunk-jcs320db.js.map +10 -0
- package/dist/chunk-jd1v2z6g.js +4 -0
- package/dist/chunk-jd1v2z6g.js.map +10 -0
- package/dist/chunk-jfrvg24q.js +4 -0
- package/dist/chunk-jfrvg24q.js.map +10 -0
- package/dist/chunk-jhxnydm7.js +5 -0
- package/dist/chunk-jhxnydm7.js.map +10 -0
- package/dist/chunk-jjt3mqyj.js +4 -0
- package/dist/chunk-jjt3mqyj.js.map +10 -0
- package/dist/chunk-jmv6j1ma.js +4 -0
- package/dist/chunk-jmv6j1ma.js.map +10 -0
- package/dist/chunk-jrg0k6fy.js +4 -0
- package/dist/chunk-jrg0k6fy.js.map +10 -0
- package/dist/chunk-k1gr1y2n.js +4 -0
- package/dist/chunk-k1gr1y2n.js.map +10 -0
- package/dist/chunk-k5903r56.js +4 -0
- package/dist/chunk-k5903r56.js.map +10 -0
- package/dist/chunk-k7er8zn9.js +5 -0
- package/dist/chunk-k7er8zn9.js.map +10 -0
- package/dist/chunk-k7seyqnj.js +5 -0
- package/dist/chunk-k7seyqnj.js.map +10 -0
- package/dist/chunk-keqxzdm8.js +4 -0
- package/dist/chunk-keqxzdm8.js.map +10 -0
- package/dist/chunk-kj73phvd.js +4 -0
- package/dist/chunk-kj73phvd.js.map +10 -0
- package/dist/chunk-kttqecab.js +4 -0
- package/dist/chunk-kttqecab.js.map +20 -0
- package/dist/chunk-kv6jab20.js +4 -0
- package/dist/chunk-kv6jab20.js.map +10 -0
- package/dist/chunk-m10rw8zf.js +4 -0
- package/dist/chunk-m10rw8zf.js.map +10 -0
- package/dist/chunk-m3x7ehjz.js +4 -0
- package/dist/chunk-m3x7ehjz.js.map +10 -0
- package/dist/chunk-m4ywwfhj.js +4 -0
- package/dist/chunk-m4ywwfhj.js.map +10 -0
- package/dist/chunk-m9xdm31a.js +5 -0
- package/dist/chunk-m9xdm31a.js.map +10 -0
- package/dist/chunk-mb5me03r.js +4 -0
- package/dist/chunk-mb5me03r.js.map +10 -0
- package/dist/chunk-mbhvesxn.js +4 -0
- package/dist/chunk-mbhvesxn.js.map +10 -0
- package/dist/chunk-md05dm8y.js +4 -0
- package/dist/{chunk-wfc30gdx.js.map → chunk-md05dm8y.js.map} +2 -2
- package/dist/chunk-mdwc3caf.js +4 -0
- package/dist/{chunk-en5bya0k.js.map → chunk-mdwc3caf.js.map} +2 -2
- package/dist/chunk-mq4xa8g0.js +4 -0
- package/dist/chunk-mq4xa8g0.js.map +10 -0
- package/dist/chunk-msarsnba.js +4 -0
- package/dist/chunk-msarsnba.js.map +10 -0
- package/dist/chunk-mtt5kfk0.js +4 -0
- package/dist/chunk-mtt5kfk0.js.map +10 -0
- package/dist/chunk-mtvvnps3.js +4 -0
- package/dist/chunk-mtvvnps3.js.map +10 -0
- package/dist/chunk-mww3xsh5.js +4 -0
- package/dist/chunk-mww3xsh5.js.map +10 -0
- package/dist/chunk-n0yg50tm.js +4 -0
- package/dist/chunk-n0yg50tm.js.map +10 -0
- package/dist/chunk-n15vbtzw.js +4 -0
- package/dist/chunk-n15vbtzw.js.map +10 -0
- package/dist/chunk-n1x0b75g.js +4 -0
- package/dist/chunk-n1x0b75g.js.map +10 -0
- package/dist/chunk-n6eekz6f.js +4 -0
- package/dist/chunk-n6eekz6f.js.map +10 -0
- package/dist/chunk-ng4pttb5.js +4 -0
- package/dist/chunk-ng4pttb5.js.map +10 -0
- package/dist/chunk-ngpkbmcy.js +4 -0
- package/dist/chunk-ngpkbmcy.js.map +10 -0
- package/dist/chunk-np64fgdg.js +4 -0
- package/dist/chunk-np64fgdg.js.map +10 -0
- package/dist/chunk-nshtq1ys.js +4 -0
- package/dist/chunk-nshtq1ys.js.map +10 -0
- package/dist/chunk-p2a7zrdj.js +4 -0
- package/dist/chunk-p2a7zrdj.js.map +10 -0
- package/dist/chunk-p7r1931r.js +4 -0
- package/dist/{chunk-hjr9ztvj.js.map → chunk-p7r1931r.js.map} +2 -2
- package/dist/chunk-pb70nyeg.js +4 -0
- package/dist/chunk-pb70nyeg.js.map +10 -0
- package/dist/chunk-pbgrf052.js +8 -0
- package/dist/chunk-pbgrf052.js.map +53 -0
- package/dist/chunk-pebk5hpa.js +4 -0
- package/dist/chunk-pebk5hpa.js.map +10 -0
- package/dist/chunk-pmtd0cc3.js +4 -0
- package/dist/chunk-pmtd0cc3.js.map +10 -0
- package/dist/chunk-q0fe3c44.js +4 -0
- package/dist/chunk-q0fe3c44.js.map +10 -0
- package/dist/chunk-q2btpck1.js +4 -0
- package/dist/chunk-q2btpck1.js.map +10 -0
- package/dist/chunk-q656e0z8.js +4 -0
- package/dist/chunk-q656e0z8.js.map +10 -0
- package/dist/chunk-q9q0m0fk.js +4 -0
- package/dist/chunk-q9q0m0fk.js.map +10 -0
- package/dist/chunk-qepjnnqp.js +4 -0
- package/dist/chunk-qepjnnqp.js.map +10 -0
- package/dist/chunk-qhxd2v41.js +4 -0
- package/dist/chunk-qhxd2v41.js.map +10 -0
- package/dist/chunk-qjepp6dz.js +4 -0
- package/dist/chunk-qjepp6dz.js.map +10 -0
- package/dist/chunk-r015e873.js +4 -0
- package/dist/chunk-r015e873.js.map +10 -0
- package/dist/chunk-r2wpm2d7.js +4 -0
- package/dist/chunk-r2wpm2d7.js.map +10 -0
- package/dist/chunk-r70xpzx4.js +4 -0
- package/dist/chunk-r70xpzx4.js.map +10 -0
- package/dist/chunk-r7qn7nya.js +4 -0
- package/dist/chunk-r7qn7nya.js.map +10 -0
- package/dist/chunk-r9fb428b.js +4 -0
- package/dist/chunk-r9fb428b.js.map +10 -0
- package/dist/chunk-raq3khzd.js +4 -0
- package/dist/chunk-raq3khzd.js.map +10 -0
- package/dist/chunk-rf60qjxw.js +5 -0
- package/dist/chunk-rf60qjxw.js.map +14 -0
- package/dist/chunk-rjjjt0eg.js +8 -0
- package/dist/{chunk-h1xm4rnm.js.map → chunk-rjjjt0eg.js.map} +2 -2
- package/dist/chunk-rjzrfj86.js +4 -0
- package/dist/chunk-rjzrfj86.js.map +10 -0
- package/dist/chunk-rm3pct07.js +4 -0
- package/dist/chunk-rm3pct07.js.map +10 -0
- package/dist/chunk-rmhs40sh.js +4 -0
- package/dist/chunk-rmhs40sh.js.map +10 -0
- package/dist/chunk-rqrezesz.js +4 -0
- package/dist/chunk-rqrezesz.js.map +10 -0
- package/dist/chunk-s0b5gyec.js +5 -0
- package/dist/chunk-s0b5gyec.js.map +10 -0
- package/dist/chunk-s0g6kddk.js +4 -0
- package/dist/chunk-s0g6kddk.js.map +10 -0
- package/dist/chunk-s4twrhpt.js +4 -0
- package/dist/chunk-s4twrhpt.js.map +10 -0
- package/dist/chunk-s5q7xgm7.js +4 -0
- package/dist/chunk-s5q7xgm7.js.map +10 -0
- package/dist/chunk-s6337cg6.js +4 -0
- package/dist/chunk-s6337cg6.js.map +10 -0
- package/dist/chunk-sarcnr78.js +5 -0
- package/dist/chunk-sarcnr78.js.map +10 -0
- package/dist/chunk-sgqzh2eh.js +4 -0
- package/dist/chunk-sgqzh2eh.js.map +10 -0
- package/dist/chunk-sh7q9p7c.js +4 -0
- package/dist/chunk-sh7q9p7c.js.map +10 -0
- package/dist/chunk-shvm8xpf.js +4 -0
- package/dist/chunk-shvm8xpf.js.map +10 -0
- package/dist/chunk-sm4gyh1f.js +4 -0
- package/dist/{chunk-dtkvdcf6.js.map → chunk-sm4gyh1f.js.map} +3 -7
- package/dist/chunk-sqdy9tjw.js +4 -0
- package/dist/chunk-sqdy9tjw.js.map +10 -0
- package/dist/chunk-stfzvxzh.js +5 -0
- package/dist/chunk-stfzvxzh.js.map +25 -0
- package/dist/chunk-sxt20n19.js +4 -0
- package/dist/chunk-sxt20n19.js.map +10 -0
- package/dist/chunk-t1mdzmvf.js +4 -0
- package/dist/{chunk-55xdqqbt.js.map → chunk-t1mdzmvf.js.map} +3 -14
- package/dist/chunk-t24w0gem.js +4 -0
- package/dist/chunk-t24w0gem.js.map +10 -0
- package/dist/chunk-t8pfwzwx.js +4 -0
- package/dist/chunk-t8pfwzwx.js.map +10 -0
- package/dist/chunk-t9fpc42w.js +4 -0
- package/dist/chunk-t9fpc42w.js.map +10 -0
- package/dist/chunk-ta1fz9d1.js +5 -0
- package/dist/chunk-ta1fz9d1.js.map +10 -0
- package/dist/chunk-thdwxt6w.js +4 -0
- package/dist/chunk-thdwxt6w.js.map +10 -0
- package/dist/chunk-tkgk80b9.js +4 -0
- package/dist/chunk-tkgk80b9.js.map +10 -0
- package/dist/chunk-twf1wr4h.js +4 -0
- package/dist/chunk-twf1wr4h.js.map +10 -0
- package/dist/chunk-v9kg2vy4.js +4 -0
- package/dist/{chunk-arbx49j6.js.map → chunk-v9kg2vy4.js.map} +5 -5
- package/dist/chunk-veamz5d0.js +4 -0
- package/dist/chunk-veamz5d0.js.map +10 -0
- package/dist/chunk-vf6yxr0r.js +4 -0
- package/dist/chunk-vf6yxr0r.js.map +10 -0
- package/dist/chunk-vh816yqy.js +4 -0
- package/dist/chunk-vh816yqy.js.map +10 -0
- package/dist/chunk-vnxja8xq.js +4 -0
- package/dist/chunk-vnxja8xq.js.map +10 -0
- package/dist/chunk-vpgsy207.js +4 -0
- package/dist/chunk-vpgsy207.js.map +10 -0
- package/dist/chunk-vqnvrsnc.js +4 -0
- package/dist/chunk-vqnvrsnc.js.map +10 -0
- package/dist/chunk-vx2ep3d6.js +5 -0
- package/dist/chunk-vx2ep3d6.js.map +10 -0
- package/dist/chunk-vybrcp16.js +4 -0
- package/dist/chunk-vybrcp16.js.map +10 -0
- package/dist/chunk-w100wbf2.js +11 -0
- package/dist/{chunk-r3qdswng.js.map → chunk-w100wbf2.js.map} +5 -5
- package/dist/chunk-w1d1dmx3.js +4 -0
- package/dist/chunk-w1d1dmx3.js.map +10 -0
- package/dist/chunk-w1nwkvbe.js +4 -0
- package/dist/chunk-w1nwkvbe.js.map +10 -0
- package/dist/chunk-w1zabjwt.js +4 -0
- package/dist/chunk-w1zabjwt.js.map +10 -0
- package/dist/chunk-w4hqdtab.js +4 -0
- package/dist/chunk-w4hqdtab.js.map +10 -0
- package/dist/chunk-w5tgtsfr.js +4 -0
- package/dist/chunk-w5tgtsfr.js.map +10 -0
- package/dist/chunk-w7ezjfcb.js +4 -0
- package/dist/chunk-w7ezjfcb.js.map +10 -0
- package/dist/chunk-w7mjxa9e.js +4 -0
- package/dist/chunk-w7mjxa9e.js.map +10 -0
- package/dist/chunk-w9h179q6.js +5 -0
- package/dist/chunk-w9h179q6.js.map +10 -0
- package/dist/chunk-wb75jnfp.js +4 -0
- package/dist/chunk-wb75jnfp.js.map +10 -0
- package/dist/chunk-wd9hmfa8.js +4 -0
- package/dist/chunk-wd9hmfa8.js.map +10 -0
- package/dist/chunk-wqmd1wv4.js +4 -0
- package/dist/chunk-wqmd1wv4.js.map +10 -0
- package/dist/chunk-wrz50ar3.js +4 -0
- package/dist/chunk-wrz50ar3.js.map +48 -0
- package/dist/chunk-wxgcwv7j.js +4 -0
- package/dist/chunk-wxgcwv7j.js.map +11 -0
- package/dist/chunk-wxw4254w.js +4 -0
- package/dist/{chunk-2n21sn7a.js.map → chunk-wxw4254w.js.map} +3 -4
- package/dist/chunk-wyc2ab1h.js +4 -0
- package/dist/chunk-wyc2ab1h.js.map +10 -0
- package/dist/chunk-wzbs51e4.js +4 -0
- package/dist/chunk-wzbs51e4.js.map +10 -0
- package/dist/chunk-x6248vkg.js +5 -0
- package/dist/chunk-x6248vkg.js.map +10 -0
- package/dist/{chunk-td079vg9.js → chunk-xajvm5dg.js} +3 -3
- package/dist/{chunk-td079vg9.js.map → chunk-xajvm5dg.js.map} +1 -1
- package/dist/chunk-xrteffkv.js +4 -0
- package/dist/chunk-xrteffkv.js.map +10 -0
- package/dist/chunk-xtc3sb35.js +5 -0
- package/dist/chunk-xtc3sb35.js.map +10 -0
- package/dist/chunk-xvfygk82.js +4 -0
- package/dist/{chunk-enc2835j.js.map → chunk-xvfygk82.js.map} +2 -2
- package/dist/chunk-xyagccth.js +4 -0
- package/dist/chunk-xyagccth.js.map +10 -0
- package/dist/chunk-y0msdehj.js +4 -0
- package/dist/chunk-y0msdehj.js.map +21 -0
- package/dist/chunk-y2zzprr2.js +4 -0
- package/dist/chunk-y2zzprr2.js.map +10 -0
- package/dist/chunk-y425gbw0.js +4 -0
- package/dist/{chunk-11by8vja.js.map → chunk-y425gbw0.js.map} +5 -5
- package/dist/chunk-y7q3vx60.js +4 -0
- package/dist/chunk-y7q3vx60.js.map +10 -0
- package/dist/chunk-y8vm6nhq.js +4 -0
- package/dist/chunk-y8vm6nhq.js.map +10 -0
- package/dist/chunk-ym3p77cw.js +4 -0
- package/dist/chunk-ym3p77cw.js.map +10 -0
- package/dist/chunk-yqq2hs5v.js +4 -0
- package/dist/chunk-yqq2hs5v.js.map +10 -0
- package/dist/chunk-ys2w3w3h.js +4 -0
- package/dist/chunk-ys2w3w3h.js.map +10 -0
- package/dist/chunk-yx2dstze.js +4 -0
- package/dist/chunk-yx2dstze.js.map +10 -0
- package/dist/chunk-yxb1tm10.js +5 -0
- package/dist/chunk-yxb1tm10.js.map +10 -0
- package/dist/chunk-yxngksdn.js +4 -0
- package/dist/chunk-yxngksdn.js.map +10 -0
- package/dist/chunk-yzf50f27.js +4 -0
- package/dist/chunk-yzf50f27.js.map +10 -0
- package/dist/chunk-z2536ve8.js +4 -0
- package/dist/chunk-z2536ve8.js.map +14 -0
- package/dist/chunk-z6d8dyj4.js +4 -0
- package/dist/{chunk-b6w0fgxz.js.map → chunk-z6d8dyj4.js.map} +2 -2
- package/dist/chunk-z73h9wcv.js +4 -0
- package/dist/chunk-z73h9wcv.js.map +10 -0
- package/dist/chunk-z744x29v.js +5 -0
- package/dist/chunk-z744x29v.js.map +10 -0
- package/dist/chunk-zajtvy67.js +4 -0
- package/dist/chunk-zajtvy67.js.map +10 -0
- package/dist/chunk-zgcwtt7q.js +4 -0
- package/dist/chunk-zgcwtt7q.js.map +10 -0
- package/dist/chunk-zt083h6w.js +4 -0
- package/dist/chunk-zt083h6w.js.map +10 -0
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +26 -5
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +2 -2
- package/dist/http/ApiRouter.d.ts +5 -0
- package/dist/http/ApiRouter.d.ts.map +1 -1
- package/dist/http/Controller.d.ts +0 -1
- package/dist/http/Controller.d.ts.map +1 -1
- package/dist/http/ViewRouter.d.ts.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +5 -5
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.map +2 -2
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +2 -2
- package/dist/services/index.js +2 -11
- package/dist/services/index.js.map +28 -15
- package/dist/vite/{index-Bu4AXBt9.mjs → index-C9AWJ7QP.mjs} +1 -1
- package/dist/vite/index.mjs +1 -1
- package/dist/vite/{typescript-D69Uqrn5.mjs → typescript-CKrglZ4F.mjs} +56 -48
- package/package.json +2 -2
- package/dist/chunk-11by8vja.js +0 -4
- package/dist/chunk-1gjhrqfe.js +0 -4
- package/dist/chunk-2n21sn7a.js +0 -4
- package/dist/chunk-55xdqqbt.js +0 -4
- package/dist/chunk-6vp2svxg.js +0 -4
- package/dist/chunk-6vp2svxg.js.map +0 -13
- package/dist/chunk-a67a5vtk.js +0 -4
- package/dist/chunk-arbx49j6.js +0 -4
- package/dist/chunk-b6w0fgxz.js +0 -4
- package/dist/chunk-ckds5kj4.js +0 -4
- package/dist/chunk-dtkvdcf6.js +0 -4
- package/dist/chunk-ef6dgp5k.js +0 -4
- package/dist/chunk-en5bya0k.js +0 -4
- package/dist/chunk-enc2835j.js +0 -4
- package/dist/chunk-gsrxf3xp.js +0 -5
- package/dist/chunk-gsrxf3xp.js.map +0 -64
- package/dist/chunk-h1xm4rnm.js +0 -8
- package/dist/chunk-hjr9ztvj.js +0 -4
- package/dist/chunk-kmfnx43s.js +0 -4
- package/dist/chunk-ktwy9nyn.js +0 -4
- package/dist/chunk-n7j3s0s0.js +0 -3
- package/dist/chunk-n7j3s0s0.js.map +0 -15
- package/dist/chunk-p9gc7ke6.js +0 -3
- package/dist/chunk-qf6zg7nd.js +0 -20
- package/dist/chunk-r3qdswng.js +0 -11
- package/dist/chunk-t3g9fdba.js +0 -5
- package/dist/chunk-t3g9fdba.js.map +0 -54
- package/dist/chunk-wfc30gdx.js +0 -4
- package/dist/chunk-z4ha0p3z.js +0 -4
- package/dist/chunk-z4ha0p3z.js.map +0 -10
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/shiki/dist/langs.mjs", "../../../node_modules/shiki/dist/themes.mjs", "../../../node_modules/@shikijs/types/dist/index.mjs", "../../../node_modules/@shikijs/engine-oniguruma/dist/index.mjs", "../../../node_modules/@shikijs/core/dist/shared/core.afb6276c.mjs", "../../../node_modules/@shikijs/vscode-textmate/dist/index.mjs", "../../../node_modules/regex/dist/regex.mjs", "../../../node_modules/oniguruma-to-js/dist/shared/oniguruma-to-js.2969e22d.mjs", "../../../node_modules/oniguruma-to-js/dist/index.mjs", "../../../node_modules/@shikijs/engine-javascript/dist/index.mjs", "../../../node_modules/@shikijs/core/dist/index.mjs", "../../../node_modules/shiki/dist/wasm-dynamic-K7LwWlz7.js", "../../../node_modules/shiki/dist/bundle-full.mjs"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"const bundledLanguagesInfo = [\n {\n \"id\": \"abap\",\n \"name\": \"ABAP\",\n \"import\": () => import('./langs/abap.mjs')\n },\n {\n \"id\": \"actionscript-3\",\n \"name\": \"ActionScript\",\n \"import\": () => import('./langs/actionscript-3.mjs')\n },\n {\n \"id\": \"ada\",\n \"name\": \"Ada\",\n \"import\": () => import('./langs/ada.mjs')\n },\n {\n \"id\": \"angular-html\",\n \"name\": \"Angular HTML\",\n \"import\": () => import('./langs/angular-html.mjs')\n },\n {\n \"id\": \"angular-ts\",\n \"name\": \"Angular TypeScript\",\n \"import\": () => import('./langs/angular-ts.mjs')\n },\n {\n \"id\": \"apache\",\n \"name\": \"Apache Conf\",\n \"import\": () => import('./langs/apache.mjs')\n },\n {\n \"id\": \"apex\",\n \"name\": \"Apex\",\n \"import\": () => import('./langs/apex.mjs')\n },\n {\n \"id\": \"apl\",\n \"name\": \"APL\",\n \"import\": () => import('./langs/apl.mjs')\n },\n {\n \"id\": \"applescript\",\n \"name\": \"AppleScript\",\n \"import\": () => import('./langs/applescript.mjs')\n },\n {\n \"id\": \"ara\",\n \"name\": \"Ara\",\n \"import\": () => import('./langs/ara.mjs')\n },\n {\n \"id\": \"asciidoc\",\n \"name\": \"AsciiDoc\",\n \"aliases\": [\n \"adoc\"\n ],\n \"import\": () => import('./langs/asciidoc.mjs')\n },\n {\n \"id\": \"asm\",\n \"name\": \"Assembly\",\n \"import\": () => import('./langs/asm.mjs')\n },\n {\n \"id\": \"astro\",\n \"name\": \"Astro\",\n \"import\": () => import('./langs/astro.mjs')\n },\n {\n \"id\": \"awk\",\n \"name\": \"AWK\",\n \"import\": () => import('./langs/awk.mjs')\n },\n {\n \"id\": \"ballerina\",\n \"name\": \"Ballerina\",\n \"import\": () => import('./langs/ballerina.mjs')\n },\n {\n \"id\": \"bat\",\n \"name\": \"Batch File\",\n \"aliases\": [\n \"batch\"\n ],\n \"import\": () => import('./langs/bat.mjs')\n },\n {\n \"id\": \"beancount\",\n \"name\": \"Beancount\",\n \"import\": () => import('./langs/beancount.mjs')\n },\n {\n \"id\": \"berry\",\n \"name\": \"Berry\",\n \"aliases\": [\n \"be\"\n ],\n \"import\": () => import('./langs/berry.mjs')\n },\n {\n \"id\": \"bibtex\",\n \"name\": \"BibTeX\",\n \"import\": () => import('./langs/bibtex.mjs')\n },\n {\n \"id\": \"bicep\",\n \"name\": \"Bicep\",\n \"import\": () => import('./langs/bicep.mjs')\n },\n {\n \"id\": \"blade\",\n \"name\": \"Blade\",\n \"import\": () => import('./langs/blade.mjs')\n },\n {\n \"id\": \"c\",\n \"name\": \"C\",\n \"import\": () => import('./langs/c.mjs')\n },\n {\n \"id\": \"cadence\",\n \"name\": \"Cadence\",\n \"aliases\": [\n \"cdc\"\n ],\n \"import\": () => import('./langs/cadence.mjs')\n },\n {\n \"id\": \"clarity\",\n \"name\": \"Clarity\",\n \"import\": () => import('./langs/clarity.mjs')\n },\n {\n \"id\": \"clojure\",\n \"name\": \"Clojure\",\n \"aliases\": [\n \"clj\"\n ],\n \"import\": () => import('./langs/clojure.mjs')\n },\n {\n \"id\": \"cmake\",\n \"name\": \"CMake\",\n \"import\": () => import('./langs/cmake.mjs')\n },\n {\n \"id\": \"cobol\",\n \"name\": \"COBOL\",\n \"import\": () => import('./langs/cobol.mjs')\n },\n {\n \"id\": \"codeowners\",\n \"name\": \"CODEOWNERS\",\n \"import\": () => import('./langs/codeowners.mjs')\n },\n {\n \"id\": \"codeql\",\n \"name\": \"CodeQL\",\n \"aliases\": [\n \"ql\"\n ],\n \"import\": () => import('./langs/codeql.mjs')\n },\n {\n \"id\": \"coffee\",\n \"name\": \"CoffeeScript\",\n \"aliases\": [\n \"coffeescript\"\n ],\n \"import\": () => import('./langs/coffee.mjs')\n },\n {\n \"id\": \"common-lisp\",\n \"name\": \"Common Lisp\",\n \"aliases\": [\n \"lisp\"\n ],\n \"import\": () => import('./langs/common-lisp.mjs')\n },\n {\n \"id\": \"coq\",\n \"name\": \"Coq\",\n \"import\": () => import('./langs/coq.mjs')\n },\n {\n \"id\": \"cpp\",\n \"name\": \"C++\",\n \"aliases\": [\n \"c++\"\n ],\n \"import\": () => import('./langs/cpp.mjs')\n },\n {\n \"id\": \"crystal\",\n \"name\": \"Crystal\",\n \"import\": () => import('./langs/crystal.mjs')\n },\n {\n \"id\": \"csharp\",\n \"name\": \"C#\",\n \"aliases\": [\n \"c#\",\n \"cs\"\n ],\n \"import\": () => import('./langs/csharp.mjs')\n },\n {\n \"id\": \"css\",\n \"name\": \"CSS\",\n \"import\": () => import('./langs/css.mjs')\n },\n {\n \"id\": \"csv\",\n \"name\": \"CSV\",\n \"import\": () => import('./langs/csv.mjs')\n },\n {\n \"id\": \"cue\",\n \"name\": \"CUE\",\n \"import\": () => import('./langs/cue.mjs')\n },\n {\n \"id\": \"cypher\",\n \"name\": \"Cypher\",\n \"aliases\": [\n \"cql\"\n ],\n \"import\": () => import('./langs/cypher.mjs')\n },\n {\n \"id\": \"d\",\n \"name\": \"D\",\n \"import\": () => import('./langs/d.mjs')\n },\n {\n \"id\": \"dart\",\n \"name\": \"Dart\",\n \"import\": () => import('./langs/dart.mjs')\n },\n {\n \"id\": \"dax\",\n \"name\": \"DAX\",\n \"import\": () => import('./langs/dax.mjs')\n },\n {\n \"id\": \"desktop\",\n \"name\": \"Desktop\",\n \"import\": () => import('./langs/desktop.mjs')\n },\n {\n \"id\": \"diff\",\n \"name\": \"Diff\",\n \"import\": () => import('./langs/diff.mjs')\n },\n {\n \"id\": \"docker\",\n \"name\": \"Dockerfile\",\n \"aliases\": [\n \"dockerfile\"\n ],\n \"import\": () => import('./langs/docker.mjs')\n },\n {\n \"id\": \"dotenv\",\n \"name\": \"dotEnv\",\n \"import\": () => import('./langs/dotenv.mjs')\n },\n {\n \"id\": \"dream-maker\",\n \"name\": \"Dream Maker\",\n \"import\": () => import('./langs/dream-maker.mjs')\n },\n {\n \"id\": \"edge\",\n \"name\": \"Edge\",\n \"import\": () => import('./langs/edge.mjs')\n },\n {\n \"id\": \"elixir\",\n \"name\": \"Elixir\",\n \"import\": () => import('./langs/elixir.mjs')\n },\n {\n \"id\": \"elm\",\n \"name\": \"Elm\",\n \"import\": () => import('./langs/elm.mjs')\n },\n {\n \"id\": \"emacs-lisp\",\n \"name\": \"Emacs Lisp\",\n \"aliases\": [\n \"elisp\"\n ],\n \"import\": () => import('./langs/emacs-lisp.mjs')\n },\n {\n \"id\": \"erb\",\n \"name\": \"ERB\",\n \"import\": () => import('./langs/erb.mjs')\n },\n {\n \"id\": \"erlang\",\n \"name\": \"Erlang\",\n \"aliases\": [\n \"erl\"\n ],\n \"import\": () => import('./langs/erlang.mjs')\n },\n {\n \"id\": \"fennel\",\n \"name\": \"Fennel\",\n \"import\": () => import('./langs/fennel.mjs')\n },\n {\n \"id\": \"fish\",\n \"name\": \"Fish\",\n \"import\": () => import('./langs/fish.mjs')\n },\n {\n \"id\": \"fluent\",\n \"name\": \"Fluent\",\n \"aliases\": [\n \"ftl\"\n ],\n \"import\": () => import('./langs/fluent.mjs')\n },\n {\n \"id\": \"fortran-fixed-form\",\n \"name\": \"Fortran (Fixed Form)\",\n \"aliases\": [\n \"f\",\n \"for\",\n \"f77\"\n ],\n \"import\": () => import('./langs/fortran-fixed-form.mjs')\n },\n {\n \"id\": \"fortran-free-form\",\n \"name\": \"Fortran (Free Form)\",\n \"aliases\": [\n \"f90\",\n \"f95\",\n \"f03\",\n \"f08\",\n \"f18\"\n ],\n \"import\": () => import('./langs/fortran-free-form.mjs')\n },\n {\n \"id\": \"fsharp\",\n \"name\": \"F#\",\n \"aliases\": [\n \"f#\",\n \"fs\"\n ],\n \"import\": () => import('./langs/fsharp.mjs')\n },\n {\n \"id\": \"gdresource\",\n \"name\": \"GDResource\",\n \"import\": () => import('./langs/gdresource.mjs')\n },\n {\n \"id\": \"gdscript\",\n \"name\": \"GDScript\",\n \"import\": () => import('./langs/gdscript.mjs')\n },\n {\n \"id\": \"gdshader\",\n \"name\": \"GDShader\",\n \"import\": () => import('./langs/gdshader.mjs')\n },\n {\n \"id\": \"genie\",\n \"name\": \"Genie\",\n \"import\": () => import('./langs/genie.mjs')\n },\n {\n \"id\": \"gherkin\",\n \"name\": \"Gherkin\",\n \"import\": () => import('./langs/gherkin.mjs')\n },\n {\n \"id\": \"git-commit\",\n \"name\": \"Git Commit Message\",\n \"import\": () => import('./langs/git-commit.mjs')\n },\n {\n \"id\": \"git-rebase\",\n \"name\": \"Git Rebase Message\",\n \"import\": () => import('./langs/git-rebase.mjs')\n },\n {\n \"id\": \"gleam\",\n \"name\": \"Gleam\",\n \"import\": () => import('./langs/gleam.mjs')\n },\n {\n \"id\": \"glimmer-js\",\n \"name\": \"Glimmer JS\",\n \"aliases\": [\n \"gjs\"\n ],\n \"import\": () => import('./langs/glimmer-js.mjs')\n },\n {\n \"id\": \"glimmer-ts\",\n \"name\": \"Glimmer TS\",\n \"aliases\": [\n \"gts\"\n ],\n \"import\": () => import('./langs/glimmer-ts.mjs')\n },\n {\n \"id\": \"glsl\",\n \"name\": \"GLSL\",\n \"import\": () => import('./langs/glsl.mjs')\n },\n {\n \"id\": \"gnuplot\",\n \"name\": \"Gnuplot\",\n \"import\": () => import('./langs/gnuplot.mjs')\n },\n {\n \"id\": \"go\",\n \"name\": \"Go\",\n \"import\": () => import('./langs/go.mjs')\n },\n {\n \"id\": \"graphql\",\n \"name\": \"GraphQL\",\n \"aliases\": [\n \"gql\"\n ],\n \"import\": () => import('./langs/graphql.mjs')\n },\n {\n \"id\": \"groovy\",\n \"name\": \"Groovy\",\n \"import\": () => import('./langs/groovy.mjs')\n },\n {\n \"id\": \"hack\",\n \"name\": \"Hack\",\n \"import\": () => import('./langs/hack.mjs')\n },\n {\n \"id\": \"haml\",\n \"name\": \"Ruby Haml\",\n \"import\": () => import('./langs/haml.mjs')\n },\n {\n \"id\": \"handlebars\",\n \"name\": \"Handlebars\",\n \"aliases\": [\n \"hbs\"\n ],\n \"import\": () => import('./langs/handlebars.mjs')\n },\n {\n \"id\": \"haskell\",\n \"name\": \"Haskell\",\n \"aliases\": [\n \"hs\"\n ],\n \"import\": () => import('./langs/haskell.mjs')\n },\n {\n \"id\": \"haxe\",\n \"name\": \"Haxe\",\n \"import\": () => import('./langs/haxe.mjs')\n },\n {\n \"id\": \"hcl\",\n \"name\": \"HashiCorp HCL\",\n \"import\": () => import('./langs/hcl.mjs')\n },\n {\n \"id\": \"hjson\",\n \"name\": \"Hjson\",\n \"import\": () => import('./langs/hjson.mjs')\n },\n {\n \"id\": \"hlsl\",\n \"name\": \"HLSL\",\n \"import\": () => import('./langs/hlsl.mjs')\n },\n {\n \"id\": \"html\",\n \"name\": \"HTML\",\n \"import\": () => import('./langs/html.mjs')\n },\n {\n \"id\": \"html-derivative\",\n \"name\": \"HTML (Derivative)\",\n \"import\": () => import('./langs/html-derivative.mjs')\n },\n {\n \"id\": \"http\",\n \"name\": \"HTTP\",\n \"import\": () => import('./langs/http.mjs')\n },\n {\n \"id\": \"hxml\",\n \"name\": \"HXML\",\n \"import\": () => import('./langs/hxml.mjs')\n },\n {\n \"id\": \"hy\",\n \"name\": \"Hy\",\n \"import\": () => import('./langs/hy.mjs')\n },\n {\n \"id\": \"imba\",\n \"name\": \"Imba\",\n \"import\": () => import('./langs/imba.mjs')\n },\n {\n \"id\": \"ini\",\n \"name\": \"INI\",\n \"aliases\": [\n \"properties\"\n ],\n \"import\": () => import('./langs/ini.mjs')\n },\n {\n \"id\": \"java\",\n \"name\": \"Java\",\n \"import\": () => import('./langs/java.mjs')\n },\n {\n \"id\": \"javascript\",\n \"name\": \"JavaScript\",\n \"aliases\": [\n \"js\"\n ],\n \"import\": () => import('./langs/javascript.mjs')\n },\n {\n \"id\": \"jinja\",\n \"name\": \"Jinja\",\n \"import\": () => import('./langs/jinja.mjs')\n },\n {\n \"id\": \"jison\",\n \"name\": \"Jison\",\n \"import\": () => import('./langs/jison.mjs')\n },\n {\n \"id\": \"json\",\n \"name\": \"JSON\",\n \"import\": () => import('./langs/json.mjs')\n },\n {\n \"id\": \"json5\",\n \"name\": \"JSON5\",\n \"import\": () => import('./langs/json5.mjs')\n },\n {\n \"id\": \"jsonc\",\n \"name\": \"JSON with Comments\",\n \"import\": () => import('./langs/jsonc.mjs')\n },\n {\n \"id\": \"jsonl\",\n \"name\": \"JSON Lines\",\n \"import\": () => import('./langs/jsonl.mjs')\n },\n {\n \"id\": \"jsonnet\",\n \"name\": \"Jsonnet\",\n \"import\": () => import('./langs/jsonnet.mjs')\n },\n {\n \"id\": \"jssm\",\n \"name\": \"JSSM\",\n \"aliases\": [\n \"fsl\"\n ],\n \"import\": () => import('./langs/jssm.mjs')\n },\n {\n \"id\": \"jsx\",\n \"name\": \"JSX\",\n \"import\": () => import('./langs/jsx.mjs')\n },\n {\n \"id\": \"julia\",\n \"name\": \"Julia\",\n \"aliases\": [\n \"jl\"\n ],\n \"import\": () => import('./langs/julia.mjs')\n },\n {\n \"id\": \"kotlin\",\n \"name\": \"Kotlin\",\n \"aliases\": [\n \"kt\",\n \"kts\"\n ],\n \"import\": () => import('./langs/kotlin.mjs')\n },\n {\n \"id\": \"kusto\",\n \"name\": \"Kusto\",\n \"aliases\": [\n \"kql\"\n ],\n \"import\": () => import('./langs/kusto.mjs')\n },\n {\n \"id\": \"latex\",\n \"name\": \"LaTeX\",\n \"import\": () => import('./langs/latex.mjs')\n },\n {\n \"id\": \"lean\",\n \"name\": \"Lean 4\",\n \"aliases\": [\n \"lean4\"\n ],\n \"import\": () => import('./langs/lean.mjs')\n },\n {\n \"id\": \"less\",\n \"name\": \"Less\",\n \"import\": () => import('./langs/less.mjs')\n },\n {\n \"id\": \"liquid\",\n \"name\": \"Liquid\",\n \"import\": () => import('./langs/liquid.mjs')\n },\n {\n \"id\": \"log\",\n \"name\": \"Log file\",\n \"import\": () => import('./langs/log.mjs')\n },\n {\n \"id\": \"logo\",\n \"name\": \"Logo\",\n \"import\": () => import('./langs/logo.mjs')\n },\n {\n \"id\": \"lua\",\n \"name\": \"Lua\",\n \"import\": () => import('./langs/lua.mjs')\n },\n {\n \"id\": \"luau\",\n \"name\": \"Luau\",\n \"import\": () => import('./langs/luau.mjs')\n },\n {\n \"id\": \"make\",\n \"name\": \"Makefile\",\n \"aliases\": [\n \"makefile\"\n ],\n \"import\": () => import('./langs/make.mjs')\n },\n {\n \"id\": \"markdown\",\n \"name\": \"Markdown\",\n \"aliases\": [\n \"md\"\n ],\n \"import\": () => import('./langs/markdown.mjs')\n },\n {\n \"id\": \"marko\",\n \"name\": \"Marko\",\n \"import\": () => import('./langs/marko.mjs')\n },\n {\n \"id\": \"matlab\",\n \"name\": \"MATLAB\",\n \"import\": () => import('./langs/matlab.mjs')\n },\n {\n \"id\": \"mdc\",\n \"name\": \"MDC\",\n \"import\": () => import('./langs/mdc.mjs')\n },\n {\n \"id\": \"mdx\",\n \"name\": \"MDX\",\n \"import\": () => import('./langs/mdx.mjs')\n },\n {\n \"id\": \"mermaid\",\n \"name\": \"Mermaid\",\n \"aliases\": [\n \"mmd\"\n ],\n \"import\": () => import('./langs/mermaid.mjs')\n },\n {\n \"id\": \"mipsasm\",\n \"name\": \"MIPS Assembly\",\n \"aliases\": [\n \"mips\"\n ],\n \"import\": () => import('./langs/mipsasm.mjs')\n },\n {\n \"id\": \"mojo\",\n \"name\": \"Mojo\",\n \"import\": () => import('./langs/mojo.mjs')\n },\n {\n \"id\": \"move\",\n \"name\": \"Move\",\n \"import\": () => import('./langs/move.mjs')\n },\n {\n \"id\": \"narrat\",\n \"name\": \"Narrat Language\",\n \"aliases\": [\n \"nar\"\n ],\n \"import\": () => import('./langs/narrat.mjs')\n },\n {\n \"id\": \"nextflow\",\n \"name\": \"Nextflow\",\n \"aliases\": [\n \"nf\"\n ],\n \"import\": () => import('./langs/nextflow.mjs')\n },\n {\n \"id\": \"nginx\",\n \"name\": \"Nginx\",\n \"import\": () => import('./langs/nginx.mjs')\n },\n {\n \"id\": \"nim\",\n \"name\": \"Nim\",\n \"import\": () => import('./langs/nim.mjs')\n },\n {\n \"id\": \"nix\",\n \"name\": \"Nix\",\n \"import\": () => import('./langs/nix.mjs')\n },\n {\n \"id\": \"nushell\",\n \"name\": \"nushell\",\n \"aliases\": [\n \"nu\"\n ],\n \"import\": () => import('./langs/nushell.mjs')\n },\n {\n \"id\": \"objective-c\",\n \"name\": \"Objective-C\",\n \"aliases\": [\n \"objc\"\n ],\n \"import\": () => import('./langs/objective-c.mjs')\n },\n {\n \"id\": \"objective-cpp\",\n \"name\": \"Objective-C++\",\n \"import\": () => import('./langs/objective-cpp.mjs')\n },\n {\n \"id\": \"ocaml\",\n \"name\": \"OCaml\",\n \"import\": () => import('./langs/ocaml.mjs')\n },\n {\n \"id\": \"pascal\",\n \"name\": \"Pascal\",\n \"import\": () => import('./langs/pascal.mjs')\n },\n {\n \"id\": \"perl\",\n \"name\": \"Perl\",\n \"import\": () => import('./langs/perl.mjs')\n },\n {\n \"id\": \"php\",\n \"name\": \"PHP\",\n \"import\": () => import('./langs/php.mjs')\n },\n {\n \"id\": \"plsql\",\n \"name\": \"PL/SQL\",\n \"import\": () => import('./langs/plsql.mjs')\n },\n {\n \"id\": \"po\",\n \"name\": \"Gettext PO\",\n \"aliases\": [\n \"pot\",\n \"potx\"\n ],\n \"import\": () => import('./langs/po.mjs')\n },\n {\n \"id\": \"postcss\",\n \"name\": \"PostCSS\",\n \"import\": () => import('./langs/postcss.mjs')\n },\n {\n \"id\": \"powerquery\",\n \"name\": \"PowerQuery\",\n \"import\": () => import('./langs/powerquery.mjs')\n },\n {\n \"id\": \"powershell\",\n \"name\": \"PowerShell\",\n \"aliases\": [\n \"ps\",\n \"ps1\"\n ],\n \"import\": () => import('./langs/powershell.mjs')\n },\n {\n \"id\": \"prisma\",\n \"name\": \"Prisma\",\n \"import\": () => import('./langs/prisma.mjs')\n },\n {\n \"id\": \"prolog\",\n \"name\": \"Prolog\",\n \"import\": () => import('./langs/prolog.mjs')\n },\n {\n \"id\": \"proto\",\n \"name\": \"Protocol Buffer 3\",\n \"aliases\": [\n \"protobuf\"\n ],\n \"import\": () => import('./langs/proto.mjs')\n },\n {\n \"id\": \"pug\",\n \"name\": \"Pug\",\n \"aliases\": [\n \"jade\"\n ],\n \"import\": () => import('./langs/pug.mjs')\n },\n {\n \"id\": \"puppet\",\n \"name\": \"Puppet\",\n \"import\": () => import('./langs/puppet.mjs')\n },\n {\n \"id\": \"purescript\",\n \"name\": \"PureScript\",\n \"import\": () => import('./langs/purescript.mjs')\n },\n {\n \"id\": \"python\",\n \"name\": \"Python\",\n \"aliases\": [\n \"py\"\n ],\n \"import\": () => import('./langs/python.mjs')\n },\n {\n \"id\": \"qml\",\n \"name\": \"QML\",\n \"import\": () => import('./langs/qml.mjs')\n },\n {\n \"id\": \"qmldir\",\n \"name\": \"QML Directory\",\n \"import\": () => import('./langs/qmldir.mjs')\n },\n {\n \"id\": \"qss\",\n \"name\": \"Qt Style Sheets\",\n \"import\": () => import('./langs/qss.mjs')\n },\n {\n \"id\": \"r\",\n \"name\": \"R\",\n \"import\": () => import('./langs/r.mjs')\n },\n {\n \"id\": \"racket\",\n \"name\": \"Racket\",\n \"import\": () => import('./langs/racket.mjs')\n },\n {\n \"id\": \"raku\",\n \"name\": \"Raku\",\n \"aliases\": [\n \"perl6\"\n ],\n \"import\": () => import('./langs/raku.mjs')\n },\n {\n \"id\": \"razor\",\n \"name\": \"ASP.NET Razor\",\n \"import\": () => import('./langs/razor.mjs')\n },\n {\n \"id\": \"reg\",\n \"name\": \"Windows Registry Script\",\n \"import\": () => import('./langs/reg.mjs')\n },\n {\n \"id\": \"regexp\",\n \"name\": \"RegExp\",\n \"aliases\": [\n \"regex\"\n ],\n \"import\": () => import('./langs/regexp.mjs')\n },\n {\n \"id\": \"rel\",\n \"name\": \"Rel\",\n \"import\": () => import('./langs/rel.mjs')\n },\n {\n \"id\": \"riscv\",\n \"name\": \"RISC-V\",\n \"import\": () => import('./langs/riscv.mjs')\n },\n {\n \"id\": \"rst\",\n \"name\": \"reStructuredText\",\n \"import\": () => import('./langs/rst.mjs')\n },\n {\n \"id\": \"ruby\",\n \"name\": \"Ruby\",\n \"aliases\": [\n \"rb\"\n ],\n \"import\": () => import('./langs/ruby.mjs')\n },\n {\n \"id\": \"rust\",\n \"name\": \"Rust\",\n \"aliases\": [\n \"rs\"\n ],\n \"import\": () => import('./langs/rust.mjs')\n },\n {\n \"id\": \"sas\",\n \"name\": \"SAS\",\n \"import\": () => import('./langs/sas.mjs')\n },\n {\n \"id\": \"sass\",\n \"name\": \"Sass\",\n \"import\": () => import('./langs/sass.mjs')\n },\n {\n \"id\": \"scala\",\n \"name\": \"Scala\",\n \"import\": () => import('./langs/scala.mjs')\n },\n {\n \"id\": \"scheme\",\n \"name\": \"Scheme\",\n \"import\": () => import('./langs/scheme.mjs')\n },\n {\n \"id\": \"scss\",\n \"name\": \"SCSS\",\n \"import\": () => import('./langs/scss.mjs')\n },\n {\n \"id\": \"shaderlab\",\n \"name\": \"ShaderLab\",\n \"aliases\": [\n \"shader\"\n ],\n \"import\": () => import('./langs/shaderlab.mjs')\n },\n {\n \"id\": \"shellscript\",\n \"name\": \"Shell\",\n \"aliases\": [\n \"bash\",\n \"sh\",\n \"shell\",\n \"zsh\"\n ],\n \"import\": () => import('./langs/shellscript.mjs')\n },\n {\n \"id\": \"shellsession\",\n \"name\": \"Shell Session\",\n \"aliases\": [\n \"console\"\n ],\n \"import\": () => import('./langs/shellsession.mjs')\n },\n {\n \"id\": \"smalltalk\",\n \"name\": \"Smalltalk\",\n \"import\": () => import('./langs/smalltalk.mjs')\n },\n {\n \"id\": \"solidity\",\n \"name\": \"Solidity\",\n \"import\": () => import('./langs/solidity.mjs')\n },\n {\n \"id\": \"soy\",\n \"name\": \"Closure Templates\",\n \"aliases\": [\n \"closure-templates\"\n ],\n \"import\": () => import('./langs/soy.mjs')\n },\n {\n \"id\": \"sparql\",\n \"name\": \"SPARQL\",\n \"import\": () => import('./langs/sparql.mjs')\n },\n {\n \"id\": \"splunk\",\n \"name\": \"Splunk Query Language\",\n \"aliases\": [\n \"spl\"\n ],\n \"import\": () => import('./langs/splunk.mjs')\n },\n {\n \"id\": \"sql\",\n \"name\": \"SQL\",\n \"import\": () => import('./langs/sql.mjs')\n },\n {\n \"id\": \"ssh-config\",\n \"name\": \"SSH Config\",\n \"import\": () => import('./langs/ssh-config.mjs')\n },\n {\n \"id\": \"stata\",\n \"name\": \"Stata\",\n \"import\": () => import('./langs/stata.mjs')\n },\n {\n \"id\": \"stylus\",\n \"name\": \"Stylus\",\n \"aliases\": [\n \"styl\"\n ],\n \"import\": () => import('./langs/stylus.mjs')\n },\n {\n \"id\": \"svelte\",\n \"name\": \"Svelte\",\n \"import\": () => import('./langs/svelte.mjs')\n },\n {\n \"id\": \"swift\",\n \"name\": \"Swift\",\n \"import\": () => import('./langs/swift.mjs')\n },\n {\n \"id\": \"system-verilog\",\n \"name\": \"SystemVerilog\",\n \"import\": () => import('./langs/system-verilog.mjs')\n },\n {\n \"id\": \"systemd\",\n \"name\": \"Systemd Units\",\n \"import\": () => import('./langs/systemd.mjs')\n },\n {\n \"id\": \"tasl\",\n \"name\": \"Tasl\",\n \"import\": () => import('./langs/tasl.mjs')\n },\n {\n \"id\": \"tcl\",\n \"name\": \"Tcl\",\n \"import\": () => import('./langs/tcl.mjs')\n },\n {\n \"id\": \"templ\",\n \"name\": \"Templ\",\n \"import\": () => import('./langs/templ.mjs')\n },\n {\n \"id\": \"terraform\",\n \"name\": \"Terraform\",\n \"aliases\": [\n \"tf\",\n \"tfvars\"\n ],\n \"import\": () => import('./langs/terraform.mjs')\n },\n {\n \"id\": \"tex\",\n \"name\": \"TeX\",\n \"import\": () => import('./langs/tex.mjs')\n },\n {\n \"id\": \"toml\",\n \"name\": \"TOML\",\n \"import\": () => import('./langs/toml.mjs')\n },\n {\n \"id\": \"ts-tags\",\n \"name\": \"TypeScript with Tags\",\n \"aliases\": [\n \"lit\"\n ],\n \"import\": () => import('./langs/ts-tags.mjs')\n },\n {\n \"id\": \"tsv\",\n \"name\": \"TSV\",\n \"import\": () => import('./langs/tsv.mjs')\n },\n {\n \"id\": \"tsx\",\n \"name\": \"TSX\",\n \"import\": () => import('./langs/tsx.mjs')\n },\n {\n \"id\": \"turtle\",\n \"name\": \"Turtle\",\n \"import\": () => import('./langs/turtle.mjs')\n },\n {\n \"id\": \"twig\",\n \"name\": \"Twig\",\n \"import\": () => import('./langs/twig.mjs')\n },\n {\n \"id\": \"typescript\",\n \"name\": \"TypeScript\",\n \"aliases\": [\n \"ts\"\n ],\n \"import\": () => import('./langs/typescript.mjs')\n },\n {\n \"id\": \"typespec\",\n \"name\": \"TypeSpec\",\n \"aliases\": [\n \"tsp\"\n ],\n \"import\": () => import('./langs/typespec.mjs')\n },\n {\n \"id\": \"typst\",\n \"name\": \"Typst\",\n \"aliases\": [\n \"typ\"\n ],\n \"import\": () => import('./langs/typst.mjs')\n },\n {\n \"id\": \"v\",\n \"name\": \"V\",\n \"import\": () => import('./langs/v.mjs')\n },\n {\n \"id\": \"vala\",\n \"name\": \"Vala\",\n \"import\": () => import('./langs/vala.mjs')\n },\n {\n \"id\": \"vb\",\n \"name\": \"Visual Basic\",\n \"aliases\": [\n \"cmd\"\n ],\n \"import\": () => import('./langs/vb.mjs')\n },\n {\n \"id\": \"verilog\",\n \"name\": \"Verilog\",\n \"import\": () => import('./langs/verilog.mjs')\n },\n {\n \"id\": \"vhdl\",\n \"name\": \"VHDL\",\n \"import\": () => import('./langs/vhdl.mjs')\n },\n {\n \"id\": \"viml\",\n \"name\": \"Vim Script\",\n \"aliases\": [\n \"vim\",\n \"vimscript\"\n ],\n \"import\": () => import('./langs/viml.mjs')\n },\n {\n \"id\": \"vue\",\n \"name\": \"Vue\",\n \"import\": () => import('./langs/vue.mjs')\n },\n {\n \"id\": \"vue-html\",\n \"name\": \"Vue HTML\",\n \"import\": () => import('./langs/vue-html.mjs')\n },\n {\n \"id\": \"vyper\",\n \"name\": \"Vyper\",\n \"aliases\": [\n \"vy\"\n ],\n \"import\": () => import('./langs/vyper.mjs')\n },\n {\n \"id\": \"wasm\",\n \"name\": \"WebAssembly\",\n \"import\": () => import('./langs/wasm.mjs')\n },\n {\n \"id\": \"wenyan\",\n \"name\": \"Wenyan\",\n \"aliases\": [\n \"\\u6587\\u8A00\"\n ],\n \"import\": () => import('./langs/wenyan.mjs')\n },\n {\n \"id\": \"wgsl\",\n \"name\": \"WGSL\",\n \"import\": () => import('./langs/wgsl.mjs')\n },\n {\n \"id\": \"wikitext\",\n \"name\": \"Wikitext\",\n \"aliases\": [\n \"mediawiki\",\n \"wiki\"\n ],\n \"import\": () => import('./langs/wikitext.mjs')\n },\n {\n \"id\": \"wolfram\",\n \"name\": \"Wolfram\",\n \"aliases\": [\n \"wl\"\n ],\n \"import\": () => import('./langs/wolfram.mjs')\n },\n {\n \"id\": \"xml\",\n \"name\": \"XML\",\n \"import\": () => import('./langs/xml.mjs')\n },\n {\n \"id\": \"xsl\",\n \"name\": \"XSL\",\n \"import\": () => import('./langs/xsl.mjs')\n },\n {\n \"id\": \"yaml\",\n \"name\": \"YAML\",\n \"aliases\": [\n \"yml\"\n ],\n \"import\": () => import('./langs/yaml.mjs')\n },\n {\n \"id\": \"zenscript\",\n \"name\": \"ZenScript\",\n \"import\": () => import('./langs/zenscript.mjs')\n },\n {\n \"id\": \"zig\",\n \"name\": \"Zig\",\n \"import\": () => import('./langs/zig.mjs')\n }\n];\nconst bundledLanguagesBase = Object.fromEntries(bundledLanguagesInfo.map((i) => [i.id, i.import]));\nconst bundledLanguagesAlias = Object.fromEntries(bundledLanguagesInfo.flatMap((i) => i.aliases?.map((a) => [a, i.import]) || []));\nconst bundledLanguages = {\n ...bundledLanguagesBase,\n ...bundledLanguagesAlias\n};\n\nexport { bundledLanguages, bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo };\n",
|
|
6
|
+
"const bundledThemesInfo = [\n {\n \"id\": \"andromeeda\",\n \"displayName\": \"Andromeeda\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/andromeeda.mjs')\n },\n {\n \"id\": \"aurora-x\",\n \"displayName\": \"Aurora X\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/aurora-x.mjs')\n },\n {\n \"id\": \"ayu-dark\",\n \"displayName\": \"Ayu Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/ayu-dark.mjs')\n },\n {\n \"id\": \"catppuccin-frappe\",\n \"displayName\": \"Catppuccin Frapp\\xE9\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-frappe.mjs')\n },\n {\n \"id\": \"catppuccin-latte\",\n \"displayName\": \"Catppuccin Latte\",\n \"type\": \"light\",\n \"import\": () => import('./themes/catppuccin-latte.mjs')\n },\n {\n \"id\": \"catppuccin-macchiato\",\n \"displayName\": \"Catppuccin Macchiato\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-macchiato.mjs')\n },\n {\n \"id\": \"catppuccin-mocha\",\n \"displayName\": \"Catppuccin Mocha\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-mocha.mjs')\n },\n {\n \"id\": \"dark-plus\",\n \"displayName\": \"Dark Plus\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dark-plus.mjs')\n },\n {\n \"id\": \"dracula\",\n \"displayName\": \"Dracula Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula.mjs')\n },\n {\n \"id\": \"dracula-soft\",\n \"displayName\": \"Dracula Theme Soft\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula-soft.mjs')\n },\n {\n \"id\": \"everforest-dark\",\n \"displayName\": \"Everforest Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/everforest-dark.mjs')\n },\n {\n \"id\": \"everforest-light\",\n \"displayName\": \"Everforest Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/everforest-light.mjs')\n },\n {\n \"id\": \"github-dark\",\n \"displayName\": \"GitHub Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark.mjs')\n },\n {\n \"id\": \"github-dark-default\",\n \"displayName\": \"GitHub Dark Default\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-default.mjs')\n },\n {\n \"id\": \"github-dark-dimmed\",\n \"displayName\": \"GitHub Dark Dimmed\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-dimmed.mjs')\n },\n {\n \"id\": \"github-dark-high-contrast\",\n \"displayName\": \"GitHub Dark High Contrast\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-high-contrast.mjs')\n },\n {\n \"id\": \"github-light\",\n \"displayName\": \"GitHub Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light.mjs')\n },\n {\n \"id\": \"github-light-default\",\n \"displayName\": \"GitHub Light Default\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-default.mjs')\n },\n {\n \"id\": \"github-light-high-contrast\",\n \"displayName\": \"GitHub Light High Contrast\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-high-contrast.mjs')\n },\n {\n \"id\": \"houston\",\n \"displayName\": \"Houston\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/houston.mjs')\n },\n {\n \"id\": \"laserwave\",\n \"displayName\": \"LaserWave\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/laserwave.mjs')\n },\n {\n \"id\": \"light-plus\",\n \"displayName\": \"Light Plus\",\n \"type\": \"light\",\n \"import\": () => import('./themes/light-plus.mjs')\n },\n {\n \"id\": \"material-theme\",\n \"displayName\": \"Material Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme.mjs')\n },\n {\n \"id\": \"material-theme-darker\",\n \"displayName\": \"Material Theme Darker\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-darker.mjs')\n },\n {\n \"id\": \"material-theme-lighter\",\n \"displayName\": \"Material Theme Lighter\",\n \"type\": \"light\",\n \"import\": () => import('./themes/material-theme-lighter.mjs')\n },\n {\n \"id\": \"material-theme-ocean\",\n \"displayName\": \"Material Theme Ocean\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-ocean.mjs')\n },\n {\n \"id\": \"material-theme-palenight\",\n \"displayName\": \"Material Theme Palenight\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-palenight.mjs')\n },\n {\n \"id\": \"min-dark\",\n \"displayName\": \"Min Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/min-dark.mjs')\n },\n {\n \"id\": \"min-light\",\n \"displayName\": \"Min Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/min-light.mjs')\n },\n {\n \"id\": \"monokai\",\n \"displayName\": \"Monokai\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/monokai.mjs')\n },\n {\n \"id\": \"night-owl\",\n \"displayName\": \"Night Owl\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/night-owl.mjs')\n },\n {\n \"id\": \"nord\",\n \"displayName\": \"Nord\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/nord.mjs')\n },\n {\n \"id\": \"one-dark-pro\",\n \"displayName\": \"One Dark Pro\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/one-dark-pro.mjs')\n },\n {\n \"id\": \"one-light\",\n \"displayName\": \"One Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/one-light.mjs')\n },\n {\n \"id\": \"plastic\",\n \"displayName\": \"Plastic\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/plastic.mjs')\n },\n {\n \"id\": \"poimandres\",\n \"displayName\": \"Poimandres\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/poimandres.mjs')\n },\n {\n \"id\": \"red\",\n \"displayName\": \"Red\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/red.mjs')\n },\n {\n \"id\": \"rose-pine\",\n \"displayName\": \"Ros\\xE9 Pine\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine.mjs')\n },\n {\n \"id\": \"rose-pine-dawn\",\n \"displayName\": \"Ros\\xE9 Pine Dawn\",\n \"type\": \"light\",\n \"import\": () => import('./themes/rose-pine-dawn.mjs')\n },\n {\n \"id\": \"rose-pine-moon\",\n \"displayName\": \"Ros\\xE9 Pine Moon\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine-moon.mjs')\n },\n {\n \"id\": \"slack-dark\",\n \"displayName\": \"Slack Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/slack-dark.mjs')\n },\n {\n \"id\": \"slack-ochin\",\n \"displayName\": \"Slack Ochin\",\n \"type\": \"light\",\n \"import\": () => import('./themes/slack-ochin.mjs')\n },\n {\n \"id\": \"snazzy-light\",\n \"displayName\": \"Snazzy Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/snazzy-light.mjs')\n },\n {\n \"id\": \"solarized-dark\",\n \"displayName\": \"Solarized Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/solarized-dark.mjs')\n },\n {\n \"id\": \"solarized-light\",\n \"displayName\": \"Solarized Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/solarized-light.mjs')\n },\n {\n \"id\": \"synthwave-84\",\n \"displayName\": \"Synthwave '84\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/synthwave-84.mjs')\n },\n {\n \"id\": \"tokyo-night\",\n \"displayName\": \"Tokyo Night\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/tokyo-night.mjs')\n },\n {\n \"id\": \"vesper\",\n \"displayName\": \"Vesper\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vesper.mjs')\n },\n {\n \"id\": \"vitesse-black\",\n \"displayName\": \"Vitesse Black\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-black.mjs')\n },\n {\n \"id\": \"vitesse-dark\",\n \"displayName\": \"Vitesse Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-dark.mjs')\n },\n {\n \"id\": \"vitesse-light\",\n \"displayName\": \"Vitesse Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/vitesse-light.mjs')\n }\n];\nconst bundledThemes = Object.fromEntries(bundledThemesInfo.map((i) => [i.id, i.import]));\n\nexport { bundledThemes, bundledThemesInfo };\n",
|
|
7
|
+
"class ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nexport { ShikiError };\n",
|
|
8
|
+
"class ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\n }\n}\n\nfunction getHeapMax() {\n return 2147483648;\n}\nfunction _emscripten_get_now() {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n}\nconst alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple);\nasync function main(init) {\n let wasmMemory;\n let buffer;\n const binding = {};\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n binding.HEAPU8 = new Uint8Array(buf);\n binding.HEAPU32 = new Uint32Array(buf);\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n }\n catch { }\n }\n function _emscripten_resize_heap(requestedSize) {\n const oldSize = binding.HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n const maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize)\n return false;\n for (let cutDown = 1; cutDown <= 4; cutDown *= 2) {\n let overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n const newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n const replacement = emscripten_realloc_buffer(newSize);\n if (replacement)\n return true;\n }\n return false;\n }\n const UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n let str = '';\n while (idx < endPtr) {\n let u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n const u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) === 192) {\n str += String.fromCharCode(((u0 & 31) << 6) | u1);\n continue;\n }\n const u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) === 224) {\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\n }\n else {\n u0 = ((u0 & 7) << 18)\n | (u1 << 12)\n | (u2 << 6)\n | (heapOrArray[idx++] & 63);\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n }\n else {\n const ch = u0 - 65536;\n str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(binding.HEAPU8, ptr, maxBytesToRead) : '';\n }\n const asmLibraryArg = {\n emscripten_get_now: _emscripten_get_now,\n emscripten_memcpy_big: _emscripten_memcpy_big,\n emscripten_resize_heap: _emscripten_resize_heap,\n fd_write: () => 0,\n };\n async function createWasm() {\n const info = {\n env: asmLibraryArg,\n wasi_snapshot_preview1: asmLibraryArg,\n };\n const exports = await init(info);\n wasmMemory = exports.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\n/* ---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *-------------------------------------------------------- */\nlet onigBinding = null;\n// let defaultDebugCall = false\nfunction throwLastOnigError(onigBinding) {\n throw new ShikiError(onigBinding.UTF8ToString(onigBinding.getLastOnigError()));\n}\nclass UtfString {\n static _utf8ByteLength(str) {\n let result = 0;\n for (let i = 0, len = str.length; i < len; i++) {\n const charCode = str.charCodeAt(i);\n let codepoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codepoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 0x7F)\n result += 1;\n else if (codepoint <= 0x7FF)\n result += 2;\n else if (codepoint <= 0xFFFF)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n utf16Length;\n utf8Length;\n utf16Value;\n utf8Value;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n constructor(str) {\n const utf16Length = str.length;\n const utf8Length = UtfString._utf8ByteLength(str);\n const computeIndicesMapping = (utf8Length !== utf16Length);\n const utf16OffsetToUtf8 = computeIndicesMapping ? new Uint32Array(utf16Length + 1) : null;\n if (computeIndicesMapping)\n utf16OffsetToUtf8[utf16Length] = utf8Length;\n const utf8OffsetToUtf16 = computeIndicesMapping ? new Uint32Array(utf8Length + 1) : null;\n if (computeIndicesMapping)\n utf8OffsetToUtf16[utf8Length] = utf16Length;\n const utf8Value = new Uint8Array(utf8Length);\n let i8 = 0;\n for (let i16 = 0; i16 < utf16Length; i16++) {\n const charCode = str.charCodeAt(i16);\n let codePoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codePoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 0x7F) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n }\n else if (codePoint <= 0x7FF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n }\n else if (codePoint <= 0xFFFF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n }\n else {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n utf8OffsetToUtf16[i8 + 3] = i16;\n }\n }\n if (codePoint <= 0x7F) {\n utf8Value[i8++] = codePoint;\n }\n else if (codePoint <= 0x7FF) {\n utf8Value[i8++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else if (codePoint <= 0xFFFF) {\n utf8Value[i8++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else {\n utf8Value[i8++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n if (wasSurrogatePair)\n i16++;\n }\n this.utf16Length = utf16Length;\n this.utf8Length = utf8Length;\n this.utf16Value = str;\n this.utf8Value = utf8Value;\n this.utf16OffsetToUtf8 = utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utf8OffsetToUtf16;\n }\n createString(onigBinding) {\n const result = onigBinding.omalloc(this.utf8Length);\n onigBinding.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nclass OnigString {\n static LAST_ID = 0;\n static _sharedPtr = 0; // a pointer to a string of 10000 bytes\n static _sharedPtrInUse = false;\n id = (++OnigString.LAST_ID);\n _onigBinding;\n content;\n utf16Length;\n utf8Length;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n ptr;\n constructor(str) {\n if (!onigBinding)\n throw new ShikiError('Must invoke loadWasm first.');\n this._onigBinding = onigBinding;\n this.content = str;\n const utfString = new UtfString(str);\n this.utf16Length = utfString.utf16Length;\n this.utf8Length = utfString.utf8Length;\n this.utf16OffsetToUtf8 = utfString.utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utfString.utf8OffsetToUtf16;\n if (this.utf8Length < 10000 && !OnigString._sharedPtrInUse) {\n if (!OnigString._sharedPtr)\n OnigString._sharedPtr = onigBinding.omalloc(10000);\n OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, OnigString._sharedPtr);\n this.ptr = OnigString._sharedPtr;\n }\n else {\n this.ptr = utfString.createString(onigBinding);\n }\n }\n convertUtf8OffsetToUtf16(utf8Offset) {\n if (this.utf8OffsetToUtf16) {\n if (utf8Offset < 0)\n return 0;\n if (utf8Offset > this.utf8Length)\n return this.utf16Length;\n return this.utf8OffsetToUtf16[utf8Offset];\n }\n return utf8Offset;\n }\n convertUtf16OffsetToUtf8(utf16Offset) {\n if (this.utf16OffsetToUtf8) {\n if (utf16Offset < 0)\n return 0;\n if (utf16Offset > this.utf16Length)\n return this.utf8Length;\n return this.utf16OffsetToUtf8[utf16Offset];\n }\n return utf16Offset;\n }\n dispose() {\n if (this.ptr === OnigString._sharedPtr)\n OnigString._sharedPtrInUse = false;\n else\n this._onigBinding.ofree(this.ptr);\n }\n}\nclass OnigScanner {\n _onigBinding;\n _ptr;\n constructor(patterns) {\n if (!onigBinding)\n throw new ShikiError('Must invoke loadWasm first.');\n const strPtrsArr = [];\n const strLenArr = [];\n for (let i = 0, len = patterns.length; i < len; i++) {\n const utfString = new UtfString(patterns[i]);\n strPtrsArr[i] = utfString.createString(onigBinding);\n strLenArr[i] = utfString.utf8Length;\n }\n const strPtrsPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strPtrsArr, strPtrsPtr / 4);\n const strLenPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strLenArr, strLenPtr / 4);\n const scannerPtr = onigBinding.createOnigScanner(strPtrsPtr, strLenPtr, patterns.length);\n for (let i = 0, len = patterns.length; i < len; i++)\n onigBinding.ofree(strPtrsArr[i]);\n onigBinding.ofree(strLenPtr);\n onigBinding.ofree(strPtrsPtr);\n if (scannerPtr === 0)\n throwLastOnigError(onigBinding);\n this._onigBinding = onigBinding;\n this._ptr = scannerPtr;\n }\n dispose() {\n this._onigBinding.freeOnigScanner(this._ptr);\n }\n findNextMatchSync(string, startPosition, arg) {\n // let debugCall = defaultDebugCall\n let options = 0 /* FindOption.None */;\n if (typeof arg === 'number') {\n // if (arg & FindOption.DebugCall)\n // debugCall = true\n options = arg;\n }\n if (typeof string === 'string') {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, false, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, false, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding = this._onigBinding;\n // let resultPtr: Pointer\n // if (debugCall)\n // resultPtr = onigBinding.findNextOnigScannerMatchDbg(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options)\n // else\n const resultPtr = onigBinding.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n // no match\n return null;\n }\n const HEAPU32 = onigBinding.HEAPU32;\n let offset = resultPtr / 4; // byte offset -> uint32 offset\n const index = HEAPU32[offset++];\n const count = HEAPU32[offset++];\n const captureIndices = [];\n for (let i = 0; i < count; i++) {\n const beg = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n const end = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n captureIndices[i] = {\n start: beg,\n end,\n length: end - beg,\n };\n }\n return {\n index,\n captureIndices,\n };\n }\n}\nfunction isInstantiatorOptionsObject(dataOrOptions) {\n return (typeof dataOrOptions.instantiator === 'function');\n}\nfunction isInstantiatorModule(dataOrOptions) {\n return (typeof dataOrOptions.default === 'function');\n}\nfunction isDataOptionsObject(dataOrOptions) {\n return (typeof dataOrOptions.data !== 'undefined');\n}\nfunction isResponse(dataOrOptions) {\n return (typeof Response !== 'undefined' && dataOrOptions instanceof Response);\n}\nfunction isArrayBuffer(data) {\n return (typeof ArrayBuffer !== 'undefined' && (data instanceof ArrayBuffer || ArrayBuffer.isView(data)))\n // eslint-disable-next-line node/prefer-global/buffer\n || (typeof Buffer !== 'undefined' && Buffer.isBuffer?.(data))\n || (typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer)\n || (typeof Uint32Array !== 'undefined' && data instanceof Uint32Array);\n}\nlet initPromise;\nfunction loadWasm(options) {\n if (initPromise)\n return initPromise;\n async function _load() {\n onigBinding = await main(async (info) => {\n let instance = options;\n instance = await instance;\n if (typeof instance === 'function')\n instance = await instance(info);\n if (typeof instance === 'function')\n instance = await instance(info);\n if (isInstantiatorOptionsObject(instance)) {\n instance = await instance.instantiator(info);\n }\n else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n }\n else {\n if (isDataOptionsObject(instance))\n instance = instance.data;\n if (isResponse(instance)) {\n if (typeof WebAssembly.instantiateStreaming === 'function')\n instance = await _makeResponseStreamingLoader(instance)(info);\n else\n instance = await _makeResponseNonStreamingLoader(instance)(info);\n }\n else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n // import(\"shiki/onig.wasm\") returns `{ default: WebAssembly.Module }` on cloudflare workers\n // https://developers.cloudflare.com/workers/wrangler/bundling/\n else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n else if ('default' in instance && instance.default instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance.default)(info);\n }\n }\n if ('instance' in instance)\n instance = instance.instance;\n if ('exports' in instance)\n instance = instance.exports;\n return instance;\n });\n }\n initPromise = _load();\n return initPromise;\n}\nfunction _makeArrayBufferLoader(data) {\n return importObject => WebAssembly.instantiate(data, importObject);\n}\nfunction _makeResponseStreamingLoader(data) {\n return importObject => WebAssembly.instantiateStreaming(data, importObject);\n}\nfunction _makeResponseNonStreamingLoader(data) {\n return async (importObject) => {\n const arrayBuffer = await data.arrayBuffer();\n return WebAssembly.instantiate(arrayBuffer, importObject);\n };\n}\n// export function createOnigString(str: string) {\n// return new OnigString(str)\n// }\n// export function createOnigScanner(patterns: string[]) {\n// return new OnigScanner(patterns)\n// }\n// export function setDefaultDebugCall(_defaultDebugCall: boolean): void {\n// defaultDebugCall = _defaultDebugCall\n// }\n\nlet _defaultWasmLoader;\n/**\n * Set the default wasm loader for `loadWasm`.\n * @internal\n */\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\n/**\n * @internal\n */\nfunction getDefaultWasmLoader() {\n return _defaultWasmLoader;\n}\nasync function createOnigurumaEngine(options) {\n if (options)\n await loadWasm(options);\n return {\n createScanner(patterns) {\n return new OnigScanner(patterns);\n },\n createString(s) {\n return new OnigString(s);\n },\n };\n}\n/**\n * Deprecated. Use `createOnigurumaEngine` instead.\n */\nasync function createWasmOnigEngine(options) {\n return createOnigurumaEngine(options);\n}\n\nexport { createOnigurumaEngine, createWasmOnigEngine, getDefaultWasmLoader, loadWasm, setDefaultWasmLoader };\n",
|
|
9
|
+
"let emitDeprecation = false;\nfunction enableDeprecationWarnings(value = true) {\n emitDeprecation = value;\n}\nfunction warnDeprecated(message) {\n if (emitDeprecation)\n console.trace(`[SHIKI DEPRECATE]: ${message}`);\n}\n\nexport { enableDeprecationWarnings as e, warnDeprecated as w };\n",
|
|
10
|
+
"// src/utils.ts\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (typeof something === \"object\") {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach((source) => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf(\"/\") || ~path.lastIndexOf(\"\\\\\");\n if (idx === 0) {\n return path;\n } else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n } else {\n return path.substr(~idx + 1);\n }\n}\nvar CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nvar RegexSource = class {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n while (result[0] === \".\") {\n result = result.substring(1);\n }\n switch (command) {\n case \"downcase\":\n return result.toLowerCase();\n case \"upcase\":\n return result.toUpperCase();\n default:\n return result;\n }\n } else {\n return match;\n }\n });\n }\n};\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n return true;\n }\n return false;\n}\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \"\\\\$&\");\n}\nvar CachedFn = class {\n constructor(fn) {\n this.fn = fn;\n this.cache = /* @__PURE__ */ new Map();\n }\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n};\n\n// src/theme.ts\nvar Theme = class {\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n this._cachedMatchRoot = new CachedFn(\n (scopeName) => this._root.match(scopeName)\n );\n }\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find(\n (v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes)\n );\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(\n effectiveRule.fontStyle,\n effectiveRule.foreground,\n effectiveRule.background\n );\n }\n};\nvar ScopeStack = class _ScopeStack {\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new _ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new _ScopeStack(result, segments[i]);\n }\n return result;\n }\n push(scopeName) {\n return new _ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(\" \");\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : void 0;\n }\n};\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes.length === 0) {\n return true;\n }\n for (let index = 0; index < parentScopes.length; index++) {\n let scopePattern = parentScopes[index];\n let scopeMustMatch = false;\n if (scopePattern === \">\") {\n if (index === parentScopes.length - 1) {\n return false;\n }\n scopePattern = parentScopes[++index];\n scopeMustMatch = true;\n }\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n break;\n }\n if (scopeMustMatch) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n if (!scopePath) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n return true;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === \".\";\n}\nvar StyleAttributes = class {\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n};\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === \"string\") {\n let _scope = entry.scope;\n _scope = _scope.replace(/^[,]+/, \"\");\n _scope = _scope.replace(/[,]+$/, \"\");\n scopes = _scope.split(\",\");\n } else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n } else {\n scopes = [\"\"];\n }\n let fontStyle = -1 /* NotSet */;\n if (typeof entry.settings.fontStyle === \"string\") {\n fontStyle = 0 /* None */;\n let segments = entry.settings.fontStyle.split(\" \");\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case \"italic\":\n fontStyle = fontStyle | 1 /* Italic */;\n break;\n case \"bold\":\n fontStyle = fontStyle | 2 /* Bold */;\n break;\n case \"underline\":\n fontStyle = fontStyle | 4 /* Underline */;\n break;\n case \"strikethrough\":\n fontStyle = fontStyle | 8 /* Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === \"string\" && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === \"string\" && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(\" \");\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(\n scope,\n parentScopes,\n i,\n fontStyle,\n foreground,\n background\n );\n }\n }\n return result;\n}\nvar ParsedThemeRule = class {\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n};\nvar FontStyle = /* @__PURE__ */ ((FontStyle2) => {\n FontStyle2[FontStyle2[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle2[FontStyle2[\"None\"] = 0] = \"None\";\n FontStyle2[FontStyle2[\"Italic\"] = 1] = \"Italic\";\n FontStyle2[FontStyle2[\"Bold\"] = 2] = \"Bold\";\n FontStyle2[FontStyle2[\"Underline\"] = 4] = \"Underline\";\n FontStyle2[FontStyle2[\"Strikethrough\"] = 8] = \"Strikethrough\";\n return FontStyle2;\n})(FontStyle || {});\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n let defaultFontStyle = 0 /* None */;\n let defaultForeground = \"#000000\";\n let defaultBackground = \"#ffffff\";\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === \"\") {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nvar ColorMap = class {\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = /* @__PURE__ */ Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n } else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n};\nvar emptyParentScopes = Object.freeze([]);\nvar ThemeTrieElementRule = class _ThemeTrieElementRule {\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes || emptyParentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new _ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log(\"how did this happen?\");\n } else {\n this.scopeDepth = scopeDepth;\n }\n if (fontStyle !== -1 /* NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n};\nvar ThemeTrieElement = class _ThemeTrieElement {\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth !== b.scopeDepth) {\n return b.scopeDepth - a.scopeDepth;\n }\n let aParentIndex = 0;\n let bParentIndex = 0;\n while (true) {\n if (a.parentScopes[aParentIndex] === \">\") {\n aParentIndex++;\n }\n if (b.parentScopes[bParentIndex] === \">\") {\n bParentIndex++;\n }\n if (aParentIndex >= a.parentScopes.length || bParentIndex >= b.parentScopes.length) {\n break;\n }\n const parentScopeLengthDiff = b.parentScopes[bParentIndex].length - a.parentScopes[aParentIndex].length;\n if (parentScopeLengthDiff !== 0) {\n return parentScopeLengthDiff;\n }\n aParentIndex++;\n bParentIndex++;\n }\n return b.parentScopes.length - a.parentScopes.length;\n }\n match(scope) {\n if (scope !== \"\") {\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n }\n const rules = this._rulesWithParentScopes.concat(this._mainRule);\n rules.sort(_ThemeTrieElement._cmpBySpecificity);\n return rules;\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === \"\") {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n } else {\n child = new _ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n if (fontStyle === -1 /* NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n};\n\n// src/encodedTokenAttributes.ts\nvar EncodedTokenMetadata = class _EncodedTokenMetadata {\n static toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n static print(encodedTokenAttributes) {\n const languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n const tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n const fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n const foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n const background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n console.log({\n languageId,\n tokenType,\n fontStyle,\n foreground,\n background\n });\n }\n static getLanguageId(encodedTokenAttributes) {\n return (encodedTokenAttributes & 255 /* LANGUAGEID_MASK */) >>> 0 /* LANGUAGEID_OFFSET */;\n }\n static getTokenType(encodedTokenAttributes) {\n return (encodedTokenAttributes & 768 /* TOKEN_TYPE_MASK */) >>> 8 /* TOKEN_TYPE_OFFSET */;\n }\n static containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* BALANCED_BRACKETS_MASK */) !== 0;\n }\n static getFontStyle(encodedTokenAttributes) {\n return (encodedTokenAttributes & 30720 /* FONT_STYLE_MASK */) >>> 11 /* FONT_STYLE_OFFSET */;\n }\n static getForeground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 16744448 /* FOREGROUND_MASK */) >>> 15 /* FOREGROUND_OFFSET */;\n }\n static getBackground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 4278190080 /* BACKGROUND_MASK */) >>> 24 /* BACKGROUND_OFFSET */;\n }\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n static set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n let _tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = _EncodedTokenMetadata.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n let _foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n let _background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (_languageId << 0 /* LANGUAGEID_OFFSET */ | _tokenType << 8 /* TOKEN_TYPE_OFFSET */ | _containsBalancedBracketsBit << 10 /* BALANCED_BRACKETS_OFFSET */ | _fontStyle << 11 /* FONT_STYLE_OFFSET */ | _foreground << 15 /* FOREGROUND_OFFSET */ | _background << 24 /* BACKGROUND_OFFSET */) >>> 0;\n }\n};\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n// src/matcher.ts\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === \":\") {\n switch (token.charAt(0)) {\n case \"R\":\n priority = 1;\n break;\n case \"L\":\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== \",\") {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === \"-\") {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return (matcherInput) => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === \"(\") {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === \")\") {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return (matcherInput) => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return (matcherInput) => matchers.every((matcher2) => matcher2(matcherInput));\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === \"|\" || token === \",\") {\n do {\n token = tokenizer.next();\n } while (token === \"|\" || token === \",\");\n } else {\n break;\n }\n matcher = parseConjunction();\n }\n return (matcherInput) => matchers.some((matcher2) => matcher2(matcherInput));\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n// src/onigLib.ts\nvar FindOption = /* @__PURE__ */ ((FindOption2) => {\n FindOption2[FindOption2[\"None\"] = 0] = \"None\";\n FindOption2[FindOption2[\"NotBeginString\"] = 1] = \"NotBeginString\";\n FindOption2[FindOption2[\"NotEndString\"] = 2] = \"NotEndString\";\n FindOption2[FindOption2[\"NotBeginPosition\"] = 4] = \"NotBeginPosition\";\n FindOption2[FindOption2[\"DebugCall\"] = 8] = \"DebugCall\";\n return FindOption2;\n})(FindOption || {});\nfunction disposeOnigString(str) {\n if (typeof str.dispose === \"function\") {\n str.dispose();\n }\n}\n\n// src/grammar/grammarDependencies.ts\nvar TopLevelRuleReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n};\nvar TopLevelRepositoryRuleReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n};\nvar ExternalReferenceCollector = class {\n constructor() {\n this._references = [];\n this._seenReferenceKeys = /* @__PURE__ */ new Set();\n this.visitedRule = /* @__PURE__ */ new Set();\n }\n get references() {\n return this._references;\n }\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n};\nvar ScopeDependencyProcessor = class {\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests = /* @__PURE__ */ new Set();\n this.seenPartialScopeRequests = /* @__PURE__ */ new Set();\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n } else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n};\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n } else {\n collectExternalReferencesInTopLevelRepositoryRule(\n reference.ruleName,\n { baseGrammar, selfGrammar, repository: selfGrammar.repository },\n result\n );\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(\n context.selfGrammar.patterns,\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(\n Object.values(context.selfGrammar.injections),\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName ? context.selfGrammar : reference.scopeName === context.baseGrammar.scopeName ? context.baseGrammar : void 0;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n } else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n } else {\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n } else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nvar BaseReference = class {\n constructor() {\n this.kind = 0 /* Base */;\n }\n};\nvar SelfReference = class {\n constructor() {\n this.kind = 1 /* Self */;\n }\n};\nvar RelativeReference = class {\n constructor(ruleName) {\n this.ruleName = ruleName;\n this.kind = 2 /* RelativeReference */;\n }\n};\nvar TopLevelReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n this.kind = 3 /* TopLevelReference */;\n }\n};\nvar TopLevelRepositoryReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n this.kind = 4 /* TopLevelRepositoryReference */;\n }\n};\nfunction parseInclude(include) {\n if (include === \"$base\") {\n return new BaseReference();\n } else if (include === \"$self\") {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n } else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n } else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n// src/rule.ts\nvar HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nvar BACK_REFERENCING_END = /\\\\(\\d+)/g;\nvar ruleIdSymbol = Symbol(\"RuleId\");\nvar endRuleId = -1;\nvar whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nvar Rule = class {\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : \"unknown\";\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n};\nvar CaptureRule = class extends Rule {\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n }\n collectPatterns(grammar, out) {\n throw new Error(\"Not supported!\");\n }\n compile(grammar, endRegexSource) {\n throw new Error(\"Not supported!\");\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error(\"Not supported!\");\n }\n};\nvar MatchRule = class extends Rule {\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar IncludeOnlyRule = class extends Rule {\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginEndRule = class extends Rule {\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : \"\\uFFFF\", -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n } else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n } else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginWhileRule = class extends Rule {\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : \"\\uFFFF\");\n }\n return this._cachedCompiledWhilePatterns;\n }\n};\nvar RuleFactory = class _RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.match,\n _RuleFactory._compileCaptures(desc.captures, helper, repository)\n );\n }\n if (typeof desc.begin === \"undefined\") {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === \"undefined\" && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n _RuleFactory._compilePatterns(patterns, helper, repository)\n );\n }\n if (desc.while) {\n return new BeginWhileRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.while,\n _RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository),\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n }\n return new BeginEndRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.end,\n _RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository),\n desc.applyEndPatternLast,\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = _RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = _RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* Base */:\n case 1 /* Self */:\n ruleId = _RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* RelativeReference */:\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n } else {\n }\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* TopLevelRepositoryReference */ ? reference.ruleName : null;\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n } else {\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n } else {\n }\n break;\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: (patterns ? patterns.length : 0) !== r.length\n };\n }\n};\nvar RegExpSource = class _RegExpSource {\n constructor(regExpSource, ruleId) {\n if (regExpSource) {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === \"z\") {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push(\"$(?!\\\\n)(?<!\\\\n)\");\n lastPushedPos = pos + 2;\n } else if (nextCh === \"A\" || nextCh === \"G\") {\n hasAnchor = true;\n }\n pos++;\n }\n }\n }\n this.hasAnchor = hasAnchor;\n if (lastPushedPos === 0) {\n this.source = regExpSource;\n } else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join(\"\");\n }\n } else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n } else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n }\n clone() {\n return new _RegExpSource(this.source, this.ruleId);\n }\n setSource(newSource) {\n if (this.source === newSource) {\n return;\n }\n this.source = newSource;\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n }\n resolveBackReferences(lineText, captureIndices) {\n let capturedValues = captureIndices.map((capture) => {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || \"\");\n });\n }\n _buildAnchorCache() {\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === \"A\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"\\uFFFF\";\n A1_G0_result[pos + 1] = \"A\";\n A1_G1_result[pos + 1] = \"A\";\n } else if (nextCh === \"G\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"G\";\n A1_G0_result[pos + 1] = \"\\uFFFF\";\n A1_G1_result[pos + 1] = \"G\";\n } else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(\"\"),\n A0_G1: A0_G1_result.join(\"\"),\n A1_G0: A1_G0_result.join(\"\"),\n A1_G1: A1_G1_result.join(\"\")\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache) {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n } else {\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n } else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n};\nvar RegExpSourceList = class {\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map((e) => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n } else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n } else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n } else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map((e) => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n};\nvar CompiledRule = class {\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices\n };\n }\n};\n\n// src/grammar/basicScopesAttributeProvider.ts\nvar BasicScopeAttributes = class {\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n};\nvar _BasicScopeAttributesProvider = class _BasicScopeAttributesProvider {\n constructor(initialLanguageId, embeddedLanguages) {\n this._getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return _BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(_BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* Comment */;\n case \"string\":\n return 2 /* String */;\n case \"regex\":\n return 3 /* RegEx */;\n case \"meta.embedded\":\n return 0 /* Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n};\n_BasicScopeAttributesProvider._NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n_BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\nvar BasicScopeAttributesProvider = _BasicScopeAttributesProvider;\nvar ScopeMatcher = class {\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n } else {\n this.values = new Map(values);\n const escapedScopes = values.map(\n ([scopeName, value]) => escapeRegExpCharacters(scopeName)\n );\n escapedScopes.sort();\n escapedScopes.reverse();\n this.scopesRegExp = new RegExp(\n `^((${escapedScopes.join(\")|(\")}))($|\\\\.)`,\n \"\"\n );\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return void 0;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n return void 0;\n }\n return this.values.get(m[1]);\n }\n};\n\n// src/debug.ts\nvar DebugFlags = {\n InDebugMode: typeof process !== \"undefined\" && !!process.env[\"VSCODE_TEXTMATE_DEBUG\"]\n};\nvar UseOnigurumaFindOptions = false;\n\n// src/grammar/tokenizeString.ts\nvar TokenizeStringResult = class {\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n};\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n lineTokens\n );\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext();\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n if (false) {\n console.log(\"\");\n console.log(\n `@@scanNext ${linePos}: |${lineText.content.substr(linePos).replace(/\\n$/, \"\\\\n\")}|`\n );\n }\n const r = matchRuleOrInjections(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n anchorPosition\n );\n if (!r) {\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0 ? captureIndices[0].end > linePos : false;\n if (matchedRuleId === endRuleId) {\n const poppedRule = stack.getRule(grammar);\n if (false) {\n console.log(\n \" popping \" + poppedRule.debugName + \" - \" + poppedRule.debugEndRegExp\n );\n }\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n poppedRule.endCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n if (false) {\n console.error(\n \"[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing\"\n );\n }\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(\n scopeName,\n grammar\n );\n stack = stack.push(\n matchedRuleId,\n linePos,\n anchorPosition,\n captureIndices[0].end === lineLength,\n null,\n nameScopesList,\n nameScopesList\n );\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\n \" pushing \" + pushedRule.debugName + \" - \" + pushedRule.debugBeginRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getEndWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\" pushing \" + pushedRule.debugName);\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getWhileWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const matchingRule = _rule;\n if (false) {\n console.log(\n \" matched \" + matchingRule.debugName + \" - \" + matchingRule.debugMatchRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n matchingRule.captures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n stack = stack.pop();\n if (!hasAdvanced) {\n if (false) {\n console.error(\n \"[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping\"\n );\n }\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = stack.beginRuleCapturedEOL ? 0 : -1;\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (false) {\n console.log(\" scanning for while rule\");\n console.log(ruleScanner.toString());\n }\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n } else {\n if (false) {\n console.log(\" popping \" + whileRule.rule.debugName + \" - \" + whileRule.rule.debugWhileRegExp);\n }\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack, linePos, anchorPosition, isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n return matchResult;\n }\n if (!matchResult) {\n return injectionResult;\n }\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || injectionResult.priorityMatch && injectionResultScore === matchResultScore) {\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n if (false) {\n console.log(` matched injection: ${injection.debugSelector}`);\n console.log(ruleScanner.toString());\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compileWhile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction getFindOptions(allowA, allowG) {\n let options = 0 /* None */;\n if (!allowA) {\n options |= 1 /* NotBeginString */;\n }\n if (!allowG) {\n options |= 4 /* NotBeginPosition */;\n }\n return options;\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n continue;\n }\n if (captureIndex.start > maxEnd) {\n break;\n }\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n } else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(\n grammar,\n onigSubStr,\n isFirstLine && captureIndex.start === 0,\n captureIndex.start,\n stackClone,\n lineTokens,\n false,\n /* no time limit */\n 0\n );\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nvar LocalStackElement = class {\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n};\n\n// src/grammar/grammar.ts\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(\n scopeName,\n grammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n grammarRepository,\n onigLib\n );\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId,\n grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every((identifier) => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === \".\";\n}\nvar Grammar = class {\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(\n initialLanguage,\n embeddedLanguages\n );\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector]\n });\n }\n }\n }\n }\n get themeProvider() {\n return this._grammarRepository;\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName2) => {\n if (scopeName2 === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName2);\n },\n injections: (scopeName2) => {\n return this._grammarRepository.injections(scopeName2);\n }\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(\n result,\n expression,\n rawInjections[expression],\n this,\n grammar\n );\n }\n }\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(\n result,\n selector,\n injectionGrammar,\n this,\n injectionGrammar\n );\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority);\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n } else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n this._includedGrammars[scopeName] = initGrammar(\n rawIncludedGrammar,\n repository && repository.$base\n );\n return this._includedGrammars[scopeName];\n }\n }\n return void 0;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(\n this._grammar.repository.$self,\n this,\n this._grammar.repository\n );\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenMetadata.set(\n 0,\n rawDefaultMetadata.languageId,\n rawDefaultMetadata.tokenType,\n null,\n defaultStyle.fontStyle,\n defaultStyle.foregroundId,\n defaultStyle.backgroundId\n );\n const rootScopeName = this.getRule(this._rootId).getName(\n null,\n null\n );\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(\n rootScopeName,\n defaultMetadata,\n this\n );\n } else {\n scopeList = AttributedScopeStack.createRoot(\n \"unknown\",\n defaultMetadata\n );\n }\n prevState = new StateStackImpl(\n null,\n this._rootId,\n -1,\n -1,\n false,\n null,\n scopeList,\n scopeList\n );\n } else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(\n emitBinaryTokens,\n lineText,\n this._tokenTypeMatchers,\n this.balancedBracketSelectors\n );\n const r = _tokenizeString(\n this,\n onigLineText,\n isFirstLine,\n 0,\n prevState,\n lineTokens,\n true,\n timeLimit\n );\n disposeOnigString(onigLineText);\n return {\n lineLength,\n lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly\n };\n }\n};\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nvar AttributedScopeStack = class _AttributedScopeStack {\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new _AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new _AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = _AttributedScopeStack.mergeAttributes(\n tokenAttributes,\n rawRootMetadata,\n rootStyle\n );\n return new _AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() {\n return this.scopePath.scopeName;\n }\n toString() {\n return this.getScopeNames().join(\" \");\n }\n equals(other) {\n return _AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenMetadata.set(\n existingTokenAttributes,\n basicScopeAttributes.languageId,\n basicScopeAttributes.tokenType,\n null,\n fontStyle,\n foreground,\n background\n );\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(\" \") === -1) {\n return _AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = _AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = _AttributedScopeStack.mergeAttributes(\n target.tokenAttributes,\n rawMetadata,\n scopeThemeMatchResult\n );\n return new _AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null)\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : void 0;\n }\n};\nvar _StateStackImpl = class _StateStackImpl {\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this._stackElementBrand = void 0;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n equals(other) {\n if (other === null) {\n return false;\n }\n return _StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.depth !== b.depth || a.ruleId !== b.ruleId || a.endRule !== b.endRule) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n _StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new _StateStackImpl(\n this,\n ruleId,\n enterPos,\n anchorPos,\n beginRuleCapturedEOL,\n endRule,\n nameScopesList,\n contentNameScopesList\n );\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n this.endRule,\n this.nameScopesList,\n contentNameScopeStack\n );\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new _StateStackImpl(\n this.parent,\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n endRule,\n this.nameScopesList,\n this.contentNameScopesList\n );\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? []\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new _StateStackImpl(\n self,\n ruleIdFromNumber(frame.ruleId),\n frame.enterPos ?? -1,\n frame.anchorPos ?? -1,\n frame.beginRuleCapturedEOL,\n frame.endRule,\n namesScopeList,\n AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList)\n );\n }\n};\n// TODO remove me\n_StateStackImpl.NULL = new _StateStackImpl(\n null,\n 0,\n 0,\n 0,\n false,\n null,\n null,\n null\n);\nvar StateStackImpl = _StateStackImpl;\nvar BalancedBracketSelectors = class {\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.allowAny = false;\n this.balancedBracketScopes = balancedBracketScopes.flatMap(\n (selector) => {\n if (selector === \"*\") {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n }\n );\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap(\n (selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher)\n );\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n};\nvar LineTokens = class {\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n if (false) {\n this._lineText = lineText;\n } else {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever) {\n const scopes2 = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes2)) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n toOptionalTokenType(tokenType.type),\n null,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes2);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n 8 /* NotSet */,\n containsBalancedBrackets,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n};\n\n// src/registry.ts\nvar SyncRegistry = class {\n constructor(theme, _onigLib) {\n this._onigLib = _onigLib;\n this._grammars = /* @__PURE__ */ new Map();\n this._rawGrammars = /* @__PURE__ */ new Map();\n this._injectionGrammars = /* @__PURE__ */ new Map();\n this._theme = theme;\n }\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(\n scopeName,\n rawGrammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n this,\n this._onigLib\n ));\n }\n return this._grammars.get(scopeName);\n }\n};\n\n// src/index.ts\nvar Registry = class {\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(\n Theme.createFromRawTheme(options.theme, options.colorMap),\n options.onigLib\n );\n this._ensureGrammarCache = /* @__PURE__ */ new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(\n initialScopeName,\n initialLanguage,\n configuration.embeddedLanguages,\n configuration.tokenTypes,\n new BalancedBracketSelectors(\n configuration.balancedBracketSelectors || [],\n configuration.unbalancedBracketSelectors || []\n )\n );\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(\n initialScopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._doLoadSingleGrammar(scopeName);\n this._ensureGrammarCache.set(scopeName, true);\n }\n }\n _doLoadSingleGrammar(scopeName) {\n const grammar = this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : void 0;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages);\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(\n scopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n};\nvar INITIAL = StateStackImpl.NULL;\nexport {\n EncodedTokenMetadata,\n FindOption,\n FontStyle,\n INITIAL,\n Registry,\n Theme,\n disposeOnigString\n};\n",
|
|
11
|
+
"// node_modules/regex-utilities/src/index.js\nvar Context = Object.freeze({\n DEFAULT: \"DEFAULT\",\n CHAR_CLASS: \"CHAR_CLASS\"\n});\nfunction replaceUnescaped(expression, needle, replacement, context) {\n const re = new RegExp(String.raw`${needle}|(?<$skip>\\[\\^?|\\\\?.)`, \"gsu\");\n const negated = [false];\n let numCharClassesOpen = 0;\n let result = \"\";\n for (const match of expression.matchAll(re)) {\n const { 0: m, groups: { $skip } } = match;\n if (!$skip && (!context || context === Context.DEFAULT === !numCharClassesOpen)) {\n if (replacement instanceof Function) {\n result += replacement(match, {\n context: numCharClassesOpen ? Context.CHAR_CLASS : Context.DEFAULT,\n negated: negated[negated.length - 1]\n });\n } else {\n result += replacement;\n }\n continue;\n }\n if (m[0] === \"[\") {\n numCharClassesOpen++;\n negated.push(m[1] === \"^\");\n } else if (m === \"]\" && numCharClassesOpen) {\n numCharClassesOpen--;\n negated.pop();\n }\n result += m;\n }\n return result;\n}\nfunction forEachUnescaped(expression, needle, callback, context) {\n replaceUnescaped(expression, needle, callback, context);\n}\nfunction execUnescaped(expression, needle, pos = 0, context) {\n if (!new RegExp(needle, \"su\").test(expression)) {\n return null;\n }\n const re = new RegExp(`${needle}|(?<$skip>\\\\\\\\?.)`, \"gsu\");\n re.lastIndex = pos;\n let numCharClassesOpen = 0;\n let match;\n while (match = re.exec(expression)) {\n const { 0: m, groups: { $skip } } = match;\n if (!$skip && (!context || context === Context.DEFAULT === !numCharClassesOpen)) {\n return match;\n }\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (m === \"]\" && numCharClassesOpen) {\n numCharClassesOpen--;\n }\n if (re.lastIndex == match.index) {\n re.lastIndex++;\n }\n }\n return null;\n}\nfunction hasUnescaped(expression, needle, context) {\n return !!execUnescaped(expression, needle, 0, context);\n}\nfunction getGroupContents(expression, contentsStartPos) {\n const token5 = /\\\\?./gsu;\n token5.lastIndex = contentsStartPos;\n let contentsEndPos = expression.length;\n let numCharClassesOpen = 0;\n let numGroupsOpen = 1;\n let match;\n while (match = token5.exec(expression)) {\n const [m] = match;\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (m === \"(\") {\n numGroupsOpen++;\n } else if (m === \")\") {\n numGroupsOpen--;\n if (!numGroupsOpen) {\n contentsEndPos = match.index;\n break;\n }\n }\n } else if (m === \"]\") {\n numCharClassesOpen--;\n }\n }\n return expression.slice(contentsStartPos, contentsEndPos);\n}\n\n// src/pattern.js\nvar Pattern = class {\n #value;\n /** @param {string} value */\n constructor(value) {\n this.#value = value;\n }\n /** @returns {string} */\n toString() {\n return String(this.#value);\n }\n};\nfunction pattern(first, ...substitutions) {\n if (Array.isArray(first?.raw)) {\n return new Pattern(\n // Intersperse raw template strings and substitutions\n first.raw.flatMap((raw, i) => i < first.raw.length - 1 ? [raw, substitutions[i]] : raw).join(\"\")\n );\n } else if (!substitutions.length) {\n return new Pattern(first === void 0 ? \"\" : first);\n }\n throw new Error(`Unexpected arguments: ${JSON.stringify([first, ...substitutions])}`);\n}\n\n// src/utils.js\nvar RegexContext = {\n DEFAULT: \"DEFAULT\",\n CHAR_CLASS: \"CHAR_CLASS\",\n ENCLOSED_P: \"ENCLOSED_P\",\n ENCLOSED_U: \"ENCLOSED_U\",\n GROUP_NAME: \"GROUP_NAME\",\n INTERVAL_QUANTIFIER: \"INTERVAL_QUANTIFIER\",\n INVALID_INCOMPLETE_TOKEN: \"INVALID_INCOMPLETE_TOKEN\"\n};\nvar CharClassContext = {\n DEFAULT: \"DEFAULT\",\n ENCLOSED_P: \"ENCLOSED_P\",\n ENCLOSED_Q: \"ENCLOSED_Q\",\n ENCLOSED_U: \"ENCLOSED_U\",\n INVALID_INCOMPLETE_TOKEN: \"INVALID_INCOMPLETE_TOKEN\",\n RANGE: \"RANGE\"\n};\nvar enclosedTokenRegexContexts = /* @__PURE__ */ new Set([\n RegexContext.ENCLOSED_P,\n RegexContext.ENCLOSED_U\n]);\nvar enclosedTokenCharClassContexts = /* @__PURE__ */ new Set([\n CharClassContext.ENCLOSED_P,\n CharClassContext.ENCLOSED_Q,\n CharClassContext.ENCLOSED_U\n]);\nvar patternModsSupported = (() => {\n try {\n new RegExp(\"(?i:)\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nvar flagVSupported = (() => {\n try {\n new RegExp(\"\", \"v\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nvar doublePunctuatorChars = \"&!#$%*+,.:;<=>?@^`~\";\nvar emulationGroupMarker = \"$E$\";\nvar namedCapturingDelim = String.raw`\\(\\?<(?![=!])(?<captureName>[^>]+)>`;\nvar capturingDelim = String.raw`\\((?!\\?)(?!(?<=\\(\\?\\()DEFINE\\))|${namedCapturingDelim}`;\nvar noncapturingDelim = String.raw`\\(\\?(?:[:=!>A-Za-z\\-]|<[=!]|\\(DEFINE\\))`;\nfunction escapeV(str, context) {\n if (context === Context.CHAR_CLASS) {\n return str.replace(new RegExp(String.raw`[()\\[\\]{}|\\\\/\\-${doublePunctuatorChars}]`, \"g\"), \"\\\\$&\");\n }\n return str.replace(/[()\\[\\]{}|\\\\^$*+?.]/g, \"\\\\$&\");\n}\nfunction sandboxLoneDoublePunctuatorChar(str) {\n return str.replace(new RegExp(`^([${doublePunctuatorChars}])(?!\\\\1)`), (m, _, pos) => {\n return `\\\\${m}${pos + 1 === str.length ? \"\" : m}`;\n });\n}\nfunction sandboxLoneCharClassCaret(str) {\n return str.replace(/^\\^/, \"\\\\^^\");\n}\nfunction sandboxUnsafeNulls(str, context) {\n return replaceUnescaped(str, String.raw`\\\\0(?!\\d)`, \"\\\\x00\", context);\n}\nfunction getUnbalancedChar(expression, leftChar, rightChar) {\n let numOpen = 0;\n for (const [m] of expression.matchAll(new RegExp(`[${escapeV(leftChar + rightChar, Context.CHAR_CLASS)}]`, \"g\"))) {\n numOpen += m === leftChar ? 1 : -1;\n if (numOpen < 0) {\n return rightChar;\n }\n }\n if (numOpen > 0) {\n return leftChar;\n }\n return \"\";\n}\nfunction getBreakoutChar(expression, regexContext, charClassContext) {\n const escapesRemoved = expression.replace(/\\\\./gsu, \"\");\n if (escapesRemoved.endsWith(\"\\\\\")) {\n return \"\\\\\";\n }\n if (regexContext === RegexContext.DEFAULT) {\n return getUnbalancedChar(escapesRemoved, \"(\", \")\");\n } else if (regexContext === RegexContext.CHAR_CLASS && !enclosedTokenCharClassContexts.has(charClassContext)) {\n return getUnbalancedChar(escapesRemoved, \"[\", \"]\");\n } else if (regexContext === RegexContext.INTERVAL_QUANTIFIER || enclosedTokenRegexContexts.has(regexContext) || enclosedTokenCharClassContexts.has(charClassContext)) {\n if (escapesRemoved.includes(\"}\")) {\n return \"}\";\n }\n } else if (regexContext === RegexContext.GROUP_NAME) {\n if (escapesRemoved.includes(\">\")) {\n return \">\";\n }\n }\n return \"\";\n}\nvar contextToken = new RegExp(String.raw`\n(?<groupN>\\(\\?<(?![=!])|\\\\[gk]<)\n| (?<enclosedPU>\\\\[pPu]\\{)\n| (?<enclosedQ>\\\\q\\{)\n| (?<intervalQ>\\{)\n| (?<incompleteT>\\\\(?: $\n | c(?![A-Za-z])\n | u(?![A-Fa-f\\d]{4})[A-Fa-f\\d]{0,3}\n | x(?![A-Fa-f\\d]{2})[A-Fa-f\\d]?\n )\n)\n| --\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction getEndContextForIncompleteExpression(incompleteExpression, {\n regexContext = RegexContext.DEFAULT,\n charClassContext = CharClassContext.DEFAULT,\n charClassDepth = 0,\n lastPos = 0\n} = {}) {\n contextToken.lastIndex = lastPos;\n let match;\n while (match = contextToken.exec(incompleteExpression)) {\n const { 0: m, groups: { groupN, enclosedPU, enclosedQ, intervalQ, incompleteT } } = match;\n if (m === \"[\") {\n charClassDepth++;\n regexContext = RegexContext.CHAR_CLASS;\n charClassContext = CharClassContext.DEFAULT;\n } else if (m === \"]\" && regexContext === RegexContext.CHAR_CLASS) {\n if (charClassDepth) {\n charClassDepth--;\n }\n if (!charClassDepth) {\n regexContext = RegexContext.DEFAULT;\n }\n charClassContext = CharClassContext.DEFAULT;\n } else if (regexContext === RegexContext.CHAR_CLASS) {\n if (incompleteT) {\n charClassContext = CharClassContext.INVALID_INCOMPLETE_TOKEN;\n } else if (m === \"-\") {\n charClassContext = CharClassContext.RANGE;\n } else if (enclosedPU) {\n charClassContext = m[1] === \"u\" ? CharClassContext.ENCLOSED_U : CharClassContext.ENCLOSED_P;\n } else if (enclosedQ) {\n charClassContext = CharClassContext.ENCLOSED_Q;\n } else if (m === \"}\" && enclosedTokenCharClassContexts.has(charClassContext) || // Don't continue in these contexts since we've advanced another token\n charClassContext === CharClassContext.INVALID_INCOMPLETE_TOKEN || charClassContext === CharClassContext.RANGE) {\n charClassContext = CharClassContext.DEFAULT;\n }\n } else {\n if (incompleteT) {\n regexContext = RegexContext.INVALID_INCOMPLETE_TOKEN;\n } else if (groupN) {\n regexContext = RegexContext.GROUP_NAME;\n } else if (enclosedPU) {\n regexContext = m[1] === \"u\" ? RegexContext.ENCLOSED_U : RegexContext.ENCLOSED_P;\n } else if (intervalQ) {\n regexContext = RegexContext.INTERVAL_QUANTIFIER;\n } else if (m === \">\" && regexContext === RegexContext.GROUP_NAME || m === \"}\" && (regexContext === RegexContext.INTERVAL_QUANTIFIER || enclosedTokenRegexContexts.has(regexContext)) || // Don't continue in this context since we've advanced another token\n regexContext === RegexContext.INVALID_INCOMPLETE_TOKEN) {\n regexContext = RegexContext.DEFAULT;\n }\n }\n }\n return {\n regexContext,\n charClassContext,\n charClassDepth,\n lastPos: incompleteExpression.length\n };\n}\nfunction countCaptures(expression) {\n let num = 0;\n forEachUnescaped(expression, capturingDelim, () => num++, Context.DEFAULT);\n return num;\n}\nfunction adjustNumberedBackrefs(expression, precedingCaptures) {\n return replaceUnescaped(\n expression,\n String.raw`\\\\(?<num>[1-9]\\d*)`,\n ({ groups: { num } }) => `\\\\${+num + precedingCaptures}`,\n Context.DEFAULT\n );\n}\nfunction spliceStr(str, pos, oldValue, newValue) {\n return str.slice(0, pos) + newValue + str.slice(pos + oldValue.length);\n}\nvar stringPropertyNames = [\n \"Basic_Emoji\",\n \"Emoji_Keycap_Sequence\",\n \"RGI_Emoji_Modifier_Sequence\",\n \"RGI_Emoji_Flag_Sequence\",\n \"RGI_Emoji_Tag_Sequence\",\n \"RGI_Emoji_ZWJ_Sequence\",\n \"RGI_Emoji\"\n].join(\"|\");\nvar charClassUnionToken = new RegExp(String.raw`\n\\\\(?: c[A-Za-z]\n | p\\{(?<pStrProp>${stringPropertyNames})\\}\n | [pP]\\{[^\\}]+\\}\n | (?<qStrProp>q)\n | u(?:[A-Fa-f\\d]{4}|\\{[A-Fa-f\\d]+\\})\n | x[A-Fa-f\\d]{2}\n | .\n)\n| --\n| &&\n| .\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction containsCharClassUnion(charClassPattern) {\n let hasFirst = false;\n let lastM;\n for (const { 0: m, groups } of charClassPattern.matchAll(charClassUnionToken)) {\n if (groups.pStrProp || groups.qStrProp) {\n return true;\n }\n if (m === \"[\" && hasFirst) {\n return true;\n }\n if ([\"-\", \"--\", \"&&\"].includes(m)) {\n hasFirst = false;\n } else if (m !== \"[\" && m !== \"]\") {\n if (hasFirst || lastM === \"]\") {\n return true;\n }\n hasFirst = true;\n }\n lastM = m;\n }\n return false;\n}\nfunction preprocess(template, substitutions, preprocessor, options) {\n let newTemplate = { raw: [] };\n let newSubstitutions = [];\n let runningContext;\n template.raw.forEach((raw, i) => {\n const result = preprocessor(raw, { ...runningContext, lastPos: 0 }, options);\n newTemplate.raw.push(result.transformed);\n runningContext = result.runningContext;\n if (i < template.raw.length - 1) {\n const substitution = substitutions[i];\n if (substitution instanceof Pattern) {\n const result2 = preprocessor(substitution, { ...runningContext, lastPos: 0 }, options);\n newSubstitutions.push(pattern(result2.transformed));\n runningContext = result2.runningContext;\n } else {\n newSubstitutions.push(substitution);\n }\n }\n });\n return {\n template: newTemplate,\n substitutions: newSubstitutions\n };\n}\n\n// src/flag-n.js\nvar token = new RegExp(String.raw`\n${noncapturingDelim}\n| \\(\\?<\n| (?<backrefNum>\\\\[1-9]\\d*)\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction flagNPreprocessor(value, runningContext) {\n value = String(value);\n let expression = \"\";\n let transformed = \"\";\n for (const { 0: m, groups: { backrefNum } } of value.matchAll(token)) {\n expression += m;\n runningContext = getEndContextForIncompleteExpression(expression, runningContext);\n const { regexContext } = runningContext;\n if (regexContext === RegexContext.DEFAULT) {\n if (m === \"(\") {\n transformed += \"(?:\";\n } else if (backrefNum) {\n throw new Error(`Invalid decimal escape \"${m}\" with implicit flag n; replace with named backreference`);\n } else {\n transformed += m;\n }\n } else {\n transformed += m;\n }\n }\n return {\n transformed,\n runningContext\n };\n}\n\n// src/flag-x.js\nvar ws = /^\\s$/;\nvar escapedWsOrHash = /^\\\\[\\s#]$/;\nvar charClassWs = /^[ \\t]$/;\nvar escapedCharClassWs = /^\\\\[ \\t]$/;\nvar token2 = new RegExp(String.raw`\n\\\\(?: [gk]<\n | [pPu]\\{\n | c[A-Za-z]\n | u[A-Fa-f\\d]{4}\n | x[A-Fa-f\\d]{2}\n | 0\\d+\n)\n| \\[\\^\n| ${noncapturingDelim}\n| \\(\\?<\n| (?<dp>[${doublePunctuatorChars}])\\k<dp>\n| --\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction flagXPreprocessor(value, runningContext, options) {\n value = String(value);\n let ignoringWs = false;\n let ignoringCharClassWs = false;\n let ignoringComment = false;\n let expression = \"\";\n let transformed = \"\";\n let lastSignificantToken = \"\";\n let lastSignificantCharClassContext = \"\";\n let separatorNeeded = false;\n const update = (str, { prefix = true, postfix = false } = {}) => {\n str = (separatorNeeded && prefix ? \"(?:)\" : \"\") + str + (postfix ? \"(?:)\" : \"\");\n separatorNeeded = false;\n return str;\n };\n for (const { 0: m, index } of value.matchAll(token2)) {\n if (ignoringComment) {\n if (m === \"\\n\") {\n ignoringComment = false;\n separatorNeeded = true;\n }\n continue;\n }\n if (ignoringWs) {\n if (ws.test(m)) {\n continue;\n }\n ignoringWs = false;\n separatorNeeded = true;\n } else if (ignoringCharClassWs) {\n if (charClassWs.test(m)) {\n continue;\n }\n ignoringCharClassWs = false;\n }\n expression += m;\n runningContext = getEndContextForIncompleteExpression(expression, runningContext);\n const { regexContext, charClassContext } = runningContext;\n if (\n // `--` is matched in one step, so boundary chars aren't `-` unless separated by whitespace\n m === \"-\" && regexContext === RegexContext.CHAR_CLASS && lastSignificantCharClassContext === CharClassContext.RANGE && (options.flags.includes(\"v\") || options.unicodeSetsPlugin)\n ) {\n throw new Error(\"Invalid unescaped hyphen as the end value for a range\");\n }\n if (\n // `??` is matched in one step by the double punctuator token\n regexContext === RegexContext.DEFAULT && /^(?:[?*+]|\\?\\?)$/.test(m) || regexContext === RegexContext.INTERVAL_QUANTIFIER && m === \"{\"\n ) {\n transformed += update(m, { prefix: false, postfix: lastSignificantToken === \"(\" && m === \"?\" });\n } else if (regexContext === RegexContext.DEFAULT) {\n if (ws.test(m)) {\n ignoringWs = true;\n } else if (m.startsWith(\"#\")) {\n ignoringComment = true;\n } else if (escapedWsOrHash.test(m)) {\n transformed += update(m[1], { prefix: false });\n } else {\n transformed += update(m);\n }\n } else if (regexContext === RegexContext.CHAR_CLASS && m !== \"[\" && m !== \"[^\") {\n if (charClassWs.test(m) && (charClassContext === CharClassContext.DEFAULT || charClassContext === CharClassContext.ENCLOSED_Q || charClassContext === CharClassContext.RANGE)) {\n ignoringCharClassWs = true;\n } else if (charClassContext === CharClassContext.INVALID_INCOMPLETE_TOKEN) {\n throw new Error(`Invalid incomplete token in character class: \"${m}\"`);\n } else if (escapedCharClassWs.test(m) && (charClassContext === CharClassContext.DEFAULT || charClassContext === CharClassContext.ENCLOSED_Q)) {\n transformed += update(m[1], { prefix: false });\n } else if (charClassContext === CharClassContext.DEFAULT) {\n const nextChar = value[index + 1] ?? \"\";\n let updated = sandboxUnsafeNulls(m);\n if (charClassWs.test(nextChar) || m === \"^\") {\n updated = sandboxLoneDoublePunctuatorChar(updated);\n }\n transformed += update(updated);\n } else {\n transformed += update(m);\n }\n } else {\n transformed += update(m);\n }\n if (!(ignoringWs || ignoringCharClassWs || ignoringComment)) {\n lastSignificantToken = m;\n lastSignificantCharClassContext = charClassContext;\n }\n }\n return {\n transformed,\n runningContext\n };\n}\nfunction cleanPlugin(expression) {\n const sep = String.raw`\\(\\?:\\)`;\n expression = replaceUnescaped(expression, `(?:${sep}){2,}`, \"(?:)\", Context.DEFAULT);\n const marker = emulationGroupMarker.replace(/\\$/g, \"\\\\$\");\n expression = replaceUnescaped(\n expression,\n String.raw`(?:${sep}(?=[)|.[$\\\\]|\\((?!DEFINE)|$)|(?<=[()|.\\]^>]|\\\\[bBdDfnrsStvwW]|\\(\\?(?:[:=!]|<[=!])|^)${sep}(?![?*+{]))(?!${marker})`,\n \"\",\n Context.DEFAULT\n );\n return expression;\n}\n\n// src/atomic.js\nvar atomicPluginToken = new RegExp(String.raw`(?<noncapturingStart>${noncapturingDelim})|(?<capturingStart>\\((?:\\?<[^>]+>)?)|\\\\?.`, \"gsu\");\nfunction atomicPlugin(expression, data) {\n if (!/\\(\\?>/.test(expression)) {\n return expression;\n }\n const aGDelim = \"(?>\";\n const emulatedAGDelim = `(?:(?=(${data.useEmulationGroups ? emulationGroupMarker : \"\"}`;\n const captureNumMap = [0];\n let numCapturesBeforeAG = 0;\n let numAGs = 0;\n let aGPos = NaN;\n let hasProcessedAG;\n do {\n hasProcessedAG = false;\n let numCharClassesOpen = 0;\n let numGroupsOpenInAG = 0;\n let inAG = false;\n let match;\n atomicPluginToken.lastIndex = Number.isNaN(aGPos) ? 0 : aGPos + emulatedAGDelim.length;\n while (match = atomicPluginToken.exec(expression)) {\n const { 0: m, index, groups: { capturingStart, noncapturingStart } } = match;\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (m === aGDelim && !inAG) {\n aGPos = index;\n inAG = true;\n } else if (inAG && noncapturingStart) {\n numGroupsOpenInAG++;\n } else if (capturingStart) {\n if (inAG) {\n numGroupsOpenInAG++;\n } else {\n numCapturesBeforeAG++;\n captureNumMap.push(numCapturesBeforeAG + numAGs);\n }\n } else if (m === \")\" && inAG) {\n if (!numGroupsOpenInAG) {\n numAGs++;\n expression = `${expression.slice(0, aGPos)}${emulatedAGDelim}${expression.slice(aGPos + aGDelim.length, index)}))<$$${numAGs + numCapturesBeforeAG}>)${expression.slice(index + 1)}`;\n hasProcessedAG = true;\n break;\n }\n numGroupsOpenInAG--;\n }\n } else if (m === \"]\") {\n numCharClassesOpen--;\n }\n }\n } while (hasProcessedAG);\n expression = replaceUnescaped(\n expression,\n String.raw`\\\\(?<backrefNum>[1-9]\\d*)|<\\$\\$(?<wrappedBackrefNum>\\d+)>`,\n ({ 0: m, groups: { backrefNum, wrappedBackrefNum } }) => {\n if (backrefNum) {\n const bNum = +backrefNum;\n if (bNum > captureNumMap.length - 1) {\n throw new Error(`Backref \"${m}\" greater than number of captures`);\n }\n return `\\\\${captureNumMap[bNum]}`;\n }\n return `\\\\${wrappedBackrefNum}`;\n },\n Context.DEFAULT\n );\n return expression;\n}\nvar baseQuantifier = String.raw`(?:[?*+]|\\{\\d+(?:,\\d*)?\\})`;\nvar possessivePluginToken = new RegExp(String.raw`\n\\\\(?: \\d+\n | c[A-Za-z]\n | [gk]<[^>]+>\n | [pPu]\\{[^\\}]+\\}\n | u[A-Fa-f\\d]{4}\n | x[A-Fa-f\\d]{2}\n )\n| \\((?: \\? (?: [:=!>]\n | <(?:[=!]|[^>]+>)\n | [A-Za-z\\-]+:\n | \\(DEFINE\\)\n ))?\n| (?<qBase>${baseQuantifier})(?<qMod>[?+]?)(?<invalidQ>[?*+\\{]?)\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction possessivePlugin(expression) {\n if (!new RegExp(`${baseQuantifier}\\\\+`).test(expression)) {\n return expression;\n }\n const openGroupIndices = [];\n let lastGroupIndex = null;\n let lastCharClassIndex = null;\n let lastToken = \"\";\n let numCharClassesOpen = 0;\n let match;\n possessivePluginToken.lastIndex = 0;\n while (match = possessivePluginToken.exec(expression)) {\n const { 0: m, index, groups: { qBase, qMod, invalidQ } } = match;\n if (m === \"[\") {\n if (!numCharClassesOpen) {\n lastCharClassIndex = index;\n }\n numCharClassesOpen++;\n } else if (m === \"]\") {\n if (numCharClassesOpen) {\n numCharClassesOpen--;\n } else {\n lastCharClassIndex = null;\n }\n } else if (!numCharClassesOpen) {\n if (qMod === \"+\" && lastToken && !lastToken.startsWith(\"(\")) {\n if (invalidQ) {\n throw new Error(`Invalid quantifier \"${m}\"`);\n }\n let charsAdded = -1;\n if (/^\\{\\d+\\}$/.test(qBase)) {\n expression = spliceStr(expression, index + qBase.length, qMod, \"\");\n } else {\n if (lastToken === \")\" || lastToken === \"]\") {\n const nodeIndex = lastToken === \")\" ? lastGroupIndex : lastCharClassIndex;\n if (nodeIndex === null) {\n throw new Error(`Invalid unmatched \"${lastToken}\"`);\n }\n expression = `${expression.slice(0, nodeIndex)}(?>${expression.slice(nodeIndex, index)}${qBase})${expression.slice(index + m.length)}`;\n } else {\n expression = `${expression.slice(0, index - lastToken.length)}(?>${lastToken}${qBase})${expression.slice(index + m.length)}`;\n }\n charsAdded += 4;\n }\n possessivePluginToken.lastIndex += charsAdded;\n } else if (m[0] === \"(\") {\n openGroupIndices.push(index);\n } else if (m === \")\") {\n lastGroupIndex = openGroupIndices.length ? openGroupIndices.pop() : null;\n }\n }\n lastToken = m;\n }\n return expression;\n}\n\n// src/subroutines.js\nfunction subroutinesPlugin(expression, data) {\n const namedGroups = getNamedCapturingGroups(expression, { includeContents: true });\n const transformed = processSubroutines(expression, namedGroups, data.useEmulationGroups);\n return processDefinitionGroup(transformed, namedGroups);\n}\nvar subroutinePattern = String.raw`\\\\g<(?<subroutineName>[^>&]+)>`;\nvar token3 = new RegExp(String.raw`\n${subroutinePattern}\n| (?<capturingStart>${capturingDelim})\n| \\\\(?<backrefNum>[1-9]\\d*)\n| \\\\k<(?<backrefName>[^>]+)>\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction processSubroutines(expression, namedGroups, useEmulationGroups) {\n if (!/\\\\g</.test(expression)) {\n return expression;\n }\n const hasBackrefs = hasUnescaped(expression, \"\\\\\\\\(?:[1-9]|k<[^>]+>)\", Context.DEFAULT);\n const subroutineWrapper = hasBackrefs ? `(${useEmulationGroups ? emulationGroupMarker : \"\"}` : \"(?:\";\n const openSubroutines = /* @__PURE__ */ new Map();\n const openSubroutinesStack = [];\n const captureNumMap = [0];\n let numCapturesPassedOutsideSubroutines = 0;\n let numCapturesPassedInsideSubroutines = 0;\n let numCapturesPassedInsideThisSubroutine = 0;\n let numSubroutineCapturesTrackedInRemap = 0;\n let numCharClassesOpen = 0;\n let result = expression;\n let match;\n token3.lastIndex = 0;\n while (match = token3.exec(result)) {\n const { 0: m, index, groups: { subroutineName, capturingStart, backrefNum, backrefName } } = match;\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (subroutineName) {\n if (!namedGroups.has(subroutineName)) {\n throw new Error(`Invalid named capture referenced by subroutine ${m}`);\n }\n if (openSubroutines.has(subroutineName)) {\n throw new Error(`Subroutine ${m} followed a recursive reference`);\n }\n const contents = namedGroups.get(subroutineName).contents;\n const subroutineValue = `${subroutineWrapper}${contents})`;\n if (hasBackrefs) {\n numCapturesPassedInsideThisSubroutine = 0;\n numCapturesPassedInsideSubroutines++;\n }\n openSubroutines.set(subroutineName, {\n // Incrementally decremented to track when we've left the group\n unclosedGroupCount: countOpenParens(subroutineValue)\n });\n openSubroutinesStack.push(subroutineName);\n result = spliceStr(result, index, m, subroutineValue);\n token3.lastIndex -= m.length - subroutineWrapper.length;\n } else if (capturingStart) {\n if (openSubroutines.size) {\n if (hasBackrefs) {\n numCapturesPassedInsideThisSubroutine++;\n numCapturesPassedInsideSubroutines++;\n }\n if (m !== \"(\") {\n result = spliceStr(result, index, m, subroutineWrapper);\n token3.lastIndex -= m.length - subroutineWrapper.length;\n }\n } else if (hasBackrefs) {\n captureNumMap.push(\n lastOf(captureNumMap) + 1 + numCapturesPassedInsideSubroutines - numSubroutineCapturesTrackedInRemap\n );\n numSubroutineCapturesTrackedInRemap = numCapturesPassedInsideSubroutines;\n numCapturesPassedOutsideSubroutines++;\n }\n } else if ((backrefNum || backrefName) && openSubroutines.size) {\n const num = backrefNum ? +backrefNum : namedGroups.get(backrefName)?.groupNum;\n let isGroupFromThisSubroutine = false;\n for (const s of openSubroutinesStack) {\n const group = namedGroups.get(s);\n if (num >= group.groupNum && num <= group.groupNum + group.numCaptures) {\n isGroupFromThisSubroutine = true;\n break;\n }\n }\n if (isGroupFromThisSubroutine) {\n const group = namedGroups.get(lastOf(openSubroutinesStack));\n const subroutineNum = numCapturesPassedOutsideSubroutines + numCapturesPassedInsideSubroutines - numCapturesPassedInsideThisSubroutine;\n const metadata = `\\\\k<$$b${num}s${subroutineNum}r${group.groupNum}c${group.numCaptures}>`;\n result = spliceStr(result, index, m, metadata);\n token3.lastIndex += metadata.length - m.length;\n }\n } else if (m === \")\") {\n if (openSubroutines.size) {\n const subroutine = openSubroutines.get(lastOf(openSubroutinesStack));\n subroutine.unclosedGroupCount--;\n if (!subroutine.unclosedGroupCount) {\n openSubroutines.delete(openSubroutinesStack.pop());\n }\n }\n }\n } else if (m === \"]\") {\n numCharClassesOpen--;\n }\n }\n if (hasBackrefs) {\n result = replaceUnescaped(\n result,\n String.raw`\\\\(?:(?<bNum>[1-9]\\d*)|k<\\$\\$b(?<bNumSub>\\d+)s(?<subNum>\\d+)r(?<refNum>\\d+)c(?<refCaps>\\d+)>)`,\n ({ 0: m, groups: { bNum, bNumSub, subNum, refNum, refCaps } }) => {\n if (bNum) {\n const backrefNum = +bNum;\n if (backrefNum > captureNumMap.length - 1) {\n throw new Error(`Backref \"${m}\" greater than number of captures`);\n }\n return `\\\\${captureNumMap[backrefNum]}`;\n }\n const backrefNumInSubroutine = +bNumSub;\n const subroutineGroupNum = +subNum;\n const refGroupNum = +refNum;\n const numCapturesInRef = +refCaps;\n if (backrefNumInSubroutine < refGroupNum || backrefNumInSubroutine > refGroupNum + numCapturesInRef) {\n return `\\\\${captureNumMap[backrefNumInSubroutine]}`;\n }\n return `\\\\${subroutineGroupNum - refGroupNum + backrefNumInSubroutine}`;\n },\n Context.DEFAULT\n );\n }\n return result;\n}\nvar defineGroupToken = new RegExp(String.raw`${namedCapturingDelim}|\\(\\?:\\)|(?<invalid>\\\\?.)`, \"gsu\");\nfunction processDefinitionGroup(expression, namedGroups) {\n const defineMatch = execUnescaped(expression, String.raw`\\(\\?\\(DEFINE\\)`, 0, Context.DEFAULT);\n if (!defineMatch) {\n return expression;\n }\n const defineGroup = getGroup(expression, defineMatch);\n if (defineGroup.afterPos < expression.length) {\n throw new Error(\"DEFINE group allowed only at the end of a regex\");\n } else if (defineGroup.afterPos > expression.length) {\n throw new Error(\"DEFINE group is unclosed\");\n }\n let match;\n defineGroupToken.lastIndex = 0;\n while (match = defineGroupToken.exec(defineGroup.contents)) {\n const { captureName, invalid } = match.groups;\n if (captureName) {\n const group = getGroup(defineGroup.contents, match);\n let duplicateName;\n if (!namedGroups.get(captureName).isUnique) {\n duplicateName = captureName;\n } else {\n const nestedNamedGroups = getNamedCapturingGroups(group.contents);\n for (const name of nestedNamedGroups.keys()) {\n if (!namedGroups.get(name).isUnique) {\n duplicateName = name;\n break;\n }\n }\n }\n if (duplicateName) {\n throw new Error(`Duplicate group name \"${duplicateName}\" within DEFINE`);\n }\n defineGroupToken.lastIndex = group.afterPos;\n } else if (invalid) {\n throw new Error(`DEFINE group includes unsupported syntax at top level`);\n }\n }\n return expression.slice(0, defineMatch.index);\n}\nfunction countOpenParens(expression) {\n let num = 0;\n forEachUnescaped(expression, \"\\\\(\", () => num++, Context.DEFAULT);\n return num;\n}\nfunction getCaptureNum(expression, groupName) {\n let num = 0;\n let pos = 0;\n let match;\n while (match = execUnescaped(expression, capturingDelim, pos, Context.DEFAULT)) {\n const { 0: m, index, groups: { captureName } } = match;\n num++;\n if (captureName === groupName) {\n break;\n }\n pos = index + m.length;\n }\n return num;\n}\nfunction getGroup(expression, delimMatch) {\n const contentsStart = delimMatch.index + delimMatch[0].length;\n const contents = getGroupContents(expression, contentsStart);\n const afterPos = contentsStart + contents.length + 1;\n return {\n contents,\n afterPos\n };\n}\nfunction getNamedCapturingGroups(expression, { includeContents } = {}) {\n const namedGroups = /* @__PURE__ */ new Map();\n forEachUnescaped(\n expression,\n namedCapturingDelim,\n ({ 0: m, index, groups: { captureName } }) => {\n if (namedGroups.has(captureName)) {\n namedGroups.get(captureName).isUnique = false;\n } else {\n const group = { isUnique: true };\n if (includeContents) {\n const contents = getGroupContents(expression, index + m.length);\n Object.assign(group, {\n contents,\n groupNum: getCaptureNum(expression, captureName),\n numCaptures: countCaptures(contents)\n });\n }\n namedGroups.set(captureName, group);\n }\n },\n Context.DEFAULT\n );\n return namedGroups;\n}\nfunction lastOf(arr) {\n return arr[arr.length - 1];\n}\n\n// src/backcompat.js\nvar incompatibleEscapeChars = \"&!#%,:;<=>@`~\";\nvar token4 = new RegExp(String.raw`\n\\[\\^?-?\n| --?\\]\n| (?<dp>[${doublePunctuatorChars}])\\k<dp>\n| --\n| \\\\(?<vOnlyEscape>[${incompatibleEscapeChars}])\n| \\\\[pPu]\\{[^}]+\\}\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction backcompatPlugin(expression) {\n const unescapedLiteralHyphenMsg = 'Invalid unescaped \"-\" in character class';\n let inCharClass = false;\n let result = \"\";\n for (const { 0: m, groups: { dp, vOnlyEscape } } of expression.matchAll(token4)) {\n if (m[0] === \"[\") {\n if (inCharClass) {\n throw new Error(\"Invalid nested character class when flag v not supported; possibly from interpolation\");\n }\n if (m.endsWith(\"-\")) {\n throw new Error(unescapedLiteralHyphenMsg);\n }\n inCharClass = true;\n } else if (m.endsWith(\"]\")) {\n if (m[0] === \"-\") {\n throw new Error(unescapedLiteralHyphenMsg);\n }\n inCharClass = false;\n } else if (inCharClass) {\n if (m === \"&&\" || m === \"--\") {\n throw new Error(`Invalid set operator \"${m}\" when flag v not supported`);\n } else if (dp) {\n throw new Error(`Invalid double punctuator \"${m}\", reserved by flag v`);\n } else if (\"(){}/|\".includes(m)) {\n throw new Error(`Invalid unescaped \"${m}\" in character class`);\n } else if (vOnlyEscape) {\n result += vOnlyEscape;\n continue;\n }\n }\n result += m;\n }\n return result;\n}\n\n// src/regex.js\nvar regex = (first, ...substitutions) => {\n if (Array.isArray(first?.raw)) {\n return regexFromTemplate({}, first, ...substitutions);\n } else if ((typeof first === \"string\" || first === void 0) && !substitutions.length) {\n return regexFromTemplate.bind(null, { flags: first ?? \"\" });\n } else if ({}.toString.call(first) === \"[object Object]\" && !substitutions.length) {\n return regexFromTemplate.bind(null, first);\n }\n throw new Error(`Unexpected arguments: ${JSON.stringify([first, ...substitutions])}`);\n};\nvar regexFromTemplate = (options, template, ...substitutions) => {\n const opts = getOptions(options);\n const prepped = handlePreprocessors(template, substitutions, opts);\n let precedingCaptures = 0;\n let expression = \"\";\n let runningContext;\n prepped.template.raw.forEach((raw, i) => {\n const wrapEscapedStr = !!(prepped.template.raw[i] || prepped.template.raw[i + 1]);\n precedingCaptures += countCaptures(raw);\n expression += sandboxUnsafeNulls(raw, Context.CHAR_CLASS);\n runningContext = getEndContextForIncompleteExpression(expression, runningContext);\n const { regexContext, charClassContext } = runningContext;\n if (i < prepped.template.raw.length - 1) {\n const substitution = prepped.substitutions[i];\n expression += interpolate(substitution, opts.flags, regexContext, charClassContext, wrapEscapedStr, precedingCaptures);\n if (substitution instanceof RegExp) {\n precedingCaptures += countCaptures(substitution.source);\n } else if (substitution instanceof Pattern) {\n precedingCaptures += countCaptures(String(substitution));\n }\n }\n });\n expression = handlePlugins(expression, opts);\n let captureMap;\n if (opts.subclass) {\n ({ expression, captureMap } = unmarkEmulationGroups(expression));\n }\n try {\n return opts.subclass ? new WrappedRegExp(expression, opts.flags, { captureMap }) : new RegExp(expression, opts.flags);\n } catch (err) {\n const stripped = err.message.replace(/ \\/.+\\/[a-z]*:/, \"\");\n err.message = `${stripped}: /${expression}/${opts.flags}`;\n throw err;\n }\n};\nfunction rewrite(expression = \"\", options = {}) {\n const opts = getOptions(options);\n if (opts.subclass) {\n throw new Error(\"Cannot use option subclass\");\n }\n return {\n expression: handlePlugins(\n handlePreprocessors({ raw: [expression] }, [], opts).template.raw[0],\n opts\n ),\n flags: opts.flags\n };\n}\nfunction getOptions(options) {\n const opts = {\n flags: \"\",\n subclass: false,\n plugins: [],\n unicodeSetsPlugin: backcompatPlugin,\n disable: {\n /* n, v, x, atomic, subroutines */\n },\n force: {\n /* v */\n },\n ...options\n };\n if (/[nuvx]/.test(opts.flags)) {\n throw new Error(\"Implicit flags v/u/x/n cannot be explicitly added\");\n }\n const useFlagV = opts.force.v || (opts.disable.v ? false : flagVSupported);\n opts.flags += useFlagV ? \"v\" : \"u\";\n if (useFlagV) {\n opts.unicodeSetsPlugin = null;\n }\n return opts;\n}\nfunction handlePreprocessors(template, substitutions, options) {\n const preprocessors = [];\n if (!options.disable.x) {\n preprocessors.push(flagXPreprocessor);\n }\n if (!options.disable.n) {\n preprocessors.push(flagNPreprocessor);\n }\n for (const pp of preprocessors) {\n ({ template, substitutions } = preprocess(template, substitutions, pp, options));\n }\n return {\n template,\n substitutions\n };\n}\nfunction handlePlugins(expression, options) {\n const { flags, plugins, unicodeSetsPlugin, disable, subclass } = options;\n [\n ...plugins,\n // Run first, so provided plugins can output extended syntax\n ...disable.subroutines ? [] : [subroutinesPlugin],\n ...disable.atomic ? [] : [possessivePlugin, atomicPlugin],\n ...disable.x ? [] : [cleanPlugin],\n // Run last, so it doesn't have to worry about parsing extended syntax\n ...!unicodeSetsPlugin ? [] : [unicodeSetsPlugin]\n ].forEach((p) => expression = p(expression, { flags, useEmulationGroups: subclass }));\n return expression;\n}\nvar WrappedRegExp = class _WrappedRegExp extends RegExp {\n #captureMap;\n /**\n @param {string | WrappedRegExp} expression\n @param {string} [flags]\n @param {{captureMap: Array<boolean>;}} [data]\n */\n constructor(expression, flags, data) {\n super(expression, flags);\n if (data) {\n this.#captureMap = data.captureMap;\n } else if (expression instanceof _WrappedRegExp) {\n this.#captureMap = expression.#captureMap;\n }\n }\n /**\n Called internally by all String/RegExp methods that use regexes.\n @override\n @param {string} str\n @returns {RegExpExecArray | null}\n */\n exec(str) {\n const match = RegExp.prototype.exec.call(this, str);\n if (!match || !this.#captureMap) {\n return match;\n }\n const copy = [...match];\n match.length = 1;\n for (let i = 1; i < copy.length; i++) {\n if (this.#captureMap[i]) {\n match.push(copy[i]);\n }\n }\n return match;\n }\n};\nfunction interpolate(value, flags, regexContext, charClassContext, wrapEscapedStr, precedingCaptures) {\n if (value instanceof RegExp && regexContext !== RegexContext.DEFAULT) {\n throw new Error(\"Cannot interpolate a RegExp at this position because the syntax context does not match\");\n }\n if (regexContext === RegexContext.INVALID_INCOMPLETE_TOKEN || charClassContext === CharClassContext.INVALID_INCOMPLETE_TOKEN) {\n throw new Error(\"Interpolation preceded by invalid incomplete token\");\n }\n if (typeof value === \"number\" && (regexContext === RegexContext.ENCLOSED_U || charClassContext === CharClassContext.ENCLOSED_U)) {\n return value.toString(16);\n }\n const isPattern = value instanceof Pattern;\n let escapedValue = \"\";\n if (!(value instanceof RegExp)) {\n value = String(value);\n if (!isPattern) {\n escapedValue = escapeV(\n value,\n regexContext === RegexContext.CHAR_CLASS ? Context.CHAR_CLASS : Context.DEFAULT\n );\n }\n const breakoutChar = getBreakoutChar(escapedValue || value, regexContext, charClassContext);\n if (breakoutChar) {\n throw new Error(`Unescaped stray \"${breakoutChar}\" in the interpolated value would have side effects outside it`);\n }\n }\n if (regexContext === RegexContext.INTERVAL_QUANTIFIER || regexContext === RegexContext.GROUP_NAME || enclosedTokenRegexContexts.has(regexContext) || enclosedTokenCharClassContexts.has(charClassContext)) {\n return isPattern ? String(value) : escapedValue;\n } else if (regexContext === RegexContext.CHAR_CLASS) {\n if (isPattern) {\n if (hasUnescaped(String(value), \"^-|^&&|-$|&&$\")) {\n throw new Error(\"Cannot use range or set operator at boundary of interpolated pattern; move the operation into the pattern or the operator outside of it\");\n }\n const sandboxedValue = sandboxLoneCharClassCaret(sandboxLoneDoublePunctuatorChar(value));\n return containsCharClassUnion(value) ? `[${sandboxedValue}]` : sandboxUnsafeNulls(sandboxedValue);\n }\n return containsCharClassUnion(escapedValue) ? `[${escapedValue}]` : escapedValue;\n }\n if (value instanceof RegExp) {\n const transformed = transformForLocalFlags(value, flags);\n const backrefsAdjusted = adjustNumberedBackrefs(transformed.value, precedingCaptures);\n return transformed.usedModifier ? backrefsAdjusted : `(?:${backrefsAdjusted})`;\n }\n if (isPattern) {\n return `(?:${value})`;\n }\n return wrapEscapedStr ? `(?:${escapedValue})` : escapedValue;\n}\nfunction transformForLocalFlags(re, outerFlags) {\n const modFlagsObj = {\n i: null,\n m: null,\n s: null\n };\n const newlines = \"\\\\n\\\\r\\\\u2028\\\\u2029\";\n let value = re.source;\n if (re.ignoreCase !== outerFlags.includes(\"i\")) {\n if (patternModsSupported) {\n modFlagsObj.i = re.ignoreCase;\n } else {\n throw new Error(\"Pattern modifiers not supported, so flag i on the outer and interpolated regex must match\");\n }\n }\n if (re.dotAll !== outerFlags.includes(\"s\")) {\n if (patternModsSupported) {\n modFlagsObj.s = re.dotAll;\n } else {\n value = replaceUnescaped(value, \"\\\\.\", re.dotAll ? \"[^]\" : `[^${newlines}]`, Context.DEFAULT);\n }\n }\n if (re.multiline !== outerFlags.includes(\"m\")) {\n if (patternModsSupported) {\n modFlagsObj.m = re.multiline;\n } else {\n value = replaceUnescaped(value, \"\\\\^\", re.multiline ? `(?<=^|[${newlines}])` : \"(?<![^])\", Context.DEFAULT);\n value = replaceUnescaped(value, \"\\\\$\", re.multiline ? `(?=$|[${newlines}])` : \"(?![^])\", Context.DEFAULT);\n }\n }\n if (patternModsSupported) {\n const keys = Object.keys(modFlagsObj);\n let modifier = keys.filter((k) => modFlagsObj[k] === true).join(\"\");\n const modOff = keys.filter((k) => modFlagsObj[k] === false).join(\"\");\n if (modOff) {\n modifier += `-${modOff}`;\n }\n if (modifier) {\n return {\n value: `(?${modifier}:${value})`,\n usedModifier: true\n };\n }\n }\n return { value };\n}\nfunction unmarkEmulationGroups(expression) {\n const marker = emulationGroupMarker.replace(/\\$/g, \"\\\\$\");\n const captureMap = [true];\n expression = replaceUnescaped(\n expression,\n `(?:${capturingDelim})(?<mark>${marker})?`,\n ({ 0: m, groups: { mark } }) => {\n if (mark) {\n captureMap.push(false);\n return m.slice(0, -emulationGroupMarker.length);\n }\n captureMap.push(true);\n return m;\n },\n Context.DEFAULT\n );\n return {\n captureMap,\n expression\n };\n}\nexport {\n pattern,\n regex,\n rewrite\n};\n//# sourceMappingURL=regex.mjs.map\n",
|
|
12
|
+
"import { rewrite } from 'regex';\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass RegExpConversionError extends SyntaxError {\n constructor(message, options) {\n super(message, { cause: options.cause });\n __publicField(this, \"patternOriginal\");\n __publicField(this, \"patternConverted\");\n __publicField(this, \"cursorPosition\");\n this.patternOriginal = options.pattern;\n this.patternConverted = options.converted;\n this.cursorPosition = options.cursor;\n }\n}\n\nconst UNNECESSARY_ESCAPE_CHAR_CLASS = new Set(\"!?:=+$(){}_><# \");\nconst UNNECESSARY_ESCAPE = new Set(\"-!:=_>< \");\nconst TABLE_POSIX = {\n alnum: \"0-9A-Za-z\",\n alpha: \"A-Za-z\",\n ascii: \"\\0-\\x7F\",\n blank: \" \\\\t\",\n cntrl: \"\\0-\u001F\\x7F\",\n digit: \"\\\\d\",\n graph: \"!-~\",\n lower: \"a-z\",\n print: \" -~\",\n punct: \"!-/:-@[-`{-~\",\n space: \"\\\\s\",\n upper: \"A-Z\",\n xdigit: \"0-9A-Fa-f\",\n word: \"\\\\w\"\n};\nconst TABLE_SLASH_P = {\n alnum: \"0-9A-Za-z\",\n alpha: \"A-Za-z\",\n alphabetic: \"A-Za-z\",\n blank: \"\\\\s\",\n greek: \"\\\\p{Script=Greek}\",\n print: \"\\\\p{L}\\\\p{N}\\\\p{P}\\\\p{S}\\\\p{Zs}\",\n word: \"\\\\w\"\n};\nconst KNOWN_FLAGS = /* @__PURE__ */ new Set(\"gimsuyx\");\nfunction syntaxLowering(input, options = {}) {\n const {\n useRegex = false,\n preserveFlags = false,\n removePossessiveQuantifier = false,\n removeAtomicGroup = false,\n convertHexDigitsShorthand = false,\n convertUnicodeCategory = false,\n expandNestedCharacterClass = false\n } = options;\n let output = \"\";\n const flags = /* @__PURE__ */ new Set();\n const stack = [];\n const freeSpacingLocal = [];\n let freeSpacingGlobal = false;\n let isInNestedCharClass = false;\n let i = 0;\n try {\n while (i < input.length) {\n const char = input[i];\n while (freeSpacingLocal.length && freeSpacingLocal[0] > stack.length) {\n freeSpacingLocal.shift();\n }\n const head = stack[0];\n const freeSpacing = freeSpacingGlobal || freeSpacingLocal.length;\n if (char === \"\\\\\") {\n if (convertHexDigitsShorthand) {\n if (input[i + 1] === \"h\") {\n const body = `0-9A-Fa-f`;\n if (head === \"[\") {\n output += body;\n } else {\n output += `[${body}]`;\n }\n i += 2;\n continue;\n }\n if (input[i + 1] === \"H\") {\n if (head === \"[\") {\n throw new RegExpConversionError(\n \"Expending \\\\H in character class is not supported\",\n { pattern: input, converted: output, cursor: i }\n );\n } else {\n output += `[^0-9A-Fa-f]`;\n }\n i += 2;\n continue;\n }\n }\n if (convertUnicodeCategory && input[i + 1] === \"p\" && input[i + 2] === \"{\") {\n const end = input.indexOf(\"}\", i + 3);\n if (end === -1) {\n throw new RegExpConversionError(\n \"Unmatched \\\\p{...}\",\n { pattern: input, converted: output, cursor: i }\n );\n }\n const name = input.slice(i + 3, end);\n const resolved = TABLE_SLASH_P[name.toLowerCase()];\n if (resolved) {\n if (head === \"[\") {\n output += resolved;\n } else {\n output += `[${resolved}]`;\n }\n i = end + 1;\n continue;\n }\n }\n if (head === \"[\" && UNNECESSARY_ESCAPE_CHAR_CLASS.has(input[i + 1])) {\n output += input[i + 1];\n i += 2;\n continue;\n }\n if (head !== \"[\" && UNNECESSARY_ESCAPE.has(input[i + 1])) {\n output += input[i + 1];\n i += 2;\n continue;\n }\n output += char + input[i + 1];\n i += 2;\n continue;\n }\n if (char === \"#\" && freeSpacing && input[i - 1].match(/\\s/) && head !== \"[\") {\n for (let j = i + 1; j <= input.length; j++) {\n if (input[j] === \"\\n\" || j === input.length) {\n i = j;\n break;\n }\n }\n continue;\n }\n if (char === \"(\" && head !== \"[\") {\n if (input[i + 1] === \"?\") {\n if (input[i + 2] === \"#\") {\n for (let j = i + 3; j < input.length; j++) {\n if (input[j] === \")\" && input[j - 1] !== \"\\\\\") {\n i = j + 1;\n break;\n }\n }\n continue;\n }\n if (removeAtomicGroup && input[i + 2] === \">\") {\n output += \"(?:\";\n i += 3;\n continue;\n }\n if (KNOWN_FLAGS.has(input[i + 2])) {\n let end = i + 3;\n for (; end < input.length; end++) {\n if (!KNOWN_FLAGS.has(input[end]))\n break;\n }\n const flagStr2 = input.slice(i + 2, end);\n const hasX = flagStr2.includes(\"x\") && flagStr2[0] !== \"-\";\n let remainFlags = [...flagStr2].filter((x) => x !== \"x\").join(\"\");\n if (!preserveFlags) {\n if (remainFlags[0] === \"-\") {\n remainFlags = remainFlags.slice(1);\n for (const flag of flagStr2) {\n flags.delete(flag);\n }\n } else {\n for (const flag of remainFlags) {\n flags.add(flag);\n }\n }\n remainFlags = \"\";\n }\n if (input[end] === \")\") {\n i = end + 1;\n if (hasX) {\n freeSpacingGlobal = true;\n }\n if (remainFlags.length) {\n output += `(?${remainFlags})`;\n }\n continue;\n } else if (input[end] === \":\") {\n i = end + 1;\n stack.unshift(char);\n if (hasX) {\n freeSpacingLocal.unshift(stack.length);\n }\n output += `(?${remainFlags}:`;\n continue;\n }\n }\n stack.unshift(char);\n output += char + input[i + 1] + input[i + 2];\n i += 3;\n } else {\n stack.unshift(char);\n output += char;\n i += 1;\n }\n continue;\n }\n if (char === \")\" && head !== \"[\") {\n if (head === \"(\")\n stack.shift();\n output += char;\n i += 1;\n continue;\n }\n if (char === \"[\") {\n if (input[i + 1] === \":\") {\n let name = \"\";\n let negated = false;\n if (input[i + 2] === \"^\") {\n negated = true;\n i += 1;\n }\n for (let j = i + 2; j < input.length; j++) {\n if (input[j] === \":\") {\n i = j + 2;\n break;\n }\n if (!input[j].match(/[a-z]/i)) {\n name = \"\";\n break;\n }\n name += input[j];\n }\n if (name) {\n let resolved = TABLE_POSIX[name];\n if (!resolved) {\n throw new RegExpConversionError(\n `Unknown posix class \"${name}\"`,\n { pattern: input, converted: output, cursor: i }\n );\n }\n if (negated)\n resolved = `^${resolved}`;\n if (head === \"[\")\n output += resolved;\n else\n output += `[${resolved}]`;\n continue;\n }\n }\n if (head !== \"[\") {\n stack.unshift(char);\n }\n if (head === \"[\" && expandNestedCharacterClass) {\n isInNestedCharClass = true;\n i += 1;\n if (input[i] === \"-\") {\n output += \"\\\\-\";\n i += 1;\n }\n continue;\n }\n output += char;\n i += 1;\n continue;\n }\n if (char === \"]\") {\n if (isInNestedCharClass) {\n isInNestedCharClass = false;\n i += 1;\n continue;\n }\n if (head === \"[\")\n stack.shift();\n output += char;\n i += 1;\n continue;\n }\n if (removePossessiveQuantifier && char === \"+\" && head !== \"[\") {\n if (\"?+}*\".includes(input[i - 1])) {\n i += 1;\n continue;\n }\n }\n if (char === \"*\" && head !== \"[\" && input[i - 1] === \"|\" && input[i - 2] !== \"\\\\\") {\n output += \"\\\\\";\n }\n if (!(freeSpacing && head !== \"[\" && char.match(/\\s/))) {\n output += char;\n }\n i += 1;\n }\n } catch (e) {\n if (e instanceof RegExpConversionError)\n throw e;\n throw new RegExpConversionError(\n `Error lowering regex at position ${i}`,\n { pattern: input, converted: output, cursor: i, cause: e }\n );\n }\n const flagStr = [...flags].join(\"\");\n if (useRegex) {\n output = rewrite(\n output,\n {\n flags: flagStr,\n unicodeSetsPlugin: null,\n disable: {\n n: true,\n v: true,\n x: true\n }\n }\n ).expression;\n }\n return {\n pattern: output,\n flags: flagStr\n };\n}\n\nexport { RegExpConversionError as R, syntaxLowering as s };\n",
|
|
13
|
+
"import { R as RegExpConversionError, s as syntaxLowering } from './shared/oniguruma-to-js.2969e22d.mjs';\nimport 'regex';\n\nfunction construct(pattern, options = {}) {\n const {\n original = pattern,\n flags = [\"g\"]\n } = options;\n if (pattern.startsWith(\"(?x)\") || pattern.includes(\"(?x:\")) {\n throw new RegExpConversionError(\n \"RegExp Free-spacing mode `(?x)` is not supported, you might want to run syntaxLowering() first\",\n { pattern: original, converted: pattern }\n );\n }\n if (pattern.match(/\\[:\\w+:\\]/)) {\n throw new RegExpConversionError(\n \"POSIX character classes are not supported, you might want to run syntaxLowering() first\",\n { pattern: original, converted: pattern }\n );\n }\n const flagSet = new Set(Array.isArray(flags) ? flags : flags.split(\"\"));\n if (pattern.includes(\"\\\\p{\"))\n flagSet.add(\"u\");\n pattern = pattern.replace(/\\\\A/g, \"^\").replace(/\\\\Z/g, \"(?=\\\\n?$)\").replace(/\\\\z/g, \"$\").replace(/\\\\x\\{([^}]*)\\}/g, (m, hex) => `\\\\u${hex.padStart(4, \"0\")}`).replace(/\\(\\?(-)?(\\w+):/g, (_, neg, flagStr) => {\n if (neg) {\n for (const flag of flagStr)\n flagSet.delete(flag);\n } else {\n for (const flag of flagStr)\n flagSet.add(flag);\n }\n return \"(?:\";\n }).replace(/\\(\\?(-)?(\\w+)\\)/g, (_, neg, flags2) => {\n if (neg) {\n for (const flag of flags2)\n flagSet.delete(flag);\n } else {\n for (const flag of flags2)\n flagSet.add(flag);\n }\n return \"\";\n });\n if (options.ignoreContiguousAnchors) {\n if (pattern.includes(\"\\\\G\")) {\n flagSet.add(\"y\");\n }\n if (pattern.startsWith(\"\\\\G\")) {\n pattern = pattern.slice(2);\n }\n pattern = pattern.replace(/\\|\\\\G(\\||\\))/g, \"$1\").replace(/(\\(|\\|)\\\\G\\|/g, \"$1\").replace(/\\\\G/g, \"\");\n }\n if (flagSet.has(\"x\")) {\n throw new RegExpConversionError(\n \"JavaScript does not support extended mode (x flag), you might want to run syntaxLowering() first\",\n { pattern: original, converted: pattern }\n );\n }\n try {\n return new RegExp(pattern, [...flagSet].join(\"\"));\n } catch (e) {\n throw new RegExpConversionError(\n `Failed to construct RegExp`,\n {\n pattern: original,\n converted: pattern,\n cause: e\n }\n );\n }\n}\n\nfunction onigurumaToRegexp(pattern, options = {}) {\n const {\n pattern: converted,\n flags\n } = syntaxLowering(pattern, {\n // removePossessiveQuantifier: false,\n // removeAtomicGroup: false,\n convertHexDigitsShorthand: true,\n convertUnicodeCategory: true,\n useRegex: true,\n expandNestedCharacterClass: true,\n ...options\n });\n return construct(converted, {\n original: pattern,\n ...options,\n flags: [.../* @__PURE__ */ new Set([...flags, ...options.flags || []])].join(\"\")\n });\n}\n\nexport { RegExpConversionError, construct, onigurumaToRegexp, syntaxLowering };\n",
|
|
14
|
+
"import { onigurumaToRegexp } from 'oniguruma-to-js';\n\nconst replacements = [\n [\n \"(?<square>[^\\\\[\\\\]\\\\\\\\]|\\\\\\\\.|\\\\[\\\\g<square>*+\\\\])\",\n \"(?<square>[^\\\\[\\\\]\\\\\\\\]|\\\\\\\\.|\\\\[(?:[^\\\\[\\\\]\\\\\\\\]|\\\\\\\\.|\\\\[(?:[^\\\\[\\\\]\\\\\\\\]|\\\\\\\\.|\\\\[(?:[^\\\\[\\\\]\\\\\\\\])*+\\\\])*+\\\\])*+\\\\])\"\n ],\n [\n \"(?<url>(?>[^\\\\s()]+)|\\\\(\\\\g<url>*\\\\))\",\n \"(?<url>(?>[^\\\\s()]+)|\\\\((?:(?>[^\\\\s()]+)|\\\\((?:(?>[^\\\\s()]+)|\\\\((?>[^\\\\s()]+)*\\\\))*\\\\))*\\\\))\"\n ]\n];\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nconst MAX = 4294967295;\nfunction defaultJavaScriptRegexConstructor(pattern) {\n return onigurumaToRegexp(\n pattern,\n {\n flags: \"dgm\",\n ignoreContiguousAnchors: true\n }\n );\n}\nclass JavaScriptScanner {\n constructor(patterns, options = {}) {\n this.patterns = patterns;\n this.options = options;\n __publicField(this, \"regexps\");\n __publicField(this, \"contiguousAnchorSimulation\");\n const {\n forgiving = false,\n cache,\n simulation = true,\n regexConstructor = defaultJavaScriptRegexConstructor\n } = options;\n this.contiguousAnchorSimulation = Array.from({ length: patterns.length }, () => false);\n this.regexps = patterns.map((p, idx) => {\n if (simulation)\n p = p.replaceAll(\"(^|\\\\\\uFFFF)\", \"(^|\\\\G)\");\n if (simulation && (p.startsWith(\"(^|\\\\G)\") || p.startsWith(\"(\\\\G|^)\")))\n this.contiguousAnchorSimulation[idx] = true;\n const cached = cache?.get(p);\n if (cached) {\n if (cached instanceof RegExp) {\n return cached;\n }\n if (forgiving)\n return null;\n throw cached;\n }\n try {\n let pattern = p;\n if (simulation) {\n for (const [from, to] of replacements) {\n pattern = pattern.replaceAll(from, to);\n }\n }\n const regex = regexConstructor(pattern);\n cache?.set(p, regex);\n return regex;\n } catch (e) {\n cache?.set(p, e);\n if (forgiving)\n return null;\n throw e;\n }\n });\n }\n findNextMatchSync(string, startPosition) {\n const str = typeof string === \"string\" ? string : string.content;\n const pending = [];\n function toResult(index, match, offset = 0) {\n return {\n index,\n captureIndices: match.indices.map((indice) => {\n if (indice == null) {\n return {\n end: MAX,\n start: MAX,\n length: 0\n };\n }\n return {\n start: indice[0] + offset,\n length: indice[1] - indice[0],\n end: indice[1] + offset\n };\n })\n };\n }\n for (let i = 0; i < this.regexps.length; i++) {\n const regexp = this.regexps[i];\n if (!regexp)\n continue;\n try {\n let offset = 0;\n regexp.lastIndex = startPosition;\n let match = regexp.exec(str);\n if (!match && this.contiguousAnchorSimulation[i]) {\n offset = startPosition;\n regexp.lastIndex = 0;\n match = regexp.exec(str.slice(startPosition));\n }\n if (!match)\n continue;\n if (match.index === startPosition) {\n return toResult(i, match, offset);\n }\n pending.push([i, match, offset]);\n } catch (e) {\n if (this.options.forgiving)\n continue;\n throw e;\n }\n }\n if (pending.length) {\n const minIndex = Math.min(...pending.map((m) => m[1].index));\n for (const [i, match, offset] of pending) {\n if (match.index === minIndex) {\n return toResult(i, match, offset);\n }\n }\n }\n return null;\n }\n}\nfunction createJavaScriptRegexEngine(options = {}) {\n const _options = {\n cache: /* @__PURE__ */ new Map(),\n ...options\n };\n return {\n createScanner(patterns) {\n return new JavaScriptScanner(patterns, _options);\n },\n createString(s) {\n return {\n content: s\n };\n }\n };\n}\n\nexport { JavaScriptScanner, createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor };\n",
|
|
15
|
+
"import { ShikiError as ShikiError$1 } from '@shikijs/types';\nexport * from '@shikijs/types';\nimport { createOnigurumaEngine as createOnigurumaEngine$1, loadWasm as loadWasm$1, getDefaultWasmLoader } from '@shikijs/engine-oniguruma';\nimport { w as warnDeprecated } from './shared/core.afb6276c.mjs';\nexport { e as enableDeprecationWarnings } from './shared/core.afb6276c.mjs';\nimport { FontStyle, INITIAL, EncodedTokenMetadata, Registry as Registry$1, Theme } from '@shikijs/vscode-textmate';\nexport { FontStyle, EncodedTokenMetadata as StackElementMetadata } from '@shikijs/vscode-textmate';\nimport { toHtml } from 'hast-util-to-html';\nexport { toHtml as hastToHtml } from 'hast-util-to-html';\nimport { createJavaScriptRegexEngine as createJavaScriptRegexEngine$1, defaultJavaScriptRegexConstructor as defaultJavaScriptRegexConstructor$1 } from '@shikijs/engine-javascript';\n\nfunction createOnigurumaEngine(options) {\n warnDeprecated(\"import `createOnigurumaEngine` from `@shikijs/engine-oniguruma` or `shiki/engine/oniguruma` instead\");\n return createOnigurumaEngine$1(options);\n}\nfunction createWasmOnigEngine(options) {\n warnDeprecated(\"import `createOnigurumaEngine` from `@shikijs/engine-oniguruma` or `shiki/engine/oniguruma` instead\");\n return createOnigurumaEngine$1(options);\n}\nfunction loadWasm(options) {\n warnDeprecated(\"import `loadWasm` from `@shikijs/engine-oniguruma` or `shiki/engine/oniguruma` instead\");\n return loadWasm$1(options);\n}\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\nfunction splitLines(code, preserveEnding = false) {\n const parts = code.split(/(\\r?\\n)/g);\n let index = 0;\n const lines = [];\n for (let i = 0; i < parts.length; i += 2) {\n const line = preserveEnding ? parts[i] + (parts[i + 1] || \"\") : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\nfunction isPlainLang(lang) {\n return !lang || [\"plaintext\", \"txt\", \"text\", \"plain\"].includes(lang);\n}\nfunction isSpecialLang(lang) {\n return lang === \"ansi\" || isPlainLang(lang);\n}\nfunction isNoneTheme(theme) {\n return theme === \"none\";\n}\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\nfunction addClassToHast(node, className) {\n var _a;\n if (!className)\n return node;\n node.properties || (node.properties = {});\n (_a = node.properties).class || (_a.class = []);\n if (typeof node.properties.class === \"string\")\n node.properties.class = node.properties.class.split(/\\s+/g);\n if (!Array.isArray(node.properties.class))\n node.properties.class = [];\n const targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n for (const c of targets) {\n if (c && !node.properties.class.includes(c))\n node.properties.class.push(c);\n }\n return node;\n}\nfunction splitToken(token, offsets) {\n let lastOffset = 0;\n const tokens = [];\n for (const offset of offsets) {\n if (offset > lastOffset) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset, offset),\n offset: token.offset + lastOffset\n });\n }\n lastOffset = offset;\n }\n if (lastOffset < token.content.length) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset),\n offset: token.offset + lastOffset\n });\n }\n return tokens;\n}\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints)).sort((a, b) => a - b);\n if (!sorted.length)\n return tokens;\n return tokens.map((line) => {\n return line.flatMap((token) => {\n const breakpointsInToken = sorted.filter((i) => token.offset < i && i < token.offset + token.content.length).map((i) => i - token.offset).sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\nasync function normalizeGetter(p) {\n return Promise.resolve(typeof p === \"function\" ? p() : p).then((r) => r.default || r);\n}\nfunction resolveColorReplacements(theme, options) {\n const replacements = typeof theme === \"string\" ? {} : { ...theme.colorReplacements };\n const themeName = typeof theme === \"string\" ? theme : theme.name;\n for (const [key, value] of Object.entries(options?.colorReplacements || {})) {\n if (typeof value === \"string\")\n replacements[key] = value;\n else if (key === themeName)\n Object.assign(replacements, value);\n }\n return replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n if (!color)\n return color;\n return replacements?.[color?.toLowerCase()] || color;\n}\nfunction getTokenStyleObject(token) {\n const styles = {};\n if (token.color)\n styles.color = token.color;\n if (token.bgColor)\n styles[\"background-color\"] = token.bgColor;\n if (token.fontStyle) {\n if (token.fontStyle & FontStyle.Italic)\n styles[\"font-style\"] = \"italic\";\n if (token.fontStyle & FontStyle.Bold)\n styles[\"font-weight\"] = \"bold\";\n if (token.fontStyle & FontStyle.Underline)\n styles[\"text-decoration\"] = \"underline\";\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n if (typeof token === \"string\")\n return token;\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(\";\");\n}\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\n if (index === code.length) {\n return {\n line: lines.length - 1,\n character: lines[lines.length - 1].length\n };\n }\n let character = index;\n let line = 0;\n for (const lineText of lines) {\n if (character < lineText.length)\n break;\n character -= lineText.length;\n line++;\n }\n return { line, character };\n }\n function posToIndex(line, character) {\n let index = 0;\n for (let i = 0; i < line; i++)\n index += lines[i].length;\n index += character;\n return index;\n }\n return {\n lines,\n indexToPos,\n posToIndex\n };\n}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$2 = (obj, key, value) => {\n __defNormalProp$2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nconst _grammarStateMap = /* @__PURE__ */ new WeakMap();\nfunction setLastGrammarStateToMap(keys, state) {\n _grammarStateMap.set(keys, state);\n}\nfunction getLastGrammarStateFromMap(keys) {\n return _grammarStateMap.get(keys);\n}\nclass GrammarState {\n constructor(...args) {\n /**\n * Theme to Stack mapping\n */\n __publicField$2(this, \"_stacks\", {});\n __publicField$2(this, \"lang\");\n if (args.length === 2) {\n const [stacksMap, lang] = args;\n this.lang = lang;\n this._stacks = stacksMap;\n } else {\n const [stack, lang, theme] = args;\n this.lang = lang;\n this._stacks = { [theme]: stack };\n }\n }\n get themes() {\n return Object.keys(this._stacks);\n }\n get theme() {\n return this.themes[0];\n }\n get _stack() {\n return this._stacks[this.theme];\n }\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, themes) {\n return new GrammarState(\n Object.fromEntries(toArray(themes).map((theme) => [theme, INITIAL])),\n lang\n );\n }\n /**\n * Get the internal stack object.\n * @internal\n */\n getInternalStack(theme = this.theme) {\n return this._stacks[theme];\n }\n /**\n * @deprecated use `getScopes` instead\n */\n get scopes() {\n return getScopes(this._stacks[this.theme]);\n }\n getScopes(theme = this.theme) {\n return getScopes(this._stacks[theme]);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n themes: this.themes,\n scopes: this.scopes\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = /* @__PURE__ */ new Set();\n function pushScope(stack2) {\n if (visited.has(stack2))\n return;\n visited.add(stack2);\n const name = stack2?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack2.parent)\n pushScope(stack2.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state, theme) {\n if (!(state instanceof GrammarState))\n throw new ShikiError(\"Invalid grammar state\");\n return state.getInternalStack(theme);\n}\n\nfunction transformerDecorations() {\n const map = /* @__PURE__ */ new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n let normalizePosition = function(p) {\n if (typeof p === \"number\") {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p\n };\n } else {\n const line = converter.lines[p.line];\n if (line === void 0)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n if (p.character < 0 || p.character > line.length)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n offset: converter.posToIndex(p.line, p.character)\n };\n }\n };\n const converter = createPositionConverter(shiki.source);\n const decorations = (shiki.options.decorations || []).map((d) => ({\n ...d,\n start: normalizePosition(d.start),\n end: normalizePosition(d.end)\n }));\n verifyIntersections(decorations);\n map.set(shiki.meta, {\n decorations,\n converter,\n source: shiki.source\n });\n }\n return map.get(shiki.meta);\n }\n return {\n name: \"shiki:decorations\",\n tokens(tokens) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const breakpoints = ctx.decorations.flatMap((d) => [d.start.offset, d.end.offset]);\n const splitted = splitTokens(tokens, breakpoints);\n return splitted;\n },\n code(codeEl) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const lines = Array.from(codeEl.children).filter((i) => i.type === \"element\" && i.tagName === \"span\");\n if (lines.length !== ctx.converter.lines.length)\n throw new ShikiError(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n function applyLineSection(line, start, end, decoration) {\n const lineEl = lines[line];\n let text = \"\";\n let startIndex = -1;\n let endIndex = -1;\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, \"line\");\n } else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === \"element\") {\n applyDecoration(children[0], decoration, \"token\");\n } else {\n const wrapper = {\n type: \"element\",\n tagName: \"span\",\n properties: {},\n children\n };\n applyDecoration(wrapper, decoration, \"wrapper\");\n lineEl.children.splice(startIndex, children.length, wrapper);\n }\n }\n function applyLine(line, decoration) {\n lines[line] = applyDecoration(lines[line], decoration, \"line\");\n }\n function applyDecoration(el, decoration, type) {\n const properties = decoration.properties || {};\n const transform = decoration.transform || ((i) => i);\n el.tagName = decoration.tagName || \"span\";\n el.properties = {\n ...el.properties,\n ...properties,\n class: el.properties.class\n };\n if (decoration.properties?.class)\n addClassToHast(el, decoration.properties.class);\n el = transform(el, type) || el;\n return el;\n }\n const lineApplies = [];\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset);\n for (const decoration of sorted) {\n const { start, end } = decoration;\n if (start.line === end.line) {\n applyLineSection(start.line, start.character, end.character, decoration);\n } else if (start.line < end.line) {\n applyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n for (let i = start.line + 1; i < end.line; i++)\n lineApplies.unshift(() => applyLine(i, decoration));\n applyLineSection(end.line, 0, end.character, decoration);\n }\n }\n lineApplies.forEach((i) => i());\n }\n };\n}\nfunction verifyIntersections(items) {\n for (let i = 0; i < items.length; i++) {\n const foo = items[i];\n if (foo.start.offset > foo.end.offset)\n throw new ShikiError(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n for (let j = i + 1; j < items.length; j++) {\n const bar = items[j];\n const isFooHasBarStart = foo.start.offset < bar.start.offset && bar.start.offset < foo.end.offset;\n const isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset < foo.end.offset;\n const isBarHasFooStart = bar.start.offset < foo.start.offset && foo.start.offset < bar.end.offset;\n const isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset < bar.end.offset;\n if (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n if (isFooHasBarEnd && isFooHasBarEnd)\n continue;\n if (isBarHasFooStart && isBarHasFooEnd)\n continue;\n throw new ShikiError(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n}\nfunction stringify(el) {\n if (el.type === \"text\")\n return el.value;\n if (el.type === \"element\")\n return el.children.map(stringify).join(\"\");\n return \"\";\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations()\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers\n ];\n}\n\n// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B[\", position);\n if (nextEscape !== -1) {\n const nextClose = value.indexOf(\"m\", nextEscape);\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence, index) {\n let offset = 1;\n const colorMode = sequence[index + offset++];\n let color;\n if (colorMode === \"2\") {\n const rgb = [\n sequence[index + offset++],\n sequence[index + offset++],\n sequence[index + offset]\n ].map((x) => Number.parseInt(x));\n if (rgb.length === 3 && !rgb.some((x) => Number.isNaN(x))) {\n color = {\n type: \"rgb\",\n rgb\n };\n }\n } else if (colorMode === \"5\") {\n const colorIndex = Number.parseInt(sequence[index + offset]);\n if (!Number.isNaN(colorIndex)) {\n color = { type: \"table\", index: Number(colorIndex) };\n }\n }\n return [offset, color];\n}\nfunction parseSequence(sequence) {\n const commands = [];\n for (let i = 0; i < sequence.length; i++) {\n const code = sequence[i];\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\n\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const colorPalette = createColorPalette(\n Object.fromEntries(\n namedColors.map((name) => [\n name,\n theme.colors?.[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`]\n ])\n )\n );\n const parser = createAnsiSequenceParser();\n return lines.map(\n (line) => parser.parse(line[0]).map((token) => {\n let color;\n let bgColor;\n if (token.decorations.has(\"reverse\")) {\n color = token.background ? colorPalette.value(token.background) : theme.bg;\n bgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n } else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : void 0;\n }\n color = applyColorReplacements(color, colorReplacements);\n bgColor = applyColorReplacements(bgColor, colorReplacements);\n if (token.decorations.has(\"dim\"))\n color = dimColor(color);\n let fontStyle = FontStyle.None;\n if (token.decorations.has(\"bold\"))\n fontStyle |= FontStyle.Bold;\n if (token.decorations.has(\"italic\"))\n fontStyle |= FontStyle.Italic;\n if (token.decorations.has(\"underline\"))\n fontStyle |= FontStyle.Underline;\n return {\n content: token.value,\n offset: line[1],\n // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle\n };\n })\n );\n}\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);\n if (hexMatch) {\n if (hexMatch[3]) {\n const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2).toString(16).padStart(2, \"0\");\n return `#${hexMatch[1]}${hexMatch[2]}${alpha}`;\n } else if (hexMatch[2]) {\n return `#${hexMatch[1]}${hexMatch[2]}80`;\n } else {\n return `#${Array.from(hexMatch[1]).map((x) => `${x}${x}`).join(\"\")}80`;\n }\n }\n const cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n if (cssVarMatch)\n return `var(${cssVarMatch[1]}-dim)`;\n return color;\n}\n\nfunction codeToTokensBase(internal, code, options = {}) {\n const {\n lang = \"text\",\n theme: themeName = internal.getLoadedThemes()[0]\n } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n return splitLines(code).map((line) => [{ content: line[0], offset: line[1] }]);\n const { theme, colorMap } = internal.setTheme(themeName);\n if (lang === \"ansi\")\n return tokenizeAnsiWithTheme(theme, code, options);\n const _grammar = internal.getLanguage(lang);\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError$1(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (!options.grammarState.themes.includes(theme.name)) {\n throw new ShikiError$1(`Grammar state themes \"${options.grammarState.themes}\" do not contain highlight theme \"${theme.name}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(...args) {\n if (args.length === 2) {\n return getLastGrammarStateFromMap(args[1]);\n }\n const [internal, code, options = {}] = args;\n const {\n lang = \"text\",\n theme: themeName = internal.getLoadedThemes()[0]\n } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError$1(\"Plain language does not have grammar state\");\n if (lang === \"ansi\")\n throw new ShikiError$1(\"ANSI language does not have grammar state\");\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(\n _tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack,\n _grammar.name,\n theme.name\n );\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const result = _tokenizeWithTheme(code, grammar, theme, colorMap, options);\n const grammarState = new GrammarState(\n _tokenizeWithTheme(code, grammar, theme, colorMap, options).stateStack,\n grammar.name,\n theme.name\n );\n setLastGrammarStateToMap(result.tokens, grammarState);\n return result.tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const {\n tokenizeMaxLineLength = 0,\n tokenizeTimeLimit = 500\n } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState ? getGrammarStack(options.grammarState, theme.name) ?? INITIAL : options.grammarContextCode != null ? _tokenizeWithTheme(\n options.grammarContextCode,\n grammar,\n theme,\n colorMap,\n {\n ...options,\n grammarState: void 0,\n grammarContextCode: void 0\n }\n ).stateStack : INITIAL;\n let actual = [];\n const final = [];\n for (let i = 0, len = lines.length; i < len; i++) {\n const [line, lineOffset] = lines[i];\n if (line === \"\") {\n actual = [];\n final.push([]);\n continue;\n }\n if (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n actual = [];\n final.push([{\n content: line,\n offset: lineOffset,\n color: \"\",\n fontStyle: 0\n }]);\n continue;\n }\n let resultWithScopes;\n let tokensWithScopes;\n let tokensWithScopesIndex;\n if (options.includeExplanation) {\n resultWithScopes = grammar.tokenizeLine(line, stateStack);\n tokensWithScopes = resultWithScopes.tokens;\n tokensWithScopesIndex = 0;\n }\n const result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n const tokensLength = result.tokens.length / 2;\n for (let j = 0; j < tokensLength; j++) {\n const startIndex = result.tokens[2 * j];\n const nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n if (startIndex === nextStartIndex)\n continue;\n const metadata = result.tokens[2 * j + 1];\n const color = applyColorReplacements(\n colorMap[EncodedTokenMetadata.getForeground(metadata)],\n colorReplacements\n );\n const fontStyle = EncodedTokenMetadata.getFontStyle(metadata);\n const token = {\n content: line.substring(startIndex, nextStartIndex),\n offset: lineOffset + startIndex,\n color,\n fontStyle\n };\n if (options.includeExplanation) {\n const themeSettingsSelectors = [];\n if (options.includeExplanation !== \"scopeName\") {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case \"string\":\n selectors = setting.scope.split(/,/).map((scope) => scope.trim());\n break;\n case \"object\":\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map((selector) => selector.split(/ /))\n });\n }\n }\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(\n tokenWithScopes.startIndex,\n tokenWithScopes.endIndex\n );\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: options.includeExplanation === \"scopeName\" ? explainThemeScopesNameOnly(\n tokenWithScopes.scopes\n ) : explainThemeScopesFull(\n themeSettingsSelectors,\n tokenWithScopes.scopes\n )\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack\n };\n}\nfunction explainThemeScopesNameOnly(scopes) {\n return scopes.map((scope) => ({ scopeName: scope }));\n}\nfunction explainThemeScopesFull(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, scopes.slice(0, i))\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope || scope.substring(0, selector.length) === selector && scope[selector.length] === \".\";\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break;\n }\n }\n }\n return result;\n}\n\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({ color: i[0], theme: i[1] }));\n const themedTokens = themes.map((t) => {\n const tokens2 = codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme\n });\n const state = getLastGrammarStateFromMap(tokens2);\n const theme = typeof t.theme === \"string\" ? t.theme : t.theme.name;\n return {\n tokens: tokens2,\n state,\n theme\n };\n });\n const tokens = syncThemesTokenization(\n ...themedTokens.map((i) => i.tokens)\n );\n const mergedTokens = tokens[0].map(\n (line, lineIdx) => line.map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset\n };\n if (\"includeExplanation\" in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const {\n content: _,\n explanation: __,\n offset: ___,\n ...styles\n } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n })\n );\n const mergedGrammarState = themedTokens[0].state ? new GrammarState(\n Object.fromEntries(themedTokens.map((s) => [s.theme, s.state?.getInternalStack(s.theme)])),\n themedTokens[0].state.lang\n ) : void 0;\n if (mergedGrammarState)\n setLastGrammarStateToMap(mergedTokens, mergedGrammarState);\n return mergedTokens;\n}\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map((t) => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i2) => t.push(outLines[i2]));\n const indexes = lines.map(() => 0);\n const current = lines.map((l) => l[0]);\n while (current.every((t) => t)) {\n const minLength = Math.min(...current.map((t) => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n } else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength)\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength\n };\n }\n }\n }\n }\n return outThemes;\n}\n\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n let grammarState;\n if (\"themes\" in options) {\n const {\n defaultColor = \"light\",\n cssVariablePrefix = \"--shiki-\"\n } = options;\n const themes = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({ color: i[0], theme: i[1] })).sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError$1(\"`themes` option must not be empty\");\n const themeTokens = codeToTokensWithThemes(\n internal,\n code,\n options\n );\n grammarState = getLastGrammarStateFromMap(themeTokens);\n if (defaultColor && !themes.find((t) => t.color === defaultColor))\n throw new ShikiError$1(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map((t) => internal.getTheme(t.theme));\n const themesOrder = themes.map((t) => t.color);\n tokens = themeTokens.map((line) => line.map((token) => mergeToken(token, themesOrder, cssVariablePrefix, defaultColor)));\n if (grammarState)\n setLastGrammarStateToMap(tokens, grammarState);\n const themeColorReplacements = themes.map((t) => resolveColorReplacements(t.theme, options));\n fg = themes.map((t, idx) => (idx === 0 && defaultColor ? \"\" : `${cssVariablePrefix + t.color}:`) + (applyColorReplacements(themeRegs[idx].fg, themeColorReplacements[idx]) || \"inherit\")).join(\";\");\n bg = themes.map((t, idx) => (idx === 0 && defaultColor ? \"\" : `${cssVariablePrefix + t.color}-bg:`) + (applyColorReplacements(themeRegs[idx].bg, themeColorReplacements[idx]) || \"inherit\")).join(\";\");\n themeName = `shiki-themes ${themeRegs.map((t) => t.name).join(\" \")}`;\n rootStyle = defaultColor ? void 0 : [fg, bg].join(\";\");\n } else if (\"theme\" in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(\n internal,\n code,\n options\n );\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n grammarState = getLastGrammarStateFromMap(tokens);\n } else {\n throw new ShikiError$1(\"Invalid options, either `theme` or `themes` must be provided\");\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n grammarState\n };\n}\nfunction mergeToken(merged, variantsOrder, cssVariablePrefix, defaultColor) {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset\n };\n const styles = variantsOrder.map((t) => getTokenStyleObject(merged.variants[t]));\n const styleKeys = new Set(styles.flatMap((t) => Object.keys(t)));\n const mergedStyles = {};\n styles.forEach((cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || \"inherit\";\n if (idx === 0 && defaultColor) {\n mergedStyles[key] = value;\n } else {\n const keyName = key === \"color\" ? \"\" : key === \"background-color\" ? \"-bg\" : `-${key}`;\n const varKey = cssVariablePrefix + variantsOrder[idx] + (key === \"color\" ? \"\" : keyName);\n mergedStyles[varKey] = value;\n }\n }\n });\n token.htmlStyle = mergedStyles;\n return token;\n}\n\nfunction codeToHast(internal, code, options, transformerContext = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options)\n}) {\n let input = code;\n for (const transformer of getTransformers(options))\n input = transformer.preprocess?.call(transformerContext, input, options) || input;\n let {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n grammarState\n } = codeToTokens(internal, input, options);\n const {\n mergeWhitespaces = true\n } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === \"never\")\n tokens = splitWhitespaceTokens(tokens);\n const contextSource = {\n ...transformerContext,\n get source() {\n return input;\n }\n };\n for (const transformer of getTransformers(options))\n tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n return tokensToHast(\n tokens,\n {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle\n },\n contextSource,\n grammarState\n );\n}\nfunction tokensToHast(tokens, options, transformerContext, grammarState = getLastGrammarStateFromMap(tokens)) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: \"root\",\n children: []\n };\n const {\n structure = \"classic\",\n tabindex = \"0\"\n } = options;\n let preNode = {\n type: \"element\",\n tagName: \"pre\",\n properties: {\n class: `shiki ${options.themeName || \"\"}`,\n style: options.rootStyle || `background-color:${options.bg};color:${options.fg}`,\n ...tabindex !== false && tabindex != null ? {\n tabindex: tabindex.toString()\n } : {},\n ...Object.fromEntries(\n Array.from(\n Object.entries(options.meta || {})\n ).filter(([key]) => !key.startsWith(\"_\"))\n )\n },\n children: []\n };\n let codeNode = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: lines\n };\n const lineNodes = [];\n const context = {\n ...transformerContext,\n structure,\n addClassToHast,\n get source() {\n return transformerContext.source;\n },\n get tokens() {\n return tokens;\n },\n get options() {\n return options;\n },\n get root() {\n return root;\n },\n get pre() {\n return preNode;\n },\n get code() {\n return codeNode;\n },\n get lines() {\n return lineNodes;\n }\n };\n tokens.forEach((line, idx) => {\n if (idx) {\n if (structure === \"inline\")\n root.children.push({ type: \"element\", tagName: \"br\", properties: {}, children: [] });\n else if (structure === \"classic\")\n lines.push({ type: \"text\", value: \"\\n\" });\n }\n let lineNode = {\n type: \"element\",\n tagName: \"span\",\n properties: { class: \"line\" },\n children: []\n };\n let col = 0;\n for (const token of line) {\n let tokenNode = {\n type: \"element\",\n tagName: \"span\",\n properties: {\n ...token.htmlAttrs\n },\n children: [{ type: \"text\", value: token.content }]\n };\n if (typeof token.htmlStyle === \"string\")\n warnDeprecated(\"`htmlStyle` as a string is deprecated. Use an object instead.\");\n const style = stringifyTokenStyle(token.htmlStyle || getTokenStyleObject(token));\n if (style)\n tokenNode.properties.style = style;\n for (const transformer of transformers)\n tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode, token) || tokenNode;\n if (structure === \"inline\")\n root.children.push(tokenNode);\n else if (structure === \"classic\")\n lineNode.children.push(tokenNode);\n col += token.content.length;\n }\n if (structure === \"classic\") {\n for (const transformer of transformers)\n lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n lineNodes.push(lineNode);\n lines.push(lineNode);\n }\n });\n if (structure === \"classic\") {\n for (const transformer of transformers)\n codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n preNode.children.push(codeNode);\n for (const transformer of transformers)\n preNode = transformer?.pre?.call(context, preNode) || preNode;\n root.children.push(preNode);\n }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n if (grammarState)\n setLastGrammarStateToMap(result, grammarState);\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = \"\";\n let firstOffset = 0;\n line.forEach((token, idx) => {\n const isUnderline = token.fontStyle && token.fontStyle & FontStyle.Underline;\n const couldMerge = !isUnderline;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (!firstOffset)\n firstOffset = token.offset;\n carryOnContent += token.content;\n } else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content\n });\n } else {\n newLine.push(\n {\n content: carryOnContent,\n offset: firstOffset\n },\n token\n );\n }\n firstOffset = 0;\n carryOnContent = \"\";\n } else {\n newLine.push(token);\n }\n }\n });\n return newLine;\n });\n}\nfunction splitWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n return line.flatMap((token) => {\n if (token.content.match(/^\\s+$/))\n return token;\n const match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n if (!match)\n return token;\n const [, leading, content, trailing] = match;\n if (!leading && !trailing)\n return token;\n const expanded = [{\n ...token,\n offset: token.offset + leading.length,\n content\n }];\n if (leading) {\n expanded.unshift({\n content: leading,\n offset: token.offset\n });\n }\n if (trailing) {\n expanded.push({\n content: trailing,\n offset: token.offset + leading.length + content.length\n });\n }\n return expanded;\n });\n });\n}\n\nfunction codeToHtml(internal, code, options) {\n const context = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options)\n };\n let result = toHtml(codeToHast(internal, code, options, context));\n for (const transformer of getTransformers(options))\n result = transformer.postprocess?.call(context, result, options) || result;\n return result;\n}\n\nconst VSCODE_FALLBACK_EDITOR_FG = { light: \"#333333\", dark: \"#bbbbbb\" };\nconst VSCODE_FALLBACK_EDITOR_BG = { light: \"#fffffe\", dark: \"#1e1e1e\" };\nconst RESOLVED_KEY = \"__shiki_resolved\";\nfunction normalizeTheme(rawTheme) {\n if (rawTheme?.[RESOLVED_KEY])\n return rawTheme;\n const theme = {\n ...rawTheme\n };\n if (theme.tokenColors && !theme.settings) {\n theme.settings = theme.tokenColors;\n delete theme.tokenColors;\n }\n theme.type || (theme.type = \"dark\");\n theme.colorReplacements = { ...theme.colorReplacements };\n theme.settings || (theme.settings = []);\n let { bg, fg } = theme;\n if (!bg || !fg) {\n const globalSetting = theme.settings ? theme.settings.find((s) => !s.name && !s.scope) : void 0;\n if (globalSetting?.settings?.foreground)\n fg = globalSetting.settings.foreground;\n if (globalSetting?.settings?.background)\n bg = globalSetting.settings.background;\n if (!fg && theme?.colors?.[\"editor.foreground\"])\n fg = theme.colors[\"editor.foreground\"];\n if (!bg && theme?.colors?.[\"editor.background\"])\n bg = theme.colors[\"editor.background\"];\n if (!fg)\n fg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark;\n if (!bg)\n bg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark;\n theme.fg = fg;\n theme.bg = bg;\n }\n if (!(theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope)) {\n theme.settings.unshift({\n settings: {\n foreground: theme.fg,\n background: theme.bg\n }\n });\n }\n let replacementCount = 0;\n const replacementMap = /* @__PURE__ */ new Map();\n function getReplacementColor(value) {\n if (replacementMap.has(value))\n return replacementMap.get(value);\n replacementCount += 1;\n const hex = `#${replacementCount.toString(16).padStart(8, \"0\").toLowerCase()}`;\n if (theme.colorReplacements?.[`#${hex}`])\n return getReplacementColor(value);\n replacementMap.set(value, hex);\n return hex;\n }\n theme.settings = theme.settings.map((setting) => {\n const replaceFg = setting.settings?.foreground && !setting.settings.foreground.startsWith(\"#\");\n const replaceBg = setting.settings?.background && !setting.settings.background.startsWith(\"#\");\n if (!replaceFg && !replaceBg)\n return setting;\n const clone = {\n ...setting,\n settings: {\n ...setting.settings\n }\n };\n if (replaceFg) {\n const replacement = getReplacementColor(setting.settings.foreground);\n theme.colorReplacements[replacement] = setting.settings.foreground;\n clone.settings.foreground = replacement;\n }\n if (replaceBg) {\n const replacement = getReplacementColor(setting.settings.background);\n theme.colorReplacements[replacement] = setting.settings.background;\n clone.settings.background = replacement;\n }\n return clone;\n });\n for (const key of Object.keys(theme.colors || {})) {\n if (key === \"editor.foreground\" || key === \"editor.background\" || key.startsWith(\"terminal.ansi\")) {\n if (!theme.colors[key]?.startsWith(\"#\")) {\n const replacement = getReplacementColor(theme.colors[key]);\n theme.colorReplacements[replacement] = theme.colors[key];\n theme.colors[key] = replacement;\n }\n }\n }\n Object.defineProperty(theme, RESOLVED_KEY, {\n enumerable: false,\n writable: false,\n value: true\n });\n return theme;\n}\n\nasync function resolveLangs(langs) {\n return Array.from(new Set((await Promise.all(\n langs.filter((l) => !isSpecialLang(l)).map(async (lang) => await normalizeGetter(lang).then((r) => Array.isArray(r) ? r : [r]))\n )).flat()));\n}\nasync function resolveThemes(themes) {\n const resolved = await Promise.all(\n themes.map(\n async (theme) => isSpecialTheme(theme) ? null : normalizeTheme(await normalizeGetter(theme))\n )\n );\n return resolved.filter((i) => !!i);\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => {\n __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass Registry extends Registry$1 {\n constructor(_resolver, _themes, _langs, _alias = {}) {\n super(_resolver);\n this._resolver = _resolver;\n this._themes = _themes;\n this._langs = _langs;\n this._alias = _alias;\n __publicField$1(this, \"_resolvedThemes\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"_resolvedGrammars\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"_langMap\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"_langGraph\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"_textmateThemeCache\", /* @__PURE__ */ new WeakMap());\n __publicField$1(this, \"_loadedThemesCache\", null);\n __publicField$1(this, \"_loadedLanguagesCache\", null);\n this._themes.map((t) => this.loadTheme(t));\n this.loadLanguages(this._langs);\n }\n getTheme(theme) {\n if (typeof theme === \"string\")\n return this._resolvedThemes.get(theme);\n else\n return this.loadTheme(theme);\n }\n loadTheme(theme) {\n const _theme = normalizeTheme(theme);\n if (_theme.name) {\n this._resolvedThemes.set(_theme.name, _theme);\n this._loadedThemesCache = null;\n }\n return _theme;\n }\n getLoadedThemes() {\n if (!this._loadedThemesCache)\n this._loadedThemesCache = [...this._resolvedThemes.keys()];\n return this._loadedThemesCache;\n }\n // Override and re-implement this method to cache the textmate themes as `TextMateTheme.createFromRawTheme`\n // is expensive. Themes can switch often especially for dual-theme support.\n //\n // The parent class also accepts `colorMap` as the second parameter, but since we don't use that,\n // we omit here so it's easier to cache the themes.\n setTheme(theme) {\n let textmateTheme = this._textmateThemeCache.get(theme);\n if (!textmateTheme) {\n textmateTheme = Theme.createFromRawTheme(theme);\n this._textmateThemeCache.set(theme, textmateTheme);\n }\n this._syncRegistry.setTheme(textmateTheme);\n }\n getGrammar(name) {\n if (this._alias[name]) {\n const resolved = /* @__PURE__ */ new Set([name]);\n while (this._alias[name]) {\n name = this._alias[name];\n if (resolved.has(name))\n throw new ShikiError(`Circular alias \\`${Array.from(resolved).join(\" -> \")} -> ${name}\\``);\n resolved.add(name);\n }\n }\n return this._resolvedGrammars.get(name);\n }\n loadLanguage(lang) {\n if (this.getGrammar(lang.name))\n return;\n const embeddedLazilyBy = new Set(\n [...this._langMap.values()].filter((i) => i.embeddedLangsLazy?.includes(lang.name))\n );\n this._resolver.addLanguage(lang);\n const grammarConfig = {\n balancedBracketSelectors: lang.balancedBracketSelectors || [\"*\"],\n unbalancedBracketSelectors: lang.unbalancedBracketSelectors || []\n };\n this._syncRegistry._rawGrammars.set(lang.scopeName, lang);\n const g = this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig);\n g.name = lang.name;\n this._resolvedGrammars.set(lang.name, g);\n if (lang.aliases) {\n lang.aliases.forEach((alias) => {\n this._alias[alias] = lang.name;\n });\n }\n this._loadedLanguagesCache = null;\n if (embeddedLazilyBy.size) {\n for (const e of embeddedLazilyBy) {\n this._resolvedGrammars.delete(e.name);\n this._loadedLanguagesCache = null;\n this._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n this._syncRegistry?._grammars?.delete(e.scopeName);\n this.loadLanguage(this._langMap.get(e.name));\n }\n }\n }\n dispose() {\n super.dispose();\n this._resolvedThemes.clear();\n this._resolvedGrammars.clear();\n this._langMap.clear();\n this._langGraph.clear();\n this._loadedThemesCache = null;\n }\n loadLanguages(langs) {\n for (const lang of langs)\n this.resolveEmbeddedLanguages(lang);\n const langsGraphArray = Array.from(this._langGraph.entries());\n const missingLangs = langsGraphArray.filter(([_, lang]) => !lang);\n if (missingLangs.length) {\n const dependents = langsGraphArray.filter(([_, lang]) => lang && lang.embeddedLangs?.some((l) => missingLangs.map(([name]) => name).includes(l))).filter((lang) => !missingLangs.includes(lang));\n throw new ShikiError(`Missing languages ${missingLangs.map(([name]) => `\\`${name}\\``).join(\", \")}, required by ${dependents.map(([name]) => `\\`${name}\\``).join(\", \")}`);\n }\n for (const [_, lang] of langsGraphArray)\n this._resolver.addLanguage(lang);\n for (const [_, lang] of langsGraphArray)\n this.loadLanguage(lang);\n }\n getLoadedLanguages() {\n if (!this._loadedLanguagesCache) {\n this._loadedLanguagesCache = [\n .../* @__PURE__ */ new Set([...this._resolvedGrammars.keys(), ...Object.keys(this._alias)])\n ];\n }\n return this._loadedLanguagesCache;\n }\n resolveEmbeddedLanguages(lang) {\n this._langMap.set(lang.name, lang);\n this._langGraph.set(lang.name, lang);\n if (lang.embeddedLangs) {\n for (const embeddedLang of lang.embeddedLangs)\n this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n }\n }\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass Resolver {\n constructor(engine, langs) {\n __publicField(this, \"_langs\", /* @__PURE__ */ new Map());\n __publicField(this, \"_scopeToLang\", /* @__PURE__ */ new Map());\n __publicField(this, \"_injections\", /* @__PURE__ */ new Map());\n __publicField(this, \"_onigLib\");\n this._onigLib = {\n createOnigScanner: (patterns) => engine.createScanner(patterns),\n createOnigString: (s) => engine.createString(s)\n };\n langs.forEach((i) => this.addLanguage(i));\n }\n get onigLib() {\n return this._onigLib;\n }\n getLangRegistration(langIdOrAlias) {\n return this._langs.get(langIdOrAlias);\n }\n loadGrammar(scopeName) {\n return this._scopeToLang.get(scopeName);\n }\n addLanguage(l) {\n this._langs.set(l.name, l);\n if (l.aliases) {\n l.aliases.forEach((a) => {\n this._langs.set(a, l);\n });\n }\n this._scopeToLang.set(l.scopeName, l);\n if (l.injectTo) {\n l.injectTo.forEach((i) => {\n if (!this._injections.get(i))\n this._injections.set(i, []);\n this._injections.get(i).push(l.scopeName);\n });\n }\n }\n getInjections(scopeName) {\n const scopeParts = scopeName.split(\".\");\n let injections = [];\n for (let i = 1; i <= scopeParts.length; i++) {\n const subScopeName = scopeParts.slice(0, i).join(\".\");\n injections = [...injections, ...this._injections.get(subScopeName) || []];\n }\n return injections;\n }\n}\n\nlet instancesCount = 0;\nfunction createShikiInternalSync(options) {\n instancesCount += 1;\n if (options.warnings !== false && instancesCount >= 10 && instancesCount % 10 === 0)\n console.warn(`[Shiki] ${instancesCount} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \\`highlighter.dispose()\\` to release unused instances.`);\n let isDisposed = false;\n if (!options.engine)\n throw new ShikiError(\"`engine` option is required for synchronous mode\");\n const langs = (options.langs || []).flat(1);\n const themes = (options.themes || []).flat(1).map(normalizeTheme);\n const resolver = new Resolver(options.engine, langs);\n const _registry = new Registry(resolver, themes, langs, options.langAlias);\n let _lastTheme;\n function getLanguage(name) {\n ensureNotDisposed();\n const _lang = _registry.getGrammar(typeof name === \"string\" ? name : name.name);\n if (!_lang)\n throw new ShikiError(`Language \\`${name}\\` not found, you may need to load it first`);\n return _lang;\n }\n function getTheme(name) {\n if (name === \"none\")\n return { bg: \"\", fg: \"\", name: \"none\", settings: [], type: \"dark\" };\n ensureNotDisposed();\n const _theme = _registry.getTheme(name);\n if (!_theme)\n throw new ShikiError(`Theme \\`${name}\\` not found, you may need to load it first`);\n return _theme;\n }\n function setTheme(name) {\n ensureNotDisposed();\n const theme = getTheme(name);\n if (_lastTheme !== name) {\n _registry.setTheme(theme);\n _lastTheme = name;\n }\n const colorMap = _registry.getColorMap();\n return {\n theme,\n colorMap\n };\n }\n function getLoadedThemes() {\n ensureNotDisposed();\n return _registry.getLoadedThemes();\n }\n function getLoadedLanguages() {\n ensureNotDisposed();\n return _registry.getLoadedLanguages();\n }\n function loadLanguageSync(...langs2) {\n ensureNotDisposed();\n _registry.loadLanguages(langs2.flat(1));\n }\n async function loadLanguage(...langs2) {\n return loadLanguageSync(await resolveLangs(langs2));\n }\n function loadThemeSync(...themes2) {\n ensureNotDisposed();\n for (const theme of themes2.flat(1)) {\n _registry.loadTheme(theme);\n }\n }\n async function loadTheme(...themes2) {\n ensureNotDisposed();\n return loadThemeSync(await resolveThemes(themes2));\n }\n function ensureNotDisposed() {\n if (isDisposed)\n throw new ShikiError(\"Shiki instance has been disposed\");\n }\n function dispose() {\n if (isDisposed)\n return;\n isDisposed = true;\n _registry.dispose();\n instancesCount -= 1;\n }\n return {\n setTheme,\n getTheme,\n getLanguage,\n getLoadedThemes,\n getLoadedLanguages,\n loadLanguage,\n loadLanguageSync,\n loadTheme,\n loadThemeSync,\n dispose,\n [Symbol.dispose]: dispose\n };\n}\n\nasync function createShikiInternal(options = {}) {\n if (options.loadWasm) {\n warnDeprecated(\"`loadWasm` option is deprecated. Use `engine: createOnigurumaEngine(loadWasm)` instead.\");\n }\n const [\n themes,\n langs,\n engine\n ] = await Promise.all([\n resolveThemes(options.themes || []),\n resolveLangs(options.langs || []),\n options.engine || createOnigurumaEngine$1(options.loadWasm || getDefaultWasmLoader())\n ]);\n return createShikiInternalSync({\n ...options,\n loadWasm: void 0,\n themes,\n langs,\n engine\n });\n}\nfunction getShikiInternal(options = {}) {\n warnDeprecated(\"`getShikiInternal` is deprecated. Use `createShikiInternal` instead.\");\n return createShikiInternal(options);\n}\n\nasync function createHighlighterCore(options = {}) {\n const internal = await createShikiInternal(options);\n return {\n getLastGrammarState: (...args) => getLastGrammarState(internal, ...args),\n codeToTokensBase: (code, options2) => codeToTokensBase(internal, code, options2),\n codeToTokensWithThemes: (code, options2) => codeToTokensWithThemes(internal, code, options2),\n codeToTokens: (code, options2) => codeToTokens(internal, code, options2),\n codeToHast: (code, options2) => codeToHast(internal, code, options2),\n codeToHtml: (code, options2) => codeToHtml(internal, code, options2),\n ...internal,\n getInternalContext: () => internal\n };\n}\nfunction createHighlighterCoreSync(options = {}) {\n const internal = createShikiInternalSync(options);\n return {\n getLastGrammarState: (...args) => getLastGrammarState(internal, ...args),\n codeToTokensBase: (code, options2) => codeToTokensBase(internal, code, options2),\n codeToTokensWithThemes: (code, options2) => codeToTokensWithThemes(internal, code, options2),\n codeToTokens: (code, options2) => codeToTokens(internal, code, options2),\n codeToHast: (code, options2) => codeToHast(internal, code, options2),\n codeToHtml: (code, options2) => codeToHtml(internal, code, options2),\n ...internal,\n getInternalContext: () => internal\n };\n}\nfunction makeSingletonHighlighterCore(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighterCore2(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || []\n });\n return _shiki;\n } else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...options.themes || []),\n s.loadLanguage(...options.langs || [])\n ]);\n return s;\n }\n }\n return getSingletonHighlighterCore2;\n}\nconst getSingletonHighlighterCore = /* @__PURE__ */ makeSingletonHighlighterCore(createHighlighterCore);\nfunction getHighlighterCore(options = {}) {\n warnDeprecated(\"`getHighlighterCore` is deprecated. Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.\");\n return createHighlighterCore(options);\n}\n\nfunction createdBundledHighlighter(arg1, arg2, arg3) {\n let bundledLanguages;\n let bundledThemes;\n let engine;\n if (arg2) {\n warnDeprecated(\"`createdBundledHighlighter` signature with `bundledLanguages` and `bundledThemes` is deprecated. Use the options object signature instead.\");\n bundledLanguages = arg1;\n bundledThemes = arg2;\n engine = () => createOnigurumaEngine(arg3);\n } else {\n const options = arg1;\n bundledLanguages = options.langs;\n bundledThemes = options.themes;\n engine = options.engine;\n }\n async function createHighlighter(options) {\n function resolveLang(lang) {\n if (typeof lang === \"string\") {\n if (isSpecialLang(lang))\n return [];\n const bundle = bundledLanguages[lang];\n if (!bundle)\n throw new ShikiError$1(`Language \\`${lang}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return lang;\n }\n function resolveTheme(theme) {\n if (isSpecialTheme(theme))\n return \"none\";\n if (typeof theme === \"string\") {\n const bundle = bundledThemes[theme];\n if (!bundle)\n throw new ShikiError$1(`Theme \\`${theme}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return theme;\n }\n const _themes = (options.themes ?? []).map((i) => resolveTheme(i));\n const langs = (options.langs ?? []).map((i) => resolveLang(i));\n const core = await createHighlighterCore({\n engine: engine(),\n ...options,\n themes: _themes,\n langs\n });\n return {\n ...core,\n loadLanguage(...langs2) {\n return core.loadLanguage(...langs2.map(resolveLang));\n },\n loadTheme(...themes) {\n return core.loadTheme(...themes.map(resolveTheme));\n }\n };\n }\n return createHighlighter;\n}\nfunction makeSingletonHighlighter(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighter(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || []\n });\n return _shiki;\n } else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...options.themes || []),\n s.loadLanguage(...options.langs || [])\n ]);\n return s;\n }\n }\n return getSingletonHighlighter;\n}\nfunction createSingletonShorthands(createHighlighter) {\n const getSingletonHighlighter = makeSingletonHighlighter(createHighlighter);\n return {\n getSingletonHighlighter(options) {\n return getSingletonHighlighter(options);\n },\n async codeToHtml(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: \"theme\" in options ? [options.theme] : Object.values(options.themes)\n });\n return shiki.codeToHtml(code, options);\n },\n async codeToHast(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: \"theme\" in options ? [options.theme] : Object.values(options.themes)\n });\n return shiki.codeToHast(code, options);\n },\n async codeToTokens(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: \"theme\" in options ? [options.theme] : Object.values(options.themes)\n });\n return shiki.codeToTokens(code, options);\n },\n async codeToTokensBase(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme]\n });\n return shiki.codeToTokensBase(code, options);\n },\n async codeToTokensWithThemes(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: Object.values(options.themes).filter(Boolean)\n });\n return shiki.codeToTokensWithThemes(code, options);\n },\n async getLastGrammarState(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme]\n });\n return shiki.getLastGrammarState(code, options);\n }\n };\n}\n\nfunction createJavaScriptRegexEngine(options) {\n warnDeprecated(\"import `createJavaScriptRegexEngine` from `@shikijs/engine-javascript` or `shiki/engine/javascript` instead\");\n return createJavaScriptRegexEngine$1(options);\n}\nfunction defaultJavaScriptRegexConstructor(pattern) {\n warnDeprecated(\"import `defaultJavaScriptRegexConstructor` from `@shikijs/engine-javascript` or `shiki/engine/javascript` instead\");\n return defaultJavaScriptRegexConstructor$1(pattern);\n}\n\nfunction createCssVariablesTheme(options = {}) {\n const {\n name = \"css-variables\",\n variablePrefix = \"--shiki-\",\n fontStyle = true\n } = options;\n const variable = (name2) => {\n if (options.variableDefaults?.[name2])\n return `var(${variablePrefix}${name2}, ${options.variableDefaults[name2]})`;\n return `var(${variablePrefix}${name2})`;\n };\n const theme = {\n name,\n type: \"dark\",\n colors: {\n \"editor.foreground\": variable(\"foreground\"),\n \"editor.background\": variable(\"background\"),\n \"terminal.ansiBlack\": variable(\"ansi-black\"),\n \"terminal.ansiRed\": variable(\"ansi-red\"),\n \"terminal.ansiGreen\": variable(\"ansi-green\"),\n \"terminal.ansiYellow\": variable(\"ansi-yellow\"),\n \"terminal.ansiBlue\": variable(\"ansi-blue\"),\n \"terminal.ansiMagenta\": variable(\"ansi-magenta\"),\n \"terminal.ansiCyan\": variable(\"ansi-cyan\"),\n \"terminal.ansiWhite\": variable(\"ansi-white\"),\n \"terminal.ansiBrightBlack\": variable(\"ansi-bright-black\"),\n \"terminal.ansiBrightRed\": variable(\"ansi-bright-red\"),\n \"terminal.ansiBrightGreen\": variable(\"ansi-bright-green\"),\n \"terminal.ansiBrightYellow\": variable(\"ansi-bright-yellow\"),\n \"terminal.ansiBrightBlue\": variable(\"ansi-bright-blue\"),\n \"terminal.ansiBrightMagenta\": variable(\"ansi-bright-magenta\"),\n \"terminal.ansiBrightCyan\": variable(\"ansi-bright-cyan\"),\n \"terminal.ansiBrightWhite\": variable(\"ansi-bright-white\")\n },\n tokenColors: [\n {\n scope: [\n \"keyword.operator.accessor\",\n \"meta.group.braces.round.function.arguments\",\n \"meta.template.expression\",\n \"markup.fenced_code meta.embedded.block\"\n ],\n settings: {\n foreground: variable(\"foreground\")\n }\n },\n {\n scope: \"emphasis\",\n settings: {\n fontStyle: \"italic\"\n }\n },\n {\n scope: [\"strong\", \"markup.heading.markdown\", \"markup.bold.markdown\"],\n settings: {\n fontStyle: \"bold\"\n }\n },\n {\n scope: [\"markup.italic.markdown\"],\n settings: {\n fontStyle: \"italic\"\n }\n },\n {\n scope: \"meta.link.inline.markdown\",\n settings: {\n fontStyle: \"underline\",\n foreground: variable(\"token-link\")\n }\n },\n {\n scope: [\"string\", \"markup.fenced_code\", \"markup.inline\"],\n settings: {\n foreground: variable(\"token-string\")\n }\n },\n {\n scope: [\"comment\", \"string.quoted.docstring.multi\"],\n settings: {\n foreground: variable(\"token-comment\")\n }\n },\n {\n scope: [\n \"constant.numeric\",\n \"constant.language\",\n \"constant.other.placeholder\",\n \"constant.character.format.placeholder\",\n \"variable.language.this\",\n \"variable.other.object\",\n \"variable.other.class\",\n \"variable.other.constant\",\n \"meta.property-name\",\n \"meta.property-value\",\n \"support\"\n ],\n settings: {\n foreground: variable(\"token-constant\")\n }\n },\n {\n scope: [\n \"keyword\",\n \"storage.modifier\",\n \"storage.type\",\n \"storage.control.clojure\",\n \"entity.name.function.clojure\",\n \"entity.name.tag.yaml\",\n \"support.function.node\",\n \"support.type.property-name.json\",\n \"punctuation.separator.key-value\",\n \"punctuation.definition.template-expression\"\n ],\n settings: {\n foreground: variable(\"token-keyword\")\n }\n },\n {\n scope: \"variable.parameter.function\",\n settings: {\n foreground: variable(\"token-parameter\")\n }\n },\n {\n scope: [\n \"support.function\",\n \"entity.name.type\",\n \"entity.other.inherited-class\",\n \"meta.function-call\",\n \"meta.instance.constructor\",\n \"entity.other.attribute-name\",\n \"entity.name.function\",\n \"constant.keyword.clojure\"\n ],\n settings: {\n foreground: variable(\"token-function\")\n }\n },\n {\n scope: [\n \"entity.name.tag\",\n \"string.quoted\",\n \"string.regexp\",\n \"string.interpolated\",\n \"string.template\",\n \"string.unquoted.plain.out.yaml\",\n \"keyword.other.template\"\n ],\n settings: {\n foreground: variable(\"token-string-expression\")\n }\n },\n {\n scope: [\n \"punctuation.definition.arguments\",\n \"punctuation.definition.dict\",\n \"punctuation.separator\",\n \"meta.function-call.arguments\"\n ],\n settings: {\n foreground: variable(\"token-punctuation\")\n }\n },\n {\n // [Custom] Markdown links\n scope: [\n \"markup.underline.link\",\n \"punctuation.definition.metadata.markdown\"\n ],\n settings: {\n foreground: variable(\"token-link\")\n }\n },\n {\n // [Custom] Markdown list\n scope: [\"beginning.punctuation.definition.list.markdown\"],\n settings: {\n foreground: variable(\"token-string\")\n }\n },\n {\n // [Custom] Markdown punctuation definition brackets\n scope: [\n \"punctuation.definition.string.begin.markdown\",\n \"punctuation.definition.string.end.markdown\",\n \"string.other.link.title.markdown\",\n \"string.other.link.description.markdown\"\n ],\n settings: {\n foreground: variable(\"token-keyword\")\n }\n },\n {\n // [Custom] Diff\n scope: [\n \"markup.inserted\",\n \"meta.diff.header.to-file\",\n \"punctuation.definition.inserted\"\n ],\n settings: {\n foreground: variable(\"token-inserted\")\n }\n },\n {\n scope: [\n \"markup.deleted\",\n \"meta.diff.header.from-file\",\n \"punctuation.definition.deleted\"\n ],\n settings: {\n foreground: variable(\"token-deleted\")\n }\n },\n {\n scope: [\n \"markup.changed\",\n \"punctuation.definition.changed\"\n ],\n settings: {\n foreground: variable(\"token-changed\")\n }\n }\n ]\n };\n if (!fontStyle) {\n theme.tokenColors = theme.tokenColors?.map((tokenColor) => {\n if (tokenColor.settings?.fontStyle)\n delete tokenColor.settings.fontStyle;\n return tokenColor;\n });\n }\n return theme;\n}\n\nexport { addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createCssVariablesTheme, createHighlighterCore, createHighlighterCoreSync, createJavaScriptRegexEngine, createOnigurumaEngine, createPositionConverter, createShikiInternal, createShikiInternalSync, createSingletonShorthands, createWasmOnigEngine, createdBundledHighlighter, defaultJavaScriptRegexConstructor, getHighlighterCore, getShikiInternal, getSingletonHighlighterCore, getTokenStyleObject, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, loadWasm, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeGetter, normalizeTheme, resolveColorReplacements, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations, warnDeprecated };\n",
|
|
16
|
+
"import { warnDeprecated } from '@shikijs/core';\n\nconst getWasmInlined = async (info) => {\n warnDeprecated('`getWasmInlined` is deprecated. Use `import(\"shiki/wasm\")` instead.');\n return import('shiki/wasm').then((wasm) => wasm.default(info));\n};\n\nexport { getWasmInlined as g };\n",
|
|
17
|
+
"import { bundledLanguages } from './langs.mjs';\nexport { bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo } from './langs.mjs';\nimport { bundledThemes } from './themes.mjs';\nexport { bundledThemesInfo } from './themes.mjs';\nexport { g as getWasmInlined } from './wasm-dynamic-K7LwWlz7.js';\nimport { createdBundledHighlighter, createSingletonShorthands, warnDeprecated } from '@shikijs/core';\nexport * from '@shikijs/core';\nimport { createOnigurumaEngine } from '@shikijs/engine-oniguruma';\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter({\n langs: bundledLanguages,\n themes: bundledThemes,\n engine: () => createOnigurumaEngine(import('shiki/wasm'))\n});\nconst {\n codeToHtml,\n codeToHast,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState\n} = /* @__PURE__ */ createSingletonShorthands(\n createHighlighter\n);\nconst getHighlighter = (options) => {\n warnDeprecated(\"`getHighlighter` is deprecated. Use `createHighlighter` or `getSingletonHighlighter` instead.\");\n return createHighlighter(options);\n};\n\nexport { bundledLanguages, bundledThemes, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, getHighlighter, getLastGrammarState, getSingletonHighlighter };\n"
|
|
18
|
+
],
|
|
19
|
+
"mappings": ";4EAAA,FAAM,GAAuB,CAC3B,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,iBACN,KAAQ,eACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,eACN,KAAQ,eACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,qBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,cACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,cACN,KAAQ,cACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,WACN,KAAQ,WACR,QAAW,CACT,MACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,WACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,YACN,KAAQ,YACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,aACR,QAAW,CACT,OACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,YACN,KAAQ,YACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,IACN,KAAQ,IACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,eACR,QAAW,CACT,cACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,cACN,KAAQ,cACR,QAAW,CACT,MACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,KACR,QAAW,CACT,KACA,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,IACN,KAAQ,IACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,aACR,QAAW,CACT,YACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,cACN,KAAQ,cACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,QAAW,CACT,OACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,qBACN,KAAQ,uBACR,QAAW,CACT,IACA,MACA,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,oBACN,KAAQ,sBACR,QAAW,CACT,MACA,MACA,MACA,MACA,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,KACR,QAAW,CACT,KACA,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,WACN,KAAQ,WACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,WACN,KAAQ,WACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,qBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,qBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,KACN,KAAQ,KACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,YACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,gBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,kBACN,KAAQ,oBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,KACN,KAAQ,KACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,QAAW,CACT,YACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,qBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,aACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,QAAW,CACT,KACA,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,SACR,QAAW,CACT,OACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,WACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,WACR,QAAW,CACT,UACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,WACN,KAAQ,WACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,gBACR,QAAW,CACT,MACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,kBACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,WACN,KAAQ,WACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,cACN,KAAQ,cACR,QAAW,CACT,MACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,gBACN,KAAQ,gBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,KACN,KAAQ,aACR,QAAW,CACT,MACA,MACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,QAAW,CACT,KACA,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,oBACR,QAAW,CACT,UACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,QAAW,CACT,MACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,gBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,kBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,IACN,KAAQ,IACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,QAAW,CACT,OACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,gBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,0BACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,QAAW,CACT,OACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,mBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,YACN,KAAQ,YACR,QAAW,CACT,QACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,cACN,KAAQ,QACR,QAAW,CACT,OACA,KACA,QACA,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,eACN,KAAQ,gBACR,QAAW,CACT,SACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,YACN,KAAQ,YACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,WACN,KAAQ,WACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,oBACR,QAAW,CACT,mBACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,wBACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,QAAW,CACT,MACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,iBACN,KAAQ,gBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,gBACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,YACN,KAAQ,YACR,QAAW,CACT,KACA,QACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,uBACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,SACN,KAAQ,SACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,aACN,KAAQ,aACR,QAAW,CACT,IACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,WACN,KAAQ,WACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,QACN,KAAQ,QACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,IACN,KAAQ,IACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,KACN,KAAQ,eACR,QAAW,CACT,KACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,UACN,KAAQ,UACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,OACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,OACN,KAAQ,aACR,QAAW,CACT,MACA,WACF,EACA,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,MACN,KAAQ,MACR,OAAU,IAAa,6BACzB,EACA,CACE,GAAM,WACN,KAAQ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,EACA,YAAa,CACX,CACE,MAAO,CACL,4BACA,6CACA,2BACA,wCACF,EACA,SAAU,CACR,WAAY,EAAS,YAAY,CACnC,CACF,EACA,CACE,MAAO,WACP,SAAU,CACR,UAAW,QACb,CACF,EACA,CACE,MAAO,CAAC,SAAU,0BAA2B,sBAAsB,EACnE,SAAU,CACR,UAAW,MACb,CACF,EACA,CACE,MAAO,CAAC,wBAAwB,EAChC,SAAU,CACR,UAAW,QACb,CACF,EACA,CACE,MAAO,4BACP,SAAU,CACR,UAAW,YACX,WAAY,EAAS,YAAY,CACnC,CACF,EACA,CACE,MAAO,CAAC,SAAU,qBAAsB,eAAe,EACvD,SAAU,CACR,WAAY,EAAS,cAAc,CACrC,CACF,EACA,CACE,MAAO,CAAC,UAAW,+BAA+B,EAClD,SAAU,CACR,WAAY,EAAS,eAAe,CACtC,CACF,EACA,CACE,MAAO,CACL,mBACA,oBACA,6BACA,wCACA,yBACA,wBACA,uBACA,0BACA,qBACA,sBACA,SACF,EACA,SAAU,CACR,WAAY,EAAS,gBAAgB,CACvC,CACF,EACA,CACE,MAAO,CACL,UACA,mBACA,eACA,0BACA,+BACA,uBACA,wBACA,kCACA,kCACA,4CACF,EACA,SAAU,CACR,WAAY,EAAS,eAAe,CACtC,CACF,EACA,CACE,MAAO,8BACP,SAAU,CACR,WAAY,EAAS,iBAAiB,CACxC,CACF,EACA,CACE,MAAO,CACL,mBACA,mBACA,+BACA,qBACA,4BACA,8BACA,uBACA,0BACF,EACA,SAAU,CACR,WAAY,EAAS,gBAAgB,CACvC,CACF,EACA,CACE,MAAO,CACL,kBACA,gBACA,gBACA,sBACA,kBACA,iCACA,wBACF,EACA,SAAU,CACR,WAAY,EAAS,yBAAyB,CAChD,CACF,EACA,CACE,MAAO,CACL,mCACA,8BACA,wBACA,8BACF,EACA,SAAU,CACR,WAAY,EAAS,mBAAmB,CAC1C,CACF,EACA,CAEE,MAAO,CACL,wBACA,0CACF,EACA,SAAU,CACR,WAAY,EAAS,YAAY,CACnC,CACF,EACA,CAEE,MAAO,CAAC,gDAAgD,EA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",
|
|
20
|
+
"debugId": "47A5A93DD1206BE964756E2164756E21",
|
|
21
|
+
"names": []
|
|
22
|
+
}
|