@salty-css/core 0.0.1-alpha.18 → 0.0.1-alpha.19
Sign up to get free protection for your applications and to get access to all the features.
- package/bin/index.cjs +5 -5
- package/bin/index.js +79 -79
- package/package.json +1 -1
package/bin/index.cjs
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
#!/usr/bin/env node
|
2
|
-
"use strict";const J=require("commander"),C=require("fs/promises"),g=require("path"),Q=require("ejs"),S=require("../compiler/index.cjs"),z=require("../pascal-case-iWoaJWwT.cjs"),p=require("winston"),j=require("fs"),U=require("child_process");var H=typeof document<"u"?document.currentScript:null;const l=p.createLogger({level:"debug",format:p.format.combine(p.format.colorize(),p.format.cli()),transports:[new p.transports.Console({})]}),F=n=>new Promise((e,G)=>{U.exec(n,W=>{if(W)return G(W);e()})}),X=async(...n)=>{const e=n.join(" ");await F(`npm install ${e}`)},k=()=>j.existsSync(g.join(process.cwd(),"node_modules",".bin","prettier"));async function u(n){try{if(!k())return;await F(`./node_modules/.bin/prettier --write "${n}"`),l.info(`Formatted ${n} with Prettier`)}catch(e){l.error(`Error formatting ${n} with Prettier:`,e)}}const x=new URL("data:video/mp2t;base64,IyEvdXNyL2Jpbi9lbnYgbm9kZQppbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJzsKaW1wb3J0IHsgcmVhZEZpbGUsIHdyaXRlRmlsZSwgbWtkaXIgfSBmcm9tICdmcy9wcm9taXNlcyc7CmltcG9ydCB7IGpvaW4sIHJlbGF0aXZlLCBwYXJzZSBhcyBwYXJzZVBhdGgsIGZvcm1hdCBhcyBmb3JtYXRQYXRoIH0gZnJvbSAncGF0aCc7CmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ2Vqcyc7CmltcG9ydCB7IGdlbmVyYXRlQ3NzIH0gZnJvbSAnLi4vY29tcGlsZXInOwppbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnLi4vdXRpbCc7CmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJzsKaW1wb3J0IHsgZm9ybWF0V2l0aFByZXR0aWVyIH0gZnJvbSAnLi9wcmV0dGllcic7CmltcG9ydCB7IG5wbUluc3RhbGwgfSBmcm9tICcuL2Jpbi11dGlsJzsKCmNvbnN0IF9fZGlybmFtZSA9IG5ldyBVUkwoJy4nLCBpbXBvcnQubWV0YS51cmwpLnBhdGhuYW1lOwoKYXN5bmMgZnVuY3Rpb24gbWFpbigpIHsKICBjb25zdCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKTsKCiAgcHJvZ3JhbS5uYW1lKCdzYWx0eS1jc3MnKS5kZXNjcmlwdGlvbignU2FsdHktQ1NTIENMSSB0b29sIHRvIGhlbHAgd2l0aCBhbm5veWluZyBjb25maWd1cmF0aW9uIHRhc2tzLicpOwoKICBjb25zdCBmaWxlcyA9IHsKICAgIC8vIENvcmUgZmlsZXMKICAgICdzYWx0eS5jb25maWcudHMnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL3NhbHR5LmNvbmZpZy50c19fdGVtcGxhdGUnKSwKICAgICdzYWx0eWdlbi9pbmRleC5jc3MnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL2luZGV4LmNzc19fdGVtcGxhdGUnKSwKICAgIC8vIFJlYWN0CiAgICAncmVhY3QvcmVhY3Qtc3R5bGVkLWZpbGUudHMnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL3JlYWN0LXN0eWxlZC1maWxlLnRzX190ZW1wbGF0ZScpLAogIH0gYXMgY29uc3Q7CgogIHR5cGUgVGVtcGxhdGUgPSBrZXlvZiB0eXBlb2YgZmlsZXM7CgogIGNvbnN0IHJlYWRUZW1wbGF0ZSA9IGFzeW5jIDxUIGV4dGVuZHMgb2JqZWN0PihmaWxlTmFtZTogVGVtcGxhdGUsIG9wdGlvbnM/OiBUKSA9PiB7CiAgICBjb25zdCB7IGRlZmF1bHQ6IGZpbGUgfSA9IGF3YWl0IGZpbGVzW2ZpbGVOYW1lXTsKICAgIGNvbnN0IGNvbnRlbnQgPSByZW5kZXIoZmlsZSwgb3B0aW9ucyk7CiAgICByZXR1cm4geyBmaWxlTmFtZSwgY29udGVudCB9OwogIH07CgogIGludGVyZmFjZSBSQ0ZpbGUgewogICAgZGVmYXVsdFByb2plY3Q6IHN0cmluZzsKICAgIHByb2plY3RzOiBzdHJpbmdbXTsKICB9CgogIGNvbnN0IHJlYWRSQ0ZpbGUgPSBhc3luYyAoKSA9PiB7CiAgICBjb25zdCByY1BhdGggPSBqb2luKHByb2Nlc3MuY3dkKCksICcuc2FsdHlyYycpOwogICAgY29uc3QgcmNDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUocmNQYXRoLCAndXRmLTgnKQogICAgICAudGhlbihKU09OLnBhcnNlKQogICAgICAuY2F0Y2goKCkgPT4gKHt9KSk7CgogICAgcmV0dXJuIHJjQ29udGVudCBhcyBSQ0ZpbGU7CiAgfTsKCiAgY29uc3QgcmVhZFRoaXNQYWNrYWdlSnNvbiA9IGFzeW5jICgpID0+IHsKICAgIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IGpvaW4oX19kaXJuYW1lLCAnLi4vcGFja2FnZS5qc29uJyk7CiAgICBjb25zdCBwYWNrYWdlSnNvbkNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShwYWNrYWdlSnNvblBhdGgsICd1dGYtOCcpCiAgICAgIC50aGVuKEpTT04ucGFyc2UpCiAgICAgIC5jYXRjaCgoKSA9PiAoe30pKTsKCiAgICByZXR1cm4gcGFja2FnZUpzb25Db250ZW50OwogIH07CgogIGNvbnN0IHJlYWRQYWNrYWdlSnNvbiA9IGFzeW5jIChwcm9qZWN0RGlyOiBzdHJpbmcpID0+IHsKICAgIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IGpvaW4ocHJvamVjdERpciwgJ3BhY2thZ2UuanNvbicpOwogICAgY29uc3QgcGFja2FnZUpzb25Db250ZW50ID0gYXdhaXQgcmVhZEZpbGUocGFja2FnZUpzb25QYXRoLCAndXRmLTgnKQogICAgICAudGhlbihKU09OLnBhcnNlKQogICAgICAuY2F0Y2goKCkgPT4gKHt9KSk7CgogICAgcmV0dXJuIHBhY2thZ2VKc29uQ29udGVudDsKICB9OwoKICBjb25zdCBnZXREZWZhdWx0UHJvamVjdCA9IGFzeW5jICgpID0+IHsKICAgIGNvbnN0IHJjQ29udGVudCA9IGF3YWl0IHJlYWRSQ0ZpbGUoKTsKICAgIHJldHVybiByY0NvbnRlbnQuZGVmYXVsdFByb2plY3Q7CiAgfTsKCiAgY29uc3QgZGVmYXVsdFByb2plY3QgPSBhd2FpdCBnZXREZWZhdWx0UHJvamVjdCgpOwoKICBpbnRlcmZhY2UgSW5pdE9wdGlvbnMgewogICAgZGlyOiBzdHJpbmc7CiAgICBjc3NGaWxlPzogc3RyaW5nOwogIH0KCiAgY29uc3QgY3VycmVudFBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFRoaXNQYWNrYWdlSnNvbigpOwoKICBjb25zdCBwYWNrYWdlcyA9IHsKICAgIGNvcmU6IGBAc2FsdHktY3NzL2NvcmVAJHtjdXJyZW50UGFja2FnZUpzb24udmVyc2lvbn1gLAogICAgcmVhY3Q6IGBAc2FsdHktY3NzL3JlYWN0QCR7Y3VycmVudFBhY2thZ2VKc29uLnZlcnNpb259YCwKICAgIGVzbGludFBsdWdpbkNvcmU6IGBAc2FsdHktY3NzL2VzbGludC1wbHVnaW4tY29yZUAke2N1cnJlbnRQYWNrYWdlSnNvbi52ZXJzaW9ufWAsCiAgICB2aXRlOiBgQHNhbHR5LWNzcy92aXRlQCR7Y3VycmVudFBhY2thZ2VKc29uLnZlcnNpb259YCwKICB9OwoKICBwcm9ncmFtCiAgICAuY29tbWFuZCgnaW5pdCcpCiAgICAuZGVzY3JpcHRpb24oJ0luaXRpYWxpemUgYSBuZXcgU2FsdHktQ1NTIHByb2plY3QuJykKICAgIC5yZXF1aXJlZE9wdGlvbignLWQsIC0tZGlyIDxkaXI+JywgJ1Byb2plY3QgZGlyZWN0b3J5IHRvIGluaXRpYWxpemUgdGhlIHByb2plY3QgaW4uJykKICAgIC5vcHRpb24oJy0tY3NzLWZpbGUgPGNzcy1maWxlPicsICdFeGlzdGluZyBDU1MgZmlsZSB3aGVyZSB0byBpbXBvcnQgdGhlIGdlbmVyYXRlZCBDU1MuIFBhdGggbXVzdCBiZSByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gcHJvamVjdCBkaXJlY3RvcnkuJykKICAgIC8vIFZhbGlkYXRlIHRoYXQgYWxsIG9wdGlvbnMgYXJlIHByb3ZpZGVkCiAgICAuYWN0aW9uKGFzeW5jIGZ1bmN0aW9uICh0aGlzOiBDb21tYW5kKSB7CiAgICAgIGxvZ2dlci5pbmZvKCdJbnN0YWxsaW5nIHNhbHR5LWNzcyBwYWNrYWdlcyBjb3JlLCBlc2xpbnQtcGx1Z2luIGFuZCByZWFjdCcpOwogICAgICBhd2FpdCBucG1JbnN0YWxsKHBhY2thZ2VzLmNvcmUsIHBhY2thZ2VzLnJlYWN0KTsKICAgICAgYXdhaXQgbnBtSW5zdGFsbChgLUQgJHtwYWNrYWdlcy5lc2xpbnRQbHVnaW5Db3JlfWApOwoKICAgICAgbG9nZ2VyLmluZm8oJ0luaXRpYWxpemluZyBhIG5ldyBTYWx0eS1DU1MgcHJvamVjdC4uLicpOwoKICAgICAgY29uc3QgeyBkaXIsIGNzc0ZpbGUgfSA9IHRoaXMub3B0czxJbml0T3B0aW9ucz4oKTsKICAgICAgY29uc3Qgcm9vdERpciA9IHByb2Nlc3MuY3dkKCk7CiAgICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHJvb3REaXIsIGRpcik7CiAgICAgIGNvbnN0IHByb2plY3RGaWxlcyA9IGF3YWl0IFByb21pc2UuYWxsKFtyZWFkVGVtcGxhdGUoJ3NhbHR5LmNvbmZpZy50cycpLCByZWFkVGVtcGxhdGUoJ3NhbHR5Z2VuL2luZGV4LmNzcycpXSk7CgogICAgICAvLyBDcmVhdGUgdGhlIHByb2plY3Qgc3RydWN0dXJlIGlmIGl0IGRvZXNuJ3QgZXhpc3QKICAgICAgYXdhaXQgbWtkaXIocHJvamVjdERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgICAgIGNvbnN0IHdyaXRlRmlsZXMgPSBwcm9qZWN0RmlsZXMubWFwKGFzeW5jICh7IGZpbGVOYW1lLCBjb250ZW50IH0pID0+IHsKICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4ocHJvamVjdERpciwgZmlsZU5hbWUpOwogICAgICAgIGNvbnN0IGV4aXN0aW5nQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCAndXRmLTgnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpOwogICAgICAgIGlmIChleGlzdGluZ0NvbnRlbnQgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgbG9nZ2VyLmRlYnVnKCdGaWxlIGFscmVhZHkgZXhpc3RzOiAnICsgZmlsZVBhdGgpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCBhZGRpdGlvbmFsRm9sZGVycyA9IGZpbGVOYW1lLnNwbGl0KCcvJykuc2xpY2UoMCwgLTEpLmpvaW4oJy8nKTsKICAgICAgICAvLyBDcmVhdGUgYWRkaXRpb25hbCBmb2xkZXJzIGlmIHRoZXkgZG9uJ3QgZXhpc3QKICAgICAgICBpZiAoYWRkaXRpb25hbEZvbGRlcnMpIGF3YWl0IG1rZGlyKGpvaW4ocHJvamVjdERpciwgYWRkaXRpb25hbEZvbGRlcnMpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsKICAgICAgICBsb2dnZXIuaW5mbygnV3JpdGluZyBmaWxlOiAnICsgZmlsZVBhdGgpOwogICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgY29udGVudCk7CiAgICAgICAgYXdhaXQgZm9ybWF0V2l0aFByZXR0aWVyKGZpbGVQYXRoKTsKICAgICAgfSk7CgogICAgICBhd2FpdCBQcm9taXNlLmFsbCh3cml0ZUZpbGVzKTsKCiAgICAgIC8vIENyZWF0ZSBzYWx0eXJjIGZpbGUKICAgICAgY29uc3QgcmVsYXRpdmVQcm9qZWN0UGF0aCA9IHJlbGF0aXZlKHJvb3REaXIsIHByb2plY3REaXIpOwogICAgICBjb25zdCBzYWx0eXJjUGF0aCA9IGpvaW4ocm9vdERpciwgJy5zYWx0eXJjJyk7CiAgICAgIGNvbnN0IGV4aXN0aW5nU2FsdHlyYyA9IGF3YWl0IHJlYWRGaWxlKHNhbHR5cmNQYXRoLCAndXRmLTgnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpOwogICAgICBpZiAoZXhpc3RpbmdTYWx0eXJjID09PSB1bmRlZmluZWQpIHsKICAgICAgICBsb2dnZXIuaW5mbygnQ3JlYXRpbmcgZmlsZTogJyArIHNhbHR5cmNQYXRoKTsKICAgICAgICBjb25zdCByY0NvbnRlbnQgPSB7CiAgICAgICAgICBkZWZhdWx0UHJvamVjdDogcmVsYXRpdmVQcm9qZWN0UGF0aCwKICAgICAgICAgIHByb2plY3RzOiBbcmVsYXRpdmVQcm9qZWN0UGF0aF0sCiAgICAgICAgfTsKICAgICAgICBjb25zdCBjb250ZW50ID0gSlNPTi5zdHJpbmdpZnkocmNDb250ZW50LCBudWxsLCAyKTsKICAgICAgICBhd2FpdCB3cml0ZUZpbGUoc2FsdHlyY1BhdGgsIGNvbnRlbnQpOwogICAgICB9IGVsc2UgewogICAgICAgIGxvZ2dlci5pbmZvKCdFZGl0IGZpbGU6ICcgKyBzYWx0eXJjUGF0aCk7CiAgICAgICAgY29uc3QgcmNDb250ZW50ID0gSlNPTi5wYXJzZShleGlzdGluZ1NhbHR5cmMpOwogICAgICAgIGNvbnN0IHByb2plY3RzID0gbmV3IFNldChyY0NvbnRlbnQ/LnByb2plY3RzIHx8IFtdKTsKICAgICAgICBwcm9qZWN0cy5hZGQocmVsYXRpdmVQcm9qZWN0UGF0aCk7CiAgICAgICAgcmNDb250ZW50LnByb2plY3RzID0gWy4uLnByb2plY3RzXTsKICAgICAgICBjb25zdCBjb250ZW50ID0gSlNPTi5zdHJpbmdpZnkocmNDb250ZW50LCBudWxsLCAyKTsKICAgICAgICBhd2FpdCB3cml0ZUZpbGUoc2FsdHlyY1BhdGgsIGNvbnRlbnQpOwogICAgICB9CgogICAgICAvLyBFZGl0IGZpbGVzIGluIHRoZSBwcm9qZWN0CgogICAgICAvLyBFZGl0IEdpdGlnbm9yZQogICAgICBjb25zdCBnaXRJZ25vcmVQYXRoID0gam9pbihyb290RGlyLCAnLmdpdGlnbm9yZScpOwogICAgICBjb25zdCBnaXRJZ25vcmVDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZ2l0SWdub3JlUGF0aCwgJ3V0Zi04JykuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTsKICAgICAgaWYgKGdpdElnbm9yZUNvbnRlbnQgIT09IHVuZGVmaW5lZCkgewogICAgICAgIGNvbnN0IGFscmVhZHlJZ25vcmVzU2FsdHlnZW4gPSBnaXRJZ25vcmVDb250ZW50LmluY2x1ZGVzKCdzYWx0eWdlbicpOwogICAgICAgIGlmICghYWxyZWFkeUlnbm9yZXNTYWx0eWdlbikgewogICAgICAgICAgbG9nZ2VyLmluZm8oJ0VkaXQgZmlsZTogJyArIGdpdElnbm9yZVBhdGgpOwogICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGdpdElnbm9yZVBhdGgsIGdpdElnbm9yZUNvbnRlbnQgKyAnXG5cbiMgU2FsdHktQ1NTXG5zYWx0eWdlblxuJyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBFZGl0IHRoZSBDU1MgZmlsZSBpZiBwcm92aWRlZAogICAgICBpZiAoY3NzRmlsZSkgewogICAgICAgIGNvbnN0IGNzc0ZpbGVQYXRoID0gam9pbihwcm9qZWN0RGlyLCBjc3NGaWxlKTsKICAgICAgICBjb25zdCBjc3NGaWxlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNzc0ZpbGVQYXRoLCAndXRmLTgnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpOwogICAgICAgIGlmIChjc3NGaWxlQ29udGVudCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICBjb25zdCBhbHJlYWR5SW1wb3J0c1NhbHR5Z2VuID0gY3NzRmlsZUNvbnRlbnQuaW5jbHVkZXMoJ3NhbHR5Z2VuJyk7CiAgICAgICAgICBpZiAoIWFscmVhZHlJbXBvcnRzU2FsdHlnZW4pIHsKICAgICAgICAgICAgY29uc3QgY3NzRmlsZUZvbGRlciA9IGpvaW4oY3NzRmlsZVBhdGgsICcuLicpOwogICAgICAgICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSByZWxhdGl2ZShjc3NGaWxlRm9sZGVyLCBqb2luKHByb2plY3REaXIsICdzYWx0eWdlbi9pbmRleC5jc3MnKSk7CiAgICAgICAgICAgIGNvbnN0IGltcG9ydFN0YXRlbWVudCA9IGBAaW1wb3J0ICcke3JlbGF0aXZlUGF0aH0nO2A7CiAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdFZGl0IGZpbGU6ICcgKyBjc3NGaWxlUGF0aCk7CiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShjc3NGaWxlUGF0aCwgaW1wb3J0U3RhdGVtZW50ICsgJ1xuJyArIGNzc0ZpbGVDb250ZW50KTsKICAgICAgICAgICAgYXdhaXQgZm9ybWF0V2l0aFByZXR0aWVyKGNzc0ZpbGVQYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIEZyYW1ld29yayAvIGJ1aWxkIHRvb2wgc3BlY2lmaWMgZmlsZXMKCiAgICAgIC8vIERldGVjdCB2aXRlIGFuZCBhZGQgdGhlIHBsdWdpbgogICAgICBjb25zdCB2aXRlQ29uZmlnUGF0aCA9IGpvaW4ocHJvamVjdERpciwgJ3ZpdGUuY29uZmlnLnRzJyk7CiAgICAgIGNvbnN0IHZpdGVDb25maWdDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUodml0ZUNvbmZpZ1BhdGgsICd1dGYtOCcpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7CgogICAgICBpZiAodml0ZUNvbmZpZ0NvbnRlbnQgIT09IHVuZGVmaW5lZCkgewogICAgICAgIGNvbnN0IGFscmVhZHlIYXNQbHVnaW4gPSB2aXRlQ29uZmlnQ29udGVudC5pbmNsdWRlcygnc2FsdHlQbHVnaW4nKTsKICAgICAgICBpZiAoIWFscmVhZHlIYXNQbHVnaW4pIHsKICAgICAgICAgIGxvZ2dlci5pbmZvKCdFZGl0IGZpbGU6ICcgKyB2aXRlQ29uZmlnUGF0aCk7CiAgICAgICAgICBjb25zdCBwbHVnaW5JbXBvcnQgPSAiaW1wb3J0IHsgc2FsdHlQbHVnaW4gfSBmcm9tICdAc2FsdHktY3NzL3ZpdGUnO1xuIjsKICAgICAgICAgIGNvbnN0IHBsdWdpbkNvbmZpZyA9ICdzYWx0eVBsdWdpbihfX2Rpcm5hbWUpLCc7CiAgICAgICAgICBjb25zdCBuZXdDb250ZW50ID0gdml0ZUNvbmZpZ0NvbnRlbnQucmVwbGFjZSgvKHBsdWdpbnM6IFxbKS8sIGAkMVxuICAke3BsdWdpbkNvbmZpZ31gKTsKCiAgICAgICAgICBsb2dnZXIuaW5mbygnSW5zdGFsbGluZyBAc2FsdHktY3NzL3ZpdGUnKTsKICAgICAgICAgIGF3YWl0IG5wbUluc3RhbGwocGFja2FnZXMudml0ZSk7CgogICAgICAgICAgbG9nZ2VyLmluZm8oJ0FkZGluZyBTYWx0eS1DU1MgcGx1Z2luIHRvIFZpdGUgY29uZmlnLi4uJyk7CiAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUodml0ZUNvbmZpZ1BhdGgsIHBsdWdpbkltcG9ydCArIG5ld0NvbnRlbnQpOwogICAgICAgICAgYXdhaXQgZm9ybWF0V2l0aFByZXR0aWVyKHZpdGVDb25maWdQYXRoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0pOwoKICBpbnRlcmZhY2UgQnVpbGRPcHRpb25zIHsKICAgIGRpcjogc3RyaW5nOwogIH0KCiAgcHJvZ3JhbQogICAgLmNvbW1hbmQoJ2J1aWxkJykKICAgIC5hbGlhcygnYicpCiAgICAuZGVzY3JpcHRpb24oJ0J1aWxkIHRoZSBTYWx0eS1DU1MgcHJvamVjdC4nKQogICAgLm9wdGlvbignLWQsIC0tZGlyIDxkaXI+JywgJ1Byb2plY3QgZGlyZWN0b3J5IHRvIGJ1aWxkIHRoZSBwcm9qZWN0IGluLicsIGRlZmF1bHRQcm9qZWN0KQogICAgLmFjdGlvbihhc3luYyBmdW5jdGlvbiAodGhpczogQ29tbWFuZCkgewogICAgICBsb2dnZXIuaW5mbygnQnVpbGRpbmcgdGhlIFNhbHR5LUNTUyBwcm9qZWN0Li4uJyk7CiAgICAgIGNvbnN0IHsgZGlyIH0gPSB0aGlzLm9wdHM8QnVpbGRPcHRpb25zPigpOwogICAgICBjb25zdCBwcm9qZWN0RGlyID0gam9pbihwcm9jZXNzLmN3ZCgpLCBkaXIpOwogICAgICBhd2FpdCBnZW5lcmF0ZUNzcyhwcm9qZWN0RGlyKTsKICAgIH0pOwoKICBpbnRlcmZhY2UgR2VuZXJhdGVPcHRpb25zIHsKICAgIGRpcjogc3RyaW5nOwogICAgdGFnOiBzdHJpbmc7CiAgICBuYW1lPzogc3RyaW5nOwogICAgY2xhc3NOYW1lPzogc3RyaW5nOwogIH0KCiAgcHJvZ3JhbQogICAgLmNvbW1hbmQoJ2dlbmVyYXRlIDxmaWxlPicpCiAgICAuYWxpYXMoJ2cnKQogICAgLmRlc2NyaXB0aW9uKCdHZW5lcmF0ZSBhIG5ldyBjb21wb25lbnQgZmlsZS4nKQogICAgLm9wdGlvbignLWQsIC0tZGlyIDxkaXI+JywgJ1Byb2plY3QgZGlyZWN0b3J5IHRvIGdlbmVyYXRlIHRoZSBmaWxlIGluLicsIGRlZmF1bHRQcm9qZWN0KQogICAgLm9wdGlvbignLXQsIC0tdGFnIDx0YWc+JywgJ0hUTUwgdGFnIG9mIHRoZSBjb21wb25lbnQuJywgJ2RpdicpCiAgICAub3B0aW9uKCctbiwgLS1uYW1lIDxuYW1lPicsICdOYW1lIG9mIHRoZSBjb21wb25lbnQuJykKICAgIC5vcHRpb24oJy1jLCAtLWNsYXNzTmFtZSA8Y2xhc3NOYW1lPicsICdDU1MgY2xhc3Mgb2YgdGhlIGNvbXBvbmVudC4nKQogICAgLmFjdGlvbihhc3luYyBmdW5jdGlvbiAodGhpczogQ29tbWFuZCwgZmlsZTogc3RyaW5nKSB7CiAgICAgIGNvbnN0IHsgZGlyLCB0YWcsIG5hbWUsIGNsYXNzTmFtZSB9ID0gdGhpcy5vcHRzPEdlbmVyYXRlT3B0aW9ucz4oKTsKICAgICAgY29uc3QgcHJvamVjdERpciA9IGpvaW4ocHJvY2Vzcy5jd2QoKSwgZGlyKTsKICAgICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHByb2plY3REaXIsIGZpbGUpOwoKICAgICAgY29uc3QgcGFyc2VkRmlsZVBhdGggPSBwYXJzZVBhdGgoZmlsZVBhdGgpOwogICAgICBpZiAoIXBhcnNlZEZpbGVQYXRoLmV4dCkgewogICAgICAgIHBhcnNlZEZpbGVQYXRoLmV4dCA9ICcudHMnOwogICAgICB9CiAgICAgIGlmICghcGFyc2VkRmlsZVBhdGgubmFtZS5lbmRzV2l0aCgnLmNzcycpKSB7CiAgICAgICAgcGFyc2VkRmlsZVBhdGgubmFtZSA9IHBhcnNlZEZpbGVQYXRoLm5hbWUgKyAnLmNzcyc7CiAgICAgIH0KICAgICAgcGFyc2VkRmlsZVBhdGguYmFzZSA9IHBhcnNlZEZpbGVQYXRoLm5hbWUgKyBwYXJzZWRGaWxlUGF0aC5leHQ7CiAgICAgIGNvbnN0IGZvcm1hdHRlZEZpbGVQYXRoID0gZm9ybWF0UGF0aChwYXJzZWRGaWxlUGF0aCk7CgogICAgICBjb25zdCBhbHJlYWR5RXhpc3RzID0gYXdhaXQgcmVhZEZpbGUoZm9ybWF0dGVkRmlsZVBhdGgsICd1dGYtOCcpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7CiAgICAgIGlmIChhbHJlYWR5RXhpc3RzICE9PSB1bmRlZmluZWQpIHsKICAgICAgICBsb2dnZXIuZXJyb3IoJ0ZpbGUgYWxyZWFkeSBleGlzdHM6JywgZm9ybWF0dGVkRmlsZVBhdGgpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBsb2dnZXIuaW5mbygnR2VuZXJhdGluZyBhIG5ldyBmaWxlOiAnICsgZm9ybWF0dGVkRmlsZVBhdGgpOwoKICAgICAgY29uc3QgX25hbWUgPSBwYXNjYWxDYXNlKG5hbWUgfHwgcGFyc2VkRmlsZVBhdGguYmFzZS5yZXBsYWNlKC9cLmNzc1wuXHcrJC8sICcnKSk7CiAgICAgIGNvbnN0IHsgY29udGVudCB9ID0gYXdhaXQgcmVhZFRlbXBsYXRlKCdyZWFjdC9yZWFjdC1zdHlsZWQtZmlsZS50cycsIHsgdGFnLCBuYW1lOiBfbmFtZSwgY2xhc3NOYW1lIH0pOwogICAgICBhd2FpdCB3cml0ZUZpbGUoZm9ybWF0dGVkRmlsZVBhdGgsIGNvbnRlbnQpOwoKICAgICAgYXdhaXQgZm9ybWF0V2l0aFByZXR0aWVyKGZvcm1hdHRlZEZpbGVQYXRoKTsKICAgIH0pOwoKICBwcm9ncmFtLnBhcnNlQXN5bmMocHJvY2Vzcy5hcmd2KTsKfQoKbWFpbigpLmNhdGNoKChlKSA9PiBjb25zb2xlLmVycm9yKGUpKTsK",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("bin/index.cjs",document.baseURI).href).pathname;async function L(){const n=new J.Command;n.name("salty-css").description("Salty-CSS CLI tool to help with annoying configuration tasks.");const e={"salty.config.ts":Promise.resolve().then(()=>require("../salty.config-BupieCfE.cjs")),"saltygen/index.css":Promise.resolve().then(()=>require("../index-84Wroia-.cjs")),"react/react-styled-file.ts":Promise.resolve().then(()=>require("../react-styled-file-Dkubsz-U.cjs"))},G=async(t,o)=>{const{default:s}=await e[t],i=Q.render(s,o);return{fileName:t,content:i}},W=async()=>{const t=g.join(process.cwd(),".saltyrc");return await C.readFile(t,"utf-8").then(JSON.parse).catch(()=>({}))},w=async()=>{const t=g.join(x,"../package.json");return await C.readFile(t,"utf-8").then(JSON.parse).catch(()=>({}))},v=await(async()=>(await W()).defaultProject)(),B=await w(),y={core:`@salty-css/core@${B.version}`,react:`@salty-css/react@${B.version}`,eslintPluginCore:`@salty-css/eslint-plugin-core@${B.version}`,vite:`@salty-css/vite@${B.version}`};n.command("init").description("Initialize a new Salty-CSS project.").requiredOption("-d, --dir <dir>","Project directory to initialize the project in.").option("--css-file <css-file>","Existing CSS file where to import the generated CSS. Path must be relative to the given project directory.").action(async function(){l.info("Installing salty-css packages core, eslint-plugin and react"),await X(y.core,y.react),await X(`-D ${y.eslintPluginCore}`),l.info("Initializing a new Salty-CSS project...");const{dir:t,cssFile:o}=this.opts(),s=process.cwd(),i=g.join(s,t),h=await Promise.all([G("salty.config.ts"),G("saltygen/index.css")]);await C.mkdir(i,{recursive:!0});const R=h.map(async({fileName:I,content:a})=>{const d=g.join(i,I);if(await C.readFile(d,"utf-8").catch(()=>{})!==void 0){l.debug("File already exists: "+d);return}const V=I.split("/").slice(0,-1).join("/");V&&await C.mkdir(g.join(i,V),{recursive:!0}),l.info("Writing file: "+d),await C.writeFile(d,a),await u(d)});await Promise.all(R);const m=g.relative(s,i),c=g.join(s,".saltyrc"),b=await C.readFile(c,"utf-8").catch(()=>{});if(b===void 0){l.info("Creating file: "+c);const a=JSON.stringify({defaultProject:m,projects:[m]},null,2);await C.writeFile(c,a)}else{l.info("Edit file: "+c);const I=JSON.parse(b),a=new Set((I==null?void 0:I.projects)||[]);a.add(m),I.projects=[...a];const d=JSON.stringify(I,null,2);await C.writeFile(c,d)}const r=g.join(s,".gitignore"),A=await C.readFile(r,"utf-8").catch(()=>{});if(A!==void 0&&(A.includes("saltygen")||(l.info("Edit file: "+r),await C.writeFile(r,A+`
|
2
|
+
"use strict";const S=require("commander"),c=require("fs/promises"),g=require("path"),Q=require("ejs"),j=require("../compiler/index.cjs"),z=require("../pascal-case-iWoaJWwT.cjs"),W=require("winston"),k=require("fs"),L=require("child_process");var H=typeof document<"u"?document.currentScript:null;const l=W.createLogger({level:"debug",format:W.format.combine(W.format.colorize(),W.format.cli()),transports:[new W.transports.Console({})]}),v=n=>new Promise((e,A)=>{L.exec(n,p=>{if(p)return A(p);e()})}),X=async(...n)=>{const e=n.join(" ");await v(`npm install ${e}`)},U=()=>k.existsSync(g.join(process.cwd(),"node_modules",".bin","prettier"));async function Y(n){try{if(!U())return;await v(`./node_modules/.bin/prettier --write "${n}"`),l.info(`Formatted ${n} with Prettier`)}catch(e){l.error(`Error formatting ${n} with Prettier:`,e)}}const V=new URL("data:video/mp2t;base64,IyEvdXNyL2Jpbi9lbnYgbm9kZQppbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJzsKaW1wb3J0IHsgcmVhZEZpbGUsIHdyaXRlRmlsZSwgbWtkaXIgfSBmcm9tICdmcy9wcm9taXNlcyc7CmltcG9ydCB7IGpvaW4sIHJlbGF0aXZlLCBwYXJzZSBhcyBwYXJzZVBhdGgsIGZvcm1hdCBhcyBmb3JtYXRQYXRoIH0gZnJvbSAncGF0aCc7CmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ2Vqcyc7CmltcG9ydCB7IGdlbmVyYXRlQ3NzIH0gZnJvbSAnLi4vY29tcGlsZXInOwppbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnLi4vdXRpbCc7CmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJzsKaW1wb3J0IHsgZm9ybWF0V2l0aFByZXR0aWVyIH0gZnJvbSAnLi9wcmV0dGllcic7CmltcG9ydCB7IG5wbUluc3RhbGwgfSBmcm9tICcuL2Jpbi11dGlsJzsKCmNvbnN0IF9fZGlybmFtZSA9IG5ldyBVUkwoJy4nLCBpbXBvcnQubWV0YS51cmwpLnBhdGhuYW1lOwoKYXN5bmMgZnVuY3Rpb24gbWFpbigpIHsKICBjb25zdCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKTsKCiAgcHJvZ3JhbS5uYW1lKCdzYWx0eS1jc3MnKS5kZXNjcmlwdGlvbignU2FsdHktQ1NTIENMSSB0b29sIHRvIGhlbHAgd2l0aCBhbm5veWluZyBjb25maWd1cmF0aW9uIHRhc2tzLicpOwoKICBjb25zdCBmaWxlcyA9IHsKICAgIC8vIENvcmUgZmlsZXMKICAgICdzYWx0eS5jb25maWcudHMnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL3NhbHR5LmNvbmZpZy50c19fdGVtcGxhdGUnKSwKICAgICdzYWx0eWdlbi9pbmRleC5jc3MnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL2luZGV4LmNzc19fdGVtcGxhdGUnKSwKICAgIC8vIFJlYWN0CiAgICAncmVhY3QvcmVhY3Qtc3R5bGVkLWZpbGUudHMnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL3JlYWN0LXN0eWxlZC1maWxlLnRzX190ZW1wbGF0ZScpLAogIH0gYXMgY29uc3Q7CgogIHR5cGUgVGVtcGxhdGUgPSBrZXlvZiB0eXBlb2YgZmlsZXM7CgogIGNvbnN0IHJlYWRUZW1wbGF0ZSA9IGFzeW5jIDxUIGV4dGVuZHMgb2JqZWN0PihmaWxlTmFtZTogVGVtcGxhdGUsIG9wdGlvbnM/OiBUKSA9PiB7CiAgICBjb25zdCB7IGRlZmF1bHQ6IGZpbGUgfSA9IGF3YWl0IGZpbGVzW2ZpbGVOYW1lXTsKICAgIGNvbnN0IGNvbnRlbnQgPSByZW5kZXIoZmlsZSwgb3B0aW9ucyk7CiAgICByZXR1cm4geyBmaWxlTmFtZSwgY29udGVudCB9OwogIH07CgogIGludGVyZmFjZSBSQ0ZpbGUgewogICAgZGVmYXVsdFByb2plY3Q6IHN0cmluZzsKICAgIHByb2plY3RzOiBzdHJpbmdbXTsKICB9CgogIGNvbnN0IHJlYWRSQ0ZpbGUgPSBhc3luYyAoKSA9PiB7CiAgICBjb25zdCByY1BhdGggPSBqb2luKHByb2Nlc3MuY3dkKCksICcuc2FsdHlyYycpOwogICAgY29uc3QgcmNDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUocmNQYXRoLCAndXRmLTgnKQogICAgICAudGhlbihKU09OLnBhcnNlKQogICAgICAuY2F0Y2goKCkgPT4gKHt9KSk7CgogICAgcmV0dXJuIHJjQ29udGVudCBhcyBSQ0ZpbGU7CiAgfTsKCiAgY29uc3QgcmVhZFRoaXNQYWNrYWdlSnNvbiA9IGFzeW5jICgpID0+IHsKICAgIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IGpvaW4oX19kaXJuYW1lLCAnLi4vcGFja2FnZS5qc29uJyk7CiAgICBjb25zb2xlLmxvZyh7IF9fZGlybmFtZSwgcGFja2FnZUpzb25QYXRoIH0pOwogICAgY29uc3QgcGFja2FnZUpzb25Db250ZW50ID0gYXdhaXQgcmVhZEZpbGUocGFja2FnZUpzb25QYXRoLCAndXRmLTgnKQogICAgICAudGhlbihKU09OLnBhcnNlKQogICAgICAuY2F0Y2goKCkgPT4gKHt9KSk7CgogICAgcmV0dXJuIHBhY2thZ2VKc29uQ29udGVudDsKICB9OwoKICBjb25zdCByZWFkUGFja2FnZUpzb24gPSBhc3luYyAocHJvamVjdERpcjogc3RyaW5nKSA9PiB7CiAgICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKHByb2plY3REaXIsICdwYWNrYWdlLmpzb24nKTsKICAgIGNvbnN0IHBhY2thZ2VKc29uQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKHBhY2thZ2VKc29uUGF0aCwgJ3V0Zi04JykKICAgICAgLnRoZW4oSlNPTi5wYXJzZSkKICAgICAgLmNhdGNoKCgpID0+ICh7fSkpOwoKICAgIHJldHVybiBwYWNrYWdlSnNvbkNvbnRlbnQ7CiAgfTsKCiAgY29uc3QgZ2V0RGVmYXVsdFByb2plY3QgPSBhc3luYyAoKSA9PiB7CiAgICBjb25zdCByY0NvbnRlbnQgPSBhd2FpdCByZWFkUkNGaWxlKCk7CiAgICByZXR1cm4gcmNDb250ZW50LmRlZmF1bHRQcm9qZWN0OwogIH07CgogIGNvbnN0IGRlZmF1bHRQcm9qZWN0ID0gYXdhaXQgZ2V0RGVmYXVsdFByb2plY3QoKTsKCiAgaW50ZXJmYWNlIEluaXRPcHRpb25zIHsKICAgIGRpcjogc3RyaW5nOwogICAgY3NzRmlsZT86IHN0cmluZzsKICB9CgogIGNvbnN0IGN1cnJlbnRQYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRUaGlzUGFja2FnZUpzb24oKTsKCiAgY29uc3QgcGFja2FnZXMgPSB7CiAgICBjb3JlOiBgQHNhbHR5LWNzcy9jb3JlQCR7Y3VycmVudFBhY2thZ2VKc29uLnZlcnNpb259YCwKICAgIHJlYWN0OiBgQHNhbHR5LWNzcy9yZWFjdEAke2N1cnJlbnRQYWNrYWdlSnNvbi52ZXJzaW9ufWAsCiAgICBlc2xpbnRQbHVnaW5Db3JlOiBgQHNhbHR5LWNzcy9lc2xpbnQtcGx1Z2luLWNvcmVAJHtjdXJyZW50UGFja2FnZUpzb24udmVyc2lvbn1gLAogICAgdml0ZTogYEBzYWx0eS1jc3Mvdml0ZUAke2N1cnJlbnRQYWNrYWdlSnNvbi52ZXJzaW9ufWAsCiAgfTsKCiAgcHJvZ3JhbQogICAgLmNvbW1hbmQoJ2luaXQnKQogICAgLmRlc2NyaXB0aW9uKCdJbml0aWFsaXplIGEgbmV3IFNhbHR5LUNTUyBwcm9qZWN0LicpCiAgICAucmVxdWlyZWRPcHRpb24oJy1kLCAtLWRpciA8ZGlyPicsICdQcm9qZWN0IGRpcmVjdG9yeSB0byBpbml0aWFsaXplIHRoZSBwcm9qZWN0IGluLicpCiAgICAub3B0aW9uKCctLWNzcy1maWxlIDxjc3MtZmlsZT4nLCAnRXhpc3RpbmcgQ1NTIGZpbGUgd2hlcmUgdG8gaW1wb3J0IHRoZSBnZW5lcmF0ZWQgQ1NTLiBQYXRoIG11c3QgYmUgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIHByb2plY3QgZGlyZWN0b3J5LicpCiAgICAvLyBWYWxpZGF0ZSB0aGF0IGFsbCBvcHRpb25zIGFyZSBwcm92aWRlZAogICAgLmFjdGlvbihhc3luYyBmdW5jdGlvbiAodGhpczogQ29tbWFuZCkgewogICAgICBsb2dnZXIuaW5mbygnSW5zdGFsbGluZyBzYWx0eS1jc3MgcGFja2FnZXMgY29yZSwgZXNsaW50LXBsdWdpbiBhbmQgcmVhY3QnKTsKICAgICAgYXdhaXQgbnBtSW5zdGFsbChwYWNrYWdlcy5jb3JlLCBwYWNrYWdlcy5yZWFjdCk7CiAgICAgIGF3YWl0IG5wbUluc3RhbGwoYC1EICR7cGFja2FnZXMuZXNsaW50UGx1Z2luQ29yZX1gKTsKCiAgICAgIGxvZ2dlci5pbmZvKCdJbml0aWFsaXppbmcgYSBuZXcgU2FsdHktQ1NTIHByb2plY3QuLi4nKTsKCiAgICAgIGNvbnN0IHsgZGlyLCBjc3NGaWxlIH0gPSB0aGlzLm9wdHM8SW5pdE9wdGlvbnM+KCk7CiAgICAgIGNvbnN0IHJvb3REaXIgPSBwcm9jZXNzLmN3ZCgpOwogICAgICBjb25zdCBwcm9qZWN0RGlyID0gam9pbihyb290RGlyLCBkaXIpOwogICAgICBjb25zdCBwcm9qZWN0RmlsZXMgPSBhd2FpdCBQcm9taXNlLmFsbChbcmVhZFRlbXBsYXRlKCdzYWx0eS5jb25maWcudHMnKSwgcmVhZFRlbXBsYXRlKCdzYWx0eWdlbi9pbmRleC5jc3MnKV0pOwoKICAgICAgLy8gQ3JlYXRlIHRoZSBwcm9qZWN0IHN0cnVjdHVyZSBpZiBpdCBkb2Vzbid0IGV4aXN0CiAgICAgIGF3YWl0IG1rZGlyKHByb2plY3REaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pOwogICAgICBjb25zdCB3cml0ZUZpbGVzID0gcHJvamVjdEZpbGVzLm1hcChhc3luYyAoeyBmaWxlTmFtZSwgY29udGVudCB9KSA9PiB7CiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHByb2plY3REaXIsIGZpbGVOYW1lKTsKICAgICAgICBjb25zdCBleGlzdGluZ0NvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShmaWxlUGF0aCwgJ3V0Zi04JykuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTsKICAgICAgICBpZiAoZXhpc3RpbmdDb250ZW50ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgIGxvZ2dlci5kZWJ1ZygnRmlsZSBhbHJlYWR5IGV4aXN0czogJyArIGZpbGVQYXRoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc3QgYWRkaXRpb25hbEZvbGRlcnMgPSBmaWxlTmFtZS5zcGxpdCgnLycpLnNsaWNlKDAsIC0xKS5qb2luKCcvJyk7CiAgICAgICAgLy8gQ3JlYXRlIGFkZGl0aW9uYWwgZm9sZGVycyBpZiB0aGV5IGRvbid0IGV4aXN0CiAgICAgICAgaWYgKGFkZGl0aW9uYWxGb2xkZXJzKSBhd2FpdCBta2Rpcihqb2luKHByb2plY3REaXIsIGFkZGl0aW9uYWxGb2xkZXJzKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgICAgICAgbG9nZ2VyLmluZm8oJ1dyaXRpbmcgZmlsZTogJyArIGZpbGVQYXRoKTsKICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnQpOwogICAgICAgIGF3YWl0IGZvcm1hdFdpdGhQcmV0dGllcihmaWxlUGF0aCk7CiAgICAgIH0pOwoKICAgICAgYXdhaXQgUHJvbWlzZS5hbGwod3JpdGVGaWxlcyk7CgogICAgICAvLyBDcmVhdGUgc2FsdHlyYyBmaWxlCiAgICAgIGNvbnN0IHJlbGF0aXZlUHJvamVjdFBhdGggPSByZWxhdGl2ZShyb290RGlyLCBwcm9qZWN0RGlyKTsKICAgICAgY29uc3Qgc2FsdHlyY1BhdGggPSBqb2luKHJvb3REaXIsICcuc2FsdHlyYycpOwogICAgICBjb25zdCBleGlzdGluZ1NhbHR5cmMgPSBhd2FpdCByZWFkRmlsZShzYWx0eXJjUGF0aCwgJ3V0Zi04JykuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTsKICAgICAgaWYgKGV4aXN0aW5nU2FsdHlyYyA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgbG9nZ2VyLmluZm8oJ0NyZWF0aW5nIGZpbGU6ICcgKyBzYWx0eXJjUGF0aCk7CiAgICAgICAgY29uc3QgcmNDb250ZW50ID0gewogICAgICAgICAgZGVmYXVsdFByb2plY3Q6IHJlbGF0aXZlUHJvamVjdFBhdGgsCiAgICAgICAgICBwcm9qZWN0czogW3JlbGF0aXZlUHJvamVjdFBhdGhdLAogICAgICAgIH07CiAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KHJjQ29udGVudCwgbnVsbCwgMik7CiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHNhbHR5cmNQYXRoLCBjb250ZW50KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBsb2dnZXIuaW5mbygnRWRpdCBmaWxlOiAnICsgc2FsdHlyY1BhdGgpOwogICAgICAgIGNvbnN0IHJjQ29udGVudCA9IEpTT04ucGFyc2UoZXhpc3RpbmdTYWx0eXJjKTsKICAgICAgICBjb25zdCBwcm9qZWN0cyA9IG5ldyBTZXQocmNDb250ZW50Py5wcm9qZWN0cyB8fCBbXSk7CiAgICAgICAgcHJvamVjdHMuYWRkKHJlbGF0aXZlUHJvamVjdFBhdGgpOwogICAgICAgIHJjQ29udGVudC5wcm9qZWN0cyA9IFsuLi5wcm9qZWN0c107CiAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KHJjQ29udGVudCwgbnVsbCwgMik7CiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHNhbHR5cmNQYXRoLCBjb250ZW50KTsKICAgICAgfQoKICAgICAgLy8gRWRpdCBmaWxlcyBpbiB0aGUgcHJvamVjdAoKICAgICAgLy8gRWRpdCBHaXRpZ25vcmUKICAgICAgY29uc3QgZ2l0SWdub3JlUGF0aCA9IGpvaW4ocm9vdERpciwgJy5naXRpZ25vcmUnKTsKICAgICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGdpdElnbm9yZVBhdGgsICd1dGYtOCcpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7CiAgICAgIGlmIChnaXRJZ25vcmVDb250ZW50ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICBjb25zdCBhbHJlYWR5SWdub3Jlc1NhbHR5Z2VuID0gZ2l0SWdub3JlQ29udGVudC5pbmNsdWRlcygnc2FsdHlnZW4nKTsKICAgICAgICBpZiAoIWFscmVhZHlJZ25vcmVzU2FsdHlnZW4pIHsKICAgICAgICAgIGxvZ2dlci5pbmZvKCdFZGl0IGZpbGU6ICcgKyBnaXRJZ25vcmVQYXRoKTsKICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShnaXRJZ25vcmVQYXRoLCBnaXRJZ25vcmVDb250ZW50ICsgJ1xuXG4jIFNhbHR5LUNTU1xuc2FsdHlnZW5cbicpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gRWRpdCB0aGUgQ1NTIGZpbGUgaWYgcHJvdmlkZWQKICAgICAgaWYgKGNzc0ZpbGUpIHsKICAgICAgICBjb25zdCBjc3NGaWxlUGF0aCA9IGpvaW4ocHJvamVjdERpciwgY3NzRmlsZSk7CiAgICAgICAgY29uc3QgY3NzRmlsZUNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShjc3NGaWxlUGF0aCwgJ3V0Zi04JykuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTsKICAgICAgICBpZiAoY3NzRmlsZUNvbnRlbnQgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgY29uc3QgYWxyZWFkeUltcG9ydHNTYWx0eWdlbiA9IGNzc0ZpbGVDb250ZW50LmluY2x1ZGVzKCdzYWx0eWdlbicpOwogICAgICAgICAgaWYgKCFhbHJlYWR5SW1wb3J0c1NhbHR5Z2VuKSB7CiAgICAgICAgICAgIGNvbnN0IGNzc0ZpbGVGb2xkZXIgPSBqb2luKGNzc0ZpbGVQYXRoLCAnLi4nKTsKICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcmVsYXRpdmUoY3NzRmlsZUZvbGRlciwgam9pbihwcm9qZWN0RGlyLCAnc2FsdHlnZW4vaW5kZXguY3NzJykpOwogICAgICAgICAgICBjb25zdCBpbXBvcnRTdGF0ZW1lbnQgPSBgQGltcG9ydCAnJHtyZWxhdGl2ZVBhdGh9JztgOwogICAgICAgICAgICBsb2dnZXIuaW5mbygnRWRpdCBmaWxlOiAnICsgY3NzRmlsZVBhdGgpOwogICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoY3NzRmlsZVBhdGgsIGltcG9ydFN0YXRlbWVudCArICdcbicgKyBjc3NGaWxlQ29udGVudCk7CiAgICAgICAgICAgIGF3YWl0IGZvcm1hdFdpdGhQcmV0dGllcihjc3NGaWxlUGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBGcmFtZXdvcmsgLyBidWlsZCB0b29sIHNwZWNpZmljIGZpbGVzCgogICAgICAvLyBEZXRlY3Qgdml0ZSBhbmQgYWRkIHRoZSBwbHVnaW4KICAgICAgY29uc3Qgdml0ZUNvbmZpZ1BhdGggPSBqb2luKHByb2plY3REaXIsICd2aXRlLmNvbmZpZy50cycpOwogICAgICBjb25zdCB2aXRlQ29uZmlnQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKHZpdGVDb25maWdQYXRoLCAndXRmLTgnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpOwoKICAgICAgaWYgKHZpdGVDb25maWdDb250ZW50ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICBjb25zdCBhbHJlYWR5SGFzUGx1Z2luID0gdml0ZUNvbmZpZ0NvbnRlbnQuaW5jbHVkZXMoJ3NhbHR5UGx1Z2luJyk7CiAgICAgICAgaWYgKCFhbHJlYWR5SGFzUGx1Z2luKSB7CiAgICAgICAgICBsb2dnZXIuaW5mbygnRWRpdCBmaWxlOiAnICsgdml0ZUNvbmZpZ1BhdGgpOwogICAgICAgICAgY29uc3QgcGx1Z2luSW1wb3J0ID0gImltcG9ydCB7IHNhbHR5UGx1Z2luIH0gZnJvbSAnQHNhbHR5LWNzcy92aXRlJztcbiI7CiAgICAgICAgICBjb25zdCBwbHVnaW5Db25maWcgPSAnc2FsdHlQbHVnaW4oX19kaXJuYW1lKSwnOwogICAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IHZpdGVDb25maWdDb250ZW50LnJlcGxhY2UoLyhwbHVnaW5zOiBcWykvLCBgJDFcbiAgJHtwbHVnaW5Db25maWd9YCk7CgogICAgICAgICAgbG9nZ2VyLmluZm8oJ0luc3RhbGxpbmcgQHNhbHR5LWNzcy92aXRlJyk7CiAgICAgICAgICBhd2FpdCBucG1JbnN0YWxsKHBhY2thZ2VzLnZpdGUpOwoKICAgICAgICAgIGxvZ2dlci5pbmZvKCdBZGRpbmcgU2FsdHktQ1NTIHBsdWdpbiB0byBWaXRlIGNvbmZpZy4uLicpOwogICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHZpdGVDb25maWdQYXRoLCBwbHVnaW5JbXBvcnQgKyBuZXdDb250ZW50KTsKICAgICAgICAgIGF3YWl0IGZvcm1hdFdpdGhQcmV0dGllcih2aXRlQ29uZmlnUGF0aCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKCiAgaW50ZXJmYWNlIEJ1aWxkT3B0aW9ucyB7CiAgICBkaXI6IHN0cmluZzsKICB9CgogIHByb2dyYW0KICAgIC5jb21tYW5kKCdidWlsZCcpCiAgICAuYWxpYXMoJ2InKQogICAgLmRlc2NyaXB0aW9uKCdCdWlsZCB0aGUgU2FsdHktQ1NTIHByb2plY3QuJykKICAgIC5vcHRpb24oJy1kLCAtLWRpciA8ZGlyPicsICdQcm9qZWN0IGRpcmVjdG9yeSB0byBidWlsZCB0aGUgcHJvamVjdCBpbi4nLCBkZWZhdWx0UHJvamVjdCkKICAgIC5hY3Rpb24oYXN5bmMgZnVuY3Rpb24gKHRoaXM6IENvbW1hbmQpIHsKICAgICAgbG9nZ2VyLmluZm8oJ0J1aWxkaW5nIHRoZSBTYWx0eS1DU1MgcHJvamVjdC4uLicpOwogICAgICBjb25zdCB7IGRpciB9ID0gdGhpcy5vcHRzPEJ1aWxkT3B0aW9ucz4oKTsKICAgICAgY29uc3QgcHJvamVjdERpciA9IGpvaW4ocHJvY2Vzcy5jd2QoKSwgZGlyKTsKICAgICAgYXdhaXQgZ2VuZXJhdGVDc3MocHJvamVjdERpcik7CiAgICB9KTsKCiAgaW50ZXJmYWNlIEdlbmVyYXRlT3B0aW9ucyB7CiAgICBkaXI6IHN0cmluZzsKICAgIHRhZzogc3RyaW5nOwogICAgbmFtZT86IHN0cmluZzsKICAgIGNsYXNzTmFtZT86IHN0cmluZzsKICB9CgogIHByb2dyYW0KICAgIC5jb21tYW5kKCdnZW5lcmF0ZSA8ZmlsZT4nKQogICAgLmFsaWFzKCdnJykKICAgIC5kZXNjcmlwdGlvbignR2VuZXJhdGUgYSBuZXcgY29tcG9uZW50IGZpbGUuJykKICAgIC5vcHRpb24oJy1kLCAtLWRpciA8ZGlyPicsICdQcm9qZWN0IGRpcmVjdG9yeSB0byBnZW5lcmF0ZSB0aGUgZmlsZSBpbi4nLCBkZWZhdWx0UHJvamVjdCkKICAgIC5vcHRpb24oJy10LCAtLXRhZyA8dGFnPicsICdIVE1MIHRhZyBvZiB0aGUgY29tcG9uZW50LicsICdkaXYnKQogICAgLm9wdGlvbignLW4sIC0tbmFtZSA8bmFtZT4nLCAnTmFtZSBvZiB0aGUgY29tcG9uZW50LicpCiAgICAub3B0aW9uKCctYywgLS1jbGFzc05hbWUgPGNsYXNzTmFtZT4nLCAnQ1NTIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuJykKICAgIC5hY3Rpb24oYXN5bmMgZnVuY3Rpb24gKHRoaXM6IENvbW1hbmQsIGZpbGU6IHN0cmluZykgewogICAgICBjb25zdCB7IGRpciwgdGFnLCBuYW1lLCBjbGFzc05hbWUgfSA9IHRoaXMub3B0czxHZW5lcmF0ZU9wdGlvbnM+KCk7CiAgICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHByb2Nlc3MuY3dkKCksIGRpcik7CiAgICAgIGNvbnN0IGZpbGVQYXRoID0gam9pbihwcm9qZWN0RGlyLCBmaWxlKTsKCiAgICAgIGNvbnN0IHBhcnNlZEZpbGVQYXRoID0gcGFyc2VQYXRoKGZpbGVQYXRoKTsKICAgICAgaWYgKCFwYXJzZWRGaWxlUGF0aC5leHQpIHsKICAgICAgICBwYXJzZWRGaWxlUGF0aC5leHQgPSAnLnRzJzsKICAgICAgfQogICAgICBpZiAoIXBhcnNlZEZpbGVQYXRoLm5hbWUuZW5kc1dpdGgoJy5jc3MnKSkgewogICAgICAgIHBhcnNlZEZpbGVQYXRoLm5hbWUgPSBwYXJzZWRGaWxlUGF0aC5uYW1lICsgJy5jc3MnOwogICAgICB9CiAgICAgIHBhcnNlZEZpbGVQYXRoLmJhc2UgPSBwYXJzZWRGaWxlUGF0aC5uYW1lICsgcGFyc2VkRmlsZVBhdGguZXh0OwogICAgICBjb25zdCBmb3JtYXR0ZWRGaWxlUGF0aCA9IGZvcm1hdFBhdGgocGFyc2VkRmlsZVBhdGgpOwoKICAgICAgY29uc3QgYWxyZWFkeUV4aXN0cyA9IGF3YWl0IHJlYWRGaWxlKGZvcm1hdHRlZEZpbGVQYXRoLCAndXRmLTgnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpOwogICAgICBpZiAoYWxyZWFkeUV4aXN0cyAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgbG9nZ2VyLmVycm9yKCdGaWxlIGFscmVhZHkgZXhpc3RzOicsIGZvcm1hdHRlZEZpbGVQYXRoKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgbG9nZ2VyLmluZm8oJ0dlbmVyYXRpbmcgYSBuZXcgZmlsZTogJyArIGZvcm1hdHRlZEZpbGVQYXRoKTsKCiAgICAgIGNvbnN0IF9uYW1lID0gcGFzY2FsQ2FzZShuYW1lIHx8IHBhcnNlZEZpbGVQYXRoLmJhc2UucmVwbGFjZSgvXC5jc3NcLlx3KyQvLCAnJykpOwogICAgICBjb25zdCB7IGNvbnRlbnQgfSA9IGF3YWl0IHJlYWRUZW1wbGF0ZSgncmVhY3QvcmVhY3Qtc3R5bGVkLWZpbGUudHMnLCB7IHRhZywgbmFtZTogX25hbWUsIGNsYXNzTmFtZSB9KTsKICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1hdHRlZEZpbGVQYXRoLCBjb250ZW50KTsKCiAgICAgIGF3YWl0IGZvcm1hdFdpdGhQcmV0dGllcihmb3JtYXR0ZWRGaWxlUGF0aCk7CiAgICB9KTsKCiAgcHJvZ3JhbS5wYXJzZUFzeW5jKHByb2Nlc3MuYXJndik7Cn0KCm1haW4oKS5jYXRjaCgoZSkgPT4gY29uc29sZS5lcnJvcihlKSk7Cg==",typeof document>"u"?require("url").pathToFileURL(__filename).href:H&&H.tagName.toUpperCase()==="SCRIPT"&&H.src||new URL("bin/index.cjs",document.baseURI).href).pathname;async function x(){const n=new S.Command;n.name("salty-css").description("Salty-CSS CLI tool to help with annoying configuration tasks.");const e={"salty.config.ts":Promise.resolve().then(()=>require("../salty.config-BupieCfE.cjs")),"saltygen/index.css":Promise.resolve().then(()=>require("../index-84Wroia-.cjs")),"react/react-styled-file.ts":Promise.resolve().then(()=>require("../react-styled-file-Dkubsz-U.cjs"))},A=async(a,d)=>{const{default:s}=await e[a],t=Q.render(s,d);return{fileName:a,content:t}},p=async()=>{const a=g.join(process.cwd(),".saltyrc");return await c.readFile(a,"utf-8").then(JSON.parse).catch(()=>({}))},J=async()=>{const a=g.join(V,"../package.json");return console.log({__dirname:V,packageJsonPath:a}),await c.readFile(a,"utf-8").then(JSON.parse).catch(()=>({}))},F=await(async()=>(await p()).defaultProject)(),B=await J(),r={core:`@salty-css/core@${B.version}`,react:`@salty-css/react@${B.version}`,eslintPluginCore:`@salty-css/eslint-plugin-core@${B.version}`,vite:`@salty-css/vite@${B.version}`};n.command("init").description("Initialize a new Salty-CSS project.").requiredOption("-d, --dir <dir>","Project directory to initialize the project in.").option("--css-file <css-file>","Existing CSS file where to import the generated CSS. Path must be relative to the given project directory.").action(async function(){l.info("Installing salty-css packages core, eslint-plugin and react"),await X(r.core,r.react),await X(`-D ${r.eslintPluginCore}`),l.info("Initializing a new Salty-CSS project...");const{dir:a,cssFile:d}=this.opts(),s=process.cwd(),t=g.join(s,a),R=await Promise.all([A("salty.config.ts"),A("saltygen/index.css")]);await c.mkdir(t,{recursive:!0});const h=R.map(async({fileName:C,content:i})=>{const o=g.join(t,C);if(await c.readFile(o,"utf-8").catch(()=>{})!==void 0){l.debug("File already exists: "+o);return}const N=C.split("/").slice(0,-1).join("/");N&&await c.mkdir(g.join(t,N),{recursive:!0}),l.info("Writing file: "+o),await c.writeFile(o,i),await Y(o)});await Promise.all(h);const G=g.relative(s,t),I=g.join(s,".saltyrc"),Z=await c.readFile(I,"utf-8").catch(()=>{});if(Z===void 0){l.info("Creating file: "+I);const i=JSON.stringify({defaultProject:G,projects:[G]},null,2);await c.writeFile(I,i)}else{l.info("Edit file: "+I);const C=JSON.parse(Z),i=new Set((C==null?void 0:C.projects)||[]);i.add(G),C.projects=[...i];const o=JSON.stringify(C,null,2);await c.writeFile(I,o)}const y=g.join(s,".gitignore"),m=await c.readFile(y,"utf-8").catch(()=>{});if(m!==void 0&&(m.includes("saltygen")||(l.info("Edit file: "+y),await c.writeFile(y,m+`
|
3
3
|
|
4
4
|
# Salty-CSS
|
5
5
|
saltygen
|
6
|
-
`))),
|
7
|
-
`+
|
8
|
-
`,
|
9
|
-
saltyPlugin(__dirname),`);l.info("Installing @salty-css/vite"),await X(
|
6
|
+
`))),d){const C=g.join(t,d),i=await c.readFile(C,"utf-8").catch(()=>{});if(i!==void 0&&!i.includes("saltygen")){const u=g.join(C,".."),w=`@import '${g.relative(u,g.join(t,"saltygen/index.css"))}';`;l.info("Edit file: "+C),await c.writeFile(C,w+`
|
7
|
+
`+i),await Y(C)}}const b=g.join(t,"vite.config.ts"),K=await c.readFile(b,"utf-8").catch(()=>{});if(K!==void 0&&!K.includes("saltyPlugin")){l.info("Edit file: "+b);const i=`import { saltyPlugin } from '@salty-css/vite';
|
8
|
+
`,u=K.replace(/(plugins: \[)/,`$1
|
9
|
+
saltyPlugin(__dirname),`);l.info("Installing @salty-css/vite"),await X(r.vite),l.info("Adding Salty-CSS plugin to Vite config..."),await c.writeFile(b,i+u),await Y(b)}}),n.command("build").alias("b").description("Build the Salty-CSS project.").option("-d, --dir <dir>","Project directory to build the project in.",F).action(async function(){l.info("Building the Salty-CSS project...");const{dir:a}=this.opts(),d=g.join(process.cwd(),a);await j.generateCss(d)}),n.command("generate <file>").alias("g").description("Generate a new component file.").option("-d, --dir <dir>","Project directory to generate the file in.",F).option("-t, --tag <tag>","HTML tag of the component.","div").option("-n, --name <name>","Name of the component.").option("-c, --className <className>","CSS class of the component.").action(async function(a){const{dir:d,tag:s,name:t,className:R}=this.opts(),h=g.join(process.cwd(),d),G=g.join(h,a),I=g.parse(G);I.ext||(I.ext=".ts"),I.name.endsWith(".css")||(I.name=I.name+".css"),I.base=I.name+I.ext;const Z=g.format(I);if(await c.readFile(Z,"utf-8").catch(()=>{})!==void 0){l.error("File already exists:",Z);return}l.info("Generating a new file: "+Z);const m=z.pascalCase(t||I.base.replace(/\.css\.\w+$/,"")),{content:b}=await A("react/react-styled-file.ts",{tag:s,name:m,className:R});await c.writeFile(Z,b),await Y(Z)}),n.parseAsync(process.argv)}x().catch(n=>console.error(n));
|
package/bin/index.js
CHANGED
@@ -1,130 +1,130 @@
|
|
1
1
|
#!/usr/bin/env node
|
2
|
-
import { Command as
|
3
|
-
import { mkdir as
|
4
|
-
import { join as l, relative as
|
5
|
-
import { render as
|
6
|
-
import { generateCss as
|
2
|
+
import { Command as j } from "commander";
|
3
|
+
import { mkdir as F, readFile as b, writeFile as A } from "fs/promises";
|
4
|
+
import { join as l, relative as J, parse as z, format as k } from "path";
|
5
|
+
import { render as L } from "ejs";
|
6
|
+
import { generateCss as U } from "../compiler/index.js";
|
7
7
|
import { p as x } from "../pascal-case-BQpR5PdN.js";
|
8
|
-
import { createLogger as
|
8
|
+
import { createLogger as f, format as H, transports as T } from "winston";
|
9
9
|
import { existsSync as P } from "fs";
|
10
10
|
import { exec as O } from "child_process";
|
11
|
-
const
|
11
|
+
const I = f({
|
12
12
|
level: "debug",
|
13
13
|
format: H.combine(H.colorize(), H.cli()),
|
14
|
-
transports: [new
|
15
|
-
}),
|
16
|
-
O(c, (
|
17
|
-
if (
|
18
|
-
|
14
|
+
transports: [new T.Console({})]
|
15
|
+
}), S = (c) => new Promise((o, m) => {
|
16
|
+
O(c, (p) => {
|
17
|
+
if (p) return m(p);
|
18
|
+
o();
|
19
19
|
});
|
20
20
|
}), X = async (...c) => {
|
21
|
-
const
|
22
|
-
await
|
23
|
-
},
|
21
|
+
const o = c.join(" ");
|
22
|
+
await S(`npm install ${o}`);
|
23
|
+
}, E = () => P(l(process.cwd(), "node_modules", ".bin", "prettier"));
|
24
24
|
async function r(c) {
|
25
25
|
try {
|
26
|
-
if (!
|
27
|
-
await
|
28
|
-
} catch (
|
29
|
-
|
26
|
+
if (!E()) return;
|
27
|
+
await S(`./node_modules/.bin/prettier --write "${c}"`), I.info(`Formatted ${c} with Prettier`);
|
28
|
+
} catch (o) {
|
29
|
+
I.error(`Error formatting ${c} with Prettier:`, o);
|
30
30
|
}
|
31
31
|
}
|
32
|
-
const D = new URL("data:video/mp2t;base64,IyEvdXNyL2Jpbi9lbnYgbm9kZQppbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJzsKaW1wb3J0IHsgcmVhZEZpbGUsIHdyaXRlRmlsZSwgbWtkaXIgfSBmcm9tICdmcy9wcm9taXNlcyc7CmltcG9ydCB7IGpvaW4sIHJlbGF0aXZlLCBwYXJzZSBhcyBwYXJzZVBhdGgsIGZvcm1hdCBhcyBmb3JtYXRQYXRoIH0gZnJvbSAncGF0aCc7CmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ2Vqcyc7CmltcG9ydCB7IGdlbmVyYXRlQ3NzIH0gZnJvbSAnLi4vY29tcGlsZXInOwppbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnLi4vdXRpbCc7CmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJzsKaW1wb3J0IHsgZm9ybWF0V2l0aFByZXR0aWVyIH0gZnJvbSAnLi9wcmV0dGllcic7CmltcG9ydCB7IG5wbUluc3RhbGwgfSBmcm9tICcuL2Jpbi11dGlsJzsKCmNvbnN0IF9fZGlybmFtZSA9IG5ldyBVUkwoJy4nLCBpbXBvcnQubWV0YS51cmwpLnBhdGhuYW1lOwoKYXN5bmMgZnVuY3Rpb24gbWFpbigpIHsKICBjb25zdCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKTsKCiAgcHJvZ3JhbS5uYW1lKCdzYWx0eS1jc3MnKS5kZXNjcmlwdGlvbignU2FsdHktQ1NTIENMSSB0b29sIHRvIGhlbHAgd2l0aCBhbm5veWluZyBjb25maWd1cmF0aW9uIHRhc2tzLicpOwoKICBjb25zdCBmaWxlcyA9IHsKICAgIC8vIENvcmUgZmlsZXMKICAgICdzYWx0eS5jb25maWcudHMnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL3NhbHR5LmNvbmZpZy50c19fdGVtcGxhdGUnKSwKICAgICdzYWx0eWdlbi9pbmRleC5jc3MnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL2luZGV4LmNzc19fdGVtcGxhdGUnKSwKICAgIC8vIFJlYWN0CiAgICAncmVhY3QvcmVhY3Qtc3R5bGVkLWZpbGUudHMnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL3JlYWN0LXN0eWxlZC1maWxlLnRzX190ZW1wbGF0ZScpLAogIH0gYXMgY29uc3Q7CgogIHR5cGUgVGVtcGxhdGUgPSBrZXlvZiB0eXBlb2YgZmlsZXM7CgogIGNvbnN0IHJlYWRUZW1wbGF0ZSA9IGFzeW5jIDxUIGV4dGVuZHMgb2JqZWN0PihmaWxlTmFtZTogVGVtcGxhdGUsIG9wdGlvbnM/OiBUKSA9PiB7CiAgICBjb25zdCB7IGRlZmF1bHQ6IGZpbGUgfSA9IGF3YWl0IGZpbGVzW2ZpbGVOYW1lXTsKICAgIGNvbnN0IGNvbnRlbnQgPSByZW5kZXIoZmlsZSwgb3B0aW9ucyk7CiAgICByZXR1cm4geyBmaWxlTmFtZSwgY29udGVudCB9OwogIH07CgogIGludGVyZmFjZSBSQ0ZpbGUgewogICAgZGVmYXVsdFByb2plY3Q6IHN0cmluZzsKICAgIHByb2plY3RzOiBzdHJpbmdbXTsKICB9CgogIGNvbnN0IHJlYWRSQ0ZpbGUgPSBhc3luYyAoKSA9PiB7CiAgICBjb25zdCByY1BhdGggPSBqb2luKHByb2Nlc3MuY3dkKCksICcuc2FsdHlyYycpOwogICAgY29uc3QgcmNDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUocmNQYXRoLCAndXRmLTgnKQogICAgICAudGhlbihKU09OLnBhcnNlKQogICAgICAuY2F0Y2goKCkgPT4gKHt9KSk7CgogICAgcmV0dXJuIHJjQ29udGVudCBhcyBSQ0ZpbGU7CiAgfTsKCiAgY29uc3QgcmVhZFRoaXNQYWNrYWdlSnNvbiA9IGFzeW5jICgpID0+IHsKICAgIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IGpvaW4oX19kaXJuYW1lLCAnLi4vcGFja2FnZS5qc29uJyk7CiAgICBjb25zdCBwYWNrYWdlSnNvbkNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShwYWNrYWdlSnNvblBhdGgsICd1dGYtOCcpCiAgICAgIC50aGVuKEpTT04ucGFyc2UpCiAgICAgIC5jYXRjaCgoKSA9PiAoe30pKTsKCiAgICByZXR1cm4gcGFja2FnZUpzb25Db250ZW50OwogIH07CgogIGNvbnN0IHJlYWRQYWNrYWdlSnNvbiA9IGFzeW5jIChwcm9qZWN0RGlyOiBzdHJpbmcpID0+IHsKICAgIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IGpvaW4ocHJvamVjdERpciwgJ3BhY2thZ2UuanNvbicpOwogICAgY29uc3QgcGFja2FnZUpzb25Db250ZW50ID0gYXdhaXQgcmVhZEZpbGUocGFja2FnZUpzb25QYXRoLCAndXRmLTgnKQogICAgICAudGhlbihKU09OLnBhcnNlKQogICAgICAuY2F0Y2goKCkgPT4gKHt9KSk7CgogICAgcmV0dXJuIHBhY2thZ2VKc29uQ29udGVudDsKICB9OwoKICBjb25zdCBnZXREZWZhdWx0UHJvamVjdCA9IGFzeW5jICgpID0+IHsKICAgIGNvbnN0IHJjQ29udGVudCA9IGF3YWl0IHJlYWRSQ0ZpbGUoKTsKICAgIHJldHVybiByY0NvbnRlbnQuZGVmYXVsdFByb2plY3Q7CiAgfTsKCiAgY29uc3QgZGVmYXVsdFByb2plY3QgPSBhd2FpdCBnZXREZWZhdWx0UHJvamVjdCgpOwoKICBpbnRlcmZhY2UgSW5pdE9wdGlvbnMgewogICAgZGlyOiBzdHJpbmc7CiAgICBjc3NGaWxlPzogc3RyaW5nOwogIH0KCiAgY29uc3QgY3VycmVudFBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFRoaXNQYWNrYWdlSnNvbigpOwoKICBjb25zdCBwYWNrYWdlcyA9IHsKICAgIGNvcmU6IGBAc2FsdHktY3NzL2NvcmVAJHtjdXJyZW50UGFja2FnZUpzb24udmVyc2lvbn1gLAogICAgcmVhY3Q6IGBAc2FsdHktY3NzL3JlYWN0QCR7Y3VycmVudFBhY2thZ2VKc29uLnZlcnNpb259YCwKICAgIGVzbGludFBsdWdpbkNvcmU6IGBAc2FsdHktY3NzL2VzbGludC1wbHVnaW4tY29yZUAke2N1cnJlbnRQYWNrYWdlSnNvbi52ZXJzaW9ufWAsCiAgICB2aXRlOiBgQHNhbHR5LWNzcy92aXRlQCR7Y3VycmVudFBhY2thZ2VKc29uLnZlcnNpb259YCwKICB9OwoKICBwcm9ncmFtCiAgICAuY29tbWFuZCgnaW5pdCcpCiAgICAuZGVzY3JpcHRpb24oJ0luaXRpYWxpemUgYSBuZXcgU2FsdHktQ1NTIHByb2plY3QuJykKICAgIC5yZXF1aXJlZE9wdGlvbignLWQsIC0tZGlyIDxkaXI+JywgJ1Byb2plY3QgZGlyZWN0b3J5IHRvIGluaXRpYWxpemUgdGhlIHByb2plY3QgaW4uJykKICAgIC5vcHRpb24oJy0tY3NzLWZpbGUgPGNzcy1maWxlPicsICdFeGlzdGluZyBDU1MgZmlsZSB3aGVyZSB0byBpbXBvcnQgdGhlIGdlbmVyYXRlZCBDU1MuIFBhdGggbXVzdCBiZSByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gcHJvamVjdCBkaXJlY3RvcnkuJykKICAgIC8vIFZhbGlkYXRlIHRoYXQgYWxsIG9wdGlvbnMgYXJlIHByb3ZpZGVkCiAgICAuYWN0aW9uKGFzeW5jIGZ1bmN0aW9uICh0aGlzOiBDb21tYW5kKSB7CiAgICAgIGxvZ2dlci5pbmZvKCdJbnN0YWxsaW5nIHNhbHR5LWNzcyBwYWNrYWdlcyBjb3JlLCBlc2xpbnQtcGx1Z2luIGFuZCByZWFjdCcpOwogICAgICBhd2FpdCBucG1JbnN0YWxsKHBhY2thZ2VzLmNvcmUsIHBhY2thZ2VzLnJlYWN0KTsKICAgICAgYXdhaXQgbnBtSW5zdGFsbChgLUQgJHtwYWNrYWdlcy5lc2xpbnRQbHVnaW5Db3JlfWApOwoKICAgICAgbG9nZ2VyLmluZm8oJ0luaXRpYWxpemluZyBhIG5ldyBTYWx0eS1DU1MgcHJvamVjdC4uLicpOwoKICAgICAgY29uc3QgeyBkaXIsIGNzc0ZpbGUgfSA9IHRoaXMub3B0czxJbml0T3B0aW9ucz4oKTsKICAgICAgY29uc3Qgcm9vdERpciA9IHByb2Nlc3MuY3dkKCk7CiAgICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHJvb3REaXIsIGRpcik7CiAgICAgIGNvbnN0IHByb2plY3RGaWxlcyA9IGF3YWl0IFByb21pc2UuYWxsKFtyZWFkVGVtcGxhdGUoJ3NhbHR5LmNvbmZpZy50cycpLCByZWFkVGVtcGxhdGUoJ3NhbHR5Z2VuL2luZGV4LmNzcycpXSk7CgogICAgICAvLyBDcmVhdGUgdGhlIHByb2plY3Qgc3RydWN0dXJlIGlmIGl0IGRvZXNuJ3QgZXhpc3QKICAgICAgYXdhaXQgbWtkaXIocHJvamVjdERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgICAgIGNvbnN0IHdyaXRlRmlsZXMgPSBwcm9qZWN0RmlsZXMubWFwKGFzeW5jICh7IGZpbGVOYW1lLCBjb250ZW50IH0pID0+IHsKICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4ocHJvamVjdERpciwgZmlsZU5hbWUpOwogICAgICAgIGNvbnN0IGV4aXN0aW5nQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCAndXRmLTgnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpOwogICAgICAgIGlmIChleGlzdGluZ0NvbnRlbnQgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgbG9nZ2VyLmRlYnVnKCdGaWxlIGFscmVhZHkgZXhpc3RzOiAnICsgZmlsZVBhdGgpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCBhZGRpdGlvbmFsRm9sZGVycyA9IGZpbGVOYW1lLnNwbGl0KCcvJykuc2xpY2UoMCwgLTEpLmpvaW4oJy8nKTsKICAgICAgICAvLyBDcmVhdGUgYWRkaXRpb25hbCBmb2xkZXJzIGlmIHRoZXkgZG9uJ3QgZXhpc3QKICAgICAgICBpZiAoYWRkaXRpb25hbEZvbGRlcnMpIGF3YWl0IG1rZGlyKGpvaW4ocHJvamVjdERpciwgYWRkaXRpb25hbEZvbGRlcnMpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsKICAgICAgICBsb2dnZXIuaW5mbygnV3JpdGluZyBmaWxlOiAnICsgZmlsZVBhdGgpOwogICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgY29udGVudCk7CiAgICAgICAgYXdhaXQgZm9ybWF0V2l0aFByZXR0aWVyKGZpbGVQYXRoKTsKICAgICAgfSk7CgogICAgICBhd2FpdCBQcm9taXNlLmFsbCh3cml0ZUZpbGVzKTsKCiAgICAgIC8vIENyZWF0ZSBzYWx0eXJjIGZpbGUKICAgICAgY29uc3QgcmVsYXRpdmVQcm9qZWN0UGF0aCA9IHJlbGF0aXZlKHJvb3REaXIsIHByb2plY3REaXIpOwogICAgICBjb25zdCBzYWx0eXJjUGF0aCA9IGpvaW4ocm9vdERpciwgJy5zYWx0eXJjJyk7CiAgICAgIGNvbnN0IGV4aXN0aW5nU2FsdHlyYyA9IGF3YWl0IHJlYWRGaWxlKHNhbHR5cmNQYXRoLCAndXRmLTgnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpOwogICAgICBpZiAoZXhpc3RpbmdTYWx0eXJjID09PSB1bmRlZmluZWQpIHsKICAgICAgICBsb2dnZXIuaW5mbygnQ3JlYXRpbmcgZmlsZTogJyArIHNhbHR5cmNQYXRoKTsKICAgICAgICBjb25zdCByY0NvbnRlbnQgPSB7CiAgICAgICAgICBkZWZhdWx0UHJvamVjdDogcmVsYXRpdmVQcm9qZWN0UGF0aCwKICAgICAgICAgIHByb2plY3RzOiBbcmVsYXRpdmVQcm9qZWN0UGF0aF0sCiAgICAgICAgfTsKICAgICAgICBjb25zdCBjb250ZW50ID0gSlNPTi5zdHJpbmdpZnkocmNDb250ZW50LCBudWxsLCAyKTsKICAgICAgICBhd2FpdCB3cml0ZUZpbGUoc2FsdHlyY1BhdGgsIGNvbnRlbnQpOwogICAgICB9IGVsc2UgewogICAgICAgIGxvZ2dlci5pbmZvKCdFZGl0IGZpbGU6ICcgKyBzYWx0eXJjUGF0aCk7CiAgICAgICAgY29uc3QgcmNDb250ZW50ID0gSlNPTi5wYXJzZShleGlzdGluZ1NhbHR5cmMpOwogICAgICAgIGNvbnN0IHByb2plY3RzID0gbmV3IFNldChyY0NvbnRlbnQ/LnByb2plY3RzIHx8IFtdKTsKICAgICAgICBwcm9qZWN0cy5hZGQocmVsYXRpdmVQcm9qZWN0UGF0aCk7CiAgICAgICAgcmNDb250ZW50LnByb2plY3RzID0gWy4uLnByb2plY3RzXTsKICAgICAgICBjb25zdCBjb250ZW50ID0gSlNPTi5zdHJpbmdpZnkocmNDb250ZW50LCBudWxsLCAyKTsKICAgICAgICBhd2FpdCB3cml0ZUZpbGUoc2FsdHlyY1BhdGgsIGNvbnRlbnQpOwogICAgICB9CgogICAgICAvLyBFZGl0IGZpbGVzIGluIHRoZSBwcm9qZWN0CgogICAgICAvLyBFZGl0IEdpdGlnbm9yZQogICAgICBjb25zdCBnaXRJZ25vcmVQYXRoID0gam9pbihyb290RGlyLCAnLmdpdGlnbm9yZScpOwogICAgICBjb25zdCBnaXRJZ25vcmVDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZ2l0SWdub3JlUGF0aCwgJ3V0Zi04JykuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTsKICAgICAgaWYgKGdpdElnbm9yZUNvbnRlbnQgIT09IHVuZGVmaW5lZCkgewogICAgICAgIGNvbnN0IGFscmVhZHlJZ25vcmVzU2FsdHlnZW4gPSBnaXRJZ25vcmVDb250ZW50LmluY2x1ZGVzKCdzYWx0eWdlbicpOwogICAgICAgIGlmICghYWxyZWFkeUlnbm9yZXNTYWx0eWdlbikgewogICAgICAgICAgbG9nZ2VyLmluZm8oJ0VkaXQgZmlsZTogJyArIGdpdElnbm9yZVBhdGgpOwogICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGdpdElnbm9yZVBhdGgsIGdpdElnbm9yZUNvbnRlbnQgKyAnXG5cbiMgU2FsdHktQ1NTXG5zYWx0eWdlblxuJyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBFZGl0IHRoZSBDU1MgZmlsZSBpZiBwcm92aWRlZAogICAgICBpZiAoY3NzRmlsZSkgewogICAgICAgIGNvbnN0IGNzc0ZpbGVQYXRoID0gam9pbihwcm9qZWN0RGlyLCBjc3NGaWxlKTsKICAgICAgICBjb25zdCBjc3NGaWxlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNzc0ZpbGVQYXRoLCAndXRmLTgnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpOwogICAgICAgIGlmIChjc3NGaWxlQ29udGVudCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICBjb25zdCBhbHJlYWR5SW1wb3J0c1NhbHR5Z2VuID0gY3NzRmlsZUNvbnRlbnQuaW5jbHVkZXMoJ3NhbHR5Z2VuJyk7CiAgICAgICAgICBpZiAoIWFscmVhZHlJbXBvcnRzU2FsdHlnZW4pIHsKICAgICAgICAgICAgY29uc3QgY3NzRmlsZUZvbGRlciA9IGpvaW4oY3NzRmlsZVBhdGgsICcuLicpOwogICAgICAgICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSByZWxhdGl2ZShjc3NGaWxlRm9sZGVyLCBqb2luKHByb2plY3REaXIsICdzYWx0eWdlbi9pbmRleC5jc3MnKSk7CiAgICAgICAgICAgIGNvbnN0IGltcG9ydFN0YXRlbWVudCA9IGBAaW1wb3J0ICcke3JlbGF0aXZlUGF0aH0nO2A7CiAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdFZGl0IGZpbGU6ICcgKyBjc3NGaWxlUGF0aCk7CiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShjc3NGaWxlUGF0aCwgaW1wb3J0U3RhdGVtZW50ICsgJ1xuJyArIGNzc0ZpbGVDb250ZW50KTsKICAgICAgICAgICAgYXdhaXQgZm9ybWF0V2l0aFByZXR0aWVyKGNzc0ZpbGVQYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIEZyYW1ld29yayAvIGJ1aWxkIHRvb2wgc3BlY2lmaWMgZmlsZXMKCiAgICAgIC8vIERldGVjdCB2aXRlIGFuZCBhZGQgdGhlIHBsdWdpbgogICAgICBjb25zdCB2aXRlQ29uZmlnUGF0aCA9IGpvaW4ocHJvamVjdERpciwgJ3ZpdGUuY29uZmlnLnRzJyk7CiAgICAgIGNvbnN0IHZpdGVDb25maWdDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUodml0ZUNvbmZpZ1BhdGgsICd1dGYtOCcpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7CgogICAgICBpZiAodml0ZUNvbmZpZ0NvbnRlbnQgIT09IHVuZGVmaW5lZCkgewogICAgICAgIGNvbnN0IGFscmVhZHlIYXNQbHVnaW4gPSB2aXRlQ29uZmlnQ29udGVudC5pbmNsdWRlcygnc2FsdHlQbHVnaW4nKTsKICAgICAgICBpZiAoIWFscmVhZHlIYXNQbHVnaW4pIHsKICAgICAgICAgIGxvZ2dlci5pbmZvKCdFZGl0IGZpbGU6ICcgKyB2aXRlQ29uZmlnUGF0aCk7CiAgICAgICAgICBjb25zdCBwbHVnaW5JbXBvcnQgPSAiaW1wb3J0IHsgc2FsdHlQbHVnaW4gfSBmcm9tICdAc2FsdHktY3NzL3ZpdGUnO1xuIjsKICAgICAgICAgIGNvbnN0IHBsdWdpbkNvbmZpZyA9ICdzYWx0eVBsdWdpbihfX2Rpcm5hbWUpLCc7CiAgICAgICAgICBjb25zdCBuZXdDb250ZW50ID0gdml0ZUNvbmZpZ0NvbnRlbnQucmVwbGFjZSgvKHBsdWdpbnM6IFxbKS8sIGAkMVxuICAke3BsdWdpbkNvbmZpZ31gKTsKCiAgICAgICAgICBsb2dnZXIuaW5mbygnSW5zdGFsbGluZyBAc2FsdHktY3NzL3ZpdGUnKTsKICAgICAgICAgIGF3YWl0IG5wbUluc3RhbGwocGFja2FnZXMudml0ZSk7CgogICAgICAgICAgbG9nZ2VyLmluZm8oJ0FkZGluZyBTYWx0eS1DU1MgcGx1Z2luIHRvIFZpdGUgY29uZmlnLi4uJyk7CiAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUodml0ZUNvbmZpZ1BhdGgsIHBsdWdpbkltcG9ydCArIG5ld0NvbnRlbnQpOwogICAgICAgICAgYXdhaXQgZm9ybWF0V2l0aFByZXR0aWVyKHZpdGVDb25maWdQYXRoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0pOwoKICBpbnRlcmZhY2UgQnVpbGRPcHRpb25zIHsKICAgIGRpcjogc3RyaW5nOwogIH0KCiAgcHJvZ3JhbQogICAgLmNvbW1hbmQoJ2J1aWxkJykKICAgIC5hbGlhcygnYicpCiAgICAuZGVzY3JpcHRpb24oJ0J1aWxkIHRoZSBTYWx0eS1DU1MgcHJvamVjdC4nKQogICAgLm9wdGlvbignLWQsIC0tZGlyIDxkaXI+JywgJ1Byb2plY3QgZGlyZWN0b3J5IHRvIGJ1aWxkIHRoZSBwcm9qZWN0IGluLicsIGRlZmF1bHRQcm9qZWN0KQogICAgLmFjdGlvbihhc3luYyBmdW5jdGlvbiAodGhpczogQ29tbWFuZCkgewogICAgICBsb2dnZXIuaW5mbygnQnVpbGRpbmcgdGhlIFNhbHR5LUNTUyBwcm9qZWN0Li4uJyk7CiAgICAgIGNvbnN0IHsgZGlyIH0gPSB0aGlzLm9wdHM8QnVpbGRPcHRpb25zPigpOwogICAgICBjb25zdCBwcm9qZWN0RGlyID0gam9pbihwcm9jZXNzLmN3ZCgpLCBkaXIpOwogICAgICBhd2FpdCBnZW5lcmF0ZUNzcyhwcm9qZWN0RGlyKTsKICAgIH0pOwoKICBpbnRlcmZhY2UgR2VuZXJhdGVPcHRpb25zIHsKICAgIGRpcjogc3RyaW5nOwogICAgdGFnOiBzdHJpbmc7CiAgICBuYW1lPzogc3RyaW5nOwogICAgY2xhc3NOYW1lPzogc3RyaW5nOwogIH0KCiAgcHJvZ3JhbQogICAgLmNvbW1hbmQoJ2dlbmVyYXRlIDxmaWxlPicpCiAgICAuYWxpYXMoJ2cnKQogICAgLmRlc2NyaXB0aW9uKCdHZW5lcmF0ZSBhIG5ldyBjb21wb25lbnQgZmlsZS4nKQogICAgLm9wdGlvbignLWQsIC0tZGlyIDxkaXI+JywgJ1Byb2plY3QgZGlyZWN0b3J5IHRvIGdlbmVyYXRlIHRoZSBmaWxlIGluLicsIGRlZmF1bHRQcm9qZWN0KQogICAgLm9wdGlvbignLXQsIC0tdGFnIDx0YWc+JywgJ0hUTUwgdGFnIG9mIHRoZSBjb21wb25lbnQuJywgJ2RpdicpCiAgICAub3B0aW9uKCctbiwgLS1uYW1lIDxuYW1lPicsICdOYW1lIG9mIHRoZSBjb21wb25lbnQuJykKICAgIC5vcHRpb24oJy1jLCAtLWNsYXNzTmFtZSA8Y2xhc3NOYW1lPicsICdDU1MgY2xhc3Mgb2YgdGhlIGNvbXBvbmVudC4nKQogICAgLmFjdGlvbihhc3luYyBmdW5jdGlvbiAodGhpczogQ29tbWFuZCwgZmlsZTogc3RyaW5nKSB7CiAgICAgIGNvbnN0IHsgZGlyLCB0YWcsIG5hbWUsIGNsYXNzTmFtZSB9ID0gdGhpcy5vcHRzPEdlbmVyYXRlT3B0aW9ucz4oKTsKICAgICAgY29uc3QgcHJvamVjdERpciA9IGpvaW4ocHJvY2Vzcy5jd2QoKSwgZGlyKTsKICAgICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHByb2plY3REaXIsIGZpbGUpOwoKICAgICAgY29uc3QgcGFyc2VkRmlsZVBhdGggPSBwYXJzZVBhdGgoZmlsZVBhdGgpOwogICAgICBpZiAoIXBhcnNlZEZpbGVQYXRoLmV4dCkgewogICAgICAgIHBhcnNlZEZpbGVQYXRoLmV4dCA9ICcudHMnOwogICAgICB9CiAgICAgIGlmICghcGFyc2VkRmlsZVBhdGgubmFtZS5lbmRzV2l0aCgnLmNzcycpKSB7CiAgICAgICAgcGFyc2VkRmlsZVBhdGgubmFtZSA9IHBhcnNlZEZpbGVQYXRoLm5hbWUgKyAnLmNzcyc7CiAgICAgIH0KICAgICAgcGFyc2VkRmlsZVBhdGguYmFzZSA9IHBhcnNlZEZpbGVQYXRoLm5hbWUgKyBwYXJzZWRGaWxlUGF0aC5leHQ7CiAgICAgIGNvbnN0IGZvcm1hdHRlZEZpbGVQYXRoID0gZm9ybWF0UGF0aChwYXJzZWRGaWxlUGF0aCk7CgogICAgICBjb25zdCBhbHJlYWR5RXhpc3RzID0gYXdhaXQgcmVhZEZpbGUoZm9ybWF0dGVkRmlsZVBhdGgsICd1dGYtOCcpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7CiAgICAgIGlmIChhbHJlYWR5RXhpc3RzICE9PSB1bmRlZmluZWQpIHsKICAgICAgICBsb2dnZXIuZXJyb3IoJ0ZpbGUgYWxyZWFkeSBleGlzdHM6JywgZm9ybWF0dGVkRmlsZVBhdGgpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBsb2dnZXIuaW5mbygnR2VuZXJhdGluZyBhIG5ldyBmaWxlOiAnICsgZm9ybWF0dGVkRmlsZVBhdGgpOwoKICAgICAgY29uc3QgX25hbWUgPSBwYXNjYWxDYXNlKG5hbWUgfHwgcGFyc2VkRmlsZVBhdGguYmFzZS5yZXBsYWNlKC9cLmNzc1wuXHcrJC8sICcnKSk7CiAgICAgIGNvbnN0IHsgY29udGVudCB9ID0gYXdhaXQgcmVhZFRlbXBsYXRlKCdyZWFjdC9yZWFjdC1zdHlsZWQtZmlsZS50cycsIHsgdGFnLCBuYW1lOiBfbmFtZSwgY2xhc3NOYW1lIH0pOwogICAgICBhd2FpdCB3cml0ZUZpbGUoZm9ybWF0dGVkRmlsZVBhdGgsIGNvbnRlbnQpOwoKICAgICAgYXdhaXQgZm9ybWF0V2l0aFByZXR0aWVyKGZvcm1hdHRlZEZpbGVQYXRoKTsKICAgIH0pOwoKICBwcm9ncmFtLnBhcnNlQXN5bmMocHJvY2Vzcy5hcmd2KTsKfQoKbWFpbigpLmNhdGNoKChlKSA9PiBjb25zb2xlLmVycm9yKGUpKTsK", import.meta.url).pathname;
|
33
|
-
async function
|
34
|
-
const c = new
|
32
|
+
const v = new URL("data:video/mp2t;base64,IyEvdXNyL2Jpbi9lbnYgbm9kZQppbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJzsKaW1wb3J0IHsgcmVhZEZpbGUsIHdyaXRlRmlsZSwgbWtkaXIgfSBmcm9tICdmcy9wcm9taXNlcyc7CmltcG9ydCB7IGpvaW4sIHJlbGF0aXZlLCBwYXJzZSBhcyBwYXJzZVBhdGgsIGZvcm1hdCBhcyBmb3JtYXRQYXRoIH0gZnJvbSAncGF0aCc7CmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ2Vqcyc7CmltcG9ydCB7IGdlbmVyYXRlQ3NzIH0gZnJvbSAnLi4vY29tcGlsZXInOwppbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnLi4vdXRpbCc7CmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJzsKaW1wb3J0IHsgZm9ybWF0V2l0aFByZXR0aWVyIH0gZnJvbSAnLi9wcmV0dGllcic7CmltcG9ydCB7IG5wbUluc3RhbGwgfSBmcm9tICcuL2Jpbi11dGlsJzsKCmNvbnN0IF9fZGlybmFtZSA9IG5ldyBVUkwoJy4nLCBpbXBvcnQubWV0YS51cmwpLnBhdGhuYW1lOwoKYXN5bmMgZnVuY3Rpb24gbWFpbigpIHsKICBjb25zdCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKTsKCiAgcHJvZ3JhbS5uYW1lKCdzYWx0eS1jc3MnKS5kZXNjcmlwdGlvbignU2FsdHktQ1NTIENMSSB0b29sIHRvIGhlbHAgd2l0aCBhbm5veWluZyBjb25maWd1cmF0aW9uIHRhc2tzLicpOwoKICBjb25zdCBmaWxlcyA9IHsKICAgIC8vIENvcmUgZmlsZXMKICAgICdzYWx0eS5jb25maWcudHMnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL3NhbHR5LmNvbmZpZy50c19fdGVtcGxhdGUnKSwKICAgICdzYWx0eWdlbi9pbmRleC5jc3MnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL2luZGV4LmNzc19fdGVtcGxhdGUnKSwKICAgIC8vIFJlYWN0CiAgICAncmVhY3QvcmVhY3Qtc3R5bGVkLWZpbGUudHMnOiBpbXBvcnQoJy4vdGVtcGxhdGVzL3JlYWN0LXN0eWxlZC1maWxlLnRzX190ZW1wbGF0ZScpLAogIH0gYXMgY29uc3Q7CgogIHR5cGUgVGVtcGxhdGUgPSBrZXlvZiB0eXBlb2YgZmlsZXM7CgogIGNvbnN0IHJlYWRUZW1wbGF0ZSA9IGFzeW5jIDxUIGV4dGVuZHMgb2JqZWN0PihmaWxlTmFtZTogVGVtcGxhdGUsIG9wdGlvbnM/OiBUKSA9PiB7CiAgICBjb25zdCB7IGRlZmF1bHQ6IGZpbGUgfSA9IGF3YWl0IGZpbGVzW2ZpbGVOYW1lXTsKICAgIGNvbnN0IGNvbnRlbnQgPSByZW5kZXIoZmlsZSwgb3B0aW9ucyk7CiAgICByZXR1cm4geyBmaWxlTmFtZSwgY29udGVudCB9OwogIH07CgogIGludGVyZmFjZSBSQ0ZpbGUgewogICAgZGVmYXVsdFByb2plY3Q6IHN0cmluZzsKICAgIHByb2plY3RzOiBzdHJpbmdbXTsKICB9CgogIGNvbnN0IHJlYWRSQ0ZpbGUgPSBhc3luYyAoKSA9PiB7CiAgICBjb25zdCByY1BhdGggPSBqb2luKHByb2Nlc3MuY3dkKCksICcuc2FsdHlyYycpOwogICAgY29uc3QgcmNDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUocmNQYXRoLCAndXRmLTgnKQogICAgICAudGhlbihKU09OLnBhcnNlKQogICAgICAuY2F0Y2goKCkgPT4gKHt9KSk7CgogICAgcmV0dXJuIHJjQ29udGVudCBhcyBSQ0ZpbGU7CiAgfTsKCiAgY29uc3QgcmVhZFRoaXNQYWNrYWdlSnNvbiA9IGFzeW5jICgpID0+IHsKICAgIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IGpvaW4oX19kaXJuYW1lLCAnLi4vcGFja2FnZS5qc29uJyk7CiAgICBjb25zb2xlLmxvZyh7IF9fZGlybmFtZSwgcGFja2FnZUpzb25QYXRoIH0pOwogICAgY29uc3QgcGFja2FnZUpzb25Db250ZW50ID0gYXdhaXQgcmVhZEZpbGUocGFja2FnZUpzb25QYXRoLCAndXRmLTgnKQogICAgICAudGhlbihKU09OLnBhcnNlKQogICAgICAuY2F0Y2goKCkgPT4gKHt9KSk7CgogICAgcmV0dXJuIHBhY2thZ2VKc29uQ29udGVudDsKICB9OwoKICBjb25zdCByZWFkUGFja2FnZUpzb24gPSBhc3luYyAocHJvamVjdERpcjogc3RyaW5nKSA9PiB7CiAgICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKHByb2plY3REaXIsICdwYWNrYWdlLmpzb24nKTsKICAgIGNvbnN0IHBhY2thZ2VKc29uQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKHBhY2thZ2VKc29uUGF0aCwgJ3V0Zi04JykKICAgICAgLnRoZW4oSlNPTi5wYXJzZSkKICAgICAgLmNhdGNoKCgpID0+ICh7fSkpOwoKICAgIHJldHVybiBwYWNrYWdlSnNvbkNvbnRlbnQ7CiAgfTsKCiAgY29uc3QgZ2V0RGVmYXVsdFByb2plY3QgPSBhc3luYyAoKSA9PiB7CiAgICBjb25zdCByY0NvbnRlbnQgPSBhd2FpdCByZWFkUkNGaWxlKCk7CiAgICByZXR1cm4gcmNDb250ZW50LmRlZmF1bHRQcm9qZWN0OwogIH07CgogIGNvbnN0IGRlZmF1bHRQcm9qZWN0ID0gYXdhaXQgZ2V0RGVmYXVsdFByb2plY3QoKTsKCiAgaW50ZXJmYWNlIEluaXRPcHRpb25zIHsKICAgIGRpcjogc3RyaW5nOwogICAgY3NzRmlsZT86IHN0cmluZzsKICB9CgogIGNvbnN0IGN1cnJlbnRQYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRUaGlzUGFja2FnZUpzb24oKTsKCiAgY29uc3QgcGFja2FnZXMgPSB7CiAgICBjb3JlOiBgQHNhbHR5LWNzcy9jb3JlQCR7Y3VycmVudFBhY2thZ2VKc29uLnZlcnNpb259YCwKICAgIHJlYWN0OiBgQHNhbHR5LWNzcy9yZWFjdEAke2N1cnJlbnRQYWNrYWdlSnNvbi52ZXJzaW9ufWAsCiAgICBlc2xpbnRQbHVnaW5Db3JlOiBgQHNhbHR5LWNzcy9lc2xpbnQtcGx1Z2luLWNvcmVAJHtjdXJyZW50UGFja2FnZUpzb24udmVyc2lvbn1gLAogICAgdml0ZTogYEBzYWx0eS1jc3Mvdml0ZUAke2N1cnJlbnRQYWNrYWdlSnNvbi52ZXJzaW9ufWAsCiAgfTsKCiAgcHJvZ3JhbQogICAgLmNvbW1hbmQoJ2luaXQnKQogICAgLmRlc2NyaXB0aW9uKCdJbml0aWFsaXplIGEgbmV3IFNhbHR5LUNTUyBwcm9qZWN0LicpCiAgICAucmVxdWlyZWRPcHRpb24oJy1kLCAtLWRpciA8ZGlyPicsICdQcm9qZWN0IGRpcmVjdG9yeSB0byBpbml0aWFsaXplIHRoZSBwcm9qZWN0IGluLicpCiAgICAub3B0aW9uKCctLWNzcy1maWxlIDxjc3MtZmlsZT4nLCAnRXhpc3RpbmcgQ1NTIGZpbGUgd2hlcmUgdG8gaW1wb3J0IHRoZSBnZW5lcmF0ZWQgQ1NTLiBQYXRoIG11c3QgYmUgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIHByb2plY3QgZGlyZWN0b3J5LicpCiAgICAvLyBWYWxpZGF0ZSB0aGF0IGFsbCBvcHRpb25zIGFyZSBwcm92aWRlZAogICAgLmFjdGlvbihhc3luYyBmdW5jdGlvbiAodGhpczogQ29tbWFuZCkgewogICAgICBsb2dnZXIuaW5mbygnSW5zdGFsbGluZyBzYWx0eS1jc3MgcGFja2FnZXMgY29yZSwgZXNsaW50LXBsdWdpbiBhbmQgcmVhY3QnKTsKICAgICAgYXdhaXQgbnBtSW5zdGFsbChwYWNrYWdlcy5jb3JlLCBwYWNrYWdlcy5yZWFjdCk7CiAgICAgIGF3YWl0IG5wbUluc3RhbGwoYC1EICR7cGFja2FnZXMuZXNsaW50UGx1Z2luQ29yZX1gKTsKCiAgICAgIGxvZ2dlci5pbmZvKCdJbml0aWFsaXppbmcgYSBuZXcgU2FsdHktQ1NTIHByb2plY3QuLi4nKTsKCiAgICAgIGNvbnN0IHsgZGlyLCBjc3NGaWxlIH0gPSB0aGlzLm9wdHM8SW5pdE9wdGlvbnM+KCk7CiAgICAgIGNvbnN0IHJvb3REaXIgPSBwcm9jZXNzLmN3ZCgpOwogICAgICBjb25zdCBwcm9qZWN0RGlyID0gam9pbihyb290RGlyLCBkaXIpOwogICAgICBjb25zdCBwcm9qZWN0RmlsZXMgPSBhd2FpdCBQcm9taXNlLmFsbChbcmVhZFRlbXBsYXRlKCdzYWx0eS5jb25maWcudHMnKSwgcmVhZFRlbXBsYXRlKCdzYWx0eWdlbi9pbmRleC5jc3MnKV0pOwoKICAgICAgLy8gQ3JlYXRlIHRoZSBwcm9qZWN0IHN0cnVjdHVyZSBpZiBpdCBkb2Vzbid0IGV4aXN0CiAgICAgIGF3YWl0IG1rZGlyKHByb2plY3REaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pOwogICAgICBjb25zdCB3cml0ZUZpbGVzID0gcHJvamVjdEZpbGVzLm1hcChhc3luYyAoeyBmaWxlTmFtZSwgY29udGVudCB9KSA9PiB7CiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHByb2plY3REaXIsIGZpbGVOYW1lKTsKICAgICAgICBjb25zdCBleGlzdGluZ0NvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShmaWxlUGF0aCwgJ3V0Zi04JykuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTsKICAgICAgICBpZiAoZXhpc3RpbmdDb250ZW50ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgIGxvZ2dlci5kZWJ1ZygnRmlsZSBhbHJlYWR5IGV4aXN0czogJyArIGZpbGVQYXRoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc3QgYWRkaXRpb25hbEZvbGRlcnMgPSBmaWxlTmFtZS5zcGxpdCgnLycpLnNsaWNlKDAsIC0xKS5qb2luKCcvJyk7CiAgICAgICAgLy8gQ3JlYXRlIGFkZGl0aW9uYWwgZm9sZGVycyBpZiB0aGV5IGRvbid0IGV4aXN0CiAgICAgICAgaWYgKGFkZGl0aW9uYWxGb2xkZXJzKSBhd2FpdCBta2Rpcihqb2luKHByb2plY3REaXIsIGFkZGl0aW9uYWxGb2xkZXJzKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgICAgICAgbG9nZ2VyLmluZm8oJ1dyaXRpbmcgZmlsZTogJyArIGZpbGVQYXRoKTsKICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnQpOwogICAgICAgIGF3YWl0IGZvcm1hdFdpdGhQcmV0dGllcihmaWxlUGF0aCk7CiAgICAgIH0pOwoKICAgICAgYXdhaXQgUHJvbWlzZS5hbGwod3JpdGVGaWxlcyk7CgogICAgICAvLyBDcmVhdGUgc2FsdHlyYyBmaWxlCiAgICAgIGNvbnN0IHJlbGF0aXZlUHJvamVjdFBhdGggPSByZWxhdGl2ZShyb290RGlyLCBwcm9qZWN0RGlyKTsKICAgICAgY29uc3Qgc2FsdHlyY1BhdGggPSBqb2luKHJvb3REaXIsICcuc2FsdHlyYycpOwogICAgICBjb25zdCBleGlzdGluZ1NhbHR5cmMgPSBhd2FpdCByZWFkRmlsZShzYWx0eXJjUGF0aCwgJ3V0Zi04JykuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTsKICAgICAgaWYgKGV4aXN0aW5nU2FsdHlyYyA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgbG9nZ2VyLmluZm8oJ0NyZWF0aW5nIGZpbGU6ICcgKyBzYWx0eXJjUGF0aCk7CiAgICAgICAgY29uc3QgcmNDb250ZW50ID0gewogICAgICAgICAgZGVmYXVsdFByb2plY3Q6IHJlbGF0aXZlUHJvamVjdFBhdGgsCiAgICAgICAgICBwcm9qZWN0czogW3JlbGF0aXZlUHJvamVjdFBhdGhdLAogICAgICAgIH07CiAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KHJjQ29udGVudCwgbnVsbCwgMik7CiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHNhbHR5cmNQYXRoLCBjb250ZW50KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBsb2dnZXIuaW5mbygnRWRpdCBmaWxlOiAnICsgc2FsdHlyY1BhdGgpOwogICAgICAgIGNvbnN0IHJjQ29udGVudCA9IEpTT04ucGFyc2UoZXhpc3RpbmdTYWx0eXJjKTsKICAgICAgICBjb25zdCBwcm9qZWN0cyA9IG5ldyBTZXQocmNDb250ZW50Py5wcm9qZWN0cyB8fCBbXSk7CiAgICAgICAgcHJvamVjdHMuYWRkKHJlbGF0aXZlUHJvamVjdFBhdGgpOwogICAgICAgIHJjQ29udGVudC5wcm9qZWN0cyA9IFsuLi5wcm9qZWN0c107CiAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KHJjQ29udGVudCwgbnVsbCwgMik7CiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHNhbHR5cmNQYXRoLCBjb250ZW50KTsKICAgICAgfQoKICAgICAgLy8gRWRpdCBmaWxlcyBpbiB0aGUgcHJvamVjdAoKICAgICAgLy8gRWRpdCBHaXRpZ25vcmUKICAgICAgY29uc3QgZ2l0SWdub3JlUGF0aCA9IGpvaW4ocm9vdERpciwgJy5naXRpZ25vcmUnKTsKICAgICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGdpdElnbm9yZVBhdGgsICd1dGYtOCcpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7CiAgICAgIGlmIChnaXRJZ25vcmVDb250ZW50ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICBjb25zdCBhbHJlYWR5SWdub3Jlc1NhbHR5Z2VuID0gZ2l0SWdub3JlQ29udGVudC5pbmNsdWRlcygnc2FsdHlnZW4nKTsKICAgICAgICBpZiAoIWFscmVhZHlJZ25vcmVzU2FsdHlnZW4pIHsKICAgICAgICAgIGxvZ2dlci5pbmZvKCdFZGl0IGZpbGU6ICcgKyBnaXRJZ25vcmVQYXRoKTsKICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShnaXRJZ25vcmVQYXRoLCBnaXRJZ25vcmVDb250ZW50ICsgJ1xuXG4jIFNhbHR5LUNTU1xuc2FsdHlnZW5cbicpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gRWRpdCB0aGUgQ1NTIGZpbGUgaWYgcHJvdmlkZWQKICAgICAgaWYgKGNzc0ZpbGUpIHsKICAgICAgICBjb25zdCBjc3NGaWxlUGF0aCA9IGpvaW4ocHJvamVjdERpciwgY3NzRmlsZSk7CiAgICAgICAgY29uc3QgY3NzRmlsZUNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShjc3NGaWxlUGF0aCwgJ3V0Zi04JykuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTsKICAgICAgICBpZiAoY3NzRmlsZUNvbnRlbnQgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgY29uc3QgYWxyZWFkeUltcG9ydHNTYWx0eWdlbiA9IGNzc0ZpbGVDb250ZW50LmluY2x1ZGVzKCdzYWx0eWdlbicpOwogICAgICAgICAgaWYgKCFhbHJlYWR5SW1wb3J0c1NhbHR5Z2VuKSB7CiAgICAgICAgICAgIGNvbnN0IGNzc0ZpbGVGb2xkZXIgPSBqb2luKGNzc0ZpbGVQYXRoLCAnLi4nKTsKICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcmVsYXRpdmUoY3NzRmlsZUZvbGRlciwgam9pbihwcm9qZWN0RGlyLCAnc2FsdHlnZW4vaW5kZXguY3NzJykpOwogICAgICAgICAgICBjb25zdCBpbXBvcnRTdGF0ZW1lbnQgPSBgQGltcG9ydCAnJHtyZWxhdGl2ZVBhdGh9JztgOwogICAgICAgICAgICBsb2dnZXIuaW5mbygnRWRpdCBmaWxlOiAnICsgY3NzRmlsZVBhdGgpOwogICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoY3NzRmlsZVBhdGgsIGltcG9ydFN0YXRlbWVudCArICdcbicgKyBjc3NGaWxlQ29udGVudCk7CiAgICAgICAgICAgIGF3YWl0IGZvcm1hdFdpdGhQcmV0dGllcihjc3NGaWxlUGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBGcmFtZXdvcmsgLyBidWlsZCB0b29sIHNwZWNpZmljIGZpbGVzCgogICAgICAvLyBEZXRlY3Qgdml0ZSBhbmQgYWRkIHRoZSBwbHVnaW4KICAgICAgY29uc3Qgdml0ZUNvbmZpZ1BhdGggPSBqb2luKHByb2plY3REaXIsICd2aXRlLmNvbmZpZy50cycpOwogICAgICBjb25zdCB2aXRlQ29uZmlnQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKHZpdGVDb25maWdQYXRoLCAndXRmLTgnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpOwoKICAgICAgaWYgKHZpdGVDb25maWdDb250ZW50ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICBjb25zdCBhbHJlYWR5SGFzUGx1Z2luID0gdml0ZUNvbmZpZ0NvbnRlbnQuaW5jbHVkZXMoJ3NhbHR5UGx1Z2luJyk7CiAgICAgICAgaWYgKCFhbHJlYWR5SGFzUGx1Z2luKSB7CiAgICAgICAgICBsb2dnZXIuaW5mbygnRWRpdCBmaWxlOiAnICsgdml0ZUNvbmZpZ1BhdGgpOwogICAgICAgICAgY29uc3QgcGx1Z2luSW1wb3J0ID0gImltcG9ydCB7IHNhbHR5UGx1Z2luIH0gZnJvbSAnQHNhbHR5LWNzcy92aXRlJztcbiI7CiAgICAgICAgICBjb25zdCBwbHVnaW5Db25maWcgPSAnc2FsdHlQbHVnaW4oX19kaXJuYW1lKSwnOwogICAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IHZpdGVDb25maWdDb250ZW50LnJlcGxhY2UoLyhwbHVnaW5zOiBcWykvLCBgJDFcbiAgJHtwbHVnaW5Db25maWd9YCk7CgogICAgICAgICAgbG9nZ2VyLmluZm8oJ0luc3RhbGxpbmcgQHNhbHR5LWNzcy92aXRlJyk7CiAgICAgICAgICBhd2FpdCBucG1JbnN0YWxsKHBhY2thZ2VzLnZpdGUpOwoKICAgICAgICAgIGxvZ2dlci5pbmZvKCdBZGRpbmcgU2FsdHktQ1NTIHBsdWdpbiB0byBWaXRlIGNvbmZpZy4uLicpOwogICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHZpdGVDb25maWdQYXRoLCBwbHVnaW5JbXBvcnQgKyBuZXdDb250ZW50KTsKICAgICAgICAgIGF3YWl0IGZvcm1hdFdpdGhQcmV0dGllcih2aXRlQ29uZmlnUGF0aCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKCiAgaW50ZXJmYWNlIEJ1aWxkT3B0aW9ucyB7CiAgICBkaXI6IHN0cmluZzsKICB9CgogIHByb2dyYW0KICAgIC5jb21tYW5kKCdidWlsZCcpCiAgICAuYWxpYXMoJ2InKQogICAgLmRlc2NyaXB0aW9uKCdCdWlsZCB0aGUgU2FsdHktQ1NTIHByb2plY3QuJykKICAgIC5vcHRpb24oJy1kLCAtLWRpciA8ZGlyPicsICdQcm9qZWN0IGRpcmVjdG9yeSB0byBidWlsZCB0aGUgcHJvamVjdCBpbi4nLCBkZWZhdWx0UHJvamVjdCkKICAgIC5hY3Rpb24oYXN5bmMgZnVuY3Rpb24gKHRoaXM6IENvbW1hbmQpIHsKICAgICAgbG9nZ2VyLmluZm8oJ0J1aWxkaW5nIHRoZSBTYWx0eS1DU1MgcHJvamVjdC4uLicpOwogICAgICBjb25zdCB7IGRpciB9ID0gdGhpcy5vcHRzPEJ1aWxkT3B0aW9ucz4oKTsKICAgICAgY29uc3QgcHJvamVjdERpciA9IGpvaW4ocHJvY2Vzcy5jd2QoKSwgZGlyKTsKICAgICAgYXdhaXQgZ2VuZXJhdGVDc3MocHJvamVjdERpcik7CiAgICB9KTsKCiAgaW50ZXJmYWNlIEdlbmVyYXRlT3B0aW9ucyB7CiAgICBkaXI6IHN0cmluZzsKICAgIHRhZzogc3RyaW5nOwogICAgbmFtZT86IHN0cmluZzsKICAgIGNsYXNzTmFtZT86IHN0cmluZzsKICB9CgogIHByb2dyYW0KICAgIC5jb21tYW5kKCdnZW5lcmF0ZSA8ZmlsZT4nKQogICAgLmFsaWFzKCdnJykKICAgIC5kZXNjcmlwdGlvbignR2VuZXJhdGUgYSBuZXcgY29tcG9uZW50IGZpbGUuJykKICAgIC5vcHRpb24oJy1kLCAtLWRpciA8ZGlyPicsICdQcm9qZWN0IGRpcmVjdG9yeSB0byBnZW5lcmF0ZSB0aGUgZmlsZSBpbi4nLCBkZWZhdWx0UHJvamVjdCkKICAgIC5vcHRpb24oJy10LCAtLXRhZyA8dGFnPicsICdIVE1MIHRhZyBvZiB0aGUgY29tcG9uZW50LicsICdkaXYnKQogICAgLm9wdGlvbignLW4sIC0tbmFtZSA8bmFtZT4nLCAnTmFtZSBvZiB0aGUgY29tcG9uZW50LicpCiAgICAub3B0aW9uKCctYywgLS1jbGFzc05hbWUgPGNsYXNzTmFtZT4nLCAnQ1NTIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuJykKICAgIC5hY3Rpb24oYXN5bmMgZnVuY3Rpb24gKHRoaXM6IENvbW1hbmQsIGZpbGU6IHN0cmluZykgewogICAgICBjb25zdCB7IGRpciwgdGFnLCBuYW1lLCBjbGFzc05hbWUgfSA9IHRoaXMub3B0czxHZW5lcmF0ZU9wdGlvbnM+KCk7CiAgICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHByb2Nlc3MuY3dkKCksIGRpcik7CiAgICAgIGNvbnN0IGZpbGVQYXRoID0gam9pbihwcm9qZWN0RGlyLCBmaWxlKTsKCiAgICAgIGNvbnN0IHBhcnNlZEZpbGVQYXRoID0gcGFyc2VQYXRoKGZpbGVQYXRoKTsKICAgICAgaWYgKCFwYXJzZWRGaWxlUGF0aC5leHQpIHsKICAgICAgICBwYXJzZWRGaWxlUGF0aC5leHQgPSAnLnRzJzsKICAgICAgfQogICAgICBpZiAoIXBhcnNlZEZpbGVQYXRoLm5hbWUuZW5kc1dpdGgoJy5jc3MnKSkgewogICAgICAgIHBhcnNlZEZpbGVQYXRoLm5hbWUgPSBwYXJzZWRGaWxlUGF0aC5uYW1lICsgJy5jc3MnOwogICAgICB9CiAgICAgIHBhcnNlZEZpbGVQYXRoLmJhc2UgPSBwYXJzZWRGaWxlUGF0aC5uYW1lICsgcGFyc2VkRmlsZVBhdGguZXh0OwogICAgICBjb25zdCBmb3JtYXR0ZWRGaWxlUGF0aCA9IGZvcm1hdFBhdGgocGFyc2VkRmlsZVBhdGgpOwoKICAgICAgY29uc3QgYWxyZWFkeUV4aXN0cyA9IGF3YWl0IHJlYWRGaWxlKGZvcm1hdHRlZEZpbGVQYXRoLCAndXRmLTgnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpOwogICAgICBpZiAoYWxyZWFkeUV4aXN0cyAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgbG9nZ2VyLmVycm9yKCdGaWxlIGFscmVhZHkgZXhpc3RzOicsIGZvcm1hdHRlZEZpbGVQYXRoKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgbG9nZ2VyLmluZm8oJ0dlbmVyYXRpbmcgYSBuZXcgZmlsZTogJyArIGZvcm1hdHRlZEZpbGVQYXRoKTsKCiAgICAgIGNvbnN0IF9uYW1lID0gcGFzY2FsQ2FzZShuYW1lIHx8IHBhcnNlZEZpbGVQYXRoLmJhc2UucmVwbGFjZSgvXC5jc3NcLlx3KyQvLCAnJykpOwogICAgICBjb25zdCB7IGNvbnRlbnQgfSA9IGF3YWl0IHJlYWRUZW1wbGF0ZSgncmVhY3QvcmVhY3Qtc3R5bGVkLWZpbGUudHMnLCB7IHRhZywgbmFtZTogX25hbWUsIGNsYXNzTmFtZSB9KTsKICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1hdHRlZEZpbGVQYXRoLCBjb250ZW50KTsKCiAgICAgIGF3YWl0IGZvcm1hdFdpdGhQcmV0dGllcihmb3JtYXR0ZWRGaWxlUGF0aCk7CiAgICB9KTsKCiAgcHJvZ3JhbS5wYXJzZUFzeW5jKHByb2Nlc3MuYXJndik7Cn0KCm1haW4oKS5jYXRjaCgoZSkgPT4gY29uc29sZS5lcnJvcihlKSk7Cg==", import.meta.url).pathname;
|
33
|
+
async function D() {
|
34
|
+
const c = new j();
|
35
35
|
c.name("salty-css").description("Salty-CSS CLI tool to help with annoying configuration tasks.");
|
36
|
-
const
|
36
|
+
const o = {
|
37
37
|
// Core files
|
38
38
|
"salty.config.ts": import("../salty.config-D9ANEDiH.js"),
|
39
39
|
"saltygen/index.css": import("../index-D_732b92.js"),
|
40
40
|
// React
|
41
41
|
"react/react-styled-file.ts": import("../react-styled-file-CGVf5n1B.js")
|
42
|
-
},
|
43
|
-
const { default:
|
44
|
-
return { fileName: n, content:
|
45
|
-
},
|
42
|
+
}, m = async (n, i) => {
|
43
|
+
const { default: Z } = await o[n], t = L(Z, i);
|
44
|
+
return { fileName: n, content: t };
|
45
|
+
}, p = async () => {
|
46
46
|
const n = l(process.cwd(), ".saltyrc");
|
47
|
-
return await
|
48
|
-
},
|
49
|
-
const n = l(
|
50
|
-
return await
|
51
|
-
},
|
47
|
+
return await b(n, "utf-8").then(JSON.parse).catch(() => ({}));
|
48
|
+
}, w = async () => {
|
49
|
+
const n = l(v, "../package.json");
|
50
|
+
return console.log({ __dirname: v, packageJsonPath: n }), await b(n, "utf-8").then(JSON.parse).catch(() => ({}));
|
51
|
+
}, V = await (async () => (await p()).defaultProject)(), B = await w(), y = {
|
52
52
|
core: `@salty-css/core@${B.version}`,
|
53
53
|
react: `@salty-css/react@${B.version}`,
|
54
54
|
eslintPluginCore: `@salty-css/eslint-plugin-core@${B.version}`,
|
55
55
|
vite: `@salty-css/vite@${B.version}`
|
56
56
|
};
|
57
57
|
c.command("init").description("Initialize a new Salty-CSS project.").requiredOption("-d, --dir <dir>", "Project directory to initialize the project in.").option("--css-file <css-file>", "Existing CSS file where to import the generated CSS. Path must be relative to the given project directory.").action(async function() {
|
58
|
-
|
59
|
-
const { dir: n, cssFile:
|
60
|
-
await
|
61
|
-
const
|
62
|
-
const d = l(
|
63
|
-
if (await
|
58
|
+
I.info("Installing salty-css packages core, eslint-plugin and react"), await X(y.core, y.react), await X(`-D ${y.eslintPluginCore}`), I.info("Initializing a new Salty-CSS project...");
|
59
|
+
const { dir: n, cssFile: i } = this.opts(), Z = process.cwd(), t = l(Z, n), R = await Promise.all([m("salty.config.ts"), m("saltygen/index.css")]);
|
60
|
+
await F(t, { recursive: !0 });
|
61
|
+
const h = R.map(async ({ fileName: g, content: a }) => {
|
62
|
+
const d = l(t, g);
|
63
|
+
if (await b(d, "utf-8").catch(() => {
|
64
64
|
}) !== void 0) {
|
65
|
-
|
65
|
+
I.debug("File already exists: " + d);
|
66
66
|
return;
|
67
67
|
}
|
68
|
-
const
|
69
|
-
|
68
|
+
const N = g.split("/").slice(0, -1).join("/");
|
69
|
+
N && await F(l(t, N), { recursive: !0 }), I.info("Writing file: " + d), await A(d, a), await r(d);
|
70
70
|
});
|
71
|
-
await Promise.all(
|
72
|
-
const e =
|
71
|
+
await Promise.all(h);
|
72
|
+
const e = J(Z, t), C = l(Z, ".saltyrc"), s = await b(C, "utf-8").catch(() => {
|
73
73
|
});
|
74
|
-
if (
|
75
|
-
|
76
|
-
const
|
74
|
+
if (s === void 0) {
|
75
|
+
I.info("Creating file: " + C);
|
76
|
+
const a = JSON.stringify({
|
77
77
|
defaultProject: e,
|
78
78
|
projects: [e]
|
79
79
|
}, null, 2);
|
80
|
-
await
|
80
|
+
await A(C, a);
|
81
81
|
} else {
|
82
|
-
|
83
|
-
const g = JSON.parse(
|
84
|
-
|
82
|
+
I.info("Edit file: " + C);
|
83
|
+
const g = JSON.parse(s), a = new Set((g == null ? void 0 : g.projects) || []);
|
84
|
+
a.add(e), g.projects = [...a];
|
85
85
|
const d = JSON.stringify(g, null, 2);
|
86
|
-
await
|
86
|
+
await A(C, d);
|
87
87
|
}
|
88
|
-
const Y = l(
|
88
|
+
const Y = l(Z, ".gitignore"), W = await b(Y, "utf-8").catch(() => {
|
89
89
|
});
|
90
|
-
if (
|
90
|
+
if (W !== void 0 && (W.includes("saltygen") || (I.info("Edit file: " + Y), await A(Y, W + `
|
91
91
|
|
92
92
|
# Salty-CSS
|
93
93
|
saltygen
|
94
|
-
`))),
|
95
|
-
const g = l(
|
94
|
+
`))), i) {
|
95
|
+
const g = l(t, i), a = await b(g, "utf-8").catch(() => {
|
96
96
|
});
|
97
|
-
if (
|
98
|
-
const
|
99
|
-
|
100
|
-
` +
|
97
|
+
if (a !== void 0 && !a.includes("saltygen")) {
|
98
|
+
const u = l(g, ".."), Q = `@import '${J(u, l(t, "saltygen/index.css"))}';`;
|
99
|
+
I.info("Edit file: " + g), await A(g, Q + `
|
100
|
+
` + a), await r(g);
|
101
101
|
}
|
102
102
|
}
|
103
|
-
const
|
103
|
+
const G = l(t, "vite.config.ts"), K = await b(G, "utf-8").catch(() => {
|
104
104
|
});
|
105
|
-
if (
|
106
|
-
|
107
|
-
const
|
108
|
-
`,
|
105
|
+
if (K !== void 0 && !K.includes("saltyPlugin")) {
|
106
|
+
I.info("Edit file: " + G);
|
107
|
+
const a = `import { saltyPlugin } from '@salty-css/vite';
|
108
|
+
`, u = K.replace(/(plugins: \[)/, `$1
|
109
109
|
saltyPlugin(__dirname),`);
|
110
|
-
|
110
|
+
I.info("Installing @salty-css/vite"), await X(y.vite), I.info("Adding Salty-CSS plugin to Vite config..."), await A(G, a + u), await r(G);
|
111
111
|
}
|
112
|
-
}), c.command("build").alias("b").description("Build the Salty-CSS project.").option("-d, --dir <dir>", "Project directory to build the project in.",
|
113
|
-
|
114
|
-
const { dir: n } = this.opts(),
|
115
|
-
await
|
116
|
-
}), c.command("generate <file>").alias("g").description("Generate a new component file.").option("-d, --dir <dir>", "Project directory to generate the file in.",
|
117
|
-
const { dir:
|
118
|
-
|
119
|
-
const
|
120
|
-
if (await s
|
112
|
+
}), c.command("build").alias("b").description("Build the Salty-CSS project.").option("-d, --dir <dir>", "Project directory to build the project in.", V).action(async function() {
|
113
|
+
I.info("Building the Salty-CSS project...");
|
114
|
+
const { dir: n } = this.opts(), i = l(process.cwd(), n);
|
115
|
+
await U(i);
|
116
|
+
}), c.command("generate <file>").alias("g").description("Generate a new component file.").option("-d, --dir <dir>", "Project directory to generate the file in.", V).option("-t, --tag <tag>", "HTML tag of the component.", "div").option("-n, --name <name>", "Name of the component.").option("-c, --className <className>", "CSS class of the component.").action(async function(n) {
|
117
|
+
const { dir: i, tag: Z, name: t, className: R } = this.opts(), h = l(process.cwd(), i), e = l(h, n), C = z(e);
|
118
|
+
C.ext || (C.ext = ".ts"), C.name.endsWith(".css") || (C.name = C.name + ".css"), C.base = C.name + C.ext;
|
119
|
+
const s = k(C);
|
120
|
+
if (await b(s, "utf-8").catch(() => {
|
121
121
|
}) !== void 0) {
|
122
|
-
|
122
|
+
I.error("File already exists:", s);
|
123
123
|
return;
|
124
124
|
}
|
125
|
-
|
126
|
-
const
|
127
|
-
await
|
125
|
+
I.info("Generating a new file: " + s);
|
126
|
+
const W = x(t || C.base.replace(/\.css\.\w+$/, "")), { content: G } = await m("react/react-styled-file.ts", { tag: Z, name: W, className: R });
|
127
|
+
await A(s, G), await r(s);
|
128
128
|
}), c.parseAsync(process.argv);
|
129
129
|
}
|
130
|
-
|
130
|
+
D().catch((c) => console.error(c));
|