eslint-plugin-jsdoc 50.6.8 → 50.6.10
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/dist/rules/checkValues.cjs +3 -4
- package/dist/rules/checkValues.cjs.map +1 -1
- package/dist/rules/noUndefinedTypes.cjs +20 -29
- package/dist/rules/noUndefinedTypes.cjs.map +1 -1
- package/package.json +4 -5
- package/pnpm-workspace.yaml +2 -0
- package/src/rules/checkValues.js +4 -4
- package/src/rules/noUndefinedTypes.js +20 -21
- package/dist/import-worker.cjs +0 -17
- package/dist/import-worker.cjs.map +0 -1
- package/dist/import-worker.mjs +0 -11
- package/src/import-worker.mjs +0 -11
|
@@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _nodePath = require("node:path");
|
|
8
8
|
var _nodeUrl = require("node:url");
|
|
9
|
-
var _synckit = require("synckit");
|
|
10
9
|
var _semver = _interopRequireDefault(require("semver"));
|
|
11
10
|
var _spdxExpressionParse = _interopRequireDefault(require("spdx-expression-parse"));
|
|
11
|
+
var _parseImportsExports = require("parse-imports-exports");
|
|
12
12
|
var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc.cjs"));
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
const _dirname = (0, _nodePath.dirname)((0, _nodeUrl.fileURLToPath)(require('url').pathToFileURL(__filename).toString()));
|
|
15
|
-
const pathName = (0, _nodePath.join)(_dirname, '../import-worker.mjs');
|
|
16
15
|
const allowedKinds = new Set(['class', 'constant', 'event', 'external', 'file', 'function', 'member', 'mixin', 'module', 'namespace', 'typedef']);
|
|
17
16
|
var _default = exports.default = (0, _iterateJsdoc.default)(({
|
|
18
17
|
utils,
|
|
@@ -98,8 +97,8 @@ var _default = exports.default = (0, _iterateJsdoc.default)(({
|
|
|
98
97
|
} = tag;
|
|
99
98
|
const typePart = type ? `{${type}} ` : '';
|
|
100
99
|
const imprt = 'import ' + (description ? `${typePart}${name} ${description}` : `${typePart}${name}`);
|
|
101
|
-
const
|
|
102
|
-
if (
|
|
100
|
+
const importsExports = (0, _parseImportsExports.parseImportsExports)(imprt);
|
|
101
|
+
if (importsExports.errors) {
|
|
103
102
|
report(`Bad @import tag`, null, tag);
|
|
104
103
|
}
|
|
105
104
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkValues.cjs","names":["_nodePath","require","_nodeUrl","_synckit","_semver","_interopRequireDefault","_spdxExpressionParse","_iterateJsdoc","e","__esModule","default","__dirname","dirname","fileURLToPath","pathToFileURL","__filename","toString","pathName","join","allowedKinds","Set","_default","exports","iterateJsdoc","utils","report","context","settings","options","allowedLicenses","allowedAuthors","numericOnlyVariation","licensePattern","forEachPreferredTag","jsdocParameter","targetTagName","version","getTagDescription","trim","semver","valid","kind","has","variation","Number","isInteger","licenseRegex","getRegexFromString","matches","matchAll","positiveMatch","match","license","includes","spdxExpressionParse","mode","tag","type","name","description","typePart","imprt","getImports","createSyncFn","author","iterateAllJsdocs","meta","docs","url","schema","additionalProperties","properties","items","anyOf","module"],"sources":["../../src/rules/checkValues.js"],"sourcesContent":["import { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport { createSyncFn } from 'synckit';\nimport semver from 'semver';\nimport spdxExpressionParse from 'spdx-expression-parse';\nimport iterateJsdoc from '../iterateJsdoc.js';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pathName = join(__dirname, '../import-worker.mjs');\n\nconst allowedKinds = new Set([\n 'class',\n 'constant',\n 'event',\n 'external',\n 'file',\n 'function',\n 'member',\n 'mixin',\n 'module',\n 'namespace',\n 'typedef',\n]);\n\nexport default iterateJsdoc(({\n utils,\n report,\n context,\n settings,\n}) => {\n const options = context.options[0] || {};\n const {\n allowedLicenses = null,\n allowedAuthors = null,\n numericOnlyVariation = false,\n licensePattern = '/([^\\n\\r]*)/gu',\n } = options;\n\n utils.forEachPreferredTag('version', (jsdocParameter, targetTagName) => {\n const version = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).trim();\n if (!version) {\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (!semver.valid(version)) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${utils.getTagDescription(jsdocParameter)}\".`,\n null,\n jsdocParameter,\n );\n }\n });\n\n utils.forEachPreferredTag('kind', (jsdocParameter, targetTagName) => {\n const kind = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).trim();\n if (!kind) {\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (!allowedKinds.has(kind)) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${utils.getTagDescription(jsdocParameter)}\"; ` +\n `must be one of: ${[\n ...allowedKinds,\n ].join(', ')}.`,\n null,\n jsdocParameter,\n );\n }\n });\n\n if (numericOnlyVariation) {\n utils.forEachPreferredTag('variation', (jsdocParameter, targetTagName) => {\n const variation = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).trim();\n if (!variation) {\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (\n !Number.isInteger(Number(variation)) ||\n Number(variation) <= 0\n ) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${utils.getTagDescription(jsdocParameter)}\".`,\n null,\n jsdocParameter,\n );\n }\n });\n }\n\n utils.forEachPreferredTag('since', (jsdocParameter, targetTagName) => {\n const version = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).trim();\n if (!version) {\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (!semver.valid(version)) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${utils.getTagDescription(jsdocParameter)}\".`,\n null,\n jsdocParameter,\n );\n }\n });\n utils.forEachPreferredTag('license', (jsdocParameter, targetTagName) => {\n const licenseRegex = utils.getRegexFromString(licensePattern, 'g');\n const matches = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).matchAll(licenseRegex);\n let positiveMatch = false;\n for (const match of matches) {\n const license = match[1] || match[0];\n if (license) {\n positiveMatch = true;\n }\n\n if (!license.trim()) {\n // Avoid reporting again as empty match\n if (positiveMatch) {\n return;\n }\n\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (allowedLicenses) {\n if (allowedLicenses !== true && !allowedLicenses.includes(license)) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${license}\"; expected one of ${allowedLicenses.join(', ')}.`,\n null,\n jsdocParameter,\n );\n }\n } else {\n try {\n spdxExpressionParse(license);\n } catch {\n report(\n `Invalid JSDoc @${targetTagName}: \"${license}\"; expected SPDX expression: https://spdx.org/licenses/.`,\n null,\n jsdocParameter,\n );\n }\n }\n }\n });\n\n if (settings.mode === 'typescript') {\n utils.forEachPreferredTag('import', (tag) => {\n const {\n type, name, description\n } = tag;\n const typePart = type ? `{${type}} `: '';\n const imprt = 'import ' + (description\n ? `${typePart}${name} ${description}`\n : `${typePart}${name}`);\n\n const getImports = createSyncFn(pathName);\n if (!getImports(imprt)) {\n report(\n `Bad @import tag`,\n null,\n tag,\n );\n }\n });\n }\n\n utils.forEachPreferredTag('author', (jsdocParameter, targetTagName) => {\n const author = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).trim();\n if (!author) {\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (allowedAuthors && !allowedAuthors.includes(author)) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${utils.getTagDescription(jsdocParameter)}\"; expected one of ${allowedAuthors.join(', ')}.`,\n null,\n jsdocParameter,\n );\n }\n });\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author`.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n allowedAuthors: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n allowedLicenses: {\n anyOf: [\n {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n {\n type: 'boolean',\n },\n ],\n },\n licensePattern: {\n type: 'string',\n },\n numericOnlyVariation: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"checkValues.cjs","names":["_nodePath","require","_nodeUrl","_semver","_interopRequireDefault","_spdxExpressionParse","_parseImportsExports","_iterateJsdoc","e","__esModule","default","__dirname","dirname","fileURLToPath","pathToFileURL","__filename","toString","allowedKinds","Set","_default","exports","iterateJsdoc","utils","report","context","settings","options","allowedLicenses","allowedAuthors","numericOnlyVariation","licensePattern","forEachPreferredTag","jsdocParameter","targetTagName","version","getTagDescription","trim","semver","valid","kind","has","join","variation","Number","isInteger","licenseRegex","getRegexFromString","matches","matchAll","positiveMatch","match","license","includes","spdxExpressionParse","mode","tag","type","name","description","typePart","imprt","importsExports","parseImportsExports","errors","author","iterateAllJsdocs","meta","docs","url","schema","additionalProperties","properties","items","anyOf","module"],"sources":["../../src/rules/checkValues.js"],"sourcesContent":["import { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport semver from 'semver';\nimport spdxExpressionParse from 'spdx-expression-parse';\nimport {parseImportsExports} from 'parse-imports-exports';\nimport iterateJsdoc from '../iterateJsdoc.js';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nconst allowedKinds = new Set([\n 'class',\n 'constant',\n 'event',\n 'external',\n 'file',\n 'function',\n 'member',\n 'mixin',\n 'module',\n 'namespace',\n 'typedef',\n]);\n\nexport default iterateJsdoc(({\n utils,\n report,\n context,\n settings,\n}) => {\n const options = context.options[0] || {};\n const {\n allowedLicenses = null,\n allowedAuthors = null,\n numericOnlyVariation = false,\n licensePattern = '/([^\\n\\r]*)/gu',\n } = options;\n\n utils.forEachPreferredTag('version', (jsdocParameter, targetTagName) => {\n const version = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).trim();\n if (!version) {\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (!semver.valid(version)) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${utils.getTagDescription(jsdocParameter)}\".`,\n null,\n jsdocParameter,\n );\n }\n });\n\n utils.forEachPreferredTag('kind', (jsdocParameter, targetTagName) => {\n const kind = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).trim();\n if (!kind) {\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (!allowedKinds.has(kind)) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${utils.getTagDescription(jsdocParameter)}\"; ` +\n `must be one of: ${[\n ...allowedKinds,\n ].join(', ')}.`,\n null,\n jsdocParameter,\n );\n }\n });\n\n if (numericOnlyVariation) {\n utils.forEachPreferredTag('variation', (jsdocParameter, targetTagName) => {\n const variation = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).trim();\n if (!variation) {\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (\n !Number.isInteger(Number(variation)) ||\n Number(variation) <= 0\n ) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${utils.getTagDescription(jsdocParameter)}\".`,\n null,\n jsdocParameter,\n );\n }\n });\n }\n\n utils.forEachPreferredTag('since', (jsdocParameter, targetTagName) => {\n const version = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).trim();\n if (!version) {\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (!semver.valid(version)) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${utils.getTagDescription(jsdocParameter)}\".`,\n null,\n jsdocParameter,\n );\n }\n });\n utils.forEachPreferredTag('license', (jsdocParameter, targetTagName) => {\n const licenseRegex = utils.getRegexFromString(licensePattern, 'g');\n const matches = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).matchAll(licenseRegex);\n let positiveMatch = false;\n for (const match of matches) {\n const license = match[1] || match[0];\n if (license) {\n positiveMatch = true;\n }\n\n if (!license.trim()) {\n // Avoid reporting again as empty match\n if (positiveMatch) {\n return;\n }\n\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (allowedLicenses) {\n if (allowedLicenses !== true && !allowedLicenses.includes(license)) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${license}\"; expected one of ${allowedLicenses.join(', ')}.`,\n null,\n jsdocParameter,\n );\n }\n } else {\n try {\n spdxExpressionParse(license);\n } catch {\n report(\n `Invalid JSDoc @${targetTagName}: \"${license}\"; expected SPDX expression: https://spdx.org/licenses/.`,\n null,\n jsdocParameter,\n );\n }\n }\n }\n });\n\n if (settings.mode === 'typescript') {\n utils.forEachPreferredTag('import', (tag) => {\n const {\n type, name, description\n } = tag;\n const typePart = type ? `{${type}} `: '';\n const imprt = 'import ' + (description\n ? `${typePart}${name} ${description}`\n : `${typePart}${name}`);\n\n const importsExports = parseImportsExports(imprt);\n\n if (importsExports.errors) {\n report(\n `Bad @import tag`,\n null,\n tag,\n );\n }\n });\n }\n\n utils.forEachPreferredTag('author', (jsdocParameter, targetTagName) => {\n const author = /** @type {string} */ (\n utils.getTagDescription(jsdocParameter)\n ).trim();\n if (!author) {\n report(\n `Missing JSDoc @${targetTagName} value.`,\n null,\n jsdocParameter,\n );\n } else if (allowedAuthors && !allowedAuthors.includes(author)) {\n report(\n `Invalid JSDoc @${targetTagName}: \"${utils.getTagDescription(jsdocParameter)}\"; expected one of ${allowedAuthors.join(', ')}.`,\n null,\n jsdocParameter,\n );\n }\n });\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author`.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n allowedAuthors: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n allowedLicenses: {\n anyOf: [\n {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n {\n type: 'boolean',\n },\n ],\n },\n licensePattern: {\n type: 'string',\n },\n numericOnlyVariation: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _path = require("path");
|
|
8
8
|
var _url = require("url");
|
|
9
|
-
var
|
|
9
|
+
var _parseImportsExports = require("parse-imports-exports");
|
|
10
10
|
var _jsdoccomment = require("@es-joy/jsdoccomment");
|
|
11
11
|
var _iterateJsdoc = _interopRequireWildcard(require("../iterateJsdoc.cjs"));
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
14
|
const _dirname = (0, _path.dirname)((0, _url.fileURLToPath)(require('url').pathToFileURL(__filename).toString()));
|
|
15
|
-
const pathName = (0, _path.join)(_dirname, '../import-worker.mjs');
|
|
16
15
|
const extraTypes = ['null', 'undefined', 'void', 'string', 'boolean', 'object', 'function', 'symbol', 'number', 'bigint', 'NaN', 'Infinity', 'any', '*', 'never', 'unknown', 'const', 'this', 'true', 'false', 'Array', 'Object', 'RegExp', 'Date', 'Function'];
|
|
17
16
|
const typescriptGlobals = [
|
|
18
17
|
// https://www.typescriptlang.org/docs/handbook/utility-types.html
|
|
@@ -98,6 +97,7 @@ var _default = exports.default = (0, _iterateJsdoc.default)(({
|
|
|
98
97
|
return tag === 'import';
|
|
99
98
|
});
|
|
100
99
|
}).flatMap(tag => {
|
|
100
|
+
var _Object$values$, _Object$values$2;
|
|
101
101
|
const {
|
|
102
102
|
type,
|
|
103
103
|
name,
|
|
@@ -105,36 +105,27 @@ var _default = exports.default = (0, _iterateJsdoc.default)(({
|
|
|
105
105
|
} = tag;
|
|
106
106
|
const typePart = type ? `{${type}} ` : '';
|
|
107
107
|
const imprt = 'import ' + (description ? `${typePart}${name} ${description}` : `${typePart}${name}`);
|
|
108
|
-
const
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
importClause
|
|
115
|
-
}) => {
|
|
116
|
-
/* c8 ignore next */
|
|
117
|
-
const {
|
|
118
|
-
default: dflt,
|
|
119
|
-
named,
|
|
120
|
-
namespace
|
|
121
|
-
} = importClause || {};
|
|
122
|
-
const types = [];
|
|
123
|
-
if (dflt) {
|
|
124
|
-
types.push(dflt);
|
|
108
|
+
const importsExports = (0, _parseImportsExports.parseImportsExports)(imprt);
|
|
109
|
+
const types = [];
|
|
110
|
+
const namedImports = (_Object$values$ = Object.values(importsExports.namedImports || {})[0]) === null || _Object$values$ === void 0 ? void 0 : _Object$values$[0];
|
|
111
|
+
if (namedImports) {
|
|
112
|
+
if (namedImports.default) {
|
|
113
|
+
types.push(namedImports.default);
|
|
125
114
|
}
|
|
126
|
-
if (
|
|
127
|
-
types.push(
|
|
115
|
+
if (namedImports.names) {
|
|
116
|
+
types.push(...Object.keys(namedImports.names));
|
|
128
117
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
118
|
+
}
|
|
119
|
+
const namespaceImports = (_Object$values$2 = Object.values(importsExports.namespaceImports || {})[0]) === null || _Object$values$2 === void 0 ? void 0 : _Object$values$2[0];
|
|
120
|
+
if (namespaceImports) {
|
|
121
|
+
if (namespaceImports.namespace) {
|
|
122
|
+
types.push(namespaceImports.namespace);
|
|
135
123
|
}
|
|
136
|
-
|
|
137
|
-
|
|
124
|
+
if (namespaceImports.default) {
|
|
125
|
+
types.push(namespaceImports.default);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return types;
|
|
138
129
|
}).filter(Boolean)) : [];
|
|
139
130
|
const ancestorNodes = [];
|
|
140
131
|
let currentNode = node;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noUndefinedTypes.cjs","names":["_path","require","_url","_synckit","_jsdoccomment","_iterateJsdoc","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","__dirname","dirname","fileURLToPath","pathToFileURL","__filename","toString","pathName","join","extraTypes","typescriptGlobals","stripPseudoTypes","str","replace","_default","exports","iterateJsdoc","context","node","report","settings","sourceCode","utils","_globalScope$childSco","scopeManager","globalScope","definedTypes","disableReporting","markVariablesAsUsed","options","definedPreferredTypes","preferredTypes","structuredTags","mode","keys","length","values","map","preferredType","undefined","reportSettings","replacement","filter","Boolean","comments","getAllComments","comment","test","value","commentNode","parseComment","typedefDeclarations","flatMap","doc","tags","tag","isNamepathDefiningTag","name","importTags","type","description","typePart","imprt","getImports","createSyncFn","imports","importClause","dflt","named","namespace","types","push","binding","ancestorNodes","currentNode","_currentNode","parent","getTemplateTags","ancestorNode","getJSDocComment","jsdoc","templateTags","getPresentTags","closureGenericTypes","parseClosureTemplateTag","cjsOrESMScope","childScopes","block","getValidRuntimeIdentifiers","scope","result","Set","variables","add","upper","allDefinedTypes","concat","getScope","tagToParsedType","propertyName","potentialType","parsedType","tryParseType","parseType","typeTags","filterTags","tagMightHaveTypePosition","namepathReferencingTags","isNamepathReferencingTag","namepathOrUrlReferencingTags","filterAllTags","isNamepathOrUrlReferencingTag","tagsWithTypes","traverse","nde","_structuredTags$tag$t","structuredTypes","Array","isArray","includes","markVariableAsUsed","iterateAllJsdocs","meta","docs","url","schema","additionalProperties","properties","items","module"],"sources":["../../src/rules/noUndefinedTypes.js"],"sourcesContent":["import { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { createSyncFn } from 'synckit';\nimport {\n getJSDocComment,\n parse as parseType,\n traverse,\n tryParse as tryParseType,\n} from '@es-joy/jsdoccomment';\nimport iterateJsdoc, {\n parseComment,\n} from '../iterateJsdoc.js';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pathName = join(__dirname, '../import-worker.mjs');\n\nconst extraTypes = [\n 'null', 'undefined', 'void', 'string', 'boolean', 'object',\n 'function', 'symbol',\n 'number', 'bigint', 'NaN', 'Infinity',\n 'any', '*', 'never', 'unknown', 'const',\n 'this', 'true', 'false',\n 'Array', 'Object', 'RegExp', 'Date', 'Function',\n];\n\nconst typescriptGlobals = [\n // https://www.typescriptlang.org/docs/handbook/utility-types.html\n 'Awaited',\n 'Partial',\n 'Required',\n 'Readonly',\n 'Record',\n 'Pick',\n 'Omit',\n 'Exclude',\n 'Extract',\n 'NonNullable',\n 'Parameters',\n 'ConstructorParameters',\n 'ReturnType',\n 'InstanceType',\n 'ThisParameterType',\n 'OmitThisParameter',\n 'ThisType',\n 'Uppercase',\n 'Lowercase',\n 'Capitalize',\n 'Uncapitalize',\n];\n\n/**\n * @param {string|false|undefined} [str]\n * @returns {undefined|string|false}\n */\nconst stripPseudoTypes = (str) => {\n return str && str.replace(/(?:\\.|<>|\\.<>|\\[\\])$/u, '');\n};\n\nexport default iterateJsdoc(({\n context,\n node,\n report,\n settings,\n sourceCode,\n utils,\n}) => {\n const {\n scopeManager,\n } = sourceCode;\n\n // When is this ever `null`?\n const globalScope = /** @type {import('eslint').Scope.Scope} */ (\n scopeManager.globalScope\n );\n\n const\n /**\n * @type {{\n * definedTypes: string[],\n * disableReporting: boolean,\n * markVariablesAsUsed: boolean\n * }}\n */ {\n definedTypes = [],\n disableReporting = false,\n markVariablesAsUsed = true,\n } = context.options[0] || {};\n\n /** @type {(string|undefined)[]} */\n let definedPreferredTypes = [];\n const {\n preferredTypes,\n structuredTags,\n mode,\n } = settings;\n if (Object.keys(preferredTypes).length) {\n definedPreferredTypes = /** @type {string[]} */ (Object.values(preferredTypes).map((preferredType) => {\n if (typeof preferredType === 'string') {\n // May become an empty string but will be filtered out below\n return stripPseudoTypes(preferredType);\n }\n\n if (!preferredType) {\n return undefined;\n }\n\n if (typeof preferredType !== 'object') {\n utils.reportSettings(\n 'Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.',\n );\n }\n\n return stripPseudoTypes(preferredType.replacement);\n })\n .filter(Boolean));\n }\n\n const comments = sourceCode.getAllComments()\n .filter((comment) => {\n return (/^\\*\\s/u).test(comment.value);\n })\n .map((commentNode) => {\n return parseComment(commentNode, '');\n });\n\n const typedefDeclarations = comments\n .flatMap((doc) => {\n return doc.tags.filter(({\n tag,\n }) => {\n return utils.isNamepathDefiningTag(tag);\n });\n })\n .map((tag) => {\n return tag.name;\n });\n\n\n const importTags = settings.mode === 'typescript' ? /** @type {string[]} */ (comments.flatMap((doc) => {\n return doc.tags.filter(({\n tag,\n }) => {\n return tag === 'import';\n });\n }).flatMap((tag) => {\n const {\n type, name, description\n } = tag;\n const typePart = type ? `{${type}} `: '';\n const imprt = 'import ' + (description\n ? `${typePart}${name} ${description}`\n : `${typePart}${name}`);\n\n const getImports = createSyncFn(pathName);\n const imports = /** @type {import('parse-imports').Import[]} */ (getImports(imprt));\n if (!imports) {\n return null;\n }\n\n return imports.flatMap(({importClause}) => {\n /* c8 ignore next */\n const {default: dflt, named, namespace} = importClause || {};\n const types = [];\n if (dflt) {\n types.push(dflt);\n }\n if (namespace) {\n types.push(namespace);\n }\n if (named) {\n for (const {binding} of named) {\n types.push(binding);\n }\n }\n\n return types;\n });\n }).filter(Boolean)) : [];\n\n const ancestorNodes = [];\n\n let currentNode = node;\n // No need for Program node?\n while (currentNode?.parent) {\n ancestorNodes.push(currentNode);\n currentNode = currentNode.parent;\n }\n\n /**\n * @param {import('eslint').Rule.Node} ancestorNode\n * @returns {import('comment-parser').Spec[]}\n */\n const getTemplateTags = function (ancestorNode) {\n const commentNode = getJSDocComment(sourceCode, ancestorNode, settings);\n if (!commentNode) {\n return [];\n }\n\n const jsdoc = parseComment(commentNode, '');\n\n return jsdoc.tags.filter((tag) => {\n return tag.tag === 'template';\n });\n };\n\n // `currentScope` may be `null` or `Program`, so in such a case,\n // we look to present tags instead\n const templateTags = ancestorNodes.length ?\n ancestorNodes.flatMap((ancestorNode) => {\n return getTemplateTags(ancestorNode);\n }) :\n utils.getPresentTags([\n 'template',\n ]);\n\n const closureGenericTypes = templateTags.flatMap((tag) => {\n return utils.parseClosureTemplateTag(tag);\n });\n\n // In modules, including Node, there is a global scope at top with the\n // Program scope inside\n const cjsOrESMScope = globalScope.childScopes[0]?.block?.type === 'Program';\n\n /**\n * @param {import(\"eslint\").Scope.Scope | null} scope\n * @returns {Set<string>}\n */\n const getValidRuntimeIdentifiers = (scope) => {\n const result = new Set()\n while (scope) {\n for (const {name} of scope.variables) {\n result.add(name)\n }\n scope = scope.upper\n }\n return result\n };\n\n const allDefinedTypes = new Set(globalScope.variables.map(({\n name,\n }) => {\n return name;\n })\n\n // If the file is a module, concat the variables from the module scope.\n .concat(\n cjsOrESMScope ?\n globalScope.childScopes.flatMap(({\n variables,\n }) => {\n return variables;\n }).map(({\n name,\n }) => {\n return name;\n /* c8 ignore next */\n }) : [],\n )\n .concat(extraTypes)\n .concat(typedefDeclarations)\n .concat(importTags)\n .concat(definedTypes)\n .concat(/** @type {string[]} */ (definedPreferredTypes))\n .concat(...getValidRuntimeIdentifiers(node && sourceCode.getScope(node)))\n .concat(\n settings.mode === 'jsdoc' ?\n [] :\n [\n ...settings.mode === 'typescript' ? typescriptGlobals : [],\n ...closureGenericTypes,\n ],\n ));\n\n /**\n * @typedef {{\n * parsedType: import('jsdoc-type-pratt-parser').RootResult;\n * tag: import('comment-parser').Spec|import('@es-joy/jsdoccomment').JsdocInlineTagNoType & {\n * line?: import('../iterateJsdoc.js').Integer\n * }\n * }} TypeAndTagInfo\n */\n\n /**\n * @param {string} propertyName\n * @returns {(tag: (import('@es-joy/jsdoccomment').JsdocInlineTagNoType & {\n * name?: string,\n * type?: string,\n * line?: import('../iterateJsdoc.js').Integer\n * })|import('comment-parser').Spec & {\n * namepathOrURL?: string\n * }\n * ) => undefined|TypeAndTagInfo}\n */\n const tagToParsedType = (propertyName) => {\n return (tag) => {\n try {\n const potentialType = tag[\n /** @type {\"type\"|\"name\"|\"namepathOrURL\"} */ (propertyName)\n ];\n return {\n parsedType: mode === 'permissive' ?\n tryParseType(/** @type {string} */ (potentialType)) :\n parseType(/** @type {string} */ (potentialType), mode),\n tag,\n };\n } catch {\n return undefined;\n }\n };\n };\n\n const typeTags = utils.filterTags(({\n tag,\n }) => {\n return tag !== 'import' && utils.tagMightHaveTypePosition(tag) && (tag !== 'suppress' || settings.mode !== 'closure');\n }).map(tagToParsedType('type'));\n\n const namepathReferencingTags = utils.filterTags(({\n tag,\n }) => {\n return utils.isNamepathReferencingTag(tag);\n }).map(tagToParsedType('name'));\n\n const namepathOrUrlReferencingTags = utils.filterAllTags(({\n tag,\n }) => {\n return utils.isNamepathOrUrlReferencingTag(tag);\n }).map(tagToParsedType('namepathOrURL'));\n\n const tagsWithTypes = /** @type {TypeAndTagInfo[]} */ ([\n ...typeTags,\n ...namepathReferencingTags,\n ...namepathOrUrlReferencingTags,\n // Remove types which failed to parse\n ].filter(Boolean));\n\n for (const {\n tag,\n parsedType,\n } of tagsWithTypes) {\n traverse(parsedType, (nde) => {\n const {\n type,\n value,\n } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde);\n\n if (type === 'JsdocTypeName') {\n const structuredTypes = structuredTags[tag.tag]?.type;\n if (!allDefinedTypes.has(value) &&\n (!Array.isArray(structuredTypes) || !structuredTypes.includes(value))\n ) {\n if (!disableReporting) {\n report(`The type '${value}' is undefined.`, null, tag);\n }\n } else if (markVariablesAsUsed && !extraTypes.includes(value)) {\n if (sourceCode.markVariableAsUsed) {\n sourceCode.markVariableAsUsed(value);\n /* c8 ignore next 3 */\n } else {\n context.markVariableAsUsed(value);\n }\n }\n }\n });\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Checks that types in jsdoc comments are defined.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n definedTypes: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n disableReporting: {\n type: 'boolean',\n },\n markVariablesAsUsed: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"noUndefinedTypes.cjs","names":["_path","require","_url","_parseImportsExports","_jsdoccomment","_iterateJsdoc","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","__dirname","dirname","fileURLToPath","pathToFileURL","__filename","toString","extraTypes","typescriptGlobals","stripPseudoTypes","str","replace","_default","exports","iterateJsdoc","context","node","report","settings","sourceCode","utils","_globalScope$childSco","scopeManager","globalScope","definedTypes","disableReporting","markVariablesAsUsed","options","definedPreferredTypes","preferredTypes","structuredTags","mode","keys","length","values","map","preferredType","undefined","reportSettings","replacement","filter","Boolean","comments","getAllComments","comment","test","value","commentNode","parseComment","typedefDeclarations","flatMap","doc","tags","tag","isNamepathDefiningTag","name","importTags","_Object$values$","_Object$values$2","type","description","typePart","imprt","importsExports","parseImportsExports","types","namedImports","push","names","namespaceImports","namespace","ancestorNodes","currentNode","_currentNode","parent","getTemplateTags","ancestorNode","getJSDocComment","jsdoc","templateTags","getPresentTags","closureGenericTypes","parseClosureTemplateTag","cjsOrESMScope","childScopes","block","getValidRuntimeIdentifiers","scope","result","Set","variables","add","upper","allDefinedTypes","concat","getScope","tagToParsedType","propertyName","potentialType","parsedType","tryParseType","parseType","typeTags","filterTags","tagMightHaveTypePosition","namepathReferencingTags","isNamepathReferencingTag","namepathOrUrlReferencingTags","filterAllTags","isNamepathOrUrlReferencingTag","tagsWithTypes","traverse","nde","_structuredTags$tag$t","structuredTypes","Array","isArray","includes","markVariableAsUsed","iterateAllJsdocs","meta","docs","url","schema","additionalProperties","properties","items","module"],"sources":["../../src/rules/noUndefinedTypes.js"],"sourcesContent":["import { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\n\nimport {parseImportsExports} from 'parse-imports-exports';\nimport {\n getJSDocComment,\n parse as parseType,\n traverse,\n tryParse as tryParseType,\n} from '@es-joy/jsdoccomment';\nimport iterateJsdoc, {\n parseComment,\n} from '../iterateJsdoc.js';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nconst extraTypes = [\n 'null', 'undefined', 'void', 'string', 'boolean', 'object',\n 'function', 'symbol',\n 'number', 'bigint', 'NaN', 'Infinity',\n 'any', '*', 'never', 'unknown', 'const',\n 'this', 'true', 'false',\n 'Array', 'Object', 'RegExp', 'Date', 'Function',\n];\n\nconst typescriptGlobals = [\n // https://www.typescriptlang.org/docs/handbook/utility-types.html\n 'Awaited',\n 'Partial',\n 'Required',\n 'Readonly',\n 'Record',\n 'Pick',\n 'Omit',\n 'Exclude',\n 'Extract',\n 'NonNullable',\n 'Parameters',\n 'ConstructorParameters',\n 'ReturnType',\n 'InstanceType',\n 'ThisParameterType',\n 'OmitThisParameter',\n 'ThisType',\n 'Uppercase',\n 'Lowercase',\n 'Capitalize',\n 'Uncapitalize',\n];\n\n/**\n * @param {string|false|undefined} [str]\n * @returns {undefined|string|false}\n */\nconst stripPseudoTypes = (str) => {\n return str && str.replace(/(?:\\.|<>|\\.<>|\\[\\])$/u, '');\n};\n\nexport default iterateJsdoc(({\n context,\n node,\n report,\n settings,\n sourceCode,\n utils,\n}) => {\n const {\n scopeManager,\n } = sourceCode;\n\n // When is this ever `null`?\n const globalScope = /** @type {import('eslint').Scope.Scope} */ (\n scopeManager.globalScope\n );\n\n const\n /**\n * @type {{\n * definedTypes: string[],\n * disableReporting: boolean,\n * markVariablesAsUsed: boolean\n * }}\n */ {\n definedTypes = [],\n disableReporting = false,\n markVariablesAsUsed = true,\n } = context.options[0] || {};\n\n /** @type {(string|undefined)[]} */\n let definedPreferredTypes = [];\n const {\n preferredTypes,\n structuredTags,\n mode,\n } = settings;\n if (Object.keys(preferredTypes).length) {\n definedPreferredTypes = /** @type {string[]} */ (Object.values(preferredTypes).map((preferredType) => {\n if (typeof preferredType === 'string') {\n // May become an empty string but will be filtered out below\n return stripPseudoTypes(preferredType);\n }\n\n if (!preferredType) {\n return undefined;\n }\n\n if (typeof preferredType !== 'object') {\n utils.reportSettings(\n 'Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.',\n );\n }\n\n return stripPseudoTypes(preferredType.replacement);\n })\n .filter(Boolean));\n }\n\n const comments = sourceCode.getAllComments()\n .filter((comment) => {\n return (/^\\*\\s/u).test(comment.value);\n })\n .map((commentNode) => {\n return parseComment(commentNode, '');\n });\n\n const typedefDeclarations = comments\n .flatMap((doc) => {\n return doc.tags.filter(({\n tag,\n }) => {\n return utils.isNamepathDefiningTag(tag);\n });\n })\n .map((tag) => {\n return tag.name;\n });\n\n\n const importTags = settings.mode === 'typescript' ? /** @type {string[]} */ (comments.flatMap((doc) => {\n return doc.tags.filter(({\n tag,\n }) => {\n return tag === 'import';\n });\n }).flatMap((tag) => {\n const {\n type, name, description\n } = tag;\n const typePart = type ? `{${type}} `: '';\n const imprt = 'import ' + (description\n ? `${typePart}${name} ${description}`\n : `${typePart}${name}`);\n\n const importsExports = parseImportsExports(imprt);\n\n const types = [];\n const namedImports = Object.values(importsExports.namedImports || {})[0]?.[0];\n if (namedImports) {\n if (namedImports.default) {\n types.push(namedImports.default);\n }\n if (namedImports.names) {\n types.push(...Object.keys(namedImports.names));\n }\n }\n\n const namespaceImports = Object.values(importsExports.namespaceImports || {})[0]?.[0];\n if (namespaceImports) {\n if (namespaceImports.namespace) {\n types.push(namespaceImports.namespace);\n }\n if (namespaceImports.default) {\n types.push(namespaceImports.default);\n }\n }\n\n return types;\n }).filter(Boolean)) : [];\n\n const ancestorNodes = [];\n\n let currentNode = node;\n // No need for Program node?\n while (currentNode?.parent) {\n ancestorNodes.push(currentNode);\n currentNode = currentNode.parent;\n }\n\n /**\n * @param {import('eslint').Rule.Node} ancestorNode\n * @returns {import('comment-parser').Spec[]}\n */\n const getTemplateTags = function (ancestorNode) {\n const commentNode = getJSDocComment(sourceCode, ancestorNode, settings);\n if (!commentNode) {\n return [];\n }\n\n const jsdoc = parseComment(commentNode, '');\n\n return jsdoc.tags.filter((tag) => {\n return tag.tag === 'template';\n });\n };\n\n // `currentScope` may be `null` or `Program`, so in such a case,\n // we look to present tags instead\n const templateTags = ancestorNodes.length ?\n ancestorNodes.flatMap((ancestorNode) => {\n return getTemplateTags(ancestorNode);\n }) :\n utils.getPresentTags([\n 'template',\n ]);\n\n const closureGenericTypes = templateTags.flatMap((tag) => {\n return utils.parseClosureTemplateTag(tag);\n });\n\n // In modules, including Node, there is a global scope at top with the\n // Program scope inside\n const cjsOrESMScope = globalScope.childScopes[0]?.block?.type === 'Program';\n\n /**\n * @param {import(\"eslint\").Scope.Scope | null} scope\n * @returns {Set<string>}\n */\n const getValidRuntimeIdentifiers = (scope) => {\n const result = new Set()\n while (scope) {\n for (const {name} of scope.variables) {\n result.add(name)\n }\n scope = scope.upper\n }\n return result\n };\n\n const allDefinedTypes = new Set(globalScope.variables.map(({\n name,\n }) => {\n return name;\n })\n\n // If the file is a module, concat the variables from the module scope.\n .concat(\n cjsOrESMScope ?\n globalScope.childScopes.flatMap(({\n variables,\n }) => {\n return variables;\n }).map(({\n name,\n }) => {\n return name;\n /* c8 ignore next */\n }) : [],\n )\n .concat(extraTypes)\n .concat(typedefDeclarations)\n .concat(importTags)\n .concat(definedTypes)\n .concat(/** @type {string[]} */ (definedPreferredTypes))\n .concat(...getValidRuntimeIdentifiers(node && sourceCode.getScope(node)))\n .concat(\n settings.mode === 'jsdoc' ?\n [] :\n [\n ...settings.mode === 'typescript' ? typescriptGlobals : [],\n ...closureGenericTypes,\n ],\n ));\n\n /**\n * @typedef {{\n * parsedType: import('jsdoc-type-pratt-parser').RootResult;\n * tag: import('comment-parser').Spec|import('@es-joy/jsdoccomment').JsdocInlineTagNoType & {\n * line?: import('../iterateJsdoc.js').Integer\n * }\n * }} TypeAndTagInfo\n */\n\n /**\n * @param {string} propertyName\n * @returns {(tag: (import('@es-joy/jsdoccomment').JsdocInlineTagNoType & {\n * name?: string,\n * type?: string,\n * line?: import('../iterateJsdoc.js').Integer\n * })|import('comment-parser').Spec & {\n * namepathOrURL?: string\n * }\n * ) => undefined|TypeAndTagInfo}\n */\n const tagToParsedType = (propertyName) => {\n return (tag) => {\n try {\n const potentialType = tag[\n /** @type {\"type\"|\"name\"|\"namepathOrURL\"} */ (propertyName)\n ];\n return {\n parsedType: mode === 'permissive' ?\n tryParseType(/** @type {string} */ (potentialType)) :\n parseType(/** @type {string} */ (potentialType), mode),\n tag,\n };\n } catch {\n return undefined;\n }\n };\n };\n\n const typeTags = utils.filterTags(({\n tag,\n }) => {\n return tag !== 'import' && utils.tagMightHaveTypePosition(tag) && (tag !== 'suppress' || settings.mode !== 'closure');\n }).map(tagToParsedType('type'));\n\n const namepathReferencingTags = utils.filterTags(({\n tag,\n }) => {\n return utils.isNamepathReferencingTag(tag);\n }).map(tagToParsedType('name'));\n\n const namepathOrUrlReferencingTags = utils.filterAllTags(({\n tag,\n }) => {\n return utils.isNamepathOrUrlReferencingTag(tag);\n }).map(tagToParsedType('namepathOrURL'));\n\n const tagsWithTypes = /** @type {TypeAndTagInfo[]} */ ([\n ...typeTags,\n ...namepathReferencingTags,\n ...namepathOrUrlReferencingTags,\n // Remove types which failed to parse\n ].filter(Boolean));\n\n for (const {\n tag,\n parsedType,\n } of tagsWithTypes) {\n traverse(parsedType, (nde) => {\n const {\n type,\n value,\n } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde);\n\n if (type === 'JsdocTypeName') {\n const structuredTypes = structuredTags[tag.tag]?.type;\n if (!allDefinedTypes.has(value) &&\n (!Array.isArray(structuredTypes) || !structuredTypes.includes(value))\n ) {\n if (!disableReporting) {\n report(`The type '${value}' is undefined.`, null, tag);\n }\n } else if (markVariablesAsUsed && !extraTypes.includes(value)) {\n if (sourceCode.markVariableAsUsed) {\n sourceCode.markVariableAsUsed(value);\n /* c8 ignore next 3 */\n } else {\n context.markVariableAsUsed(value);\n }\n }\n }\n });\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Checks that types in jsdoc comments are defined.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n definedTypes: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n disableReporting: {\n type: 'boolean',\n },\n markVariablesAsUsed: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -12,10 +12,9 @@
|
|
|
12
12
|
"escape-string-regexp": "^4.0.0",
|
|
13
13
|
"espree": "^10.1.0",
|
|
14
14
|
"esquery": "^1.6.0",
|
|
15
|
-
"parse-imports": "^2.
|
|
15
|
+
"parse-imports-exports": "^0.2.4",
|
|
16
16
|
"semver": "^7.6.3",
|
|
17
|
-
"spdx-expression-parse": "^4.0.0"
|
|
18
|
-
"synckit": "^0.9.1"
|
|
17
|
+
"spdx-expression-parse": "^4.0.0"
|
|
19
18
|
},
|
|
20
19
|
"description": "JSDoc linting rules for ESLint.",
|
|
21
20
|
"devDependencies": {
|
|
@@ -146,7 +145,7 @@
|
|
|
146
145
|
"scripts": {
|
|
147
146
|
"tsc": "tsc",
|
|
148
147
|
"tsc-build": "tsc -p tsconfig-prod.json",
|
|
149
|
-
"build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" &&
|
|
148
|
+
"build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && pnpm tsc-build",
|
|
150
149
|
"check-docs": "babel-node ./src/bin/generateDocs.js --check",
|
|
151
150
|
"create-docs": "npm run create-options && babel-node ./src/bin/generateDocs.js",
|
|
152
151
|
"create-rule": "babel-node ./src/bin/generateRule.js",
|
|
@@ -161,5 +160,5 @@
|
|
|
161
160
|
"test-cov": "cross-env TIMING=1 c8 --reporter text npm run test-no-cov",
|
|
162
161
|
"test-index": "npm run test-no-cov -- test/rules/index.js"
|
|
163
162
|
},
|
|
164
|
-
"version": "50.6.
|
|
163
|
+
"version": "50.6.10"
|
|
165
164
|
}
|
package/src/rules/checkValues.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { dirname, join } from 'node:path';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
3
|
|
|
4
|
-
import { createSyncFn } from 'synckit';
|
|
5
4
|
import semver from 'semver';
|
|
6
5
|
import spdxExpressionParse from 'spdx-expression-parse';
|
|
6
|
+
import {parseImportsExports} from 'parse-imports-exports';
|
|
7
7
|
import iterateJsdoc from '../iterateJsdoc.js';
|
|
8
8
|
|
|
9
9
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
|
-
const pathName = join(__dirname, '../import-worker.mjs');
|
|
11
10
|
|
|
12
11
|
const allowedKinds = new Set([
|
|
13
12
|
'class',
|
|
@@ -175,8 +174,9 @@ export default iterateJsdoc(({
|
|
|
175
174
|
? `${typePart}${name} ${description}`
|
|
176
175
|
: `${typePart}${name}`);
|
|
177
176
|
|
|
178
|
-
const
|
|
179
|
-
|
|
177
|
+
const importsExports = parseImportsExports(imprt);
|
|
178
|
+
|
|
179
|
+
if (importsExports.errors) {
|
|
180
180
|
report(
|
|
181
181
|
`Bad @import tag`,
|
|
182
182
|
null,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { dirname, join } from 'path';
|
|
2
2
|
import { fileURLToPath } from 'url';
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import {parseImportsExports} from 'parse-imports-exports';
|
|
5
5
|
import {
|
|
6
6
|
getJSDocComment,
|
|
7
7
|
parse as parseType,
|
|
@@ -13,7 +13,6 @@ import iterateJsdoc, {
|
|
|
13
13
|
} from '../iterateJsdoc.js';
|
|
14
14
|
|
|
15
15
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
16
|
-
const pathName = join(__dirname, '../import-worker.mjs');
|
|
17
16
|
|
|
18
17
|
const extraTypes = [
|
|
19
18
|
'null', 'undefined', 'void', 'string', 'boolean', 'object',
|
|
@@ -152,30 +151,30 @@ export default iterateJsdoc(({
|
|
|
152
151
|
? `${typePart}${name} ${description}`
|
|
153
152
|
: `${typePart}${name}`);
|
|
154
153
|
|
|
155
|
-
const
|
|
156
|
-
const imports = /** @type {import('parse-imports').Import[]} */ (getImports(imprt));
|
|
157
|
-
if (!imports) {
|
|
158
|
-
return null;
|
|
159
|
-
}
|
|
154
|
+
const importsExports = parseImportsExports(imprt);
|
|
160
155
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
types.push(dflt);
|
|
156
|
+
const types = [];
|
|
157
|
+
const namedImports = Object.values(importsExports.namedImports || {})[0]?.[0];
|
|
158
|
+
if (namedImports) {
|
|
159
|
+
if (namedImports.default) {
|
|
160
|
+
types.push(namedImports.default);
|
|
167
161
|
}
|
|
168
|
-
if (
|
|
169
|
-
types.push(
|
|
162
|
+
if (namedImports.names) {
|
|
163
|
+
types.push(...Object.keys(namedImports.names));
|
|
170
164
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const namespaceImports = Object.values(importsExports.namespaceImports || {})[0]?.[0];
|
|
168
|
+
if (namespaceImports) {
|
|
169
|
+
if (namespaceImports.namespace) {
|
|
170
|
+
types.push(namespaceImports.namespace);
|
|
175
171
|
}
|
|
172
|
+
if (namespaceImports.default) {
|
|
173
|
+
types.push(namespaceImports.default);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
176
|
|
|
177
|
-
|
|
178
|
-
});
|
|
177
|
+
return types;
|
|
179
178
|
}).filter(Boolean)) : [];
|
|
180
179
|
|
|
181
180
|
const ancestorNodes = [];
|
package/dist/import-worker.cjs
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _synckit = require("synckit");
|
|
4
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
5
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
6
|
-
(0, _synckit.runAsWorker)(async imprt => {
|
|
7
|
-
const {
|
|
8
|
-
parseImports
|
|
9
|
-
} = await Promise.resolve().then(() => _interopRequireWildcard(require('parse-imports')));
|
|
10
|
-
try {
|
|
11
|
-
// ESLint doesn't support async rules
|
|
12
|
-
return [...(await parseImports(imprt))];
|
|
13
|
-
} catch (err) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
//# sourceMappingURL=import-worker.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import-worker.cjs","names":["_synckit","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","runAsWorker","imprt","parseImports","Promise","resolve","then","err"],"sources":["../src/import-worker.mjs"],"sourcesContent":["import { runAsWorker } from 'synckit'\n\nrunAsWorker(async (imprt) => {\n const { parseImports } = await import('parse-imports');\n try {\n // ESLint doesn't support async rules\n return [...await parseImports(imprt)];\n } catch (err) {\n return false;\n }\n})\n"],"mappings":";;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAAqC,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAI,wBAAAJ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAM,OAAA,EAAAN,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAErC,IAAAW,oBAAW,EAAC,MAAOC,KAAK,IAAK;EAC3B,MAAM;IAAEC;EAAa,CAAC,GAAG,MAAAC,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAArB,uBAAA,CAAAN,OAAA,CAAa,eAAe,GAAC;EACtD,IAAI;IACF;IACA,OAAO,CAAC,IAAG,MAAMwB,YAAY,CAACD,KAAK,CAAC,EAAC;EACvC,CAAC,CAAC,OAAOK,GAAG,EAAE;IACZ,OAAO,KAAK;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
package/dist/import-worker.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { runAsWorker } from 'synckit'
|
|
2
|
-
|
|
3
|
-
runAsWorker(async (imprt) => {
|
|
4
|
-
const { parseImports } = await import('parse-imports');
|
|
5
|
-
try {
|
|
6
|
-
// ESLint doesn't support async rules
|
|
7
|
-
return [...await parseImports(imprt)];
|
|
8
|
-
} catch (err) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
})
|
package/src/import-worker.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { runAsWorker } from 'synckit'
|
|
2
|
-
|
|
3
|
-
runAsWorker(async (imprt) => {
|
|
4
|
-
const { parseImports } = await import('parse-imports');
|
|
5
|
-
try {
|
|
6
|
-
// ESLint doesn't support async rules
|
|
7
|
-
return [...await parseImports(imprt)];
|
|
8
|
-
} catch (err) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
})
|