@bootcamp-project/eslinttier
Version:
Ready-to-use ESLint & Prettier Configuration with best practice settings by default
102 lines • 10.4 kB
JavaScript
;
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ESLintConfig = void 0;
// MIT License
// Copyright (c) 2021 Bootcamp-Project contributors <contributors[ATT]bootcamp-project.com>
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
var lodash_1 = __importDefault(require("lodash"));
var ESLintMinimal = {
plugins: ['prettier', 'unicorn'],
extends: ['eslint:recommended', 'plugin:unicorn/recommended', 'prettier'],
env: {
browser: true,
node: true,
es6: true,
es2017: true
},
rules: {
'unicorn/prefer-module': 'off'
},
ignorePatterns: ['node_modules', '*.cjs']
};
var ESLintSecurity = lodash_1.default.merge(ESLintMinimal, {
plugins: __spreadArray(__spreadArray([], __read(ESLintMinimal.plugins), false), ['security', 'no-unsanitized', 'xss', 'no-secrets', 'pii'], false),
extends: __spreadArray(__spreadArray([], __read(ESLintMinimal.extends), false), [
'plugin:security/recommended',
'plugin:no-unsanitized/DOM',
'plugin:pii/recommended'
], false),
rules: {
'no-unsanitized/method': 'error',
'no-unsanitized/property': 'error',
'xss/no-location-href-assign': ['error', { escapeFunc: 'escapeHref' }],
'xss/no-mixed-html': [
'error',
{
htmlVariableRules: [
'AsHtml',
'HtmlEncoded/i',
'^html$' // Matches html
],
htmlFunctionRules: [
'.asHtml/i',
'toHtml' // Matches toHtml( txt ), doesn't match value.toHtml()
],
functions: {
$: { htmlInput: true, safe: ['document', 'this'] },
'.html': { htmlInput: true, htmlOutput: true },
'.join': { passthrough: { obj: true, args: true } }
}
}
],
'no-secrets/no-secrets': 'error',
'pii/no-email': 'error',
'pii/no-dob': 'error',
'pii/no-ip': 'error',
'pii/no-phone-number': 'error'
}
});
exports.ESLintConfig = ESLintSecurity;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNsaW50LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lc2xpbnQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVaLGNBQWM7QUFFZCwyRkFBMkY7QUFFM0YsK0VBQStFO0FBQy9FLGdGQUFnRjtBQUNoRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLHdFQUF3RTtBQUN4RSwyREFBMkQ7QUFFM0QsaUZBQWlGO0FBQ2pGLGtEQUFrRDtBQUVsRCw2RUFBNkU7QUFDN0UsMkVBQTJFO0FBQzNFLDhFQUE4RTtBQUM5RSx5RUFBeUU7QUFDekUsZ0ZBQWdGO0FBQ2hGLGdGQUFnRjtBQUNoRixZQUFZO0FBRVosa0RBQXNCO0FBRXRCLElBQU0sYUFBYSxHQUFHO0lBQ3JCLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7SUFDaEMsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsNEJBQTRCLEVBQUUsVUFBVSxDQUFDO0lBQ3pFLEdBQUcsRUFBRTtRQUNKLE9BQU8sRUFBRSxJQUFJO1FBQ2IsSUFBSSxFQUFFLElBQUk7UUFDVixHQUFHLEVBQUUsSUFBSTtRQUNULE1BQU0sRUFBRSxJQUFJO0tBQ1o7SUFDRCxLQUFLLEVBQUU7UUFDTix1QkFBdUIsRUFBRSxLQUFLO0tBQzlCO0lBQ0QsY0FBYyxFQUFFLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQztDQUN6QyxDQUFBO0FBRUQsSUFBTSxjQUFjLEdBQUcsZ0JBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO0lBQzdDLE9BQU8seUNBQU0sYUFBYSxDQUFDLE9BQU8sWUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLFNBQUM7SUFDN0YsT0FBTyx5Q0FDSCxhQUFhLENBQUMsT0FBTztRQUN4Qiw2QkFBNkI7UUFDN0IsMkJBQTJCO1FBQzNCLHdCQUF3QjthQUN4QjtJQUNELEtBQUssRUFBRTtRQUNOLHVCQUF1QixFQUFFLE9BQU87UUFDaEMseUJBQXlCLEVBQUUsT0FBTztRQUNsQyw2QkFBNkIsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQztRQUN0RSxtQkFBbUIsRUFBRTtZQUNwQixPQUFPO1lBQ1A7Z0JBQ0MsaUJBQWlCLEVBQUU7b0JBQ2xCLFFBQVE7b0JBQ1IsZUFBZTtvQkFDZixRQUFRLENBQUMsZUFBZTtpQkFDeEI7Z0JBQ0QsaUJBQWlCLEVBQUU7b0JBQ2xCLFdBQVc7b0JBQ1gsUUFBUSxDQUFDLHNEQUFzRDtpQkFDL0Q7Z0JBQ0QsU0FBUyxFQUFFO29CQUNWLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNsRCxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7b0JBQzlDLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUNuRDthQUNEO1NBQ0Q7UUFDRCx1QkFBdUIsRUFBRSxPQUFPO1FBQ2hDLGNBQWMsRUFBRSxPQUFPO1FBQ3ZCLFlBQVksRUFBRSxPQUFPO1FBQ3JCLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLHFCQUFxQixFQUFFLE9BQU87S0FDOUI7Q0FDRCxDQUFDLENBQUE7QUFFeUIsc0NBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuLy8gTUlUIExpY2Vuc2VcblxuLy8gQ29weXJpZ2h0IChjKSAyMDIxIEJvb3RjYW1wLVByb2plY3QgY29udHJpYnV0b3JzIDxjb250cmlidXRvcnNbQVRUXWJvb3RjYW1wLXByb2plY3QuY29tPlxuXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuLy8gY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuLy8gU09GVFdBUkUuXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCdcblxuY29uc3QgRVNMaW50TWluaW1hbCA9IHtcblx0cGx1Z2luczogWydwcmV0dGllcicsICd1bmljb3JuJ10sXG5cdGV4dGVuZHM6IFsnZXNsaW50OnJlY29tbWVuZGVkJywgJ3BsdWdpbjp1bmljb3JuL3JlY29tbWVuZGVkJywgJ3ByZXR0aWVyJ10sXG5cdGVudjoge1xuXHRcdGJyb3dzZXI6IHRydWUsXG5cdFx0bm9kZTogdHJ1ZSxcblx0XHRlczY6IHRydWUsXG5cdFx0ZXMyMDE3OiB0cnVlXG5cdH0sXG5cdHJ1bGVzOiB7XG5cdFx0J3VuaWNvcm4vcHJlZmVyLW1vZHVsZSc6ICdvZmYnXG5cdH0sXG5cdGlnbm9yZVBhdHRlcm5zOiBbJ25vZGVfbW9kdWxlcycsICcqLmNqcyddXG59XG5cbmNvbnN0IEVTTGludFNlY3VyaXR5ID0gXy5tZXJnZShFU0xpbnRNaW5pbWFsLCB7XG5cdHBsdWdpbnM6IFsuLi5FU0xpbnRNaW5pbWFsLnBsdWdpbnMsICdzZWN1cml0eScsICduby11bnNhbml0aXplZCcsICd4c3MnLCAnbm8tc2VjcmV0cycsICdwaWknXSxcblx0ZXh0ZW5kczogW1xuXHRcdC4uLkVTTGludE1pbmltYWwuZXh0ZW5kcyxcblx0XHQncGx1Z2luOnNlY3VyaXR5L3JlY29tbWVuZGVkJyxcblx0XHQncGx1Z2luOm5vLXVuc2FuaXRpemVkL0RPTScsXG5cdFx0J3BsdWdpbjpwaWkvcmVjb21tZW5kZWQnXG5cdF0sXG5cdHJ1bGVzOiB7XG5cdFx0J25vLXVuc2FuaXRpemVkL21ldGhvZCc6ICdlcnJvcicsXG5cdFx0J25vLXVuc2FuaXRpemVkL3Byb3BlcnR5JzogJ2Vycm9yJyxcblx0XHQneHNzL25vLWxvY2F0aW9uLWhyZWYtYXNzaWduJzogWydlcnJvcicsIHsgZXNjYXBlRnVuYzogJ2VzY2FwZUhyZWYnIH1dLFxuXHRcdCd4c3Mvbm8tbWl4ZWQtaHRtbCc6IFtcblx0XHRcdCdlcnJvcicsXG5cdFx0XHR7XG5cdFx0XHRcdGh0bWxWYXJpYWJsZVJ1bGVzOiBbXG5cdFx0XHRcdFx0J0FzSHRtbCcsIC8vIE1hdGNoZXMgZm9vQXNIdG1sLCBiYXJBc0h0bWxWYWx1ZS4gRG9lc24ndCBtYXRjaDogbXlIVE1MLlxuXHRcdFx0XHRcdCdIdG1sRW5jb2RlZC9pJywgLy8gTWF0Y2hlcyBodG1sRW5jb2RlZCwgSFRNTEVuY29kZWRWYWx1ZVxuXHRcdFx0XHRcdCdeaHRtbCQnIC8vIE1hdGNoZXMgaHRtbFxuXHRcdFx0XHRdLFxuXHRcdFx0XHRodG1sRnVuY3Rpb25SdWxlczogW1xuXHRcdFx0XHRcdCcuYXNIdG1sL2knLCAvLyBNYXRjaGVzIGZvby5hc0hUTUwoKSwgZG9lc24ndCBtYXRjaCBhc0h0bWwoKVxuXHRcdFx0XHRcdCd0b0h0bWwnIC8vIE1hdGNoZXMgdG9IdG1sKCB0eHQgKSwgZG9lc24ndCBtYXRjaCB2YWx1ZS50b0h0bWwoKVxuXHRcdFx0XHRdLFxuXHRcdFx0XHRmdW5jdGlvbnM6IHtcblx0XHRcdFx0XHQkOiB7IGh0bWxJbnB1dDogdHJ1ZSwgc2FmZTogWydkb2N1bWVudCcsICd0aGlzJ10gfSxcblx0XHRcdFx0XHQnLmh0bWwnOiB7IGh0bWxJbnB1dDogdHJ1ZSwgaHRtbE91dHB1dDogdHJ1ZSB9LFxuXHRcdFx0XHRcdCcuam9pbic6IHsgcGFzc3Rocm91Z2g6IHsgb2JqOiB0cnVlLCBhcmdzOiB0cnVlIH0gfVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XSxcblx0XHQnbm8tc2VjcmV0cy9uby1zZWNyZXRzJzogJ2Vycm9yJyxcblx0XHQncGlpL25vLWVtYWlsJzogJ2Vycm9yJyxcblx0XHQncGlpL25vLWRvYic6ICdlcnJvcicsXG5cdFx0J3BpaS9uby1pcCc6ICdlcnJvcicsXG5cdFx0J3BpaS9uby1waG9uZS1udW1iZXInOiAnZXJyb3InXG5cdH1cbn0pXG5cbmV4cG9ydCB7IEVTTGludFNlY3VyaXR5IGFzIEVTTGludENvbmZpZyB9XG4iXX0=