eslint-plugin-chrome-extensions 2.4.2 → 2.5.0
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/README.md +87 -6
- package/package.json +3 -2
- package/src/data/apis.js +166 -115
- package/src/data/deprecations.js +7 -7
- package/src/data/i18n.js +11 -69
- package/src/data/manifest.js +61 -57
- package/src/data/permissions.js +29 -29
- package/src/data/regex.js +10 -0
- package/src/index.js +7 -124
- package/src/rules/manifest-key-order.js +8 -8
- package/src/rules/manifest-spacing.js +5 -5
- package/src/rules/no-content-style-leak.js +6 -4
- package/src/rules/no-deprecated-apis.js +4 -4
- package/src/rules/no-duplicate-manifest-keys.js +3 -4
- package/src/rules/no-insecure-messaging.js +4 -4
- package/src/rules/no-invalid-permissions.js +10 -11
- package/src/rules/no-missing-default-locale.js +7 -9
- package/src/rules/no-missing-i18n-keys.js +22 -21
- package/src/rules/no-missing-permissions.js +7 -6
- package/src/rules/no-missing-web-accessible-resources.js +7 -6
- package/src/rules/no-remote-code.js +12 -12
- package/src/rules/no-sensitive-permissions.js +75 -0
- package/src/rules/no-unrestricted-host-permissions.js +8 -7
- package/src/rules/no-unused-i18n-keys.js +11 -10
- package/src/rules/no-unused-permissions.js +22 -23
- package/src/rules/require-license-file.js +4 -5
- package/src/rules/require-mv3.js +4 -5
- package/src/rules/require-short-name-when-useful.js +4 -3
- package/src/rules/valid-filenames.js +3 -10
- package/src/rules/valid-license-file.js +18 -11
- package/src/rules/valid-manifest-icons.js +6 -5
- package/src/rules/valid-mv3-schema.js +21 -21
- package/src/rules/valid-service-worker.js +34 -13
- package/src/rules/valid-url-fields.js +10 -7
- package/src/rules/valid-version-field.js +4 -8
- package/src/utils/extension.js +39 -33
- package/src/utils/i18n.js +55 -0
- package/src/utils/init.js +105 -0
- package/src/utils/license.js +55 -0
- package/src/utils/node.js +20 -19
- package/src/utils/pkg.js +12 -10
- package/src/utils/rules.js +6 -4
- package/src/utils/text.js +13 -0
- package/src/data/license.js +0 -28
- package/src/data/text-parser.js +0 -11
- package/src/utils/bundle.js +0 -10
package/src/data/license.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs'
|
|
2
|
-
import path from 'node:path'
|
|
3
|
-
|
|
4
|
-
export const re = {
|
|
5
|
-
licenseFilename: // e.g. LICENSE.md, LICENSE-MIT, MIT-LICENSE.md, COPYING.LESSER, LICENSE-2.0.txt
|
|
6
|
-
// eslint-disable-next-line security/detect-unsafe-regex
|
|
7
|
-
/^(?!.*\.(?:[cm]?js|[cm]?ts)x?$)(?:[\w.-]*-)?(?:LICEN[SC]E|COPYING)(?:[-.][\w.-]+)?$/i,
|
|
8
|
-
spdxTag: /SPDX-License-Identifier:\s*([\w.+-]+)/i
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const skipDirs = new Set(['node_modules'])
|
|
12
|
-
|
|
13
|
-
export function findLicenseFile(root) {
|
|
14
|
-
const queue = [root]
|
|
15
|
-
while (queue.length) {
|
|
16
|
-
const dir = queue.shift(), entries = tryReaddir(dir)
|
|
17
|
-
if (!entries) continue
|
|
18
|
-
for (const entry of entries) {
|
|
19
|
-
if (entry.name.startsWith('.') || skipDirs.has(entry.name)) continue
|
|
20
|
-
if (entry.isFile() && re.licenseFilename.test(entry.name)) return path.join(dir, entry.name)
|
|
21
|
-
if (entry.isDirectory()) queue.push(path.join(dir, entry.name))
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return null
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function tryReaddir(dir) { // eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
28
|
-
try { return fs.readdirSync(dir, { withFileTypes: true }) } catch { return null }}
|
package/src/data/text-parser.js
DELETED
package/src/utils/bundle.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function initDeprecation(plugin, [ruleId, bundleNames], pluginName) {
|
|
2
|
-
for (const bundleName of bundleNames) {
|
|
3
|
-
/* eslint-disable security/detect-object-injection */
|
|
4
|
-
if (plugin.configs[bundleName])
|
|
5
|
-
plugin.configs[bundleName].rules[`${pluginName}/${ruleId}`] = 'error'
|
|
6
|
-
/* eslint-enable security/detect-object-injection */
|
|
7
|
-
if (process.env.DEBUG_MODE)
|
|
8
|
-
console.warn(`[${pluginName}] '${ruleId}' will be removed from '${bundleName}' in a future major release`)
|
|
9
|
-
}
|
|
10
|
-
}
|