@definitelytyped/dtslint 0.0.181 → 0.0.183

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/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @definitelytyped/dtslint
2
2
 
3
+ ## 0.0.183
4
+
5
+ ### Patch Changes
6
+
7
+ - 024c3e73: Update @definitelytyped for Definitely Typed's monorepo upgrade
8
+ - 9fffa8ff: Fix entrypoint scripts to ensure they don’t run when being imported by an ES module
9
+ - Updated dependencies [024c3e73]
10
+ - Updated dependencies [9fffa8ff]
11
+ - Updated dependencies [9fffa8ff]
12
+ - @definitelytyped/typescript-versions@0.0.179
13
+ - @definitelytyped/header-parser@0.0.179
14
+ - @definitelytyped/dts-critic@0.0.179
15
+ - @definitelytyped/utils@0.0.179
16
+
17
+ ## 0.0.182
18
+
19
+ ### Patch Changes
20
+
21
+ - 7d60c4b6: Restore explicit disabling of no-redundant-jsdoc
22
+
3
23
  ## 0.0.181
4
24
 
5
25
  ### Patch Changes
package/README.md CHANGED
@@ -5,7 +5,7 @@ Lint rules new to dtslint are documented in the [docs](docs) directory.
5
5
 
6
6
  # Just looking for ExpectType and ExpectError?
7
7
 
8
- [Use tsd instead](https://github.com/SamVerschueren/tsd).
8
+ [Use tsd](https://github.com/SamVerschueren/tsd) or [eslint-plugin-expect-type](https://github.com/JoshuaKGoldberg/eslint-plugin-expect-type#readme) instead.
9
9
 
10
10
  # Setup
11
11
 
@@ -28,8 +28,8 @@ Read more on bundling types [here](http://www.typescriptlang.org/docs/handbook/d
28
28
 
29
29
  #### `types/index.d.ts`
30
30
 
31
- Only `index.d.ts` needs to be published to NPM. Other files are just for testing.
32
- Write your type definitions here.
31
+ Only `index.d.ts` and `package.json` need to be published to NPM. The other files will be required by Definitely Typed for testing.
32
+ Write your type definitions in `index.d.ts`.
33
33
  Refer to the [handbook](http://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html) or `dts-gen`'s templates for how to do this.
34
34
 
35
35
 
@@ -39,30 +39,76 @@ Refer to the [handbook](http://www.typescriptlang.org/docs/handbook/declaration-
39
39
  {
40
40
  "compilerOptions": {
41
41
  "module": "commonjs",
42
- "lib": ["es6"],
42
+ "lib": [
43
+ "es6",
44
+ ],
43
45
  "noImplicitAny": true,
44
46
  "noImplicitThis": true,
45
- "strictFunctionTypes": true,
46
47
  "strictNullChecks": true,
48
+ "strictFunctionTypes": true,
47
49
  "types": [],
48
50
  "noEmit": true,
49
- "forceConsistentCasingInFileNames": true,
50
-
51
- // If the library is an external module (uses `export`), this allows your test file to import "mylib" instead of "./index".
52
- // If the library is global (cannot be imported via `import` or `require`), leave this out.
53
- "baseUrl": ".",
54
- "paths": { "mylib": ["."] }
55
- }
51
+ "forceConsistentCasingInFileNames": true
52
+ },
53
+ "files": [
54
+ "index.d.ts",
55
+ "PACKAGE-NAME-tests.ts",
56
+ ]
56
57
  }
57
58
  ```
58
59
 
59
60
  You may extend `"lib"` to, for example, `["es6", "dom"]` if you need those typings.
60
61
  You may also have to add `"target": "es6"` if using certain language features.
61
62
 
63
+ #### `types/package.json`
64
+
65
+ ```json5
66
+ {
67
+ "private": true,
68
+ "name": "@types/PACKAGE-NAME",
69
+ "version": "1.2.9999",
70
+ "projects": [
71
+ "https://example.com/"
72
+ ],
73
+ "dependencies": {
74
+ "@types/DEPENDENCY-1": "*",
75
+ "@types/DEPENDENCY-2": "*"
76
+ },
77
+ "devDependencies": {
78
+ "@types/PACKAGE-NAME": "workspace:."
79
+ },
80
+ "owners": [
81
+ {
82
+ "name": "My Self",
83
+ "githubUsername": "ghost"
84
+ }
85
+ ]
86
+ }
87
+ ```
88
+
89
+ 1. If the types are for a scoped package, you must name-mangle `@scope/package` to `@types/scope__package`.
90
+ 2. The major and minor versions should match some published version of the npm package. The patch version must be 9999; Definitely Typed will increment published patch versions starting at 0, and the patch version of the types will not match the patch version of the npm package.
91
+ 3. `"projects"` is a link to the source project.
92
+ 4. There might not be any dependencies if the *types* don't rely on anything but standard types.
93
+ 5. `"devDependencies"` must include a self-reference like `"@types/PACKAGE-NAME": "workspace:.`. Plus any dependencies used only by tests.
94
+ 6. Non-`@types` dependencies must be added to `allowedPackageJsonDependencies.txt` in the definitions-parser package. The PR must be approved by a Typescript team member.
95
+ 7. If you do not have a github user name, you can provide a `"url"` of your own instead.
96
+
97
+ Also:
98
+
99
+ For types that do not have a matching NPM package, add two properties:
62
100
 
63
- #### `types/tslint.json`
101
+ 1. `"nonNpm": true`
102
+ 2. `"nonNpmDescription"`, a human-readable name for the project that is being typed.
64
103
 
65
- If you are using the default rules, this is optional.
104
+ #### `types/tslint.json` or `types/.eslintrc.json`
105
+
106
+ Definitely Typed is in the process of migrating from tslint to eslint.
107
+ If you are using the default rules, .eslintrc.json is optional; tslint.json should be
108
+
109
+ ```json5
110
+ { "extends": "@definitelytyped/dtslint/dt.json" }
111
+ ```
66
112
 
67
113
  If present, this will override `dtslint`'s [default](https://github.com/microsoft/DefinitelyTyped-tools/blob/master/packages/dtslint/dtslint.json) settings.
68
114
  You can specify new lint [rules](https://palantir.github.io/tslint/rules/), or disable some. An example:
@@ -77,13 +123,14 @@ You can specify new lint [rules](https://palantir.github.io/tslint/rules/), or d
77
123
  }
78
124
  ```
79
125
 
126
+ Please don't do this without a good reason.
127
+ Disabling lint rules makes a Definitely Typed PR less likely to be merged, and will definitely take longer to review.
128
+
80
129
 
81
130
  #### `types/test.ts`
82
131
 
83
132
  You can have any number of test files you want, with any names. See below on what to put in them.
84
133
 
85
-
86
-
87
134
  ## Write tests
88
135
 
89
136
  A test file should be a piece of sample code that tests using the library. Tests are type-checked, but not run.
@@ -108,15 +155,13 @@ f("one");
108
155
  ## Specify a TypeScript version
109
156
 
110
157
  Normally packages will be tested according to [DefinitelyType's support window](https://github.com/DefinitelyTyped/DefinitelyTyped#support-window).
111
- To use a newer version, specify it by including a comment like so:
158
+ To restrict testing to new versions only, specify it in package.json:
112
159
 
113
160
  ```ts
114
- // Minimum TypeScript Version: 2.1
161
+ "minimumTypeScriptVersion: 5.0"
115
162
  ```
116
163
 
117
- For DefinitelyTyped packages, this should go just under the header (on line 5).
118
- For bundled typings, this can go on any line (but should be near the top).
119
-
164
+ This tests only 5.0 and above, although people can still depend on the package with lower versions of Typescript if they want.
120
165
 
121
166
  ## Run tests
122
167
 
@@ -141,7 +186,6 @@ Disable all the lint rules except the one that checks for type correctness.
141
186
  dtslint --expectOnly types
142
187
  ```
143
188
 
144
-
145
189
  # Contributing
146
190
 
147
191
  ## Build
@@ -153,13 +197,9 @@ npm run watch
153
197
 
154
198
  ## Test
155
199
 
156
- Use `npm run test` to run all tests.
157
- To run a single test: `node node_modules/tslint/bin/tslint --rules-dir dist/rules --test test/expect`.
158
-
159
- ## Publish
200
+ Use `pnpm test` to run all tests.
160
201
 
161
- 1. Change the version in the `package.json`
162
- 2. Push to master
202
+ To run a single test: `node node_modules/tslint/bin/tslint --rules-dir dist/rules --test test/expect`.
163
203
 
164
204
  ## Code of Conduct
165
205
 
package/dist/checks.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { TypeScriptVersion } from "@definitelytyped/typescript-versions";
1
+ import * as header from "@definitelytyped/header-parser";
2
+ import { AllTypeScriptVersion } from "@definitelytyped/typescript-versions";
2
3
  import { CompilerOptions } from "typescript";
3
- export declare function checkPackageJson(dirPath: string, typesVersions: readonly TypeScriptVersion[]): Promise<void>;
4
+ export declare function checkPackageJson(dirPath: string, typesVersions: readonly AllTypeScriptVersion[]): header.Header | string[];
4
5
  /**
5
6
  * numbers in `CompilerOptions` might be enum values mapped from strings
6
7
  */
@@ -11,4 +12,4 @@ export interface DefinitelyTypedInfo {
11
12
  /** "../" or "../../" or "../../../". This should use '/' even on windows. */
12
13
  readonly relativeBaseUrl: string;
13
14
  }
14
- export declare function checkTsconfig(options: CompilerOptionsRaw, dt: DefinitelyTypedInfo | undefined): void;
15
+ export declare function checkTsconfig(dirPath: string, options: CompilerOptionsRaw): string[];
package/dist/checks.js CHANGED
@@ -1,111 +1,97 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.checkTsconfig = exports.checkPackageJson = void 0;
4
- const header_parser_1 = require("@definitelytyped/header-parser");
5
- const assert = require("assert");
27
+ const header = __importStar(require("@definitelytyped/header-parser"));
6
28
  const fs_extra_1 = require("fs-extra");
7
29
  const path_1 = require("path");
30
+ const utils_1 = require("@definitelytyped/utils");
8
31
  const util_1 = require("./util");
9
- async function checkPackageJson(dirPath, typesVersions) {
32
+ function checkPackageJson(dirPath, typesVersions) {
10
33
  const pkgJsonPath = (0, path_1.join)(dirPath, "package.json");
11
- const needsTypesVersions = typesVersions.length !== 0;
12
- if (!(await (0, fs_extra_1.pathExists)(pkgJsonPath))) {
13
- if (needsTypesVersions) {
14
- throw new Error(`${dirPath}: Must have 'package.json' for "typesVersions"`);
15
- }
16
- return;
17
- }
18
- const pkgJson = (await (0, util_1.readJson)(pkgJsonPath));
19
- if (pkgJson.private !== true) {
20
- throw new Error(`${pkgJsonPath} should set \`"private": true\``);
21
- }
22
- if (needsTypesVersions) {
23
- assert.strictEqual(pkgJson.types, "index", `"types" in '${pkgJsonPath}' should be "index".`);
24
- const expected = (0, header_parser_1.makeTypesVersionsForPackageJson)(typesVersions);
25
- assert.deepEqual(pkgJson.typesVersions, expected, `"typesVersions" in '${pkgJsonPath}' is not set right. Should be: ${JSON.stringify(expected, undefined, 4)}`);
26
- }
27
- for (const key in pkgJson) {
28
- // tslint:disable-line forin
29
- switch (key) {
30
- case "private":
31
- case "dependencies":
32
- case "license":
33
- case "imports":
34
- case "exports":
35
- case "type":
36
- // "private"/"typesVersions"/"types" checked above, "dependencies" / "license" checked by types-publisher,
37
- break;
38
- case "typesVersions":
39
- case "types":
40
- if (!needsTypesVersions) {
41
- throw new Error(`${pkgJsonPath} doesn't need to set "${key}" when no 'ts3.x' directories exist.`);
42
- }
43
- break;
44
- default:
45
- throw new Error(`${pkgJsonPath} should not include field ${key}`);
46
- }
34
+ if (!(0, fs_extra_1.pathExistsSync)(pkgJsonPath)) {
35
+ throw new Error(`${dirPath}: Missing 'package.json'`);
47
36
  }
37
+ return header.validatePackageJson((0, util_1.packageNameFromPath)(dirPath), (0, util_1.readJson)(pkgJsonPath), typesVersions);
48
38
  }
49
39
  exports.checkPackageJson = checkPackageJson;
50
- function checkTsconfig(options, dt) {
40
+ function checkTsconfig(dirPath, options) {
51
41
  var _a, _b;
52
- if (dt) {
53
- const { relativeBaseUrl } = dt;
54
- const mustHave = {
55
- noEmit: true,
56
- forceConsistentCasingInFileNames: true,
57
- baseUrl: relativeBaseUrl,
58
- typeRoots: [relativeBaseUrl],
59
- types: [],
60
- };
61
- for (const key of Object.getOwnPropertyNames(mustHave)) {
62
- const expected = mustHave[key];
63
- const actual = options[key];
64
- if (!deepEquals(expected, actual)) {
65
- throw new Error(`Expected compilerOptions[${JSON.stringify(key)}] === ${JSON.stringify(expected)}, but got ${JSON.stringify(actual)}`);
66
- }
42
+ const errors = [];
43
+ const mustHave = {
44
+ noEmit: true,
45
+ forceConsistentCasingInFileNames: true,
46
+ types: [],
47
+ };
48
+ for (const key of Object.getOwnPropertyNames(mustHave)) {
49
+ const expected = mustHave[key];
50
+ const actual = options[key];
51
+ if (!(0, utils_1.deepEquals)(expected, actual)) {
52
+ errors.push(`Expected compilerOptions[${JSON.stringify(key)}] === ${JSON.stringify(expected)}, but got ${JSON.stringify(actual)}`);
67
53
  }
68
- for (const key in options) {
69
- switch (key) {
70
- case "lib":
71
- case "noImplicitAny":
72
- case "noImplicitThis":
73
- case "strict":
74
- case "strictNullChecks":
75
- case "noUncheckedIndexedAccess":
76
- case "strictFunctionTypes":
77
- case "esModuleInterop":
78
- case "allowSyntheticDefaultImports":
79
- case "paths":
80
- case "target":
81
- case "jsx":
82
- case "jsxFactory":
83
- case "experimentalDecorators":
84
- case "noUnusedLocals":
85
- case "noUnusedParameters":
86
- case "exactOptionalPropertyTypes":
87
- case "module":
88
- break;
89
- default:
90
- if (!(key in mustHave)) {
91
- throw new Error(`Unexpected compiler option ${key}`);
92
- }
93
- }
54
+ }
55
+ for (const key in options) {
56
+ switch (key) {
57
+ case "lib":
58
+ case "noImplicitAny":
59
+ case "noImplicitThis":
60
+ case "strict":
61
+ case "strictNullChecks":
62
+ case "noUncheckedIndexedAccess":
63
+ case "strictFunctionTypes":
64
+ case "esModuleInterop":
65
+ case "allowSyntheticDefaultImports":
66
+ case "target":
67
+ case "jsx":
68
+ case "jsxFactory":
69
+ case "experimentalDecorators":
70
+ case "noUnusedLocals":
71
+ case "noUnusedParameters":
72
+ case "exactOptionalPropertyTypes":
73
+ case "module":
74
+ case "paths":
75
+ break;
76
+ default:
77
+ if (!(key in mustHave)) {
78
+ errors.push(`Unexpected compiler option ${key}`);
79
+ }
94
80
  }
95
81
  }
96
82
  if (!("lib" in options)) {
97
- throw new Error('Must specify "lib", usually to `"lib": ["es6"]` or `"lib": ["es6", "dom"]`.');
83
+ errors.push('Must specify "lib", usually to `"lib": ["es6"]` or `"lib": ["es6", "dom"]`.');
98
84
  }
99
85
  if (!("module" in options)) {
100
- throw new Error('Must specify "module" to `"module": "commonjs"` or `"module": "node16"`.');
86
+ errors.push('Must specify "module" to `"module": "commonjs"` or `"module": "node16"`.');
101
87
  }
102
- if (((_a = options.module) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase()) !== "commonjs" &&
88
+ else if (((_a = options.module) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase()) !== "commonjs" &&
103
89
  ((_b = options.module) === null || _b === void 0 ? void 0 : _b.toString().toLowerCase()) !== "node16") {
104
- throw new Error(`When "module" is present, it must be set to "commonjs" or "node16".`);
90
+ errors.push(`When "module" is present, it must be set to "commonjs" or "node16".`);
105
91
  }
106
92
  if ("strict" in options) {
107
93
  if (options.strict !== true) {
108
- throw new Error('When "strict" is present, it must be set to `true`.');
94
+ errors.push('When "strict" is present, it must be set to `true`.');
109
95
  }
110
96
  for (const key of ["noImplicitAny", "noImplicitThis", "strictNullChecks", "strictFunctionTypes"]) {
111
97
  if (key in options) {
@@ -116,27 +102,34 @@ function checkTsconfig(options, dt) {
116
102
  else {
117
103
  for (const key of ["noImplicitAny", "noImplicitThis", "strictNullChecks", "strictFunctionTypes"]) {
118
104
  if (!(key in options)) {
119
- throw new Error(`Expected \`"${key}": true\` or \`"${key}": false\`.`);
105
+ errors.push(`Expected \`"${key}": true\` or \`"${key}": false\`.`);
120
106
  }
121
107
  }
122
108
  }
123
109
  if ("exactOptionalPropertyTypes" in options) {
124
110
  if (options.exactOptionalPropertyTypes !== true) {
125
- throw new Error('When "exactOptionalPropertyTypes" is present, it must be set to `true`.');
111
+ errors.push('When "exactOptionalPropertyTypes" is present, it must be set to `true`.');
126
112
  }
127
113
  }
128
114
  if (options.types && options.types.length) {
129
- throw new Error('Use `/// <reference types="..." />` directives in source files and ensure ' +
115
+ errors.push('Use `/// <reference types="..." />` directives in source files and ensure ' +
130
116
  'that the "types" field in your tsconfig is an empty array.');
131
117
  }
132
- }
133
- exports.checkTsconfig = checkTsconfig;
134
- function deepEquals(expected, actual) {
135
- if (expected instanceof Array) {
136
- return (actual instanceof Array && actual.length === expected.length && expected.every((e, i) => deepEquals(e, actual[i])));
137
- }
138
- else {
139
- return expected === actual;
118
+ if (options.paths) {
119
+ for (const key in options.paths) {
120
+ if (options.paths[key].length !== 1) {
121
+ errors.push(`${dirPath}/tsconfig.json: "paths" must map each module specifier to only one file.`);
122
+ }
123
+ const [target] = options.paths[key];
124
+ if (target !== "./index.d.ts") {
125
+ const m = target.match(/^(?:..\/)+([^\/]+)\/(?:v\d+\.?\d*\/)?index.d.ts$/);
126
+ if (!m || m[1] !== key) {
127
+ errors.push(`${dirPath}/tsconfig.json: "paths" must map '${key}' to ${key}'s index.d.ts.`);
128
+ }
129
+ }
130
+ }
140
131
  }
132
+ return errors;
141
133
  }
134
+ exports.checkTsconfig = checkTsconfig;
142
135
  //# sourceMappingURL=checks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,7 +2,6 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.assertPackageIsNotDeprecated = void 0;
5
- const header_parser_1 = require("@definitelytyped/header-parser");
6
5
  const typescript_versions_1 = require("@definitelytyped/typescript-versions");
7
6
  const assert = require("assert");
8
7
  const fs_extra_1 = require("fs-extra");
@@ -11,6 +10,7 @@ const utils_1 = require("@definitelytyped/utils");
11
10
  const checks_1 = require("./checks");
12
11
  const lint_1 = require("./lint");
13
12
  const util_1 = require("./util");
13
+ const header_parser_1 = require("@definitelytyped/header-parser");
14
14
  async function main() {
15
15
  const args = process.argv.slice(2);
16
16
  let dirPath = process.cwd();
@@ -113,42 +113,21 @@ function listen(dirPath, tsLocal, alwaysOnlyTestTsNext) {
113
113
  });
114
114
  }
115
115
  async function runTests(dirPath, onlyTestTsNext, expectOnly, tsLocal) {
116
- const isOlderVersion = /^v(0\.)?\d+$/.test((0, path_1.basename)(dirPath));
117
- const indexText = await (0, fs_extra_1.readFile)((0, path_1.join)(dirPath, "index.d.ts"), "utf-8");
118
- // If this *is* on DefinitelyTyped, types-publisher will fail if it can't parse the header.
119
- const dt = indexText.includes("// Type definitions for");
120
- if (dt) {
121
- // Someone may have copied text from DefinitelyTyped to their type definition and included a header,
122
- // so assert that we're really on DefinitelyTyped.
123
- const dtRoot = findDTRoot(dirPath);
124
- const packageName = (0, path_1.basename)(dirPath);
125
- assertPathIsInDefinitelyTyped(dirPath, dtRoot);
126
- assertPathIsNotBanned(packageName);
127
- assertPackageIsNotDeprecated(packageName, await (0, fs_extra_1.readFile)((0, path_1.join)(dtRoot, "notNeededPackages.json"), "utf-8"));
128
- }
129
- const typesVersions = await (0, util_1.mapDefinedAsync)(await (0, fs_extra_1.readdir)(dirPath), async (name) => {
130
- if (name === "tsconfig.json" || name === "tslint.json" || name === "tsutils") {
131
- return undefined;
132
- }
133
- const version = (0, util_1.withoutPrefix)(name, "ts");
134
- if (version === undefined || !(await (0, fs_extra_1.stat)((0, path_1.join)(dirPath, name))).isDirectory()) {
135
- return undefined;
136
- }
137
- if (!typescript_versions_1.TypeScriptVersion.isTypeScriptVersion(version)) {
138
- throw new Error(`There is an entry named ${name}, but ${version} is not a valid TypeScript version.`);
139
- }
140
- if (!typescript_versions_1.TypeScriptVersion.isRedirectable(version)) {
141
- throw new Error(`At ${dirPath}/${name}: TypeScript version directories only available starting with ts3.1.`);
142
- }
143
- return version;
144
- });
145
- if (dt) {
146
- await (0, checks_1.checkPackageJson)(dirPath, typesVersions);
147
- }
148
- const minVersion = maxVersion(getMinimumTypeScriptVersionFromComment(indexText), typescript_versions_1.TypeScriptVersion.lowest);
116
+ // Assert that we're really on DefinitelyTyped.
117
+ const dtRoot = findDTRoot(dirPath);
118
+ const packageName = (0, util_1.packageNameFromPath)(dirPath);
119
+ assertPathIsInDefinitelyTyped(dirPath, dtRoot);
120
+ assertPathIsNotBanned(packageName);
121
+ assertPackageIsNotDeprecated(packageName, await (0, fs_extra_1.readFile)((0, path_1.join)(dtRoot, "notNeededPackages.json"), "utf-8"));
122
+ const typesVersions = (0, header_parser_1.getTypesVersions)(dirPath);
123
+ const packageJson = (0, checks_1.checkPackageJson)(dirPath, typesVersions);
124
+ if (Array.isArray(packageJson)) {
125
+ throw new Error("\n\t* " + packageJson.join("\n\t* "));
126
+ }
127
+ const minVersion = maxVersion(packageJson.minimumTypeScriptVersion, typescript_versions_1.TypeScriptVersion.lowest);
149
128
  if (onlyTestTsNext || tsLocal) {
150
129
  const tsVersion = tsLocal ? "local" : typescript_versions_1.TypeScriptVersion.latest;
151
- await testTypesVersion(dirPath, tsVersion, tsVersion, isOlderVersion, dt, expectOnly, tsLocal, /*isLatest*/ true);
130
+ await testTypesVersion(dirPath, tsVersion, tsVersion, expectOnly, tsLocal, /*isLatest*/ true);
152
131
  }
153
132
  else {
154
133
  // For example, typesVersions of [3.2, 3.5, 3.6] will have
@@ -167,18 +146,13 @@ async function runTests(dirPath, onlyTestTsNext, expectOnly, tsLocal) {
167
146
  if (lows.length > 1) {
168
147
  console.log("testing from", low, "to", hi, "in", versionPath);
169
148
  }
170
- await testTypesVersion(versionPath, low, hi, isOlderVersion, dt, expectOnly, undefined, isLatest);
149
+ await testTypesVersion(versionPath, low, hi, expectOnly, undefined, isLatest);
171
150
  }
172
151
  }
173
152
  }
174
153
  function maxVersion(v1, v2) {
175
- if (!v1)
176
- return v2;
177
- if (!v2)
178
- return v1;
179
- if (parseFloat(v1) >= parseFloat(v2))
180
- return v1;
181
- return v2;
154
+ // Note: For v1 to be later than v2, it must be a current Typescript version. So the type assertion is safe.
155
+ return parseFloat(v1) >= parseFloat(v2) ? v1 : v2;
182
156
  }
183
157
  function next(v) {
184
158
  const index = typescript_versions_1.TypeScriptVersion.supported.indexOf(v);
@@ -186,9 +160,12 @@ function next(v) {
186
160
  assert(index < typescript_versions_1.TypeScriptVersion.supported.length);
187
161
  return typescript_versions_1.TypeScriptVersion.supported[index + 1];
188
162
  }
189
- async function testTypesVersion(dirPath, lowVersion, hiVersion, isOlderVersion, dt, expectOnly, tsLocal, isLatest) {
190
- await (0, lint_1.checkTslintJson)(dirPath, dt);
191
- (0, checks_1.checkTsconfig)(await (0, util_1.getCompilerOptions)(dirPath), dt ? { relativeBaseUrl: ".." + (isOlderVersion ? "/.." : "") + (isLatest ? "" : "/..") + "/" } : undefined);
163
+ async function testTypesVersion(dirPath, lowVersion, hiVersion, expectOnly, tsLocal, isLatest) {
164
+ (0, lint_1.checkTslintJson)(dirPath);
165
+ const tsconfigErrors = (0, checks_1.checkTsconfig)(dirPath, (0, util_1.getCompilerOptions)(dirPath));
166
+ if (tsconfigErrors.length > 0) {
167
+ throw new Error("\n\t* " + tsconfigErrors.join("\n\t* "));
168
+ }
192
169
  const err = await (0, lint_1.lint)(dirPath, lowVersion, hiVersion, isLatest, expectOnly, tsLocal);
193
170
  if (err) {
194
171
  throw new Error(err);
@@ -239,18 +216,7 @@ If you want to re-add @types/${packageName}, please remove its entry from notNee
239
216
  }
240
217
  }
241
218
  exports.assertPackageIsNotDeprecated = assertPackageIsNotDeprecated;
242
- function getMinimumTypeScriptVersionFromComment(text) {
243
- const match = text.match(/\/\/ (?:Minimum )?TypeScript Version: /);
244
- if (!match) {
245
- return undefined;
246
- }
247
- let line = text.slice(match.index, text.indexOf("\n", match.index));
248
- if (line.endsWith("\r")) {
249
- line = line.slice(0, line.length - 1);
250
- }
251
- return (0, header_parser_1.parseTypeScriptVersionLine)(line);
252
- }
253
- if (!module.parent) {
219
+ if (require.main === module) {
254
220
  main().catch((err) => {
255
221
  console.error(err.stack);
256
222
  process.exit(1);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}