@lofcz/tikz 0.2.1 → 0.2.2
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/README.md +5 -2
- package/package.json +1 -1
- package/runtime/dist/bundles/cm-tfm/chunks/0.br +0 -0
- package/runtime/dist/bundles/cm-tfm/chunks/1.br +0 -0
- package/runtime/dist/bundles/cm-tfm/chunks/2.br +0 -0
- package/runtime/dist/bundles/cm-tfm/chunks/3.br +0 -0
- package/runtime/dist/bundles/cm-tfm/files.index.json +1 -1
- package/runtime/dist/bundles/cm-tfm/manifest.json +1 -1
- package/runtime/dist/bundles/cm-type1/chunks/0.br +0 -0
- package/runtime/dist/bundles/cm-type1/chunks/1.br +0 -0
- package/runtime/dist/bundles/cm-type1/chunks/2.br +0 -0
- package/runtime/dist/bundles/cm-type1/chunks/3.br +0 -0
- package/runtime/dist/bundles/cm-type1/chunks/4.br +0 -0
- package/runtime/dist/bundles/cm-type1/chunks/5.br +0 -0
- package/runtime/dist/bundles/cm-type1/chunks/6.br +0 -0
- package/runtime/dist/bundles/cm-type1/chunks/7.br +0 -0
- package/runtime/dist/bundles/cm-type1/files.index.json +1 -1
- package/runtime/dist/bundles/cm-type1/manifest.json +1 -1
- package/runtime/dist/bundles/core/chunks/0.br +0 -0
- package/runtime/dist/bundles/core/chunks/1.br +0 -0
- package/runtime/dist/bundles/core/chunks/2.br +0 -0
- package/runtime/dist/bundles/core/files.index.json +1 -1
- package/runtime/dist/bundles/core/manifest.json +1 -1
- package/runtime/dist/bundles/filesystem.json +1 -0
- package/runtime/dist/bundles/latex-core/chunks/0.br +0 -0
- package/runtime/dist/bundles/latex-core/chunks/1.br +0 -0
- package/runtime/dist/bundles/latex-core/chunks/2.br +0 -0
- package/runtime/dist/bundles/latex-core/chunks/3.br +0 -0
- package/runtime/dist/bundles/latex-core/chunks/4.br +0 -0
- package/runtime/dist/bundles/latex-core/chunks/5.br +0 -0
- package/runtime/dist/bundles/latex-core/chunks/6.br +0 -0
- package/runtime/dist/bundles/latex-core/chunks/7.br +0 -0
- package/runtime/dist/bundles/latex-core/chunks/8.br +0 -0
- package/runtime/dist/bundles/latex-core/files.index.json +1 -1
- package/runtime/dist/bundles/latex-core/manifest.json +1 -1
- package/runtime/dist/bundles/latex-extra/chunks/0.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/1.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/10.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/11.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/12.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/13.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/14.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/15.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/16.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/17.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/18.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/19.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/2.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/20.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/21.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/22.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/23.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/24.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/25.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/3.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/4.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/5.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/6.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/7.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/8.br +0 -0
- package/runtime/dist/bundles/latex-extra/chunks/9.br +0 -0
- package/runtime/dist/bundles/latex-extra/files.index.json +1 -1
- package/runtime/dist/bundles/latex-extra/manifest.json +1 -1
- package/runtime/dist/bundles/lm-fonts/chunks/0.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/1.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/10.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/11.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/12.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/13.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/14.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/15.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/16.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/17.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/18.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/19.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/2.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/20.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/21.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/22.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/23.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/24.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/25.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/26.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/27.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/28.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/29.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/3.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/4.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/5.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/6.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/7.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/8.br +0 -0
- package/runtime/dist/bundles/lm-fonts/chunks/9.br +0 -0
- package/runtime/dist/bundles/lm-fonts/files.index.json +1 -1
- package/runtime/dist/bundles/lm-fonts/manifest.json +1 -1
- package/runtime/dist/bundles/luatex/chunks/0.br +0 -0
- package/runtime/dist/bundles/luatex/chunks/1.br +0 -0
- package/runtime/dist/bundles/luatex/chunks/2.br +0 -0
- package/runtime/dist/bundles/luatex/files.index.json +1 -1
- package/runtime/dist/bundles/luatex/manifest.json +1 -1
- package/runtime/dist/bundles/ps-fonts/chunks/0.br +0 -0
- package/runtime/dist/bundles/ps-fonts/chunks/1.br +0 -0
- package/runtime/dist/bundles/ps-fonts/chunks/2.br +0 -0
- package/runtime/dist/bundles/ps-fonts/chunks/3.br +0 -0
- package/runtime/dist/bundles/ps-fonts/chunks/4.br +0 -0
- package/runtime/dist/bundles/ps-fonts/chunks/5.br +0 -0
- package/runtime/dist/bundles/ps-fonts/files.index.json +1 -1
- package/runtime/dist/bundles/ps-fonts/manifest.json +1 -1
- package/runtime/dist/bundles/tex-plain/chunks/0.br +0 -0
- package/runtime/dist/bundles/tex-plain/chunks/1.br +0 -0
- package/runtime/dist/bundles/tex-plain/chunks/2.br +0 -0
- package/runtime/dist/bundles/tex-plain/chunks/3.br +0 -0
- package/runtime/dist/bundles/tex-plain/chunks/4.br +0 -0
- package/runtime/dist/bundles/tex-plain/chunks/5.br +0 -0
- package/runtime/dist/bundles/tex-plain/chunks/6.br +0 -0
- package/runtime/dist/bundles/tex-plain/files.index.json +1 -1
- package/runtime/dist/bundles/tex-plain/manifest.json +1 -1
- package/runtime/dist/bundles/tikz-snapshot/files.index.json +1 -1
- package/runtime/dist/bundles/tikz-snapshot/manifest.json +1 -1
- package/runtime/dist/index.js +1 -0
- package/runtime/dist/node.js +40 -26
- package/runtime/dist/types.d.ts +2 -0
- package/runtime/dist/vfs/bundle.d.ts +7 -0
- package/runtime/dist/vfs/bundle.js +20 -0
- package/runtime/upstream.json +1 -1
- package/src/deploy.js +14 -3
- package/src/index.js +3 -2
- package/src/worker.js +1 -1
- package/upstream.json +1 -1
- package/runtime/dist/bundles/cm-tfm/files.br +0 -0
- package/runtime/dist/bundles/cm-type1/files.br +0 -0
- package/runtime/dist/bundles/core/files.br +0 -0
- package/runtime/dist/bundles/latex-core/files.br +0 -0
- package/runtime/dist/bundles/latex-extra/files.br +0 -0
- package/runtime/dist/bundles/lm-fonts/files.br +0 -0
- package/runtime/dist/bundles/luatex/files.br +0 -0
- package/runtime/dist/bundles/ps-fonts/files.br +0 -0
- package/runtime/dist/bundles/tex-plain/files.br +0 -0
- /package/runtime/dist/bundles/tikz-snapshot/{files.br → chunks/0.br} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"tex-plain","version":"2025.1","texlive":"2025","files":{"tex/generic/atbegshi/atbegshi.sty":{"size":24708,"sha":"a73003b4bb2dc8a8"},"tex/generic/babel/hyphen.cfg":{"size":6445,"sha":"f646844e8fab61d1"},"tex/generic/babel/luababel.def":{"size":75294,"sha":"7d720228e51dc87c"},"tex/generic/bigintcalc/bigintcalc.sty":{"size":40635,"sha":"050f2ad3a3671a1f"},"tex/generic/bitset/bitset.sty":{"size":33961,"sha":"af5c7196c69dc9d2"},"tex/generic/chemfig/chemfig-lewis.tex":{"size":5803,"sha":"d907dab915078c7d"},"tex/generic/chemfig/chemfig.sty":{"size":388,"sha":"0c19604354900a8e"},"tex/generic/chemfig/chemfig.tex":{"size":125167,"sha":"18caf07da06abe7c"},"tex/generic/circuitikz/ctikzstyle-example.tex":{"size":280,"sha":"59f577f0360decc9"},"tex/generic/circuitikz/ctikzstyle-legacy.tex":{"size":3150,"sha":"b1b4fd1866df6d18"},"tex/generic/circuitikz/ctikzstyle-romano.tex":{"size":2240,"sha":"69878376ef7ec6ff"},"tex/generic/circuitikz/pgfcirc.defines.tex":{"size":47046,"sha":"ec30235b60a9f072"},"tex/generic/circuitikz/pgfcircbipoles.tex":{"size":319927,"sha":"2c526e5ac600455a"},"tex/generic/circuitikz/pgfcirccurrent.tex":{"size":9538,"sha":"b4067c61c07792dd"},"tex/generic/circuitikz/pgfcircflow.tex":{"size":9804,"sha":"959e6f05fcda8db2"},"tex/generic/circuitikz/pgfcirclabel.tex":{"size":15442,"sha":"ebf9761a4dbdc156"},"tex/generic/circuitikz/pgfcircmonopoles.tex":{"size":62349,"sha":"7531190c1ad26ad4"},"tex/generic/circuitikz/pgfcircmultipoles.tex":{"size":140232,"sha":"3760ab93dcda29df"},"tex/generic/circuitikz/pgfcircpath.tex":{"size":17175,"sha":"7a83c9af92d8dd1a"},"tex/generic/circuitikz/pgfcircquadpoles.tex":{"size":105987,"sha":"875371bdf94a1a42"},"tex/generic/circuitikz/pgfcircshapes.tex":{"size":33716,"sha":"4a72bd0ea8075199"},"tex/generic/circuitikz/pgfcirctripoles.tex":{"size":400264,"sha":"53cdb3a70e6a821f"},"tex/generic/circuitikz/pgfcircutils.tex":{"size":14587,"sha":"ed68f13d561e9d63"},"tex/generic/circuitikz/pgfcircvoltage.tex":{"size":36286,"sha":"821ac7ac0489c1dd"},"tex/generic/etex/etex.src":{"size":33286,"sha":"7af74a3fde135872"},"tex/generic/etexcmds/etexcmds.sty":{"size":7734,"sha":"a7db2834e02bd11b"},"tex/generic/gettitlestring/gettitlestring.sty":{"size":8371,"sha":"26ab10fd43fd5a90"},"tex/generic/hyphen/dumyhyph.tex":{"size":419,"sha":"99d210320228a242"},"tex/generic/hyphen/grahyph5.tex":{"size":36706,"sha":"eeb7329e7dd94b87"},"tex/generic/hyphen/grmhyph5.tex":{"size":5902,"sha":"becdf19387bc265d"},"tex/generic/hyphen/grphyph5.tex":{"size":13326,"sha":"1bfe51dcff12f444"},"tex/generic/hyphen/hyphen.tex":{"size":27860,"sha":"2c18acdc04c1a066"},"tex/generic/hyphen/hypht1.tex":{"size":9081,"sha":"6a96e10de9b34ad9"},"tex/generic/hyphen/ibyhyph.tex":{"size":28651,"sha":"b12db81b0c101b38"},"tex/generic/hyphen/zerohyph.tex":{"size":402,"sha":"80b6e5b7ff3bcd2f"},"tex/generic/iftex/ifetex.sty":{"size":529,"sha":"6a522456643896e4"},"tex/generic/iftex/ifluatex.sty":{"size":492,"sha":"1f1dd9c7cc37bfc5"},"tex/generic/iftex/ifpdf.sty":{"size":480,"sha":"92b2cd262dc42d52"},"tex/generic/iftex/iftex.sty":{"size":7984,"sha":"0dc0cefe2131f823"},"tex/generic/iftex/ifvtex.sty":{"size":1057,"sha":"1138730b9ad7d9f6"},"tex/generic/iftex/ifxetex.sty":{"size":488,"sha":"b4729967ca572a3f"},"tex/generic/infwarerr/infwarerr.sty":{"size":8356,"sha":"8c3e23b8bb7d940f"},"tex/generic/intcalc/intcalc.sty":{"size":31769,"sha":"1343ba1b10b245bf"},"tex/generic/kvdefinekeys/kvdefinekeys.sty":{"size":5412,"sha":"c42f0c2628dc5fbd"},"tex/generic/ltxcmds/ltxcmds.sty":{"size":17865,"sha":"8fea89995d37ba4c"},"tex/generic/luatex85/luatex85.sty":{"size":5870,"sha":"6d2a0ec7974247ec"},"tex/generic/mp-tikz-wasm/tikzlibrarysvg.attributes.code.tex":{"size":6164,"sha":"a4e73b1206f18bee"},"tex/generic/pdfescape/pdfescape.sty":{"size":19007,"sha":"b3f0e56366c11b85"},"tex/generic/pdftex/glyphtounicode.tex":{"size":216747,"sha":"395e568c1f4db5e8"},"tex/generic/pdftex/pdfcolor.tex":{"size":5687,"sha":"84b30448637fd29e"},"tex/generic/pdftexcmds/pdftexcmds.lua":{"size":9447,"sha":"872a8889c423ec55"},"tex/generic/pdftexcmds/pdftexcmds.sty":{"size":20089,"sha":"2df7e0bd148c99d8"},"tex/generic/simplekv/simplekv.sty":{"size":161,"sha":"3fc1096a8c34760b"},"tex/generic/simplekv/simplekv.tex":{"size":12655,"sha":"d4d089826306a58a"},"tex/generic/stringenc/se-ascii-print.def":{"size":3257,"sha":"77c07ed6267049f3"},"tex/generic/stringenc/se-ascii.def":{"size":2870,"sha":"0c8d40cb65411fee"},"tex/generic/stringenc/se-clean7bit.def":{"size":3765,"sha":"aa70dd7e8990b2cb"},"tex/generic/stringenc/se-cp1250.def":{"size":10277,"sha":"d2068e5fa58864c9"},"tex/generic/stringenc/se-cp1251.def":{"size":10128,"sha":"63704757c1c8d231"},"tex/generic/stringenc/se-cp1252.def":{"size":4858,"sha":"e21b611d03bf8e1f"},"tex/generic/stringenc/se-cp1257.def":{"size":9657,"sha":"4ec2651c335029d2"},"tex/generic/stringenc/se-cp437.def":{"size":10585,"sha":"05e91523dc818207"},"tex/generic/stringenc/se-cp850.def":{"size":10434,"sha":"b15d916580e45d29"},"tex/generic/stringenc/se-cp852.def":{"size":10733,"sha":"3dcbfa0c3487f170"},"tex/generic/stringenc/se-cp855.def":{"size":10349,"sha":"3b185da948e95ed6"},"tex/generic/stringenc/se-cp858.def":{"size":10415,"sha":"1e40d8d74672e14a"},"tex/generic/stringenc/se-cp865.def":{"size":10605,"sha":"24af379d5e7ad707"},"tex/generic/stringenc/se-cp866.def":{"size":10531,"sha":"a45de2d50e0d2733"},"tex/generic/stringenc/se-dec-mcs.def":{"size":7864,"sha":"91dc69b841166064"},"tex/generic/stringenc/se-iso-8859-1.def":{"size":3357,"sha":"74c79c0b12b0d39b"},"tex/generic/stringenc/se-iso-8859-10.def":{"size":9508,"sha":"9bfcbfdd02bf6695"},"tex/generic/stringenc/se-iso-8859-11.def":{"size":8046,"sha":"5158a22308bb0043"},"tex/generic/stringenc/se-iso-8859-13.def":{"size":9190,"sha":"787d127c7ad98a00"},"tex/generic/stringenc/se-iso-8859-14.def":{"size":9571,"sha":"7e25fdaaa78e3120"},"tex/generic/stringenc/se-iso-8859-15.def":{"size":9131,"sha":"266c8fb3f31653cb"},"tex/generic/stringenc/se-iso-8859-16.def":{"size":9476,"sha":"29a72ed727e910c2"},"tex/generic/stringenc/se-iso-8859-2.def":{"size":9224,"sha":"2a7c60979e263e0b"},"tex/generic/stringenc/se-iso-8859-3.def":{"size":8734,"sha":"9a6bdf7bce6b185c"},"tex/generic/stringenc/se-iso-8859-4.def":{"size":9196,"sha":"b0737bf21ae2dc40"},"tex/generic/stringenc/se-iso-8859-5.def":{"size":8835,"sha":"ff7ccc62228088ee"},"tex/generic/stringenc/se-iso-8859-6.def":{"size":5528,"sha":"f9fba42471db4619"},"tex/generic/stringenc/se-iso-8859-7.def":{"size":8589,"sha":"4efcfb39cd3fb844"},"tex/generic/stringenc/se-iso-8859-8.def":{"size":5956,"sha":"455433c65e5975f7"},"tex/generic/stringenc/se-iso-8859-9.def":{"size":8976,"sha":"4c3080873d39ce9c"},"tex/generic/stringenc/se-koi8-r.def":{"size":10600,"sha":"62b74a3118529b10"},"tex/generic/stringenc/se-mac-centeuro.def":{"size":11598,"sha":"9e648981230327d5"},"tex/generic/stringenc/se-mac-cyrillic.def":{"size":10942,"sha":"f77f04a3250c56a6"},"tex/generic/stringenc/se-mac-roman.def":{"size":10575,"sha":"a00115bfe651fc0a"},"tex/generic/stringenc/se-nextstep.def":{"size":10464,"sha":"799ca9c1eef76dd1"},"tex/generic/stringenc/se-pdfdoc.def":{"size":5108,"sha":"f168cc1772edb0e2"},"tex/generic/stringenc/se-utf16le.def":{"size":2764,"sha":"20213ef0fd25b6f9"},"tex/generic/stringenc/se-utf32be.def":{"size":4522,"sha":"aed4597f5fce2d1d"},"tex/generic/stringenc/se-utf32le.def":{"size":4718,"sha":"a00be3fae9ee794c"},"tex/generic/stringenc/se-utf8.def":{"size":11635,"sha":"aeecc3b65c8002f2"},"tex/generic/stringenc/stringenc.sty":{"size":21514,"sha":"b134a7bba648a698"},"tex/generic/tex-ini-files/dviluatex.ini":{"size":82,"sha":"cc7cb46692f7a54b"},"tex/generic/tex-ini-files/luatex.ini":{"size":289,"sha":"bc47cd163289fecb"},"tex/generic/tex-ini-files/luatexconfig.tex":{"size":2036,"sha":"e455906a91a8a040"},"tex/generic/tex-ini-files/luatexiniconfig.tex":{"size":606,"sha":"b3e97563b977e36e"},"tex/generic/tex-ini-files/pdftexconfig.tex":{"size":549,"sha":"87102cd6fa7307af"},"tex/generic/tex-ini-files/pdfxmltex.ini":{"size":243,"sha":"0286c93d313d8034"},"tex/generic/tex-ini-files/xetex.ini":{"size":3428,"sha":"6aa9a56c7947f655"},"tex/generic/tex-ini-files/xmltex.ini":{"size":160,"sha":"e7bb21eb0a3457d9"},"tex/generic/uniquecounter/uniquecounter.sty":{"size":7008,"sha":"9d11c81501953d68"},"tex/generic/xkeyval/keyval.tex":{"size":2725,"sha":"7a8dbfe90926a910"},"tex/generic/xkeyval/pst-xkey.tex":{"size":2369,"sha":"4549723f49707c14"},"tex/generic/xkeyval/xkeyval.tex":{"size":19231,"sha":"29c2b60c6973c374"},"tex/generic/xkeyval/xkvtxhdr.tex":{"size":2856,"sha":"cc6150c71e73d1dd"},"tex/generic/xkeyval/xkvutils.tex":{"size":7677,"sha":"5e82c31b1b4492c8"},"tex/plain/base/fontchart.tex":{"size":3201,"sha":"c92c60b5aa85a634"},"tex/plain/base/gkpmac.tex":{"size":36500,"sha":"52787766e84cf3df"},"tex/plain/base/letterformat.tex":{"size":2892,"sha":"def29743d02d0f43"},"tex/plain/base/list-latin.tex":{"size":2292,"sha":"fa7f1928a6846739"},"tex/plain/base/list.tex":{"size":1581,"sha":"6ce822dc31d6934d"},"tex/plain/base/llist-latin.tex":{"size":2894,"sha":"a73985923307aaa0"},"tex/plain/base/llist.tex":{"size":2177,"sha":"b9184319aa034b63"},"tex/plain/base/mptmac.tex":{"size":3267,"sha":"a15782301c853be7"},"tex/plain/base/picmac.tex":{"size":8240,"sha":"111703092e524997"},"tex/plain/base/plain.tex":{"size":44615,"sha":"7c1223b880fa5135"},"tex/plain/base/wlist.tex":{"size":1698,"sha":"dd0f2a0d9743af6e"},"tex/plain/config/etex.ini":{"size":69,"sha":"a6e65150abae7552"},"tex/plain/config/tex.ini":{"size":66,"sha":"c1ccea43dc1c3d07"},"tex/plain/etex/etex.src":{"size":31690,"sha":"00b9b0017fc2347a"},"tex/plain/etex/etexdefs.lib":{"size":3591,"sha":"0c6a325ce1810cff"},"web2c/etex.fmt":{"size":127343,"sha":"b276d57b2fbf5575"},"web2c/plain.fmt":{"size":113546,"sha":"8bdb51b8e06b0f42"}},"eager":[]}
|
|
1
|
+
{"name":"tex-plain","version":"2025.1","texlive":"2025","files":{"tex/generic/atbegshi/atbegshi.sty":{"size":24708,"sha":"a73003b4bb2dc8a8"},"tex/generic/babel/hyphen.cfg":{"size":6445,"sha":"f646844e8fab61d1"},"tex/generic/babel/luababel.def":{"size":75294,"sha":"7d720228e51dc87c"},"tex/generic/bigintcalc/bigintcalc.sty":{"size":40635,"sha":"050f2ad3a3671a1f"},"tex/generic/bitset/bitset.sty":{"size":33961,"sha":"af5c7196c69dc9d2"},"tex/generic/chemfig/chemfig-lewis.tex":{"size":5803,"sha":"d907dab915078c7d"},"tex/generic/chemfig/chemfig.sty":{"size":388,"sha":"0c19604354900a8e"},"tex/generic/chemfig/chemfig.tex":{"size":125167,"sha":"18caf07da06abe7c"},"tex/generic/circuitikz/ctikzstyle-example.tex":{"size":280,"sha":"59f577f0360decc9"},"tex/generic/circuitikz/ctikzstyle-legacy.tex":{"size":3150,"sha":"b1b4fd1866df6d18"},"tex/generic/circuitikz/ctikzstyle-romano.tex":{"size":2240,"sha":"69878376ef7ec6ff"},"tex/generic/circuitikz/pgfcirc.defines.tex":{"size":47046,"sha":"ec30235b60a9f072"},"tex/generic/circuitikz/pgfcircbipoles.tex":{"size":319927,"sha":"2c526e5ac600455a"},"tex/generic/circuitikz/pgfcirccurrent.tex":{"size":9538,"sha":"b4067c61c07792dd"},"tex/generic/circuitikz/pgfcircflow.tex":{"size":9804,"sha":"959e6f05fcda8db2"},"tex/generic/circuitikz/pgfcirclabel.tex":{"size":15442,"sha":"ebf9761a4dbdc156"},"tex/generic/circuitikz/pgfcircmonopoles.tex":{"size":62349,"sha":"7531190c1ad26ad4"},"tex/generic/circuitikz/pgfcircmultipoles.tex":{"size":140232,"sha":"3760ab93dcda29df"},"tex/generic/circuitikz/pgfcircpath.tex":{"size":17175,"sha":"7a83c9af92d8dd1a"},"tex/generic/circuitikz/pgfcircquadpoles.tex":{"size":105987,"sha":"875371bdf94a1a42"},"tex/generic/circuitikz/pgfcircshapes.tex":{"size":33716,"sha":"4a72bd0ea8075199"},"tex/generic/circuitikz/pgfcirctripoles.tex":{"size":400264,"sha":"53cdb3a70e6a821f"},"tex/generic/circuitikz/pgfcircutils.tex":{"size":14587,"sha":"ed68f13d561e9d63"},"tex/generic/circuitikz/pgfcircvoltage.tex":{"size":36286,"sha":"821ac7ac0489c1dd"},"tex/generic/etex/etex.src":{"size":33286,"sha":"7af74a3fde135872"},"tex/generic/etexcmds/etexcmds.sty":{"size":7734,"sha":"a7db2834e02bd11b"},"tex/generic/gettitlestring/gettitlestring.sty":{"size":8371,"sha":"26ab10fd43fd5a90"},"tex/generic/hyphen/dumyhyph.tex":{"size":419,"sha":"99d210320228a242"},"tex/generic/hyphen/grahyph5.tex":{"size":36706,"sha":"eeb7329e7dd94b87"},"tex/generic/hyphen/grmhyph5.tex":{"size":5902,"sha":"becdf19387bc265d"},"tex/generic/hyphen/grphyph5.tex":{"size":13326,"sha":"1bfe51dcff12f444"},"tex/generic/hyphen/hyphen.tex":{"size":27860,"sha":"2c18acdc04c1a066"},"tex/generic/hyphen/hypht1.tex":{"size":9081,"sha":"6a96e10de9b34ad9"},"tex/generic/hyphen/ibyhyph.tex":{"size":28651,"sha":"b12db81b0c101b38"},"tex/generic/hyphen/zerohyph.tex":{"size":402,"sha":"80b6e5b7ff3bcd2f"},"tex/generic/iftex/ifetex.sty":{"size":529,"sha":"6a522456643896e4"},"tex/generic/iftex/ifluatex.sty":{"size":492,"sha":"1f1dd9c7cc37bfc5"},"tex/generic/iftex/ifpdf.sty":{"size":480,"sha":"92b2cd262dc42d52"},"tex/generic/iftex/iftex.sty":{"size":7984,"sha":"0dc0cefe2131f823"},"tex/generic/iftex/ifvtex.sty":{"size":1057,"sha":"1138730b9ad7d9f6"},"tex/generic/iftex/ifxetex.sty":{"size":488,"sha":"b4729967ca572a3f"},"tex/generic/infwarerr/infwarerr.sty":{"size":8356,"sha":"8c3e23b8bb7d940f"},"tex/generic/intcalc/intcalc.sty":{"size":31769,"sha":"1343ba1b10b245bf"},"tex/generic/kvdefinekeys/kvdefinekeys.sty":{"size":5412,"sha":"c42f0c2628dc5fbd"},"tex/generic/ltxcmds/ltxcmds.sty":{"size":17865,"sha":"8fea89995d37ba4c"},"tex/generic/luatex85/luatex85.sty":{"size":5870,"sha":"6d2a0ec7974247ec"},"tex/generic/mp-tikz-wasm/tikzlibrarysvg.attributes.code.tex":{"size":6164,"sha":"a4e73b1206f18bee"},"tex/generic/pdfescape/pdfescape.sty":{"size":19007,"sha":"b3f0e56366c11b85"},"tex/generic/pdftex/glyphtounicode.tex":{"size":216747,"sha":"395e568c1f4db5e8"},"tex/generic/pdftex/pdfcolor.tex":{"size":5687,"sha":"84b30448637fd29e"},"tex/generic/pdftexcmds/pdftexcmds.lua":{"size":9447,"sha":"872a8889c423ec55"},"tex/generic/pdftexcmds/pdftexcmds.sty":{"size":20089,"sha":"2df7e0bd148c99d8"},"tex/generic/simplekv/simplekv.sty":{"size":161,"sha":"3fc1096a8c34760b"},"tex/generic/simplekv/simplekv.tex":{"size":12655,"sha":"d4d089826306a58a"},"tex/generic/stringenc/se-ascii-print.def":{"size":3257,"sha":"77c07ed6267049f3"},"tex/generic/stringenc/se-ascii.def":{"size":2870,"sha":"0c8d40cb65411fee"},"tex/generic/stringenc/se-clean7bit.def":{"size":3765,"sha":"aa70dd7e8990b2cb"},"tex/generic/stringenc/se-cp1250.def":{"size":10277,"sha":"d2068e5fa58864c9"},"tex/generic/stringenc/se-cp1251.def":{"size":10128,"sha":"63704757c1c8d231"},"tex/generic/stringenc/se-cp1252.def":{"size":4858,"sha":"e21b611d03bf8e1f"},"tex/generic/stringenc/se-cp1257.def":{"size":9657,"sha":"4ec2651c335029d2"},"tex/generic/stringenc/se-cp437.def":{"size":10585,"sha":"05e91523dc818207"},"tex/generic/stringenc/se-cp850.def":{"size":10434,"sha":"b15d916580e45d29"},"tex/generic/stringenc/se-cp852.def":{"size":10733,"sha":"3dcbfa0c3487f170"},"tex/generic/stringenc/se-cp855.def":{"size":10349,"sha":"3b185da948e95ed6"},"tex/generic/stringenc/se-cp858.def":{"size":10415,"sha":"1e40d8d74672e14a"},"tex/generic/stringenc/se-cp865.def":{"size":10605,"sha":"24af379d5e7ad707"},"tex/generic/stringenc/se-cp866.def":{"size":10531,"sha":"a45de2d50e0d2733"},"tex/generic/stringenc/se-dec-mcs.def":{"size":7864,"sha":"91dc69b841166064"},"tex/generic/stringenc/se-iso-8859-1.def":{"size":3357,"sha":"74c79c0b12b0d39b"},"tex/generic/stringenc/se-iso-8859-10.def":{"size":9508,"sha":"9bfcbfdd02bf6695"},"tex/generic/stringenc/se-iso-8859-11.def":{"size":8046,"sha":"5158a22308bb0043"},"tex/generic/stringenc/se-iso-8859-13.def":{"size":9190,"sha":"787d127c7ad98a00"},"tex/generic/stringenc/se-iso-8859-14.def":{"size":9571,"sha":"7e25fdaaa78e3120"},"tex/generic/stringenc/se-iso-8859-15.def":{"size":9131,"sha":"266c8fb3f31653cb"},"tex/generic/stringenc/se-iso-8859-16.def":{"size":9476,"sha":"29a72ed727e910c2"},"tex/generic/stringenc/se-iso-8859-2.def":{"size":9224,"sha":"2a7c60979e263e0b"},"tex/generic/stringenc/se-iso-8859-3.def":{"size":8734,"sha":"9a6bdf7bce6b185c"},"tex/generic/stringenc/se-iso-8859-4.def":{"size":9196,"sha":"b0737bf21ae2dc40"},"tex/generic/stringenc/se-iso-8859-5.def":{"size":8835,"sha":"ff7ccc62228088ee"},"tex/generic/stringenc/se-iso-8859-6.def":{"size":5528,"sha":"f9fba42471db4619"},"tex/generic/stringenc/se-iso-8859-7.def":{"size":8589,"sha":"4efcfb39cd3fb844"},"tex/generic/stringenc/se-iso-8859-8.def":{"size":5956,"sha":"455433c65e5975f7"},"tex/generic/stringenc/se-iso-8859-9.def":{"size":8976,"sha":"4c3080873d39ce9c"},"tex/generic/stringenc/se-koi8-r.def":{"size":10600,"sha":"62b74a3118529b10"},"tex/generic/stringenc/se-mac-centeuro.def":{"size":11598,"sha":"9e648981230327d5"},"tex/generic/stringenc/se-mac-cyrillic.def":{"size":10942,"sha":"f77f04a3250c56a6"},"tex/generic/stringenc/se-mac-roman.def":{"size":10575,"sha":"a00115bfe651fc0a"},"tex/generic/stringenc/se-nextstep.def":{"size":10464,"sha":"799ca9c1eef76dd1"},"tex/generic/stringenc/se-pdfdoc.def":{"size":5108,"sha":"f168cc1772edb0e2"},"tex/generic/stringenc/se-utf16le.def":{"size":2764,"sha":"20213ef0fd25b6f9"},"tex/generic/stringenc/se-utf32be.def":{"size":4522,"sha":"aed4597f5fce2d1d"},"tex/generic/stringenc/se-utf32le.def":{"size":4718,"sha":"a00be3fae9ee794c"},"tex/generic/stringenc/se-utf8.def":{"size":11635,"sha":"aeecc3b65c8002f2"},"tex/generic/stringenc/stringenc.sty":{"size":21514,"sha":"b134a7bba648a698"},"tex/generic/tex-ini-files/dviluatex.ini":{"size":82,"sha":"cc7cb46692f7a54b"},"tex/generic/tex-ini-files/luatex.ini":{"size":289,"sha":"bc47cd163289fecb"},"tex/generic/tex-ini-files/luatexconfig.tex":{"size":2036,"sha":"e455906a91a8a040"},"tex/generic/tex-ini-files/luatexiniconfig.tex":{"size":606,"sha":"b3e97563b977e36e"},"tex/generic/tex-ini-files/pdftexconfig.tex":{"size":549,"sha":"87102cd6fa7307af"},"tex/generic/tex-ini-files/pdfxmltex.ini":{"size":243,"sha":"0286c93d313d8034"},"tex/generic/tex-ini-files/xetex.ini":{"size":3428,"sha":"6aa9a56c7947f655"},"tex/generic/tex-ini-files/xmltex.ini":{"size":160,"sha":"e7bb21eb0a3457d9"},"tex/generic/uniquecounter/uniquecounter.sty":{"size":7008,"sha":"9d11c81501953d68"},"tex/generic/xkeyval/keyval.tex":{"size":2725,"sha":"7a8dbfe90926a910"},"tex/generic/xkeyval/pst-xkey.tex":{"size":2369,"sha":"4549723f49707c14"},"tex/generic/xkeyval/xkeyval.tex":{"size":19231,"sha":"29c2b60c6973c374"},"tex/generic/xkeyval/xkvtxhdr.tex":{"size":2856,"sha":"cc6150c71e73d1dd"},"tex/generic/xkeyval/xkvutils.tex":{"size":7677,"sha":"5e82c31b1b4492c8"},"tex/plain/base/fontchart.tex":{"size":3201,"sha":"c92c60b5aa85a634"},"tex/plain/base/gkpmac.tex":{"size":36500,"sha":"52787766e84cf3df"},"tex/plain/base/letterformat.tex":{"size":2892,"sha":"def29743d02d0f43"},"tex/plain/base/list-latin.tex":{"size":2292,"sha":"fa7f1928a6846739"},"tex/plain/base/list.tex":{"size":1581,"sha":"6ce822dc31d6934d"},"tex/plain/base/llist-latin.tex":{"size":2894,"sha":"a73985923307aaa0"},"tex/plain/base/llist.tex":{"size":2177,"sha":"b9184319aa034b63"},"tex/plain/base/mptmac.tex":{"size":3267,"sha":"a15782301c853be7"},"tex/plain/base/picmac.tex":{"size":8240,"sha":"111703092e524997"},"tex/plain/base/plain.tex":{"size":44615,"sha":"7c1223b880fa5135"},"tex/plain/base/wlist.tex":{"size":1698,"sha":"dd0f2a0d9743af6e"},"tex/plain/config/etex.ini":{"size":69,"sha":"a6e65150abae7552"},"tex/plain/config/tex.ini":{"size":66,"sha":"c1ccea43dc1c3d07"},"tex/plain/etex/etex.src":{"size":31690,"sha":"00b9b0017fc2347a"},"tex/plain/etex/etexdefs.lib":{"size":3591,"sha":"0c6a325ce1810cff"},"web2c/etex.fmt":{"size":127343,"sha":"b276d57b2fbf5575"},"web2c/plain.fmt":{"size":113546,"sha":"8bdb51b8e06b0f42"}},"eager":[],"storage":"brotli-chunks-v1","filesystemKey":"3648a9d774d14fb99f24cd8a6e1ffe24f309789c6a73de067e3bd3f5d8f97916"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"web2c/tikz.fmt":[0,5819794]}
|
|
1
|
+
{"web2c/tikz.fmt":["chunks/0.br",0,5819794]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"tikz-snapshot","version":"2025.1","texlive":"2025","files":{"web2c/tikz.fmt":{"size":5819794,"sha":"68f750bb1d12ec43"}},"eager":[]}
|
|
1
|
+
{"name":"tikz-snapshot","version":"2025.1","texlive":"2025","files":{"web2c/tikz.fmt":{"size":5819794,"sha":"68f750bb1d12ec43"}},"eager":[],"storage":"brotli-chunks-v1","filesystemKey":"2bd36fa3b9d5e22c06f4ce4d19ed7e3274023f132268ebfdef9c398b55382969"}
|
package/runtime/dist/index.js
CHANGED
|
@@ -34,6 +34,7 @@ class InProcessBackend {
|
|
|
34
34
|
this.bundles.logger = this.logger;
|
|
35
35
|
const base = o.bundleBaseUrl ?? new URL('./bundles/', here).href;
|
|
36
36
|
await this.bundles.addAll(resolveBundleSpecs(o.bundles ?? DEFAULT_BUNDLES, base));
|
|
37
|
+
await this.bundles.loadFilesystemIndex((base.endsWith('/') ? base : base + '/') + 'filesystem.json');
|
|
37
38
|
if (!o.lazy || !this.bundles.canFetchSync)
|
|
38
39
|
await this.bundles.prefetchEager();
|
|
39
40
|
if (!o.lazy)
|
package/runtime/dist/node.js
CHANGED
|
@@ -5,44 +5,58 @@ export async function nodeIO() {
|
|
|
5
5
|
const { brotliDecompressSync } = await import('node:zlib');
|
|
6
6
|
const strip = (u) => u.startsWith('file://')
|
|
7
7
|
? fileURLToPath(new URL(u)) : u.replace(/\?v=[0-9a-f]+$/, '');
|
|
8
|
-
const
|
|
8
|
+
const layouts = new Map();
|
|
9
|
+
const explicit = new Set();
|
|
10
|
+
function packed(directory, key) {
|
|
11
|
+
let layout = layouts.get(directory);
|
|
12
|
+
if (!layout) {
|
|
13
|
+
layout = { index: JSON.parse(fs.readFileSync(join(directory, 'files.index.json'), 'utf8')), chunks: new Map() };
|
|
14
|
+
layouts.set(directory, layout);
|
|
15
|
+
}
|
|
16
|
+
const entry = Object.hasOwn(layout.index, key) ? layout.index[key] : undefined;
|
|
17
|
+
if (!entry)
|
|
18
|
+
throw Object.assign(new Error(`Missing bundle file: ${key}`), { code: 'ENOENT' });
|
|
19
|
+
const [chunk, offset, size] = entry.length === 2 ? ['files.br', ...entry] : entry;
|
|
20
|
+
if (!/^(files\.br|chunks\/[0-9]+\.br)$/.test(chunk))
|
|
21
|
+
throw new Error('Invalid bundle chunk');
|
|
22
|
+
let bytes = layout.chunks.get(chunk);
|
|
23
|
+
if (!bytes) {
|
|
24
|
+
bytes = brotliDecompressSync(fs.readFileSync(join(directory, chunk)));
|
|
25
|
+
layout.chunks.set(chunk, bytes);
|
|
26
|
+
}
|
|
27
|
+
if (!Number.isSafeInteger(offset) || !Number.isSafeInteger(size) || offset < 0 || size < 0 || offset + size > bytes.length)
|
|
28
|
+
throw new Error(`Invalid bundle offset: ${key}`);
|
|
29
|
+
return bytes.subarray(offset, offset + size);
|
|
30
|
+
}
|
|
9
31
|
const read = (url) => {
|
|
10
32
|
const path = strip(url);
|
|
33
|
+
const marker = `${sep}files${sep}`;
|
|
34
|
+
const position = path.lastIndexOf(marker);
|
|
35
|
+
const directory = path.slice(0, position);
|
|
36
|
+
const key = path.slice(position + marker.length).split(sep).join('/');
|
|
37
|
+
// New manifests explicitly select packed storage: no speculative filesystem
|
|
38
|
+
// calls or ENOENT exceptions for each file. Legacy/raw layouts retain overrides.
|
|
39
|
+
if (position >= 0 && explicit.has(directory))
|
|
40
|
+
return packed(directory, key);
|
|
11
41
|
try {
|
|
12
42
|
return fs.readFileSync(path);
|
|
13
43
|
}
|
|
14
44
|
catch (error) {
|
|
15
|
-
if (error.code !== 'ENOENT')
|
|
16
|
-
throw error;
|
|
17
|
-
// Bundle archives preserve cross-file compression (especially fonts).
|
|
18
|
-
// Cache only bundles touched by this engine instance; raw files override.
|
|
19
|
-
const marker = `${sep}files${sep}`;
|
|
20
|
-
const position = path.lastIndexOf(marker);
|
|
21
|
-
if (position < 0)
|
|
22
|
-
throw error;
|
|
23
|
-
const directory = path.slice(0, position);
|
|
24
|
-
let bundle = bundles.get(directory);
|
|
25
|
-
if (!bundle) {
|
|
26
|
-
bundle = {
|
|
27
|
-
bytes: brotliDecompressSync(fs.readFileSync(join(directory, 'files.br'))),
|
|
28
|
-
index: JSON.parse(fs.readFileSync(join(directory, 'files.index.json'), 'utf8')),
|
|
29
|
-
};
|
|
30
|
-
bundles.set(directory, bundle);
|
|
31
|
-
}
|
|
32
|
-
const key = path.slice(position + marker.length).split(sep).join('/');
|
|
33
|
-
const entry = Object.hasOwn(bundle.index, key) ? bundle.index[key] : undefined;
|
|
34
|
-
if (!entry)
|
|
45
|
+
if (error.code !== 'ENOENT' || position < 0)
|
|
35
46
|
throw error;
|
|
36
|
-
|
|
37
|
-
if (!Number.isSafeInteger(offset) || !Number.isSafeInteger(size) || offset < 0 || size < 0 || offset + size > bundle.bytes.length)
|
|
38
|
-
throw new Error(`Invalid bundle offset: ${key}`);
|
|
39
|
-
return bundle.bytes.subarray(offset, offset + size);
|
|
47
|
+
return packed(directory, key);
|
|
40
48
|
}
|
|
41
49
|
};
|
|
42
50
|
return {
|
|
43
51
|
async fetch(url) { return read(url); },
|
|
44
52
|
fetchSync: read,
|
|
45
|
-
async fetchJson(url) {
|
|
53
|
+
async fetchJson(url) {
|
|
54
|
+
const path = strip(url);
|
|
55
|
+
const json = JSON.parse(fs.readFileSync(path, 'utf8'));
|
|
56
|
+
if (path.endsWith(`${sep}manifest.json`) && json.storage === 'brotli-chunks-v1')
|
|
57
|
+
explicit.add(path.slice(0, -'/manifest.json'.length));
|
|
58
|
+
return json;
|
|
59
|
+
},
|
|
46
60
|
};
|
|
47
61
|
}
|
|
48
62
|
export const isNode = typeof process !== 'undefined' && !!process.versions?.node && typeof globalThis.window === 'undefined';
|
package/runtime/dist/types.d.ts
CHANGED
|
@@ -363,6 +363,8 @@ export interface ToolResult {
|
|
|
363
363
|
}
|
|
364
364
|
/** The bundle manifest format (docs/06 §3). Paths are relative to the texmf root. */
|
|
365
365
|
export interface BundleManifest {
|
|
366
|
+
storage?: "brotli-chunks-v1";
|
|
367
|
+
filesystemKey?: string;
|
|
366
368
|
name: string;
|
|
367
369
|
version: string;
|
|
368
370
|
texlive?: string;
|
|
@@ -51,6 +51,13 @@ export declare class BundleSet {
|
|
|
51
51
|
private addLoaded;
|
|
52
52
|
/** Add several bundles: the manifests are fetched in parallel, then merged in the given order (first bundle wins). */
|
|
53
53
|
addAll(specs: BundleSpec[]): Promise<void>;
|
|
54
|
+
/** Build-time immutable indexes; dynamic/custom bundle sets use the normal builder. */
|
|
55
|
+
exportFilesystemIndex(): {
|
|
56
|
+
keys: (string | undefined)[];
|
|
57
|
+
dirs: (string | string[])[][];
|
|
58
|
+
lsR: string;
|
|
59
|
+
};
|
|
60
|
+
loadFilesystemIndex(url: string): Promise<void>;
|
|
54
61
|
/** Load the hot lists; optional, so a missing file is not an error. */
|
|
55
62
|
loadHot(url: string): Promise<void>;
|
|
56
63
|
/** Fetch, in parallel, every file the hot lists name for these kinds that is not in memory yet. Returns how many. */
|
|
@@ -37,6 +37,8 @@ export class BundleSet {
|
|
|
37
37
|
this.addLoaded(spec, base, manifest);
|
|
38
38
|
}
|
|
39
39
|
addLoaded(spec, base, manifest) {
|
|
40
|
+
this.indexCache = undefined;
|
|
41
|
+
this.lsRText = undefined;
|
|
40
42
|
this.manifests.push({ spec, manifest, base });
|
|
41
43
|
const blobBase = spec.blobBaseUrl ?? joinUrl(base, 'files');
|
|
42
44
|
for (const [path, info] of Object.entries(manifest.files)) {
|
|
@@ -66,6 +68,24 @@ export class BundleSet {
|
|
|
66
68
|
for (const m of manifests)
|
|
67
69
|
this.addLoaded(m.spec, m.base, m.manifest);
|
|
68
70
|
}
|
|
71
|
+
/** Build-time immutable indexes; dynamic/custom bundle sets use the normal builder. */
|
|
72
|
+
exportFilesystemIndex() {
|
|
73
|
+
return { keys: this.manifests.map(m => m.manifest.filesystemKey),
|
|
74
|
+
dirs: [...this.index().dirs].map(([path, children]) => [path, [...children]]), lsR: this.lsR() };
|
|
75
|
+
}
|
|
76
|
+
async loadFilesystemIndex(url) {
|
|
77
|
+
if (!this.manifests.every(m => m.manifest.filesystemKey))
|
|
78
|
+
return;
|
|
79
|
+
try {
|
|
80
|
+
const data = await this.io.fetchJson(url);
|
|
81
|
+
const keys = this.manifests.map(m => m.manifest.filesystemKey);
|
|
82
|
+
if (JSON.stringify(data.keys) !== JSON.stringify(keys) || !Array.isArray(data.dirs) || typeof data.lsR !== 'string')
|
|
83
|
+
return;
|
|
84
|
+
this.indexCache = { dirs: new Map(data.dirs.map(([path, children]) => [path, new Set(children)])) };
|
|
85
|
+
this.lsRText = data.lsR;
|
|
86
|
+
}
|
|
87
|
+
catch { /* Optional prebuilt index; reconstruct for custom/missing assets. */ }
|
|
88
|
+
}
|
|
69
89
|
/** Load the hot lists; optional, so a missing file is not an error. */
|
|
70
90
|
async loadHot(url) {
|
|
71
91
|
try {
|
package/runtime/upstream.json
CHANGED
|
@@ -23,5 +23,5 @@
|
|
|
23
23
|
"archive": "https://github.com/jmckalex/mp-tikz-wasm/releases/download/v0.5.0/mp-tikz-wasm-0.5.0.tar.gz",
|
|
24
24
|
"sha256": "76b5591a83adfb96e8087b8560fd993c6ebba475ad15a63269a8aa47517dd575"
|
|
25
25
|
},
|
|
26
|
-
"distribution": "brotli-
|
|
26
|
+
"distribution": "brotli-chunks-v1"
|
|
27
27
|
}
|
package/src/deploy.js
CHANGED
|
@@ -36,13 +36,24 @@ export async function copyTikzBrowserAssets(directory) {
|
|
|
36
36
|
for (const name of pin.bundles) {
|
|
37
37
|
const base = join(destination, 'runtime/dist/bundles', name);
|
|
38
38
|
const index = JSON.parse(await readFile(join(base, 'files.index.json'), 'utf8'));
|
|
39
|
-
const
|
|
40
|
-
for (const [path,
|
|
39
|
+
const chunks = new Map();
|
|
40
|
+
for (const [path, entry] of Object.entries(index)) {
|
|
41
|
+
const [chunk, offset, size] = entry.length === 2 ? ['files.br', ...entry] : entry;
|
|
42
|
+
if (!chunks.has(chunk)) chunks.set(chunk, brotliDecompressSync(await readFile(join(base, chunk))));
|
|
43
|
+
const bytes = chunks.get(chunk);
|
|
41
44
|
const file = join(base, 'files', path);
|
|
42
45
|
await mkdir(dirname(file), { recursive: true });
|
|
43
46
|
await writeFile(file, bytes.subarray(offset, offset + size));
|
|
44
47
|
}
|
|
45
|
-
await
|
|
48
|
+
const manifest = JSON.parse(await readFile(join(base, 'manifest.json'), 'utf8'));
|
|
49
|
+
delete manifest.storage;
|
|
50
|
+
// Browser assets use individual files; avoid an extra index round trip.
|
|
51
|
+
delete manifest.filesystemKey;
|
|
52
|
+
await writeFile(join(base, 'manifest.json'), JSON.stringify(manifest));
|
|
53
|
+
await rm(join(base, 'files.br'), { force: true });
|
|
54
|
+
await rm(join(base, 'chunks'), { recursive: true, force: true });
|
|
55
|
+
await rm(join(base, 'files.index.json'));
|
|
46
56
|
}
|
|
57
|
+
await rm(join(destination, 'runtime/dist/bundles/filesystem.json'), { force: true });
|
|
47
58
|
return { directory: destination, version: JSON.parse(await readFile(join(source, 'package.json'), 'utf8')).version };
|
|
48
59
|
}
|
package/src/index.js
CHANGED
|
@@ -74,11 +74,12 @@ export function createTikzRenderer(options = {}) {
|
|
|
74
74
|
if (failure) { reject(failure); return; }
|
|
75
75
|
if (code !== 0 || terminationSignal) { reject(new Error(stderr || 'TikZ compilation failed')); return; }
|
|
76
76
|
try {
|
|
77
|
-
const
|
|
77
|
+
const bytes = Buffer.concat(chunks);
|
|
78
|
+
const svg = bytes.toString('utf8');
|
|
78
79
|
const dimensions = typeof svg === 'string' && svg.match(/viewBox=['"]([^'"]+)['"]/)?.[1].trim().split(/[ ,]+/).map(Number);
|
|
79
80
|
if (!dimensions || dimensions.length !== 4 || !dimensions.every(Number.isFinite) || dimensions[2] <= 0 || dimensions[3] <= 0)
|
|
80
81
|
throw new Error('TikZ returned an invalid picture size');
|
|
81
|
-
resolve({ svg, width: dimensions[2], height: dimensions[3], dataUrl: `data:image/svg+xml;base64,${
|
|
82
|
+
resolve({ svg, width: dimensions[2], height: dimensions[3], dataUrl: `data:image/svg+xml;base64,${bytes.toString('base64')}` });
|
|
82
83
|
} catch (error) { reject(error); }
|
|
83
84
|
});
|
|
84
85
|
child.stdin.end(JSON.stringify({ source }));
|
package/src/worker.js
CHANGED
|
@@ -8,7 +8,7 @@ try {
|
|
|
8
8
|
const result = await engine.latex(source, { engine: 'auto', fonts: 'paths' });
|
|
9
9
|
if (result.status === 'error' || result.status === 'fatal' || result.pages?.length !== 1)
|
|
10
10
|
throw new Error('TikZ requires one valid page. ' + JSON.stringify(result.diagnostics).slice(0, 2000));
|
|
11
|
-
process.stdout.write(
|
|
11
|
+
process.stdout.write(result.pages[0]);
|
|
12
12
|
} catch (error) {
|
|
13
13
|
process.stderr.write(String(error).slice(0, 3000));
|
|
14
14
|
process.exitCode = 1;
|
package/upstream.json
CHANGED
|
@@ -23,5 +23,5 @@
|
|
|
23
23
|
"archive": "https://github.com/jmckalex/mp-tikz-wasm/releases/download/v0.5.0/mp-tikz-wasm-0.5.0.tar.gz",
|
|
24
24
|
"sha256": "76b5591a83adfb96e8087b8560fd993c6ebba475ad15a63269a8aa47517dd575"
|
|
25
25
|
},
|
|
26
|
-
"distribution": "brotli-
|
|
26
|
+
"distribution": "brotli-chunks-v1"
|
|
27
27
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|