@definitelytyped/eslint-plugin 0.0.196 → 0.0.198

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/configs/all.js +5 -1
  3. package/dist/configs/all.js.map +1 -1
  4. package/dist/rules/expect.d.ts +11 -0
  5. package/dist/rules/expect.js +428 -0
  6. package/dist/rules/expect.js.map +1 -0
  7. package/dist/rules/index.d.ts +7 -0
  8. package/dist/rules/index.js +4 -0
  9. package/dist/rules/index.js.map +1 -1
  10. package/dist/rules/npm-naming/types.d.ts +10 -0
  11. package/dist/rules/npm-naming/types.js +3 -0
  12. package/dist/rules/npm-naming/types.js.map +1 -0
  13. package/dist/rules/npm-naming.d.ts +3 -0
  14. package/dist/rules/npm-naming.js +180 -0
  15. package/dist/rules/npm-naming.js.map +1 -0
  16. package/dist/suggestions.d.ts +4 -0
  17. package/dist/suggestions.js +62 -0
  18. package/dist/suggestions.js.map +1 -0
  19. package/dist/util.d.ts +2 -0
  20. package/dist/util.js +20 -1
  21. package/dist/util.js.map +1 -1
  22. package/docs/rules/npm-naming.md +137 -0
  23. package/package.json +3 -1
  24. package/src/configs/all.ts +7 -1
  25. package/src/rules/expect.ts +556 -0
  26. package/src/rules/index.ts +4 -0
  27. package/src/rules/npm-naming/types.ts +14 -0
  28. package/src/rules/npm-naming.ts +211 -0
  29. package/src/suggestions.ts +75 -0
  30. package/src/util.ts +22 -1
  31. package/test/__file_snapshots__/types/expect/expect-tests.ts.lint +79 -0
  32. package/test/__file_snapshots__/types/expect/index.d.ts.lint +19 -0
  33. package/test/__snapshots__/plugin.test.ts.snap +262 -0
  34. package/test/fixtures/types/expect/expect-tests.ts +49 -0
  35. package/test/fixtures/types/expect/index.d.ts +9 -0
  36. package/test/fixtures/types/expect/package.json +5 -0
  37. package/test/fixtures/types/expect/tsconfig.json +20 -0
  38. package/test/npm-naming.test.ts +57 -0
  39. package/test/plugin.test.ts +14 -0
  40. package/test/types/dts-critic/index.d.ts +9 -0
  41. package/test/types/dts-critic/package.json +17 -0
  42. package/test/types/wenceslas/index.d.ts +0 -0
  43. package/test/types/wenceslas/package.json +17 -0
  44. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @definitelytyped/eslint-plugin
2
2
 
3
+ ## 0.0.198
4
+
5
+ ### Patch Changes
6
+
7
+ - 414ae487: Move npm-naming lint rule from tslint to eslint
8
+ - Updated dependencies [414ae487]
9
+ - @definitelytyped/dts-critic@0.0.192
10
+
11
+ ## 0.0.197
12
+
13
+ ### Patch Changes
14
+
15
+ - 3d6c2ffd: Port expect rule from tslint to eslint
16
+
3
17
  ## 0.0.196
4
18
 
5
19
  ### Patch Changes
@@ -135,7 +135,11 @@ exports.all = {
135
135
  warnOnUnsupportedTypeScriptVersion: false,
136
136
  },
137
137
  rules: {
138
- ...Object.fromEntries(Object.keys(rules_1.rules).map((name) => [`@definitelytyped/${name}`, "error"])),
138
+ ...Object.fromEntries(Object.keys(rules_1.rules)
139
+ // npm-naming is only enabled within dtslint.
140
+ // Leave it out of the preset so editors / he tests don't hit the network.
141
+ .filter((name) => name !== "npm-naming")
142
+ .map((name) => [`@definitelytyped/${name}`, "error"])),
139
143
  "unicode-bom": ["error", "never"],
140
144
  "@typescript-eslint/ban-ts-comment": [
141
145
  "error",
@@ -1 +1 @@
1
- {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ type Options = [
2
+ {
3
+ versionsToTest?: {
4
+ readonly versionName: string;
5
+ readonly path: string;
6
+ }[];
7
+ }
8
+ ];
9
+ type MessageIds = "noTsconfig" | "twoAssertions" | "failure" | "diagnostic" | "programContents" | "noMatch" | "needInstall";
10
+ declare const rule: import("../util").RuleModule<Options, MessageIds>;
11
+ export = rule;
@@ -0,0 +1,428 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const utils_1 = require("@definitelytyped/utils");
6
+ const util_1 = require("../util");
7
+ const utils_2 = require("@typescript-eslint/utils");
8
+ const path_1 = __importDefault(require("path"));
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const builtinTypeScript = require("typescript");
11
+ const rule = (0, util_1.createRule)({
12
+ name: "expect",
13
+ meta: {
14
+ type: "problem",
15
+ docs: {
16
+ description: "Asserts types with $ExpectType.",
17
+ },
18
+ messages: {
19
+ noTsconfig: `Could not find a tsconfig.json file.`,
20
+ twoAssertions: "This line has 2 $ExpectType assertions.",
21
+ failure: `TypeScript{{versionNameString}} expected type to be:\n {{expectedType}}\ngot:\n {{actualType}}`,
22
+ diagnostic: `TypeScript{{versionNameString}} {{message}}`,
23
+ programContents: `Program source files differ between TypeScript versions. This may be a dtslint bug.\n` +
24
+ `Expected to find a file '{{fileName}}' present in ${builtinTypeScript.versionMajorMinor}, but did not find it in ts@{{versionName}}.`,
25
+ noMatch: "Cannot match a node to this assertion. If this is a multiline function call, ensure the assertion is on the line above.",
26
+ needInstall: `A module look-up failed, this often occurs when you need to run \`pnpm install\` on a dependent module before you can lint.
27
+
28
+ Before you debug, first try running:
29
+
30
+ pnpm install -w --filter '...{./types/{{dirPath}}}...'
31
+
32
+ Then re-run.`,
33
+ },
34
+ schema: [
35
+ {
36
+ type: "object",
37
+ properties: {
38
+ versionsToTest: {
39
+ type: "array",
40
+ items: {
41
+ type: "object",
42
+ properties: {
43
+ versionName: { type: "string" },
44
+ path: { type: "string" },
45
+ },
46
+ required: ["versionName", "path"],
47
+ additionalProperties: false,
48
+ },
49
+ },
50
+ },
51
+ additionalProperties: false,
52
+ },
53
+ ],
54
+ },
55
+ defaultOptions: [{}],
56
+ create(context) {
57
+ if ((0, utils_1.isDeclarationPath)(context.filename) || !context.sourceCode.text.includes("$ExpectType")) {
58
+ return {};
59
+ }
60
+ const tsconfigPath = (0, util_1.findUp)(context.filename, (dir) => {
61
+ const tsconfig = path_1.default.join(dir, "tsconfig.json");
62
+ return fs_1.default.existsSync(tsconfig) ? tsconfig : undefined;
63
+ });
64
+ if (!tsconfigPath) {
65
+ context.report({
66
+ messageId: "noTsconfig",
67
+ loc: zeroSourceLocation,
68
+ });
69
+ return {};
70
+ }
71
+ // TODO: determine TS versions to run based on this package
72
+ const dirPath = path_1.default.dirname(tsconfigPath);
73
+ const parserServices = utils_2.ESLintUtils.getParserServices(context);
74
+ return {
75
+ // eslint-disable-next-line @typescript-eslint/naming-convention
76
+ Program(node) {
77
+ var _a;
78
+ // Grab the filename as known by TS, just to make sure we get the right normalization.
79
+ const fileName = parserServices.esTreeNodeToTSNodeMap.get(node).fileName;
80
+ const getLocFromIndex = (index) => context.sourceCode.getLocFromIndex(index);
81
+ const toReport = new Map();
82
+ const reporter = ({ versionName, messageId, data, loc }) => {
83
+ const key = JSON.stringify({ messageId, data, loc });
84
+ let existing = toReport.get(key);
85
+ if (existing === undefined) {
86
+ toReport.set(key, (existing = { messageId, data, loc, versions: new Set() }));
87
+ }
88
+ existing.versions.add(versionName);
89
+ };
90
+ let versionsToTest = (_a = context.options[0]) === null || _a === void 0 ? void 0 : _a.versionsToTest;
91
+ if (!(versionsToTest === null || versionsToTest === void 0 ? void 0 : versionsToTest.length)) {
92
+ // In the editor, just use the built-in install of TypeScript.
93
+ versionsToTest = [{ versionName: "", path: require.resolve("typescript") }];
94
+ }
95
+ for (const version of versionsToTest) {
96
+ const ts = require(version.path);
97
+ const program = getProgram(tsconfigPath, ts, version.versionName, parserServices.program);
98
+ walk(getLocFromIndex, reporter, fileName, program, ts, version.versionName,
99
+ /*nextHigherVersion*/ undefined, dirPath);
100
+ }
101
+ for (const { messageId, data, loc, versions } of toReport.values()) {
102
+ const versionNames = [...versions].sort().join(", ");
103
+ context.report({
104
+ messageId,
105
+ data: { ...data, versionNameString: versionNames ? `@${versionNames}` : "" },
106
+ loc,
107
+ });
108
+ }
109
+ },
110
+ };
111
+ },
112
+ });
113
+ const programCache = new WeakMap();
114
+ /** Maps a tslint Program to one created with the version specified in `options`. */
115
+ function getProgram(configFile, ts, versionName, lintProgram) {
116
+ let versionToProgram = programCache.get(lintProgram);
117
+ if (versionToProgram === undefined) {
118
+ versionToProgram = new Map();
119
+ programCache.set(lintProgram, versionToProgram);
120
+ }
121
+ let newProgram = versionToProgram.get(versionName);
122
+ if (newProgram === undefined) {
123
+ newProgram = createProgram(configFile, ts);
124
+ versionToProgram.set(versionName, newProgram);
125
+ }
126
+ return newProgram;
127
+ }
128
+ function createProgram(configFile, ts) {
129
+ var _a;
130
+ const projectDirectory = path_1.default.dirname(configFile);
131
+ const { config } = ts.readConfigFile(configFile, ts.sys.readFile);
132
+ const parseConfigHost = {
133
+ fileExists: fs_1.default.existsSync,
134
+ readDirectory: ts.sys.readDirectory,
135
+ readFile: (file) => fs_1.default.readFileSync(file, "utf8"),
136
+ useCaseSensitiveFileNames: true,
137
+ };
138
+ const parsed = ts.parseJsonConfigFileContent(config, parseConfigHost, path_1.default.resolve(projectDirectory), {
139
+ noEmit: true,
140
+ });
141
+ if (((_a = config.compilerOptions) === null || _a === void 0 ? void 0 : _a.module) === "node16" && parsed.options.module === undefined) {
142
+ // TypeScript version is too old to handle the "node16" module option,
143
+ // but we can run tests falling back to commonjs/node.
144
+ parsed.options.module = ts.ModuleKind.CommonJS;
145
+ parsed.options.moduleResolution = ts.ModuleResolutionKind.NodeJs;
146
+ }
147
+ const host = ts.createCompilerHost(parsed.options, true);
148
+ return ts.createProgram(parsed.fileNames, parsed.options, host);
149
+ }
150
+ const zeroSourceLocation = {
151
+ start: { line: 0, column: 0 },
152
+ end: { line: 0, column: 0 },
153
+ };
154
+ function walk(getLocFromIndex, report, fileName, program, ts, versionName, nextHigherVersion, dirPath) {
155
+ const sourceFile = program.getSourceFile(fileName);
156
+ if (!sourceFile) {
157
+ report({
158
+ versionName,
159
+ messageId: "programContents",
160
+ data: { fileName, versionName },
161
+ loc: zeroSourceLocation,
162
+ });
163
+ return;
164
+ }
165
+ const checker = program.getTypeChecker();
166
+ if (versionName) {
167
+ // If we're using the built-in version of TS, then we're in the editor and tsserver will report diagnostics.
168
+ // Don't care about emit errors.
169
+ const diagnostics = ts.getPreEmitDiagnostics(program, sourceFile);
170
+ for (const diagnostic of diagnostics) {
171
+ addDiagnosticFailure(diagnostic);
172
+ }
173
+ const cannotFindDepsDiags = diagnostics
174
+ .filter((d) => !d.file || isExternalDependency(d.file, dirPath, program))
175
+ .find((d) => d.code === 2307 && d.messageText.toString().includes("Cannot find module"));
176
+ if (cannotFindDepsDiags && cannotFindDepsDiags.file) {
177
+ const packageInfo = (0, util_1.findTypesPackage)(fileName);
178
+ if (!packageInfo) {
179
+ throw new Error("Could not find package info for " + fileName);
180
+ }
181
+ const dtRoot = (0, util_1.findUp)(packageInfo.dir, (dir) => {
182
+ if (fs_1.default.existsSync(path_1.default.join(dir, "notNeededPackages.json"))) {
183
+ return dir;
184
+ }
185
+ return undefined;
186
+ });
187
+ if (dtRoot) {
188
+ const dirPath = path_1.default.relative(dtRoot, path_1.default.dirname(packageInfo.dir));
189
+ report({
190
+ versionName,
191
+ messageId: "needInstall",
192
+ data: { dirPath },
193
+ loc: zeroSourceLocation,
194
+ });
195
+ }
196
+ }
197
+ }
198
+ if (sourceFile.isDeclarationFile || !sourceFile.text.includes("$ExpectType")) {
199
+ // Normal file.
200
+ return;
201
+ }
202
+ const { typeAssertions, duplicates } = parseAssertions(sourceFile);
203
+ for (const line of duplicates) {
204
+ addFailureAtLine(report, { versionName, messageId: "twoAssertions" }, line);
205
+ }
206
+ const { unmetExpectations, unusedAssertions } = getExpectTypeFailures(sourceFile, typeAssertions, checker, ts);
207
+ for (const { node, expected, actual } of unmetExpectations) {
208
+ report({
209
+ versionName,
210
+ messageId: "failure",
211
+ data: {
212
+ expectedType: expected,
213
+ actualType: actual,
214
+ },
215
+ loc: {
216
+ start: getLocFromIndex(node.getStart(sourceFile)),
217
+ end: getLocFromIndex(node.getEnd()),
218
+ },
219
+ });
220
+ }
221
+ for (const line of unusedAssertions) {
222
+ addFailureAtLine(report, {
223
+ versionName,
224
+ messageId: "noMatch",
225
+ }, line - 1);
226
+ }
227
+ function addDiagnosticFailure(diagnostic) {
228
+ const intro = getIntro();
229
+ if (diagnostic.file === sourceFile) {
230
+ const msg = `${intro}\n${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`;
231
+ report({
232
+ versionName,
233
+ messageId: "diagnostic",
234
+ data: { message: msg },
235
+ loc: {
236
+ start: getLocFromIndex(diagnostic.start),
237
+ end: getLocFromIndex(diagnostic.start + diagnostic.length),
238
+ },
239
+ });
240
+ }
241
+ else {
242
+ report({
243
+ versionName,
244
+ messageId: "diagnostic",
245
+ data: { message: `${intro}\n${fileName}${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}` },
246
+ loc: zeroSourceLocation,
247
+ });
248
+ }
249
+ }
250
+ function getIntro() {
251
+ if (nextHigherVersion === undefined) {
252
+ return `compile error: `;
253
+ }
254
+ else {
255
+ const msg = `Compile error in typescript@${versionName} but not in typescript@${nextHigherVersion}.\n`;
256
+ const explain = nextHigherVersion === "next"
257
+ ? "TypeScript@next features not yet supported."
258
+ : `Fix by adding '"minimumTypeScriptVersion": "${nextHigherVersion}"' to package.json.`;
259
+ return msg + explain;
260
+ }
261
+ }
262
+ function addFailureAtLine(report, info, line) {
263
+ const start = sourceFile.getPositionOfLineAndCharacter(line, 0);
264
+ let end = start + sourceFile.text.split("\n")[line].length;
265
+ if (sourceFile.text[end - 1] === "\r") {
266
+ end--;
267
+ }
268
+ report({
269
+ ...info,
270
+ loc: {
271
+ start: getLocFromIndex(start),
272
+ end: getLocFromIndex(end),
273
+ },
274
+ });
275
+ }
276
+ }
277
+ // TODO(jakebailey): dedupe these copied frunctions from dtslint
278
+ function normalizePath(file) {
279
+ // replaces '\' with '/' and forces all DOS drive letters to be upper-case
280
+ return path_1.default
281
+ .normalize(file)
282
+ .replace(/\\/g, "/")
283
+ .replace(/^[a-z](?=:)/, (c) => c.toUpperCase());
284
+ }
285
+ function startsWithDirectory(filePath, dirPath) {
286
+ const normalFilePath = normalizePath(filePath);
287
+ const normalDirPath = normalizePath(dirPath).replace(/\/$/, "");
288
+ return normalFilePath.startsWith(normalDirPath + "/") || normalFilePath.startsWith(normalDirPath + "\\");
289
+ }
290
+ function isExternalDependency(file, dirPath, program) {
291
+ return !startsWithDirectory(file.fileName, dirPath) || program.isSourceFileFromExternalLibrary(file);
292
+ }
293
+ function parseAssertions(sourceFile) {
294
+ const typeAssertions = new Map();
295
+ const duplicates = [];
296
+ const { text } = sourceFile;
297
+ const commentRegexp = /\/\/(.*)/g;
298
+ const lineStarts = sourceFile.getLineStarts();
299
+ let curLine = 0;
300
+ while (true) {
301
+ const commentMatch = commentRegexp.exec(text);
302
+ if (commentMatch === null) {
303
+ break;
304
+ }
305
+ // Match on the contents of that comment so we do nothing in a commented-out assertion,
306
+ // i.e. `// foo; // $ExpectType number`
307
+ if (!commentMatch[1].startsWith(" $ExpectType ")) {
308
+ continue;
309
+ }
310
+ const line = getLine(commentMatch.index);
311
+ const expectedType = commentMatch[1].slice(" $ExpectType ".length);
312
+ // Don't bother with the assertion if there are 2 assertions on 1 line. Just fail for the duplicate.
313
+ if (typeAssertions.delete(line)) {
314
+ duplicates.push(line);
315
+ }
316
+ else {
317
+ typeAssertions.set(line, expectedType);
318
+ }
319
+ }
320
+ return { typeAssertions, duplicates };
321
+ function getLine(pos) {
322
+ // advance curLine to be the line preceding 'pos'
323
+ while (lineStarts[curLine + 1] <= pos) {
324
+ curLine++;
325
+ }
326
+ // If this is the first token on the line, it applies to the next line.
327
+ // Otherwise, it applies to the text to the left of it.
328
+ return isFirstOnLine(text, lineStarts[curLine], pos) ? curLine + 1 : curLine;
329
+ }
330
+ }
331
+ function isFirstOnLine(text, lineStart, pos) {
332
+ for (let i = lineStart; i < pos; i++) {
333
+ if (text[i] !== " ") {
334
+ return false;
335
+ }
336
+ }
337
+ return true;
338
+ }
339
+ function getExpectTypeFailures(sourceFile, typeAssertions, checker, ts) {
340
+ const unmetExpectations = [];
341
+ // Match assertions to the first node that appears on the line they apply to.
342
+ // `forEachChild` isn't available as a method in older TypeScript versions, so must use `ts.forEachChild` instead.
343
+ ts.forEachChild(sourceFile, function iterate(node) {
344
+ if (node.kind === ts.SyntaxKind.EndOfFileToken) {
345
+ return;
346
+ }
347
+ const line = lineOfPosition(node.getStart(sourceFile), sourceFile);
348
+ const expected = typeAssertions.get(line);
349
+ if (expected !== undefined) {
350
+ // https://github.com/Microsoft/TypeScript/issues/14077
351
+ if (node.kind === ts.SyntaxKind.ExpressionStatement) {
352
+ node = node.expression;
353
+ }
354
+ const type = checker.getTypeAtLocation(getNodeForExpectType(node, ts));
355
+ const actual = type
356
+ ? checker.typeToString(type, /*enclosingDeclaration*/ undefined, ts.TypeFormatFlags.NoTruncation)
357
+ : "";
358
+ let actualNormalized;
359
+ const candidates = expected.split(/\s*\|\|\s*/).map((s) => s.trim());
360
+ if (!(
361
+ // Fast path
362
+ (candidates.some((s) => s === actual) ||
363
+ candidates.some((s) => {
364
+ actualNormalized !== null && actualNormalized !== void 0 ? actualNormalized : (actualNormalized = normalizedTypeToString(ts, actual));
365
+ const normalized = normalizedTypeToString(ts, s);
366
+ return normalized === actualNormalized;
367
+ })))) {
368
+ unmetExpectations.push({ node, expected, actual });
369
+ }
370
+ typeAssertions.delete(line);
371
+ }
372
+ ts.forEachChild(node, iterate);
373
+ });
374
+ return { unmetExpectations, unusedAssertions: typeAssertions.keys() };
375
+ }
376
+ function normalizedTypeToString(ts, type) {
377
+ const sourceFile = ts.createSourceFile("foo.ts", `declare var x: ${type};`, ts.ScriptTarget.Latest);
378
+ const typeNode = sourceFile.statements[0].declarationList.declarations[0].type;
379
+ const printer = ts.createPrinter({});
380
+ function print(node) {
381
+ return printer.printNode(ts.EmitHint.Unspecified, node, sourceFile);
382
+ }
383
+ // TODO: pass undefined instead once https://github.com/microsoft/TypeScript/pull/52941 is released
384
+ const context = ts.nullTransformationContext;
385
+ function visit(node) {
386
+ node = ts.visitEachChild(node, visit, context);
387
+ if (ts.isUnionTypeNode(node)) {
388
+ const types = node.types
389
+ .map((t) => [t, print(t)])
390
+ .sort((a, b) => (a[1] < b[1] ? -1 : 1))
391
+ .map((t) => t[0]);
392
+ return ts.factory.updateUnionTypeNode(node, ts.factory.createNodeArray(types));
393
+ }
394
+ if (ts.isTypeOperatorNode(node) &&
395
+ node.operator === ts.SyntaxKind.ReadonlyKeyword &&
396
+ ts.isArrayTypeNode(node.type)) {
397
+ // It's possible that this would conflict with a library which defines their own type with this name,
398
+ // but that's unlikely (and was not previously handled in a prior revision of type string normalization).
399
+ return ts.factory.createTypeReferenceNode("ReadonlyArray", [skipTypeParentheses(ts, node.type.elementType)]);
400
+ }
401
+ return node;
402
+ }
403
+ const visited = visit(typeNode);
404
+ return print(visited);
405
+ }
406
+ function skipTypeParentheses(ts, node) {
407
+ while (ts.isParenthesizedTypeNode(node))
408
+ node = node.type;
409
+ return node;
410
+ }
411
+ function getNodeForExpectType(node, ts) {
412
+ if (node.kind === ts.SyntaxKind.VariableStatement) {
413
+ // ts2.0 doesn't have `isVariableStatement`
414
+ const { declarationList: { declarations }, } = node;
415
+ if (declarations.length === 1) {
416
+ const { initializer } = declarations[0];
417
+ if (initializer) {
418
+ return initializer;
419
+ }
420
+ }
421
+ }
422
+ return node;
423
+ }
424
+ function lineOfPosition(pos, sourceFile) {
425
+ return sourceFile.getLineAndCharacterOfPosition(pos).line;
426
+ }
427
+ module.exports = rule;
428
+ //# sourceMappingURL=expect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/rules/expect.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,11 @@ export declare const rules: {
17
17
  "no-single-declare-module": import("../util").RuleModule<never[], "oneModuleDeclaration">;
18
18
  "no-old-dt-header": import("../util").RuleModule<never[], "noOldDTHeader">;
19
19
  "no-import-of-dev-dependencies": import("../util").RuleModule<never[], "noImportOfDevDependencies" | "noReferenceOfDevDependencies">;
20
+ "npm-naming": import("../util").RuleModule<[import("./npm-naming/types").NpmNamingOptions], "error">;
21
+ expect: import("../util").RuleModule<[{
22
+ versionsToTest?: {
23
+ readonly versionName: string;
24
+ readonly path: string;
25
+ }[] | undefined;
26
+ }], "noTsconfig" | "twoAssertions" | "failure" | "diagnostic" | "programContents" | "noMatch" | "needInstall">;
20
27
  };
@@ -19,6 +19,8 @@ const strictExportDeclareModifiers = require("./strict-export-declare-modifiers"
19
19
  const noSingleDeclareModule = require("./no-single-declare-module");
20
20
  const noOldDTHeader = require("./no-old-dt-header");
21
21
  const noImportOfDevDependencies = require("./no-import-of-dev-dependencies");
22
+ const npmNaming = require("./npm-naming");
23
+ const expect = require("./expect");
22
24
  exports.rules = {
23
25
  "export-just-namespace": exportJustNamespace,
24
26
  "no-any-union": noAnyUnion,
@@ -38,5 +40,7 @@ exports.rules = {
38
40
  "no-single-declare-module": noSingleDeclareModule,
39
41
  "no-old-dt-header": noOldDTHeader,
40
42
  "no-import-of-dev-dependencies": noImportOfDevDependencies,
43
+ "npm-naming": npmNaming,
44
+ expect,
41
45
  };
42
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";;;AAAA,+DAAgE;AAChE,6CAA8C;AAC9C,qDAAsD;AACtD,+CAAgD;AAChD,uDAAwD;AACxD,wEAAyE;AACzE,sFAAuF;AACvF,uEAAwE;AACxE,iDAAkD;AAClD,2EAA4E;AAC5E,mEAAoE;AACpE,qDAAsD;AACtD,mEAAoE;AACpE,4DAA6D;AAC7D,kFAAmF;AACnF,oEAAqE;AACrE,oDAAqD;AACrD,6EAA8E;AAEjE,QAAA,KAAK,GAAG;IACnB,uBAAuB,EAAE,mBAAmB;IAC5C,cAAc,EAAE,UAAU;IAC1B,kBAAkB,EAAE,cAAc;IAClC,eAAe,EAAE,WAAW;IAC5B,mBAAmB,EAAE,eAAe;IACpC,4BAA4B,EAAE,uBAAuB;IACrD,oCAAoC,EAAE,6BAA6B;IACnE,4BAA4B,EAAE,sBAAsB;IACpD,gBAAgB,EAAE,YAAY;IAC9B,8BAA8B,EAAE,wBAAwB;IACxD,yBAAyB,EAAE,qBAAqB;IAChD,kBAAkB,EAAE,cAAc;IAClC,yBAAyB,EAAE,qBAAqB;IAChD,qBAAqB,EAAE,kBAAkB;IACzC,iCAAiC,EAAE,4BAA4B;IAC/D,0BAA0B,EAAE,qBAAqB;IACjD,kBAAkB,EAAE,aAAa;IACjC,+BAA+B,EAAE,yBAAyB;CAC3D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";;;AAAA,+DAAgE;AAChE,6CAA8C;AAC9C,qDAAsD;AACtD,+CAAgD;AAChD,uDAAwD;AACxD,wEAAyE;AACzE,sFAAuF;AACvF,uEAAwE;AACxE,iDAAkD;AAClD,2EAA4E;AAC5E,mEAAoE;AACpE,qDAAsD;AACtD,mEAAoE;AACpE,4DAA6D;AAC7D,kFAAmF;AACnF,oEAAqE;AACrE,oDAAqD;AACrD,6EAA8E;AAC9E,0CAA2C;AAC3C,mCAAoC;AAEvB,QAAA,KAAK,GAAG;IACnB,uBAAuB,EAAE,mBAAmB;IAC5C,cAAc,EAAE,UAAU;IAC1B,kBAAkB,EAAE,cAAc;IAClC,eAAe,EAAE,WAAW;IAC5B,mBAAmB,EAAE,eAAe;IACpC,4BAA4B,EAAE,uBAAuB;IACrD,oCAAoC,EAAE,6BAA6B;IACnE,4BAA4B,EAAE,sBAAsB;IACpD,gBAAgB,EAAE,YAAY;IAC9B,8BAA8B,EAAE,wBAAwB;IACxD,yBAAyB,EAAE,qBAAqB;IAChD,kBAAkB,EAAE,cAAc;IAClC,yBAAyB,EAAE,qBAAqB;IAChD,qBAAqB,EAAE,kBAAkB;IACzC,iCAAiC,EAAE,4BAA4B;IAC/D,0BAA0B,EAAE,qBAAqB;IACjD,kBAAkB,EAAE,aAAa;IACjC,+BAA+B,EAAE,yBAAyB;IAC1D,YAAY,EAAE,SAAS;IACvB,MAAM;CACP,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ExportErrorKind, Mode } from "@definitelytyped/dts-critic";
2
+ export type CodeRawOptionError = [ExportErrorKind, boolean];
3
+ export interface CodeRawOptions {
4
+ mode: Mode.Code;
5
+ errors: CodeRawOptionError[];
6
+ }
7
+ export interface NameOnlyRawOptions {
8
+ mode: Mode.NameOnly;
9
+ }
10
+ export type NpmNamingOptions = CodeRawOptions | NameOnlyRawOptions;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/rules/npm-naming/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { NpmNamingOptions } from "./npm-naming/types";
2
+ declare const rule: import("../util").RuleModule<[NpmNamingOptions], "error">;
3
+ export = rule;