{"_id":"eslint-vue-setup-rules","_rev":"15-24c87bd3504051b332e8ef759f538c4e","name":"eslint-vue-setup-rules","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.4":{"name":"eslint-vue-setup-rules","version":"1.0.4","keywords":[],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.4","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"73f4e19ec7817801d8f6892ec931f7fb70c92b97","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.4.tgz","fileCount":9,"integrity":"sha512-DWNHVjgcLAy+4ZAwn14561YmM9najSeQTVuf8gJZW4Rj4cpec+CrUH7IclzLJhZlAV3m6hMc5/uhCGUIqPlCrw==","signatures":[{"sig":"MEQCIG8A/Laqt6bTxpVvrrU9YiJQl2efplFb8swhRKCJx835AiB1Os0S+hNIPDUToC5s3nZIs1u35LHkHk3pWutCS1unJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25930},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"5bcee16a38766a2cda3cd29ce80b343c54a64c70","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.1.0","description":"- This package contains custom rules to enforce the order of declarations within `<script setup>` in Vue 3.","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.4_1740401995117_0.926420085181626","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"eslint-vue-setup-rules","version":"1.0.6","keywords":[],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.6","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"b43db17c8e3138cd19c915cdf10ca74a9523c142","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.6.tgz","fileCount":9,"integrity":"sha512-o1n6/j3ESF4QM85E9AEW+/g7lt4InObobyzK4gz8kLT42eAY5clew77LeO0KJq9PwEWcY81eJK6el4XeR6mdGw==","signatures":[{"sig":"MEQCIAqEgkH4NYsUF3pqpWPPXwxQl+OrFMhfWUy30UAZVrhmAiBCUSMtOg2ajzEi/BeCSv1jUPiNLIXqH+14DVfFiGl0+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26060},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"3ffb07f646c5e2e9ba6ca0333544426b12a77efd","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.1.0","description":"- This package contains custom rules to enforce the order of declarations within `<script setup>` in Vue 3.","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.6_1740403318372_0.2892626828411127","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"eslint-vue-setup-rules","version":"1.0.7","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.7","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"0a0dc31b4bff16d11e7ecb3b9b9f8044be792107","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.7.tgz","fileCount":9,"integrity":"sha512-usmBDFZOI2VML4odqG8zKKNJGi3a+JvL6VowBsVrv1CzcII+vRZACL2Tgft0tqJJCinIL5pCTl9xcruQSN1mEA==","signatures":[{"sig":"MEQCIGxE9K+tlSUl3M1I8wM/jS5kUZs6I9x9b4bY5Olqem3wAiBg/79AVvrjh12Kdm/+vY0w/dZdu8FoRKXuUMlt/UbzAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26584},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"7cd46f4cdc35bf0bf86e9aff9fc11823e7e6878a","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.1.0","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.7_1740484964241_0.8461766962020139","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"eslint-vue-setup-rules","version":"1.0.8","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.8","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"408094aab802983ffd0456838332a2c270f652d1","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.8.tgz","fileCount":9,"integrity":"sha512-quDG4eYhA28A4XUlIjBSLRcNLmvUipLI2rQ8Cf+Nndi9hL8OR1JmIbGWfUDbFU26xg/dvJqNiQkNsvgLrJYc+Q==","signatures":[{"sig":"MEUCIGPn4gzXLec19uHK9C68ntV/bO6l/xTa1VFtydOhANOPAiEA21QV3g8QF6iiie4UN1zMs8ZI+PVASDGoxPLkd8kOtE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26238},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"b4f2f66c623f24e6030252b0ef2de0bd2fd6cb74","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.1.0","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.8_1740493142768_0.39246854657594077","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"eslint-vue-setup-rules","version":"1.0.9","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.9","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"1bb5d400cd23b17a301e1c8b3dcfc9e17ec38128","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.9.tgz","fileCount":9,"integrity":"sha512-Y47wptebsrJCQNT6i+BTrJO/Bjo3y+XK2MZ9qtQUySzdNXOK1sYHgYBldEtFpnyuDREesEXkP2xv7Hx1NQH5/Q==","signatures":[{"sig":"MEYCIQDwBiBVdyD3e2Iv2lgy9pUQNXrUXr/McV6mEzUT65aWAAIhAKXKFWtWcunJPUZYox5nOnzGFBsCmNaqiyUjRPg1DSul","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25066},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"9483fd16dac2d4ad069bb86fb97756924e838d5f","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.1.0","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.9_1740653804205_0.44423064424454095","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"eslint-vue-setup-rules","version":"1.0.10","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.10","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"251f93fec1e479e82364ed56c87c11953ce35c72","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.10.tgz","fileCount":9,"integrity":"sha512-nhmdgkOToqfBeSjZ9i672IETL7wx0jd3y8AClVl7B+WY5NeXNf8lDRURYJCrFkyjIjavTQB/gAsN8oam61zKUg==","signatures":[{"sig":"MEYCIQCisXMpVfxhtLDWM2aTxG0oNaKIiaILEQtfNq47b/8n+QIhAMQM4nmdu8lwZ49THaIz0eAv+9gYP2aTceeBcFFS2p8W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25056},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"82789e04ffaa6e716ef0f216ef91643f6e7170b8","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.1.0","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.10_1743204397439_0.18235966886900412","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"eslint-vue-setup-rules","version":"1.0.11","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.11","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"97eb2b1473837912cbfec42432551675c1719ef6","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.11.tgz","fileCount":9,"integrity":"sha512-cs7RCic6jcKvEHE9fDS+W2OG2FcmCjaMQAQtoZx8xiZTKIFProHkf2KmV7etglplPEUQl/+ilykS7gnNHeMLOg==","signatures":[{"sig":"MEUCIQDEz1APFtaSG54z130i/7E/DCsC6xGm2Fil/iz/c4sInAIgRJc+ngerPUCHLjmgTOZkAGtU3/c04wCY5zg1DWbG6KQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24874},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"e834b6ac48c22596fe2f7b9ab3a0d6c47b622fd6","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.1.0","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.11_1744114576400_0.020156956009879545","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"eslint-vue-setup-rules","version":"1.0.12","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.12","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"6183cedb4f704d7adb747d4d0956d5d9f64bcbfb","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.12.tgz","fileCount":9,"integrity":"sha512-44WZL2JNEChHXRzG2brXxLcgGXqWZsybbL7O0p/dAtb4Z+glQ6+I9a4xcjsU895tPmm6gW9eCMeYXNN+NyBqGg==","signatures":[{"sig":"MEYCIQC1o5E0fpEW+l2RnsuLyJRPHSrJQ4TAQJuQySr5EsFNaAIhAIy2U+Eye74Cn7CYbLrCDe7DngOJHtYPfBuPbkAwKHfC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26932},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"9d7843132c4121ae795e26405178e244cee4610e","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.8.2","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.12_1744188976789_0.20552018257216909","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"eslint-vue-setup-rules","version":"1.0.13","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.13","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"592877d7e4a88f2c98506f617cdb288e2002f1cf","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.13.tgz","fileCount":9,"integrity":"sha512-7+xj4CnWjEUygZ8TNTvhD7d0OfaE6IoA/srR2onAP8sfC+U2kP28PDFg6yWYLfgcya+PXSWpQW495Mesr5BvHA==","signatures":[{"sig":"MEUCIE1+cZZo5LHeNlga8BZsxBFm6OAHyrR7NDSXlzEZ/LnMAiEAmkCMgGIndTZVZt0Cak7QNRIe6g3coR5nlnOpwmO3V0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25981},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"9328572b3969b0965afd15d3a8205ec4d31a3c8f","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.9.3","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.13_1764492741193_0.08915292258513019","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"eslint-vue-setup-rules","version":"1.0.14","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.14","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"2f020301e961dd8fd9d3453e7498adb158055cdf","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.14.tgz","fileCount":9,"integrity":"sha512-PWxWhDP9C9B7k4WvFs9vg5Gn/h0+kNH4sCZyzUP/KWfOa7lKfOuYSppGoOTUr2b932tNDI+vwIbHhlwLs1QN1w==","signatures":[{"sig":"MEUCIQDRV0NyADZ9AalCe5wfCqtWglk2SGI7ivCEUf6rHrpHFQIgTNt9toa70XC6FV1W+p5lSu/KZXu9U1wlIUeHxsVuHdY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28854},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"71fe13d99eb4b2edb848949d9e01d0d8752fcf10","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.9.3","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.14_1777815978654_0.9276065234337012","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"eslint-vue-setup-rules","version":"1.0.15","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.15","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"67744f18342e5b198372fbff5a6ae3a4b71fe910","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.15.tgz","fileCount":9,"integrity":"sha512-lBn6BD3pS8N4E2yIt0GFMuGjf7Dc12i6aoBHEKtMvrqaOY7w3pDqkm2SZ7wxlkLLvpPOMbTq1W/WawvTFJSVtQ==","signatures":[{"sig":"MEUCIQD3ne+yKgMsqea5U2haCY1L4wJB4JVYfu8hoH5dPMclPgIgfNfo4GZbff5koidxH90nZwA+5rNhddMCYZIMUhD86GU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31599},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"759d3cd2a2bc572ac6a9cb34296067c57df00575","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.9.3","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.15_1778589322249_0.5650752988721084","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"eslint-vue-setup-rules","version":"1.0.16","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.16","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"61c790df2665f62eab836b6ad88bb840d2eb9240","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.16.tgz","fileCount":9,"integrity":"sha512-mI85r5X8UsSYvRQi/0Lo7zwkQGRt4a0C0Z/bZXl6WtvRsLVHw7ar0s+WhxctU0DPidI8KWYoQzu2xIR2cUjX0Q==","signatures":[{"sig":"MEQCIG7IL00Vjtig91rizg9n3hScRXSmEkSgXW6cAotnt7kmAiAJIPGkO1DgDCBskYfGK4/X8ym87CJXvtKagFmt+R5YZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32316},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"2804bb4c958a33d70cfaa31b0c4c724bc7e1535d","scripts":{"test":"mocha"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.9.3","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.16_1778591780319_0.34058777295021625","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"eslint-vue-setup-rules","version":"1.0.17","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.17","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"1153b8abf075533d6bd1fcdd22d4edfecac58dc6","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.17.tgz","fileCount":15,"integrity":"sha512-KKRahBn5T3KPrrLpVbIyoTQ8df9sAtndsgaVxdpdiMEBZ3ez+51kzvLT/shJOpxaQPUA5l5moMWntn6ocROBtA==","signatures":[{"sig":"MEUCIEmxCx6JYYAP3MIACsnNwdPwijXsUBVKteONv3W1eOrBAiEAn3QwucrykQ+Mtz2oCsDnnZNBkpD50dtMmPIZ9gXUGcA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41916},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"355380f448dfd22dc027acfe295ed7238a15a947","scripts":{"test":"mocha tests/all.test.js"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.9.3","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3","@typescript-eslint/parser":"^8.59.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.17_1779146734953_0.8261506309416924","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"eslint-vue-setup-rules","version":"1.0.18","keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","_id":"eslint-vue-setup-rules@1.0.18","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"dist":{"shasum":"47223c2ae094f0d8a2784d327d59619cf5e7d73b","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.0.18.tgz","fileCount":18,"integrity":"sha512-vWwiBESLtHiqIaAU0lgt0KOxTwAqtOIMtAZLUFH3cowgf0CIOBkUCqM4nvPK8Y0tJRfu8NkrBNQU28nxFoPwsQ==","signatures":[{"sig":"MEQCIHSdMpqoFLJ6fvDEKaBMhSNzzq1bRjB5WhLriGAM6N/lAiAdS1HjTXFKkv5KSXcaLcr3tj0EXD2fyG2VlQ8M9HueUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58577},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js"},"gitHead":"784d8c9650418d7806322fca45248991a656a1bf","scripts":{"test":"mocha tests/all.test.js"},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"_npmVersion":"10.9.3","description":"sort of declaration of script setup in Vue 3","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0","eslint":"^9.20.0","vue-eslint-parser":"^9.4.3","@typescript-eslint/parser":"^8.59.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-vue-setup-rules_1.0.18_1779715391178_0.3614119199321144","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"eslint-vue-setup-rules","version":"1.2.0","description":"sort of declaration of script setup in Vue 3","main":"lib/index.js","exports":{".":"./lib/index.js"},"type":"module","scripts":{"test":"mocha tests/all.test.js"},"keywords":["eslint","vue","vue3","setup","script setup","rules"],"author":"","license":"ISC","devDependencies":{"@typescript-eslint/parser":"^8.59.3","eslint":"^10.5.0","mocha":"^11.1.0","vue-eslint-parser":"^9.4.3"},"_id":"eslint-vue-setup-rules@1.2.0","gitHead":"ce7e82165bad8c2ae118155e31af69e1abe09e63","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-Py7tb2r6ajlwBZMUzB6leI9tum2l0pNQm6xCY6B4AoZe3ivJ7BdESGtTmRL/tGOrdPxYsbmAjj+PXwgmXqiuwA==","shasum":"d2faa22e110e256b7b9488a2ddc41e97d09c21b3","tarball":"https://registry.npmjs.org/eslint-vue-setup-rules/-/eslint-vue-setup-rules-1.2.0.tgz","fileCount":18,"unpackedSize":58571,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCSpTvNAClobRZ4JwMM9RWXEOCO2un/ef1QRNPvjhJmWwIhAPrHHO9wgpCEr/M1daVxG5AmGBoIyAvAmrbu7PXoCUSY"}]},"_npmUser":{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"},"directories":{},"maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-vue-setup-rules_1.2.0_1781778551526_0.23259326314477002"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-24T12:59:55.117Z","modified":"2026-06-18T10:29:11.781Z","1.0.4":"2025-02-24T12:59:55.314Z","1.0.6":"2025-02-24T13:21:58.559Z","1.0.7":"2025-02-25T12:02:44.411Z","1.0.8":"2025-02-25T14:19:03.008Z","1.0.9":"2025-02-27T10:56:44.384Z","1.0.10":"2025-03-28T23:26:37.754Z","1.0.11":"2025-04-08T12:16:16.622Z","1.0.12":"2025-04-09T08:56:16.961Z","1.0.13":"2025-11-30T08:52:21.396Z","1.0.14":"2026-05-03T13:46:18.788Z","1.0.15":"2026-05-12T12:35:22.391Z","1.0.16":"2026-05-12T13:16:20.470Z","1.0.17":"2026-05-18T23:25:35.097Z","1.0.18":"2026-05-25T13:23:11.349Z","1.2.0":"2026-06-18T10:29:11.665Z"},"license":"ISC","keywords":["eslint","vue","vue3","setup","script setup","rules"],"description":"sort of declaration of script setup in Vue 3","maintainers":[{"name":"geum_jung_min","email":"today.as.fresh@gmail.com"}],"readme":"\n# vue3-script-setup-custom-rules\n- This package contains custom rules to enforce the order of declarations within `<script setup>` in Vue 3.\n\n<br/>\n\n## 🛠 Concept\n\n### 📌 Order\nThe declarations in `<script setup>` are sorted in the following fixed order:\n```\n\"type\",\n\"defineProps\",\n\"defineEmits\",\n\"defineSlots\",\n\"defineModel\",\n\"defineOptions\",\n\"class\",\n\"plainVars\",\n\"injects\",\n\"reactiveVars\",\n\"composables\",\n\"computed\",\n\"watchers\",\n\"provides\",\n\"lifecycle\",\n\"unknowns\",\n\"functions\",\n\"defineExpose\"\n```\n\n`inject(...)` calls are classified as `injects`, and `provide(...)` calls are classified as `provides`.\n\n<br/>\n\n### 📌 Separation Between Groups\nA single blank line (which corresponds to two consecutive newline characters) is inserted between different groups.<br/> \nThis means that if you have a group of define declarations followed by another group (such as \"plainVars\"),<br/> \nthere will be one blank line between these groups in the final sorted output.<br/> \n\nExample: Consider the following two groups:<br/> \n_Group 1 (defineProps):_\n```js\nconst aa = defineProps<{ msg: string }>();\n```\n\n<br/>\n\n_Group 2 (plain variable declarations):_\n```js\nconst hello = \"Hello World!\";\nconst count = 0\n```\n\n<br/>\n\nThe final sorted output will be:\n```js\nconst aa = defineProps<{ msg: string }>();\n\nconst hello = \"Hello World!\";\nconst count = 0\n```\n<br/>\n\nNotice the blank line between the two groups, which helps visually separate different types of declarations.\n\n<br/>\n\n\n<br/>\n\n## 🛠 Section Order Customization\nBy default, the rule enforces the predefined order of declarations within `<script setup>`. <br/>\nHowever, you can customize the declaration order by specifying the `sectionOrder` option in `eslint.config.js`.\n\n### 📌 Default Order\nBy default, the rule follows this order:\n\n```js\n\"type\",\n\"defineProps\",\n\"defineEmits\",\n\"defineSlots\",\n\"defineModel\",\n\"defineOptions\",\n\"class\",\n\"plainVars\",\n\"injects\",\n\"reactiveVars\",\n\"composables\",\n\"computed\",\n\"watchers\",\n\"provides\",\n\"lifecycle\",\n\"unknowns\",\n\"functions\",\n\"defineExpose\"\n```\n\n<br/>\n\n### 📌 Customizing the Order\nIf you want to specify a custom order, you can do so in eslint.config.js by providing a sectionOrder array.<br/>\n\nExample: Prioritizing defineProps and plainVars\n\n```js\n// eslint.config.js\nexport default [\n  {\n    files: [\"**/*.vue\"],\n    languageOptions: {\n      parser: vueEslintParser,\n      parserOptions: {\n        parser: typescriptEslintParser,\n        ecmaVersion: 2022,\n        sourceType: \"module\",\n      },\n    },\n    plugins: {\n      \"vue3-script-setup\": {\n        rules: {\n          \"declaration-order\": eslintVueSetupOrderRule,\n        },\n      },\n    },\n    rules: {\n      \"vue3-script-setup/declaration-order\": [\n        \"error\",\n        {\n          sectionOrder: [\"defineProps\", \"plainVars\"], // this!!\n        },\n      ],\n    },\n  },\n];\n```\n\n\nIn this case:\n- defineProps will always be placed before plainVars.\n- Other declarations will follow their default order.\n\n<br/>\n\n\n### 📌 Invalid Section Order Handling\nIf an invalid section is provided in sectionOrder, an ESLint error will be thrown.\n\nFor example, this incorrect configuration:\n\n```js\n\"vue3-script-setup/declaration-order\": [\n  \"error\",\n  {\n    sectionOrder: [\"defineProps\", \"invalidSection\"],\n  },\n],\n```\nwill result in the following error:\n```\nError: Invalid \"sectionOrder\" option: \"invalidSection\" is not a recognized section. Valid sections: type, defineProps, defineEmits, defineSlots, defineModel, defineOptions, class, plainVars, injects, reactiveVars, composables, computed, watchers, provides, lifecycle, unknowns, functions, defineExpose.\nThis ensures that only valid sections are allowed, preventing misconfiguration.\n```\nWith this customization, you can fine-tune the declaration order to suit your project’s coding style while still enforcing consistency. 🚀\n\n\n<br/><br/>\n\n## 🛠 lifecycle Order Customization\nBy default, the rule enforces the predefined order of declarations within `<script setup>`. <br/>\nHowever, you can customize the declaration order by specifying the `lifecycleOrder` option in `eslint.config.js`.\n\n### 📌 Default Order\nBy default, the rule follows this order:\n\n```js\nonBeforeMount: 0,\nonMounted: 1,\nonBeforeUpdate: 2,\nonUpdated: 3,\nonBeforeUnmount: 4,\nonUnmounted: 5,\nonErrorCaptured: 6,\nonRenderTracked: 7,\nonRenderTriggered: 8,\nonActivated: 9,\nonDeactivated: 10,\nonServerPrefetch: 11,\n```\n\n<br/>\n\n### 📌 Customizing the Order\nIf you want to specify a custom order, you can do so in eslint.config.js by providing a lifecycleOrder object.<br/>\n\nExample: Prioritizing defineProps and plainVars\n\n```js\n// eslint.config.js\nexport default [\n  {\n    files: [\"**/*.vue\"],\n    languageOptions: {\n      parser: vueEslintParser,\n      parserOptions: {\n        parser: typescriptEslintParser,\n        ecmaVersion: 2022,\n        sourceType: \"module\",\n      },\n    },\n    plugins: {\n      \"vue3-script-setup\": {\n        rules: {\n          \"declaration-order\": eslintVueSetupOrderRule,\n        },\n      },\n    },\n    rules: {\n      \"vue3-script-setup/declaration-order\": [\n        \"error\",\n        {\n          lifecycleOrder: { // this!!\n            onMounted: 0,\n            onBeforeMount: 1,\n          }\n        },\n      ],\n    },\n  },\n];\n```\n\n\nIn this case:\n- onMounted will always be placed before onBeforeMount.\n\n\n<br/>\n\n## 🛠 Pinning a Declaration in Place\n\nYou can prevent the rule from moving a specific declaration by adding a `// eslint-vue-setup-order:keep` comment **directly before** or **inline at the end of** the declaration line.\n\n### 📌 How It Works\nWhen the rule encounters a node with this marker it is treated as **pinned**: it stays at its original position in the source, and the remaining (non-pinned) declarations are sorted into the free slots around it.\n\nThe comment must be **directly adjacent** to the declaration (no blank lines in between). If there is a blank line between the comment and the declaration, the comment will not pin the declaration.\n\n### 📌 Examples\n\n#### Leading comment (on the line before):\n```vue\n<script setup>\n// eslint-vue-setup-order:keep\nconst count = ref(0);\n\nconst emits = defineEmits();\n\nconst hello = \"Hello World!\";\n</script>\n```\n\n#### Inline comment (at the end of the line):\n```vue\n<script setup>\nconst emits = defineEmits();\n\nconst count = ref(0); // eslint-vue-setup-order:keep\n\nconst hello = \"Hello World!\";\n</script>\n```\n\n#### Pinned in the middle:\n```vue\n<script setup>\nconst hello = \"Hello World!\";\n// eslint-vue-setup-order:keep\nconst count = ref(0);\nconst emits = defineEmits();\n</script>\n```\n\nIn all these examples, `count` (a `reactiveVars` declaration) stays in its original position while the other declarations are sorted into the remaining free slots around it.\n\n> **Note:** The `// eslint-vue-setup-order:keep` comment must be **directly adjacent** to the declaration it pins (either on the line immediately before or at the end of the same line). A blank line between the comment and the declaration breaks the adjacency and prevents pinning. The comment itself is preserved as-is when the rule applies its auto-fix.\n\n## 🛠 composableAliases Option\nBy default, the rule treats function calls whose names start with `use` as composables. <br/>\nHowever, some utilities such as `storeToRefs` or `mapState` are composable in nature even though they do not follow the `use*` naming convention. <br/>\nYou can classify those functions as composables by using the `composableAliases` option in `eslint.config.js`.\n\n### 📌 How It Works\nIf a function name is included in `composableAliases`, declarations initialized from that call will be sorted in the `composables` section.\n\nExample:\n```js\nconst store = storeToRefs();\nconst state = mapState();\n```\n\nWith the following configuration, both declarations above are treated as `composables`.\n\n### 📌 Configuration Example\n```js\n// eslint.config.js\nexport default [\n  {\n    files: [\"**/*.vue\"],\n    languageOptions: {\n      parser: vueEslintParser,\n      parserOptions: {\n        parser: typescriptEslintParser,\n        ecmaVersion: 2022,\n        sourceType: \"module\",\n      },\n    },\n    plugins: {\n      \"vue3-script-setup\": {\n        rules: {\n          \"declaration-order\": eslintVueSetupOrderRule,\n        },\n      },\n    },\n    rules: {\n      \"vue3-script-setup/declaration-order\": [\n        \"error\",\n        {\n          composableAliases: [\"storeToRefs\", \"mapState\"], // this!!\n        },\n      ],\n    },\n  },\n];\n```\n\n### 📌 Result\nIn this case:\n- `storeToRefs` will be treated as a composable.\n- `mapState` will be treated as a composable.\n- They will be sorted in the `composables` section even though their names do not start with `use`.\n\n<br/>\n\n## 🛠 sectionConfigurations Option\nYou can define custom section matching rules with the `sectionConfigurations` option.\nEach configuration is tested in the order it appears, before the built-in section detection runs.\n\n### 📌 How It Works\nEach configuration requires:\n- `sectionName`: the section assigned when the regex matches.\n- `regex`: a string pattern tested against the full declaration text.\n- `flags`: optional regular expression flags.\n\nThe order of `sectionConfigurations` controls only matching precedence.\nIt does **not** override `sectionOrder`.\nIf you want a custom section to appear in a specific position, add that section name to `sectionOrder`.\nIf the section is not present in `sectionOrder`, it is placed after configured sections.\n\n### 📌 Configuration Example\n```js\n// eslint.config.js\nexport default [\n  {\n    files: [\"**/*.vue\"],\n    rules: {\n      \"vue3-script-setup/declaration-order\": [\n        \"error\",\n        {\n          sectionConfigurations: [\n            {\n              sectionName: \"eventHandlers\",\n              regex: \"^function on\",\n            },\n            {\n              sectionName: \"functions\",\n              regex: \"^function \",\n            },\n          ],\n          sectionOrder: [\"functions\", \"eventHandlers\"],\n        },\n      ],\n    },\n  },\n];\n```\n\n### 📌 Result\nIn this case:\n- `function onClick() {}` is treated as `eventHandlers`.\n- Other function declarations are treated as `functions`.\n- `functions` still appear before `eventHandlers` because `sectionOrder` controls output order.\n\n<br/>\n\n## 🛠 spaceBetweenItems Option\nBy default, declarations within the same section are placed consecutively with no blank line between them. <br/>\nYou can configure the `spaceBetweenItems` option to control blank lines between declarations inside the same section.\n\n### 📌 How It Works\n`spaceBetweenItems` supports both the original boolean values and string values:\n\n| Value | Behavior |\n| --- | --- |\n| `false` or `\"never\"` | Places declarations within the same section consecutively with no blank line. This is the default. |\n| `true` or `\"always\"` | Inserts a blank line between every declaration within the same section. |\n| `\"preserve\"` | Preserves existing blank lines between adjacent declarations within the same section when possible. |\n\nBlank lines between different sections are always present regardless of this option.\n\n### 📌 Configuration Example\n```js\n// eslint.config.js\nexport default [\n  {\n    files: [\"**/*.vue\"],\n    languageOptions: {\n      parser: vueEslintParser,\n      parserOptions: {\n        parser: typescriptEslintParser,\n        ecmaVersion: 2022,\n        sourceType: \"module\",\n      },\n    },\n    plugins: {\n      \"vue3-script-setup\": {\n        rules: {\n          \"declaration-order\": eslintVueSetupOrderRule,\n        },\n      },\n    },\n    rules: {\n      \"vue3-script-setup/declaration-order\": [\n        \"error\",\n        {\n          spaceBetweenItems: \"preserve\", // or true / \"always\"\n        },\n      ],\n    },\n  },\n];\n```\n\n### 📌 Result\n\nWithout `spaceBetweenItems` (default):\n```js\nconst count = ref(0);\nconst msg = ref(\"\");\n```\n\nWith `spaceBetweenItems: true`:\n```js\nconst count = ref(0);\n\nconst msg = ref(\"\");\n```\n\nWith `spaceBetweenItems: \"preserve\"`:\n```js\nconst count = ref(0);\n\n\nconst msg = ref(\"\");\n```\n\n<br/>\n\n## 🛠 How to Apply\n### 📌 Method 1: Install via npm\n```\npnpm install eslint-vue-setup-rules\n\nOR\n\nyarn add eslint-vue-setup-rules\n\nOR \n\npnpm install https://github.com/KumJungMin/eslint-vue-setup-order\n```\n\n<br/>\n\nThen, add the ESLint plugin to your `eslint.config.js` (for ESLint v9 using the flat config pattern):\n```js\n// eslint.config.js\nimport vueSetupRules from \"eslint-vue-setup-rules\";\n\nexport default [\n  {\n    // Add the plugin object here:\n    plugins: { \"vue3-script-setup\": vueSetupRules },\n    rules: { \"vue3-script-setup/declaration-order\": \"error\" },\n  },\n  {\n    files: [\"**/*.vue\"],\n    languageOptions: {\n      parser: vueEslintParser,\n      parserOptions: {\n        parser: typescriptEslintParser,\n        ecmaVersion: 2022,\n        sourceType: \"module\",\n      },\n    },\n  },\n  // ... other settings\n];\n```\n\n<br/>\n\n### 📌 Method 2: Include the Rules File in Your Project\nAlternatively, you can add the rule file directly to your project:\n\n1. Add the file `rules/declaration-order.js` to your project directory:\n```js\nyour-project/\n├── src/\n│   └── eslint-rules/\n│       └── declaration-order.js\n├── eslint.config.js\n└── ...\n```\n\n2. Then, update your `eslint.config.js` to include the custom rule:\n```js\nimport eslintVueSetupOrderRule from \"./src/eslint-rules/declaration-order.js\";\n \nexport default [\n  {\n    files: [\"**/*.vue\"],\n    languageOptions: {\n      parser: vueEslintParser,\n      parserOptions: {\n        parser: typescriptEslintParser,\n        ecmaVersion: 2022,\n        sourceType: \"module\",\n      },\n    },\n    plugins: {\n      \"vue3-script-setup\": {\n        rules: {\n          \"declaration-order\": eslintVueSetupOrderRule, // this!\n        },\n      },\n    },\n    rules: {\n      \"vue3-script-setup/declaration-order\": \"error\",\n    },\n  },\n  // ... other settings\n];\n```\n\n<br/>\n\n## 🛠 Testing\nWhen you run the command:\n```\nnpx eslint .\n```\n\n<br/>\n\nIf the declaration order is incorrect, the rule will automatically fix it. For example:<br/>\n**Before:**\n```js\n<script setup lang=\"ts\">\nimport { onBeforeMount, ref } from \"vue\";\n\nconst count = ref(0);\nconst msg = ref(\"\");\nconst aa = defineProps<{ msg: string }>();\nconst emits = defineEmits();\nconst hello = \"Hello World!\";\n\nconst changeMsg = () => {};\nfunction handleClick() {\n  emits(\"click\");\n}\n\nonBeforeMount(() => {\n  console.log(\"onBeforeMount\");\n});\n</script>\n\n<template>\n</template>\n```\n\n<br/>\n\n**After (fixed):**\n```js\n<script setup lang=\"ts\">\nimport { onBeforeMount, ref } from \"vue\";\n\nconst aa = defineProps<{ msg: string }>();\nconst emits = defineEmits();\n\nconst hello = \"Hello World!\";\n\nconst count = ref(0);\nconst msg = ref(\"\");\n\nonBeforeMount(() => {\n  console.log(\"onBeforeMount\");\n});\n\nconst changeMsg = () => {};\nfunction handleClick() {\n  emits(\"click\");\n}\n</script>\n```\n","readmeFilename":"README.md"}