@digigov/cli-build-tailwind 1.0.2-rc.21 → 2.0.0-0138f8bd

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.
@@ -0,0 +1 @@
1
+ module.exports = require('@digigov/cli-lint/prettierrc')();
@@ -1,8 +1,140 @@
1
1
  {
2
- "../../tooling/cli-build-tailwind": "../../tooling/cli-build-tailwind:TTBeE63Q5gXUhngfrrpRCMToNU01pJPhTvZdIOef2Uk=:",
3
- "/fs-extra@11.2.0": "Missing shrinkwrap entry!",
4
- "/glob@7.1.6": "Missing shrinkwrap entry!",
5
- "/postcss-js@4.0.0(postcss@8.4.4)": "Missing shrinkwrap entry!",
6
- "/postcss-load-config@3.1.4(postcss@8.4.4)(ts-node@10.9.2(@types/node@18.19.0)(typescript@5.6.2))": "Missing shrinkwrap entry!",
7
- "/postcss@8.4.4": "Missing shrinkwrap entry!"
2
+ "../../tooling/cli-build-tailwind": "../../tooling/cli-build-tailwind:UrVdbQtP4ww4l6MfIX3mLfOdJsvtfVtP/CsRhPApCh4=:",
3
+ "@eslint-community/eslint-utils@4.5.1(eslint@9.16.0(jiti@2.4.2))": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==",
4
+ "@eslint-community/regexpp@4.12.1": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
5
+ "@eslint/config-array@0.19.2": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==",
6
+ "@eslint/core@0.12.0": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==",
7
+ "@eslint/core@0.9.1": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==",
8
+ "@eslint/eslintrc@3.3.1": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
9
+ "@eslint/js@9.16.0": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==",
10
+ "@eslint/object-schema@2.1.6": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
11
+ "@eslint/plugin-kit@0.2.7": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
12
+ "@humanfs/core@0.19.1": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
13
+ "@humanfs/node@0.16.6": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
14
+ "@humanwhocodes/module-importer@1.0.1": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
15
+ "@humanwhocodes/retry@0.3.1": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
16
+ "@humanwhocodes/retry@0.4.2": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==",
17
+ "@nodelib/fs.scandir@2.1.5": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
18
+ "@nodelib/fs.stat@2.0.5": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
19
+ "@nodelib/fs.walk@1.2.8": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
20
+ "@types/estree@1.0.7": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
21
+ "@types/json-schema@7.0.15": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
22
+ "acorn-jsx@5.3.2(acorn@8.14.1)": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
23
+ "acorn@8.14.1": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
24
+ "ajv@6.12.6": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
25
+ "ansi-styles@4.3.0": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
26
+ "argparse@2.0.1": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
27
+ "array-union@2.1.0": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
28
+ "balanced-match@1.0.2": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
29
+ "brace-expansion@1.1.11": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
30
+ "brace-expansion@2.0.1": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
31
+ "braces@3.0.3": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
32
+ "callsites@3.1.0": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
33
+ "camelcase-css@2.0.1": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
34
+ "chalk@4.1.0": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
35
+ "color-convert@2.0.1": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
36
+ "color-name@1.1.4": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
37
+ "concat-map@0.0.1": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
38
+ "cross-spawn@7.0.6": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
39
+ "debug@4.4.0": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
40
+ "deep-is@0.1.4": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
41
+ "dir-glob@3.0.1": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
42
+ "escape-string-regexp@4.0.0": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
43
+ "eslint-scope@8.3.0": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
44
+ "eslint-visitor-keys@3.4.3": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
45
+ "eslint-visitor-keys@4.2.0": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
46
+ "eslint@9.16.0(jiti@2.4.2)": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==",
47
+ "espree@10.3.0": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
48
+ "esquery@1.6.0": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
49
+ "esrecurse@4.3.0": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
50
+ "estraverse@5.3.0": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
51
+ "esutils@2.0.3": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
52
+ "fast-deep-equal@3.1.3": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
53
+ "fast-glob@3.3.3": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
54
+ "fast-json-stable-stringify@2.1.0": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
55
+ "fast-levenshtein@2.0.6": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
56
+ "fastq@1.19.1": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
57
+ "file-entry-cache@8.0.0": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
58
+ "fill-range@7.1.1": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
59
+ "find-up@5.0.0": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
60
+ "flat-cache@4.0.1": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
61
+ "flatted@3.3.3": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
62
+ "fs-extra@11.2.0": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
63
+ "fs.realpath@1.0.0": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
64
+ "glob-parent@5.1.2": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
65
+ "glob-parent@6.0.2": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
66
+ "glob@8.1.0": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
67
+ "globals@14.0.0": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
68
+ "globby@11.0.0": "sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==",
69
+ "graceful-fs@4.2.11": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
70
+ "has-flag@4.0.0": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
71
+ "ignore-walk@5.0.1": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==",
72
+ "ignore@5.3.2": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
73
+ "import-fresh@3.3.1": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
74
+ "imurmurhash@0.1.4": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
75
+ "inflight@1.0.6": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
76
+ "inherits@2.0.4": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
77
+ "is-extglob@2.1.1": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
78
+ "is-glob@4.0.3": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
79
+ "is-number@7.0.0": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
80
+ "isexe@2.0.0": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
81
+ "jiti@2.4.2": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
82
+ "js-yaml@4.1.0": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
83
+ "json-buffer@3.0.1": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
84
+ "json-schema-traverse@0.4.1": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
85
+ "json-stable-stringify-without-jsonify@1.0.1": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
86
+ "jsonfile@6.1.0": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
87
+ "keyv@4.5.4": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
88
+ "levn@0.4.1": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
89
+ "lilconfig@2.1.0": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
90
+ "locate-path@6.0.0": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
91
+ "lodash.merge@4.6.2": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
92
+ "merge2@1.4.1": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
93
+ "micromatch@4.0.8": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
94
+ "minimatch@3.1.2": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
95
+ "minimatch@5.1.6": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
96
+ "mri@1.2.0": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
97
+ "ms@2.1.3": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
98
+ "nanoid@3.3.11": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
99
+ "natural-compare@1.4.0": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
100
+ "npm-bundled@2.0.1": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==",
101
+ "npm-normalize-package-bin@2.0.0": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==",
102
+ "npm-packlist@5.1.3": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==",
103
+ "once@1.4.0": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
104
+ "optionator@0.9.4": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
105
+ "p-limit@3.1.0": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
106
+ "p-locate@5.0.0": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
107
+ "parent-module@1.0.1": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
108
+ "path-exists@4.0.0": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
109
+ "path-key@3.1.1": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
110
+ "path-type@4.0.0": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
111
+ "picocolors@1.1.1": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
112
+ "picomatch@2.3.1": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
113
+ "postcss-js@4.0.0(postcss@8.4.4)": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==",
114
+ "postcss-load-config@3.1.4(postcss@8.4.4)": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
115
+ "postcss@8.4.4": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==",
116
+ "prelude-ls@1.2.1": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
117
+ "prettier@3.4.2": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
118
+ "publint@0.1.8": "sha512-czOfocZAwS3d5RNrx4VyMxJJDyTn9MajMfuzJYlMrztFLrWkM+3KVdPozTfd8ka8aGWfR1cS66tMSDCgF70T+A==",
119
+ "punycode@2.3.1": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
120
+ "queue-microtask@1.2.3": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
121
+ "resolve-from@4.0.0": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
122
+ "reusify@1.1.0": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
123
+ "run-parallel@1.2.0": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
124
+ "sade@1.8.1": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
125
+ "shebang-command@2.0.0": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
126
+ "shebang-regex@3.0.0": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
127
+ "slash@3.0.0": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
128
+ "source-map-js@1.2.1": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
129
+ "strip-json-comments@3.1.1": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
130
+ "supports-color@7.2.0": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
131
+ "to-regex-range@5.0.1": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
132
+ "type-check@0.4.0": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
133
+ "universalify@2.0.1": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
134
+ "uri-js@4.4.1": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
135
+ "which@2.0.2": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
136
+ "word-wrap@1.2.5": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
137
+ "wrappy@1.0.2": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
138
+ "yaml@1.10.2": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
139
+ "yocto-queue@0.1.0": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
8
140
  }
package/build.js CHANGED
@@ -1,92 +1,142 @@
1
- const postcss = require('postcss');
2
- const postcssrc = require('postcss-load-config');
3
- const postcssJs = require('postcss-js');
4
- const fs = require('fs-extra');
5
- const path = require('path');
6
- const glob = require('glob');
1
+ import postcss from 'postcss';
2
+ import postcssrc from 'postcss-load-config';
3
+ import postcssJs from 'postcss-js';
4
+ import fs from 'fs-extra';
5
+ import path from 'path';
6
+ import glob from 'globby';
7
+ import { logger } from '@digigov/cli/lib';
7
8
 
9
+ /**
10
+ * Build the CSS files of a project
11
+ *
12
+ * @param {object} options - The options
13
+ * @param {string} [options.cwd=process.cwd()] - The current working directory
14
+ * @param {string} [options.distFolder='dist'] - The distribution folder
15
+ * @param {string} [options.bundleFileName='index'] - The bundle file name
16
+ * @param {boolean} [options.allFiles=false] - Whether to build all files
17
+ * @param {object} options.replace - Object defining the replacements to be made
18
+ *
19
+ */
20
+ export async function build({
21
+ cwd = process.cwd(),
22
+ distFolder = 'dist',
23
+ allFiles = false,
24
+ bundleFileName = 'index',
25
+ replace,
26
+ }) {
27
+ if (allFiles) logger.log('All files:', allFiles);
28
+ logger.log(`Removing dist folder ${path.join(cwd, distFolder)}`);
29
+ fs.rmSync(path.join(cwd, distFolder), {
30
+ recursive: true,
31
+ force: true,
32
+ });
33
+ const subfolders = ['utilities', 'components', 'base'];
34
+ const cssParts = [];
35
+ for (const subfolder of subfolders) {
36
+ logger.time(`build ${subfolder}`);
37
+ let css = '';
38
+ if (allFiles) {
39
+ for (const subpart of glob.sync(
40
+ path.join(cwd, 'src', subfolder, '*.css')
41
+ )) {
42
+ const fileName = path.basename(subpart);
43
+ if (fileName !== 'index.css') {
44
+ css +=
45
+ '\n' +
46
+ (await buildDir({
47
+ dir: subfolder,
48
+ file: fileName,
49
+ cwd,
50
+ distFolder,
51
+ replace,
52
+ }));
53
+ } else {
54
+ await buildDir({
55
+ dir: subfolder,
56
+ file: fileName,
57
+ cwd,
58
+ distFolder,
59
+ replace,
60
+ });
61
+ }
62
+ }
63
+ } else {
64
+ css = await buildDir({
65
+ dir: subfolder,
66
+ file: 'index.css',
67
+ cwd,
68
+ distFolder,
69
+ replace,
70
+ });
71
+ }
72
+ cssParts.unshift(css);
73
+ logger.timeEnd(`build ${subfolder}`);
74
+ }
75
+ fs.outputFileSync(
76
+ path.join(cwd, `dist/${bundleFileName}.css`),
77
+ cssParts.join('\n')
78
+ );
79
+ }
8
80
 
9
- const buildDir = async (dir, file = 'index.css', cwd = process.cwd(), distFolder, replace) => {
10
- process.env["DIGIGOV_CSS_BUILD"] = "TRUE";
81
+ /**
82
+ * Build the CSS files for a directory
83
+ *
84
+ * @param {object} options - The options
85
+ * @param {string} options.dir - The directory
86
+ * @param {string} [options.file='index.css'] - The file
87
+ * @param {string} [options.cwd=process.cwd()] - The current working directory
88
+ * @param {string} options.distFolder - The distribution folder
89
+ * @param {object} options.replace - Object defining the replacements to be made
90
+ * @returns {Promise<string>} - The processed CSS
91
+ */
92
+ export async function buildDir({
93
+ dir,
94
+ file = 'index.css',
95
+ cwd = process.cwd(),
96
+ distFolder,
97
+ replace,
98
+ }) {
99
+ process.env['DIGIGOV_CSS_BUILD'] = 'TRUE';
11
100
  const options = {
12
101
  cwd,
13
102
  options: {
14
- map: {inline: true},
103
+ map: { inline: true },
15
104
  },
16
105
  file: {
17
106
  dirname: path.join(cwd, 'src', dir),
18
107
  basename: file,
19
- extname: '.css'
108
+ extname: '.css',
20
109
  },
21
110
  from: path.join(cwd, 'src', dir, file),
22
111
  to: path.join(cwd, distFolder, dir, file),
23
112
  };
24
- const filePathPart = file === 'index.css' ? '' : `/${file.replace('.css', '')}`;
25
- console.log(`Building ${dir} ${file}...`);
26
- let css = fs.readFileSync(options.from, "utf8");
27
- const rc = await postcssrc(options, path.join(cwd, 'src', dir))
28
- .catch((err) => {
29
- if(!err.message.includes('No PostCSS Config found')) throw err;
30
- });
31
- const result = await postcss(rc.plugins)
32
- .process(css, options);
113
+ const filePathPart =
114
+ file === 'index.css' ? '' : `/${file.replace('.css', '')}`;
115
+ logger.log(`Building ${dir} ${file}...`);
116
+ let css = fs.readFileSync(options.from, 'utf8');
117
+ const rc = await postcssrc(options, path.join(cwd, 'src', dir)).catch(
118
+ (err) => {
119
+ if (!err.message.includes('No PostCSS Config found')) throw err;
120
+ }
121
+ );
122
+ const result = await postcss.default(rc?.plugins).process(css, options);
33
123
  let processedCss = result.css;
34
124
  let cssJs = JSON.stringify(postcssJs.objectify(result.root));
35
- if(replace) {
36
- for(const from in replace) {
125
+ if (replace) {
126
+ for (const from in replace) {
37
127
  const to = replace[from];
38
- console.log(`Replace ${from} with ${to}`);
128
+ logger.log(`Replace ${from} with ${to}`);
129
+ if (!to) continue;
39
130
  processedCss = processedCss.replaceAll(from, to);
40
131
  cssJs = cssJs.replaceAll(from, to);
41
132
  }
42
133
  }
43
- if(options.to) {
134
+ if (options.to) {
44
135
  fs.outputFileSync(options.to, processedCss);
45
- fs.outputFileSync(path.join(cwd, distFolder, `${dir}${filePathPart}.js`), `module.exports = ${cssJs}`);
46
-
136
+ fs.outputFileSync(
137
+ path.join(cwd, distFolder, `${dir}${filePathPart}.js`),
138
+ `module.exports = ${cssJs}`
139
+ );
47
140
  } else process.stdout.write(processedCss, 'utf8');
48
141
  return processedCss;
49
- };
50
-
51
-
52
- const build = async ({cwd = process.cwd(), distFolder = 'dist', allFiles = false, bundleFileName = 'index', replace}) => {
53
- console.time('build');
54
- console.log('All files:', allFiles,);
55
- console.log(`Removing dist folder ${path.join(cwd, distFolder)}`);
56
- fs.rmSync(path.join(cwd, distFolder), {
57
- recursive: true, force: true
58
- });
59
- const subfolders = ['utilities', 'components', 'base'];
60
- const cssParts = [];
61
- for(const subfolder of subfolders) {
62
- console.time(`build ${subfolder}`);
63
- let css = '';
64
- if(allFiles) {
65
- for(const subpart of glob.sync(path.join(cwd, 'src', subfolder, "*.css"))) {
66
- const fileName = path.basename(subpart);
67
- if(fileName !== 'index.css') {
68
- css += "\n" + await buildDir(subfolder, fileName, cwd, distFolder, replace);
69
- } else {
70
- await buildDir(subfolder, fileName, cwd, distFolder, replace);
71
- }
72
- }
73
-
74
- } else {
75
- css = await buildDir(subfolder, 'index.css', cwd, distFolder, replace);
76
-
77
- }
78
- cssParts.unshift(css);
79
- console.timeEnd(`build ${subfolder}`);
80
- }
81
- fs.outputFileSync(path.join(cwd, `dist/${bundleFileName}.css`), cssParts.join('\n'));
82
- console.timeEnd('build');
83
- };
84
- if(typeof require !== 'undefined' && require.main === module) {
85
- build({});
86
142
  }
87
-
88
-
89
- module.exports = {
90
- buildDir,
91
- build
92
- };
@@ -0,0 +1,3 @@
1
+ import config from '@digigov/cli-lint/eslint.config';
2
+
3
+ export default [...config];
package/index.js CHANGED
@@ -1,32 +1,34 @@
1
- const {flags} = require('@oclif/command');
2
- const {DigigovCommand} = require('@digigov/cli/lib');
3
- const {build} = require('./build');
4
- module.exports = class BuildTailwind extends DigigovCommand {
5
- static description = 'build digigov libraries';
6
- static id = 'build-tailwind';
7
- dirname = __dirname;
8
- static examples = [
9
- `$ digigov build-tailwind`,
10
- ];
11
- static strict = true;
12
- static flags = {
13
- allFiles: flags.boolean({char: '--all-files'}),
14
- bundle: flags.string({})
15
- };
16
- static load() {return BuildTailwind;}
17
- async run() {
18
- const {args, flags} = this.parse(BuildTailwind);
19
- try {
20
- await build({
21
- bundleFileName: flags.bundle,
22
- allFiles: flags.allFiles,
23
- replace: {
24
- 'border-color:reset': '',
25
- '"borderColor":"reset"':''
26
- }
27
- });
28
- } catch(err) {
29
- console.log(err);
30
- }
31
- }
32
- };
1
+ import { DigigovCommand } from '@digigov/cli/lib';
2
+ import { build } from './build.js';
3
+
4
+ const command = new DigigovCommand('build-tailwind', import.meta.url);
5
+
6
+ command
7
+ .option('--all-files', 'Build all files', false)
8
+ .option('--cwd <directory>', 'Current working directory', process.cwd())
9
+ .option('--dist <distFolder>', 'Distribution folder', 'dist')
10
+ .option('--bundle <fileName>', 'Bundle file name', 'index')
11
+ .action(buildTailwind);
12
+
13
+ export default command;
14
+
15
+ /**
16
+ * @param {object} options - The options
17
+ * @param {string} options.cwd - The current working directory
18
+ * @param {string} options.dist - The distribution folder
19
+ * @param {string} options.bundle - The bundle file name
20
+ * @param {boolean} options.allFiles - Whether to build all files
21
+ * @param {string} options.replace - Replace
22
+ */
23
+ async function buildTailwind(options) {
24
+ await build({
25
+ cwd: options.cwd,
26
+ distFolder: options.dist,
27
+ bundleFileName: options.bundle,
28
+ allFiles: options.allFiles,
29
+ replace: {
30
+ 'border-color:reset': '',
31
+ '"borderColor":"reset"': '',
32
+ },
33
+ });
34
+ }
package/package.json CHANGED
@@ -1,20 +1,32 @@
1
1
  {
2
2
  "name": "@digigov/cli-build-tailwind",
3
- "version": "1.0.2-rc.21",
3
+ "version": "2.0.0-0138f8bd",
4
4
  "description": "Build tailwind plugin for Digigov CLI",
5
5
  "main": "./index.js",
6
+ "type": "module",
6
7
  "author": "GRNET Devs <devs@lists.grnet.gr>",
7
8
  "license": "BSD-2-Clause",
8
9
  "private": false,
9
10
  "dependencies": {
10
11
  "fs-extra": "11.2.0",
11
- "glob": "7.1.6",
12
+ "globby": "11.0.0",
12
13
  "postcss": "8.4.4",
13
14
  "postcss-js": "4.0.0",
14
15
  "postcss-load-config": "3.1.4"
15
16
  },
17
+ "devDependencies": {
18
+ "publint": "0.1.8",
19
+ "@digigov/cli": "2.0.0-0138f8bd",
20
+ "@digigov/cli-lint": "2.0.0-0138f8bd",
21
+ "eslint": "9.16.0",
22
+ "prettier": "3.4.2"
23
+ },
16
24
  "peerDependencies": {
17
- "@digigov/cli": "1.1.1-rc.21"
25
+ "@digigov/cli": "2.0.0-0138f8bd"
18
26
  },
19
- "scripts": {}
27
+ "scripts": {
28
+ "publint": "publint",
29
+ "lint": "digigov lint",
30
+ "typecheck": "tsc"
31
+ }
20
32
  }
package/tsconfig.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": "@digigov/cli/tsconfig.cli",
3
+ "include": ["./*.js"],
4
+ "exclude": ["./eslint.config.js", "./.prettierrc.cjs"]
5
+ }