eslint-plugin-digigov 1.0.0 → 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.
- package/.rush/temp/shrinkwrap-deps.json +90 -9
- package/index.js +19 -5
- package/package.json +13 -6
- package/rules/no-relative-imports/index.js +35 -43
- package/rules/no-relative-imports/moduleVisitor.js +12 -62
- package/tsconfig.json +4 -0
- package/config/recommended.js +0 -21
|
@@ -1,26 +1,107 @@
|
|
|
1
1
|
{
|
|
2
|
+
"../../plugins/eslint-plugin-digigov": "../../plugins/eslint-plugin-digigov:TXS5GbySEspTUEtFyahY38rLbFIV97Gqd3B40meETQc=:",
|
|
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
|
+
"@types/estree@1.0.7": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
|
|
18
|
+
"@types/json-schema@7.0.15": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
|
|
19
|
+
"acorn-jsx@5.3.2(acorn@8.14.1)": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
|
|
20
|
+
"acorn@8.14.1": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
|
|
21
|
+
"ajv@6.12.6": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
|
22
|
+
"ansi-styles@4.3.0": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
|
23
|
+
"argparse@2.0.1": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
|
2
24
|
"balanced-match@1.0.2": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
|
25
|
+
"brace-expansion@1.1.11": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
|
3
26
|
"brace-expansion@2.0.1": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
|
4
|
-
"
|
|
27
|
+
"callsites@3.1.0": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
|
|
28
|
+
"chalk@4.1.0": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
|
|
29
|
+
"color-convert@2.0.1": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
|
30
|
+
"color-name@1.1.4": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
|
31
|
+
"concat-map@0.0.1": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
|
|
32
|
+
"cross-spawn@7.0.6": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
|
33
|
+
"debug@4.4.0": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
|
|
34
|
+
"deep-is@0.1.4": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
|
|
35
|
+
"escape-string-regexp@4.0.0": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
|
|
36
|
+
"eslint-scope@8.3.0": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
|
|
37
|
+
"eslint-visitor-keys@3.4.3": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
|
|
38
|
+
"eslint-visitor-keys@4.2.0": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
|
|
39
|
+
"eslint@9.16.0(jiti@2.4.2)": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==",
|
|
40
|
+
"espree@10.3.0": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
|
|
41
|
+
"esquery@1.6.0": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
|
|
42
|
+
"esrecurse@4.3.0": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
|
|
43
|
+
"estraverse@5.3.0": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
|
|
44
|
+
"esutils@2.0.3": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
|
|
45
|
+
"fast-deep-equal@3.1.3": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
|
46
|
+
"fast-json-stable-stringify@2.1.0": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
|
47
|
+
"fast-levenshtein@2.0.6": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
|
|
48
|
+
"file-entry-cache@8.0.0": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
|
|
49
|
+
"find-up@5.0.0": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
|
|
50
|
+
"flat-cache@4.0.1": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
|
|
51
|
+
"flatted@3.3.3": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
|
|
5
52
|
"fs.realpath@1.0.0": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
|
|
53
|
+
"glob-parent@6.0.2": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
|
|
6
54
|
"glob@8.1.0": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
|
55
|
+
"globals@14.0.0": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
|
|
56
|
+
"has-flag@4.0.0": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
|
7
57
|
"ignore-walk@5.0.1": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==",
|
|
58
|
+
"ignore@5.3.2": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
|
|
59
|
+
"import-fresh@3.3.1": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
|
|
60
|
+
"imurmurhash@0.1.4": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
|
|
8
61
|
"inflight@1.0.6": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
|
|
9
62
|
"inherits@2.0.4": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
|
10
|
-
"
|
|
63
|
+
"is-extglob@2.1.1": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
|
|
64
|
+
"is-glob@4.0.3": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
|
65
|
+
"isexe@2.0.0": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
|
66
|
+
"jiti@2.4.2": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
|
|
67
|
+
"js-yaml@4.1.0": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
|
|
68
|
+
"json-buffer@3.0.1": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
|
|
69
|
+
"json-schema-traverse@0.4.1": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
|
70
|
+
"json-stable-stringify-without-jsonify@1.0.1": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
|
|
71
|
+
"keyv@4.5.4": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
|
|
72
|
+
"levn@0.4.1": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
|
|
73
|
+
"locate-path@6.0.0": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
|
|
74
|
+
"lodash.merge@4.6.2": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
|
|
75
|
+
"minimatch@3.1.2": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
|
11
76
|
"minimatch@5.1.6": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
|
12
77
|
"mri@1.2.0": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
|
|
78
|
+
"ms@2.1.3": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
|
79
|
+
"natural-compare@1.4.0": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
|
|
13
80
|
"npm-bundled@2.0.1": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==",
|
|
14
81
|
"npm-normalize-package-bin@2.0.0": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==",
|
|
15
82
|
"npm-packlist@5.1.3": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==",
|
|
16
83
|
"once@1.4.0": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
|
|
17
|
-
"
|
|
18
|
-
"p-
|
|
19
|
-
"p-
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
84
|
+
"optionator@0.9.4": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
|
|
85
|
+
"p-limit@3.1.0": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
|
|
86
|
+
"p-locate@5.0.0": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
|
|
87
|
+
"parent-module@1.0.1": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
|
|
88
|
+
"path-exists@4.0.0": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
|
|
89
|
+
"path-key@3.1.1": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
|
90
|
+
"picocolors@1.1.1": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
|
|
91
|
+
"prelude-ls@1.2.1": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
|
|
23
92
|
"publint@0.1.8": "sha512-czOfocZAwS3d5RNrx4VyMxJJDyTn9MajMfuzJYlMrztFLrWkM+3KVdPozTfd8ka8aGWfR1cS66tMSDCgF70T+A==",
|
|
93
|
+
"punycode@2.3.1": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
|
|
94
|
+
"resolve-from@4.0.0": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
|
|
24
95
|
"sade@1.8.1": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
|
|
25
|
-
"
|
|
96
|
+
"shebang-command@2.0.0": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
|
97
|
+
"shebang-regex@3.0.0": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
|
98
|
+
"strip-json-comments@3.1.1": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
|
|
99
|
+
"supports-color@7.2.0": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
|
100
|
+
"type-check@0.4.0": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
|
|
101
|
+
"typescript@5.6.2": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==",
|
|
102
|
+
"uri-js@4.4.1": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
|
|
103
|
+
"which@2.0.2": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
|
104
|
+
"word-wrap@1.2.5": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
|
|
105
|
+
"wrappy@1.0.2": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
|
|
106
|
+
"yocto-queue@0.1.0": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
|
|
26
107
|
}
|
package/index.js
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
'no-relative-imports': require('./rules/no-relative-imports'),
|
|
3
|
-
};
|
|
1
|
+
import noRelativeImports from "./rules/no-relative-imports/index.js";
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
const plugin = {
|
|
4
|
+
configs: {},
|
|
5
|
+
rules: {
|
|
6
|
+
"no-relative-imports": noRelativeImports,
|
|
7
|
+
},
|
|
7
8
|
};
|
|
9
|
+
|
|
10
|
+
Object.assign(plugin.configs, {
|
|
11
|
+
recommended: {
|
|
12
|
+
plugins: {
|
|
13
|
+
digigov: plugin,
|
|
14
|
+
},
|
|
15
|
+
rules: {
|
|
16
|
+
"digigov/no-relative-imports": "warn",
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export default plugin;
|
package/package.json
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-digigov",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-0138f8bd",
|
|
4
4
|
"description": "Custom lint rules for digigov projects",
|
|
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
|
"dependencies": {
|
|
9
|
-
"
|
|
10
|
-
"publint": "0.1.8"
|
|
10
|
+
"@digigov/cli": "2.0.0-0138f8bd"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
|
-
"publint": "0.1.8"
|
|
13
|
+
"publint": "0.1.8",
|
|
14
|
+
"typescript": "5.6.2",
|
|
15
|
+
"@digigov/cli": "2.0.0-0138f8bd",
|
|
16
|
+
"eslint": "9.16.0"
|
|
17
|
+
},
|
|
18
|
+
"peerDependencies": {
|
|
19
|
+
"eslint": "^9"
|
|
14
20
|
},
|
|
15
21
|
"scripts": {
|
|
16
|
-
"publint": "publint"
|
|
22
|
+
"publint": "publint",
|
|
23
|
+
"typecheck": "tsc"
|
|
17
24
|
}
|
|
18
|
-
}
|
|
25
|
+
}
|
|
@@ -1,75 +1,67 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
root: path.dirname(pkgLocation)
|
|
9
|
-
}
|
|
1
|
+
import moduleVisitor from "./moduleVisitor.js";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { resolveProject } from "@digigov/cli/lib";
|
|
4
|
+
|
|
5
|
+
const project = resolveProject();
|
|
6
|
+
|
|
7
|
+
/** @type {import('eslint').Rule.RuleModule} */
|
|
10
8
|
const rule = {
|
|
11
9
|
meta: {
|
|
12
|
-
type:
|
|
10
|
+
type: "suggestion",
|
|
13
11
|
docs: {
|
|
14
|
-
|
|
12
|
+
description: "Disallow relative imports",
|
|
15
13
|
},
|
|
16
|
-
fixable:
|
|
14
|
+
fixable: "code",
|
|
17
15
|
schema: [
|
|
18
16
|
{
|
|
19
|
-
type:
|
|
17
|
+
type: "object",
|
|
20
18
|
properties: {
|
|
21
|
-
commonjs: { type:
|
|
22
|
-
amd: { type:
|
|
23
|
-
esmodule: { type:
|
|
19
|
+
commonjs: { type: "boolean" },
|
|
20
|
+
amd: { type: "boolean" },
|
|
21
|
+
esmodule: { type: "boolean" },
|
|
24
22
|
ignore: {
|
|
25
|
-
type:
|
|
23
|
+
type: "array",
|
|
26
24
|
minItems: 1,
|
|
27
|
-
items: { type:
|
|
25
|
+
items: { type: "string" },
|
|
28
26
|
uniqueItems: true,
|
|
29
27
|
},
|
|
30
28
|
root: {
|
|
31
|
-
type:
|
|
32
|
-
enum: [
|
|
33
|
-
}
|
|
29
|
+
type: "string",
|
|
30
|
+
enum: ["package-name", "src"],
|
|
31
|
+
},
|
|
34
32
|
},
|
|
35
33
|
additionalProperties: false,
|
|
36
34
|
},
|
|
37
35
|
],
|
|
38
36
|
},
|
|
39
37
|
|
|
40
|
-
create:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
root = context.options[0].root
|
|
38
|
+
create: (context) => {
|
|
39
|
+
let root = "package-name";
|
|
40
|
+
if (context.options.length) {
|
|
41
|
+
if (context.options[0].root) {
|
|
42
|
+
root = context.options[0].root;
|
|
46
43
|
}
|
|
47
44
|
}
|
|
48
|
-
if (myPath === '<text>') return {}; // can't check a non-file
|
|
49
|
-
|
|
50
45
|
function checkSourceValue(sourceNode) {
|
|
51
46
|
if (sourceNode.value.match(/^\./)) {
|
|
52
47
|
const absoluteImportPath = path.resolve(
|
|
53
|
-
path.dirname(
|
|
54
|
-
sourceNode.value
|
|
48
|
+
path.dirname(context.filename),
|
|
49
|
+
sourceNode.value,
|
|
55
50
|
);
|
|
56
|
-
if(absoluteImportPath.endsWith(
|
|
57
|
-
return
|
|
51
|
+
if (absoluteImportPath.endsWith(".svg")) {
|
|
52
|
+
return;
|
|
58
53
|
}
|
|
59
54
|
// TODO: fix issue with importing svg files with babel-module-resolver
|
|
60
55
|
// lint only import strings that dont have an svg extension
|
|
61
|
-
if (path.extname(absoluteImportPath) !==
|
|
62
|
-
const newPath = `'${root ===
|
|
63
|
-
.replace(
|
|
64
|
-
|
|
65
|
-
''
|
|
66
|
-
)
|
|
67
|
-
.replace(/index$/, '')}'`;
|
|
56
|
+
if (path.extname(absoluteImportPath) !== ".svg") {
|
|
57
|
+
const newPath = `'${root === "package-name" ? project.name + "/" : ""}${absoluteImportPath
|
|
58
|
+
.replace(`${project.root}/src/`, "")
|
|
59
|
+
.replace(/index$/, "")}'`;
|
|
68
60
|
context.report({
|
|
69
61
|
node: sourceNode,
|
|
70
62
|
message:
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
"Please use the absolute path of a file using the package name of your application as stated in the `name` key in your `package.json` file.\n" +
|
|
64
|
+
"Use of relative imports is not recommended\n" +
|
|
73
65
|
`For this instance use ${newPath} instead of ${sourceNode.value}`,
|
|
74
66
|
fix: (fixer) => {
|
|
75
67
|
// see https://eslint.org/docs/developer-guide/working-with-rules#applying-fixes
|
|
@@ -84,4 +76,4 @@ const rule = {
|
|
|
84
76
|
},
|
|
85
77
|
};
|
|
86
78
|
|
|
87
|
-
|
|
79
|
+
export default rule;
|
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
* Returns an object of node visitors that will call
|
|
3
3
|
* 'visitor' with every discovered module path.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* @param {Function(String)} visitor [description]
|
|
7
|
-
* @param {[type]} options [description]
|
|
8
|
-
* @return {object}
|
|
5
|
+
* @returns {import('eslint').Rule.RuleListener}
|
|
9
6
|
*/
|
|
10
|
-
|
|
7
|
+
export default function visitModules(visitor, options) {
|
|
11
8
|
// if esmodule is not explicitly disabled, it is assumed to be enabled
|
|
12
9
|
options = Object.assign({ esmodule: true }, options);
|
|
13
10
|
|
|
@@ -31,68 +28,21 @@ module.exports = function visitModules(visitor, options) {
|
|
|
31
28
|
checkSourceValue(node.source, node);
|
|
32
29
|
}
|
|
33
30
|
|
|
34
|
-
// for esmodule dynamic `import()` calls
|
|
35
31
|
function checkImportCall(node) {
|
|
36
|
-
if (node.callee.type !==
|
|
32
|
+
if (node.callee.type !== "Import") return;
|
|
37
33
|
if (node.arguments.length !== 1) return;
|
|
38
34
|
|
|
39
35
|
const modulePath = node.arguments[0];
|
|
40
|
-
if (modulePath.type !==
|
|
41
|
-
if (typeof modulePath.value !==
|
|
36
|
+
if (modulePath.type !== "Literal") return;
|
|
37
|
+
if (typeof modulePath.value !== "string") return;
|
|
42
38
|
|
|
43
39
|
checkSourceValue(modulePath, node);
|
|
44
40
|
}
|
|
45
41
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const modulePath = call.arguments[0];
|
|
54
|
-
if (modulePath.type !== 'Literal') return;
|
|
55
|
-
if (typeof modulePath.value !== 'string') return;
|
|
56
|
-
|
|
57
|
-
checkSourceValue(modulePath, call);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function checkAMD(call) {
|
|
61
|
-
if (call.callee.type !== 'Identifier') return;
|
|
62
|
-
if (call.callee.name !== 'require' && call.callee.name !== 'define') return;
|
|
63
|
-
if (call.arguments.length !== 2) return;
|
|
64
|
-
|
|
65
|
-
const modules = call.arguments[0];
|
|
66
|
-
if (modules.type !== 'ArrayExpression') return;
|
|
67
|
-
|
|
68
|
-
for (const element of modules.elements) {
|
|
69
|
-
if (element.type !== 'Literal') continue;
|
|
70
|
-
if (typeof element.value !== 'string') continue;
|
|
71
|
-
|
|
72
|
-
if (element.value === 'require' || element.value === 'exports') continue; // magic modules: http://git.io/vByan
|
|
73
|
-
|
|
74
|
-
checkSourceValue(element, element);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const visitors = {};
|
|
79
|
-
if (options.esmodule) {
|
|
80
|
-
Object.assign(visitors, {
|
|
81
|
-
ImportDeclaration: checkSource,
|
|
82
|
-
ExportNamedDeclaration: checkSource,
|
|
83
|
-
ExportAllDeclaration: checkSource,
|
|
84
|
-
CallExpression: checkImportCall,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (options.commonjs || options.amd) {
|
|
89
|
-
const currentCallExpression = visitors.CallExpression;
|
|
90
|
-
visitors.CallExpression = function (call) {
|
|
91
|
-
if (currentCallExpression) currentCallExpression(call);
|
|
92
|
-
if (options.commonjs) checkCommon(call);
|
|
93
|
-
if (options.amd) checkAMD(call);
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return visitors;
|
|
98
|
-
};
|
|
42
|
+
return {
|
|
43
|
+
ImportDeclaration: checkSource,
|
|
44
|
+
ExportNamedDeclaration: checkSource,
|
|
45
|
+
ExportAllDeclaration: checkSource,
|
|
46
|
+
CallExpression: checkImportCall,
|
|
47
|
+
};
|
|
48
|
+
}
|
package/tsconfig.json
ADDED
package/config/recommended.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The basics.
|
|
3
|
-
* @type {Object}
|
|
4
|
-
*/
|
|
5
|
-
module.exports = {
|
|
6
|
-
plugins: ['digigov'],
|
|
7
|
-
|
|
8
|
-
rules: {
|
|
9
|
-
// analysis/correctness
|
|
10
|
-
// 'digigov/no-relative-imports': 'error',
|
|
11
|
-
// red flags (thus, warnings)
|
|
12
|
-
'digigov/no-relative-imports': 'warn',
|
|
13
|
-
},
|
|
14
|
-
|
|
15
|
-
// need all these for parsing dependencies (even if _your_ code doesn't need
|
|
16
|
-
// all of them)
|
|
17
|
-
parserOptions: {
|
|
18
|
-
sourceType: 'module',
|
|
19
|
-
ecmaVersion: 2018,
|
|
20
|
-
},
|
|
21
|
-
};
|