@definitelytyped/definitions-parser 0.0.177 → 0.0.179
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 +13 -0
- package/allowedPackageJsonDependencies.txt +5 -0
- package/dist/get-affected-packages.d.ts +7 -8
- package/dist/get-affected-packages.js +35 -71
- package/dist/get-affected-packages.js.map +1 -1
- package/dist/git.d.ts +10 -7
- package/dist/git.js +80 -68
- package/dist/git.js.map +1 -1
- package/dist/lib/definition-parser-worker.js +1 -1
- package/dist/lib/definition-parser-worker.js.map +1 -1
- package/dist/lib/definition-parser.d.ts +4 -11
- package/dist/lib/definition-parser.js +137 -352
- package/dist/lib/definition-parser.js.map +1 -1
- package/dist/lib/module-info.d.ts +1 -13
- package/dist/lib/module-info.js +8 -170
- package/dist/lib/module-info.js.map +1 -1
- package/dist/lib/settings.d.ts +1 -0
- package/dist/lib/settings.js +2 -1
- package/dist/lib/settings.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +8 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/mocks.d.ts +1 -1
- package/dist/mocks.js +51 -42
- package/dist/mocks.js.map +1 -1
- package/dist/packages.d.ts +63 -131
- package/dist/packages.js +104 -126
- package/dist/packages.js.map +1 -1
- package/dist/parse-definitions.d.ts +0 -1
- package/dist/parse-definitions.js +23 -9
- package/dist/parse-definitions.js.map +1 -1
- package/package.json +12 -12
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# @definitelytyped/definitions-parser
|
|
2
|
+
|
|
3
|
+
## 0.0.179
|
|
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
|
+
- @definitelytyped/typescript-versions@0.0.179
|
|
12
|
+
- @definitelytyped/header-parser@0.0.179
|
|
13
|
+
- @definitelytyped/utils@0.0.179
|
|
@@ -478,6 +478,7 @@
|
|
|
478
478
|
@react-navigation/native
|
|
479
479
|
@react-navigation/stack
|
|
480
480
|
@sentry/browser
|
|
481
|
+
@serverless/typescript
|
|
481
482
|
@sinonjs/fake-timers
|
|
482
483
|
@storybook/addons
|
|
483
484
|
@storybook/csf
|
|
@@ -604,6 +605,7 @@ bl
|
|
|
604
605
|
bookshelf
|
|
605
606
|
boxen
|
|
606
607
|
broadcast-channel
|
|
608
|
+
broccoli-node-api
|
|
607
609
|
broccoli-plugin
|
|
608
610
|
bson
|
|
609
611
|
buffer
|
|
@@ -723,9 +725,11 @@ log4js
|
|
|
723
725
|
logform
|
|
724
726
|
loglevel
|
|
725
727
|
logrocket
|
|
728
|
+
long
|
|
726
729
|
lottie-web
|
|
727
730
|
magic-string
|
|
728
731
|
markdownlint
|
|
732
|
+
marked
|
|
729
733
|
mali
|
|
730
734
|
meshoptimizer
|
|
731
735
|
metascraper
|
|
@@ -856,6 +860,7 @@ typeorm
|
|
|
856
860
|
typescript
|
|
857
861
|
typescript-tuple
|
|
858
862
|
types-ramda
|
|
863
|
+
undici-types
|
|
859
864
|
unified
|
|
860
865
|
url-pattern
|
|
861
866
|
utility-types
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface
|
|
3
|
-
readonly
|
|
4
|
-
readonly
|
|
5
|
-
allPackages: AllPackages;
|
|
1
|
+
import { AllPackages, PackageId } from "./packages";
|
|
2
|
+
export interface PreparePackagesResult {
|
|
3
|
+
readonly packageNames: Set<string>;
|
|
4
|
+
readonly dependents: Set<string>;
|
|
6
5
|
}
|
|
7
6
|
/** Gets all packages that have changed on this branch, plus all packages affected by the change. */
|
|
8
|
-
export declare function getAffectedPackages(allPackages: AllPackages,
|
|
9
|
-
/**
|
|
10
|
-
export declare function
|
|
7
|
+
export declare function getAffectedPackages(allPackages: AllPackages, deletions: PackageId[], definitelyTypedPath: string): Promise<PreparePackagesResult>;
|
|
8
|
+
/** This function is exported for testing, since it's determined entirely by its inputs. */
|
|
9
|
+
export declare function getAffectedPackagesWorker(allPackages: AllPackages, changedOutput: string, dependentOutputs: string[], definitelyTypedPath: string): PreparePackagesResult;
|
|
@@ -1,83 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getAffectedPackagesWorker = exports.getAffectedPackages = void 0;
|
|
4
4
|
const utils_1 = require("@definitelytyped/utils");
|
|
5
|
+
const settings_1 = require("./lib/settings");
|
|
5
6
|
const packages_1 = require("./packages");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const semver_1 = require("semver");
|
|
6
9
|
/** Gets all packages that have changed on this branch, plus all packages affected by the change. */
|
|
7
|
-
function getAffectedPackages(allPackages,
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
exports.allDependencies = allDependencies;
|
|
20
|
-
/** Collect all packages that depend on changed packages, and all that depend on those, etc. */
|
|
21
|
-
function collectDependers(changedPackages, reverseDependencies) {
|
|
22
|
-
const dependers = transitiveClosure(changedPackages, (pkg) => reverseDependencies.get(pkg) || []);
|
|
23
|
-
// Don't include the original changed packages, just their dependers
|
|
24
|
-
for (const original of changedPackages) {
|
|
25
|
-
dependers.delete(original);
|
|
26
|
-
}
|
|
27
|
-
return dependers;
|
|
28
|
-
}
|
|
29
|
-
function sortPackages(packages) {
|
|
30
|
-
return (0, utils_1.sort)(packages, packages_1.PackageBase.compare); // tslint:disable-line no-unbound-method
|
|
31
|
-
}
|
|
32
|
-
function transitiveClosure(initialItems, getRelatedItems) {
|
|
33
|
-
const all = new Set();
|
|
34
|
-
const workList = [];
|
|
35
|
-
function add(item) {
|
|
36
|
-
if (!all.has(item)) {
|
|
37
|
-
all.add(item);
|
|
38
|
-
workList.push(item);
|
|
10
|
+
async function getAffectedPackages(allPackages, deletions, definitelyTypedPath) {
|
|
11
|
+
const allDependents = [];
|
|
12
|
+
const filters = [`--filter '...[${settings_1.sourceRemote}/${settings_1.sourceBranch}]'`];
|
|
13
|
+
for (const d of deletions) {
|
|
14
|
+
for (const dep of allPackages.allTypings()) {
|
|
15
|
+
for (const [name, version] of dep.allPackageJsonDependencies()) {
|
|
16
|
+
if ("@types/" + d.typesDirectoryName === name &&
|
|
17
|
+
(d.version === "*" || (0, semver_1.satisfies)((0, packages_1.formatTypingVersion)(d.version), version))) {
|
|
18
|
+
filters.push(`--filter '...${dep.name}'`);
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
39
22
|
}
|
|
40
23
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const item = workList.pop();
|
|
46
|
-
for (const newItem of getRelatedItems(item)) {
|
|
47
|
-
add(newItem);
|
|
48
|
-
}
|
|
24
|
+
const changedPackageNames = await (0, utils_1.execAndThrowErrors)(`pnpm ls -r --depth -1 --parseable --filter '[${settings_1.sourceRemote}/${settings_1.sourceBranch}]'`, definitelyTypedPath);
|
|
25
|
+
// Chunk into 100-package chunks because of CMD.COM's command-line length limit
|
|
26
|
+
for (let i = 0; i < filters.length; i += 100) {
|
|
27
|
+
allDependents.push(await (0, utils_1.execAndThrowErrors)(`pnpm ls -r --depth -1 --parseable ${filters.slice(i, i + 100).join(" ")}`, definitelyTypedPath));
|
|
49
28
|
}
|
|
50
|
-
return
|
|
29
|
+
return getAffectedPackagesWorker(allPackages, changedPackageNames, allDependents, definitelyTypedPath);
|
|
51
30
|
}
|
|
52
|
-
|
|
53
|
-
function
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
for (const typing of allPackages.allTypings()) {
|
|
64
|
-
for (const [name, version] of Object.entries(typing.dependencies)) {
|
|
65
|
-
const dependencies = map.get(packageIdToKey(allPackages.tryResolve({ name, version })));
|
|
66
|
-
if (dependencies) {
|
|
67
|
-
dependencies[1].add(typing.id);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
for (const dependencyName of typing.testDependencies) {
|
|
71
|
-
const version = typing.pathMappings[dependencyName] || "*";
|
|
72
|
-
const dependencies = map.get(packageIdToKey(allPackages.tryResolve({ name: dependencyName, version })));
|
|
73
|
-
if (dependencies) {
|
|
74
|
-
dependencies[1].add(typing.id);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return new Map(map.values());
|
|
31
|
+
exports.getAffectedPackages = getAffectedPackages;
|
|
32
|
+
/** This function is exported for testing, since it's determined entirely by its inputs. */
|
|
33
|
+
function getAffectedPackagesWorker(allPackages, changedOutput, dependentOutputs, definitelyTypedPath) {
|
|
34
|
+
const dt = (0, path_1.resolve)(definitelyTypedPath);
|
|
35
|
+
const changedDirs = (0, utils_1.mapDefined)(changedOutput.split("\n"), getDirectoryName(dt));
|
|
36
|
+
const dependentDirs = (0, utils_1.mapDefined)(dependentOutputs.join("\n").split("\n"), getDirectoryName(dt));
|
|
37
|
+
const packageNames = new Set(changedDirs.map((c) => (0, utils_1.assertDefined)(allPackages.tryGetTypingsData((0, utils_1.assertDefined)((0, packages_1.getDependencyFromFile)(c + "/index.d.ts"), "bad path " + c))).subDirectoryPath));
|
|
38
|
+
const dependents = new Set(dependentDirs
|
|
39
|
+
.map((d) => (0, utils_1.assertDefined)(allPackages.tryGetTypingsData((0, utils_1.assertDefined)((0, packages_1.getDependencyFromFile)(d + "/index.d.ts"), "bad path " + d)), d + " package not found").subDirectoryPath)
|
|
40
|
+
.filter((d) => !packageNames.has(d)));
|
|
41
|
+
return { packageNames, dependents };
|
|
79
42
|
}
|
|
80
|
-
|
|
81
|
-
|
|
43
|
+
exports.getAffectedPackagesWorker = getAffectedPackagesWorker;
|
|
44
|
+
function getDirectoryName(dt) {
|
|
45
|
+
return (line) => line && line !== dt ? (0, utils_1.assertDefined)((0, utils_1.withoutStart)(line, dt + "/"), line + " is missing prefix " + dt) : undefined;
|
|
82
46
|
}
|
|
83
47
|
//# sourceMappingURL=get-affected-packages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-affected-packages.js","sourceRoot":"","sources":["../src/get-affected-packages.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"get-affected-packages.js","sourceRoot":"","sources":["../src/get-affected-packages.ts"],"names":[],"mappings":"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"}
|
package/dist/git.d.ts
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Logger
|
|
1
|
+
import { AllPackages, NotNeededPackage } from "./packages";
|
|
2
|
+
import { Logger } from "@definitelytyped/utils";
|
|
3
|
+
import { PreparePackagesResult } from "./get-affected-packages";
|
|
3
4
|
export interface GitDiff {
|
|
4
5
|
status: "A" | "D" | "M";
|
|
5
6
|
file: string;
|
|
6
7
|
}
|
|
7
8
|
export declare function gitDiff(log: Logger, definitelyTypedPath: string): Promise<GitDiff[]>;
|
|
8
|
-
|
|
9
|
-
export declare function gitChanges(diffs: GitDiff[]): PackageId[];
|
|
10
|
-
export declare function getAffectedPackagesFromDiff(dt: FS, definitelyTypedPath: string, selection: "all" | "affected" | RegExp): Promise<import("./get-affected-packages").Affected>;
|
|
9
|
+
export declare function getAffectedPackagesFromDiff(allPackages: AllPackages, definitelyTypedPath: string): Promise<string[] | PreparePackagesResult>;
|
|
11
10
|
/**
|
|
12
11
|
* 1. libraryName must exist on npm (SKIPPED and preferably/optionally have been the libraryName in just-deleted header)
|
|
13
12
|
* 2. asOfVersion must be newer than `@types/name@latest` on npm
|
|
14
13
|
* 3. `name@asOfVersion` must exist on npm
|
|
15
14
|
*/
|
|
16
|
-
export declare function checkNotNeededPackage(unneeded: NotNeededPackage): Promise<
|
|
15
|
+
export declare function checkNotNeededPackage(unneeded: NotNeededPackage): Promise<string[]>;
|
|
17
16
|
/**
|
|
18
17
|
* 1. Find all the deleted files and group by package (error on deleted files outside a package).
|
|
19
18
|
* 2. Make sure that all deleted packages in notNeededPackages have no files left.
|
|
20
19
|
*/
|
|
21
|
-
export declare function getNotNeededPackages(allPackages: AllPackages, diffs: GitDiff[]):
|
|
20
|
+
export declare function getNotNeededPackages(allPackages: AllPackages, diffs: GitDiff[]): {
|
|
21
|
+
errors: string[];
|
|
22
|
+
} | {
|
|
23
|
+
ok: NotNeededPackage[];
|
|
24
|
+
};
|
package/dist/git.js
CHANGED
|
@@ -22,22 +22,19 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.getNotNeededPackages = exports.checkNotNeededPackage = exports.getAffectedPackagesFromDiff = exports.
|
|
30
|
-
const assert_1 = __importDefault(require("assert"));
|
|
26
|
+
exports.getNotNeededPackages = exports.checkNotNeededPackage = exports.getAffectedPackagesFromDiff = exports.gitDiff = void 0;
|
|
31
27
|
const settings_1 = require("./lib/settings");
|
|
32
28
|
const packages_1 = require("./packages");
|
|
33
29
|
const utils_1 = require("@definitelytyped/utils");
|
|
34
30
|
const pacote = __importStar(require("pacote"));
|
|
35
31
|
const semver = __importStar(require("semver"));
|
|
32
|
+
const util_1 = require("util");
|
|
36
33
|
const get_affected_packages_1 = require("./get-affected-packages");
|
|
37
34
|
/*
|
|
38
|
-
We have to be careful about how we get the diff because
|
|
35
|
+
We have to be careful about how we get the diff because Actions uses a shallow clone.
|
|
39
36
|
|
|
40
|
-
|
|
37
|
+
Actions runs:
|
|
41
38
|
git clone --depth=50 https://github.com/DefinitelyTyped/DefinitelyTyped.git DefinitelyTyped
|
|
42
39
|
cd DefinitelyTyped
|
|
43
40
|
git fetch origin +refs/pull/123/merge
|
|
@@ -52,7 +49,7 @@ async function gitDiff(log, definitelyTypedPath) {
|
|
|
52
49
|
}
|
|
53
50
|
catch (_) {
|
|
54
51
|
// This is a shallow clone.
|
|
55
|
-
await run(`git fetch
|
|
52
|
+
await run(`git fetch ${settings_1.sourceRemote} ${settings_1.sourceBranch}`);
|
|
56
53
|
await run(`git branch ${settings_1.sourceBranch} FETCH_HEAD`);
|
|
57
54
|
}
|
|
58
55
|
let diff = (await run(`git diff ${settings_1.sourceBranch} --name-status`)).trim();
|
|
@@ -72,47 +69,51 @@ async function gitDiff(log, definitelyTypedPath) {
|
|
|
72
69
|
}
|
|
73
70
|
}
|
|
74
71
|
exports.gitDiff = gitDiff;
|
|
75
|
-
/** Returns all immediate subdirectories of the root directory that have
|
|
76
|
-
function
|
|
72
|
+
/** Returns all immediate subdirectories of the root directory that have been deleted. */
|
|
73
|
+
function gitDeletions(diffs) {
|
|
77
74
|
const changedPackages = new Map();
|
|
75
|
+
const errors = [];
|
|
78
76
|
for (const diff of diffs) {
|
|
77
|
+
if (diff.status !== "D")
|
|
78
|
+
continue;
|
|
79
79
|
const dep = (0, packages_1.getDependencyFromFile)(diff.file);
|
|
80
80
|
if (dep) {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
81
|
+
const key = `${dep.typesDirectoryName}/v${formatDependencyVersion(dep.version)}`;
|
|
82
|
+
changedPackages.set(key, dep);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
errors.push(`Unexpected file deleted: ${diff.file}
|
|
86
|
+
When removing packages, you should only delete files that are a part of removed packages.`);
|
|
88
87
|
}
|
|
89
88
|
}
|
|
90
|
-
return
|
|
89
|
+
return errors.length ? { errors } : { ok: Array.from(changedPackages.values()) };
|
|
90
|
+
}
|
|
91
|
+
function formatDependencyVersion(version) {
|
|
92
|
+
return version === "*" ? "*" : (0, packages_1.formatTypingVersion)(version);
|
|
91
93
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const allPackages = await packages_1.AllPackages.read(dt);
|
|
94
|
+
async function getAffectedPackagesFromDiff(allPackages, definitelyTypedPath) {
|
|
95
|
+
const errors = [];
|
|
95
96
|
const diffs = await gitDiff(utils_1.consoleLogger.info, definitelyTypedPath);
|
|
96
97
|
if (diffs.find((d) => d.file === "notNeededPackages.json")) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
const deleteds = getNotNeededPackages(allPackages, diffs);
|
|
99
|
+
if ("errors" in deleteds)
|
|
100
|
+
errors.push(...deleteds.errors);
|
|
101
|
+
else
|
|
102
|
+
for (const deleted of deleteds.ok) {
|
|
103
|
+
errors.push(...(await checkNotNeededPackage(deleted)));
|
|
104
|
+
}
|
|
100
105
|
}
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
console.log(`Testing ${affected.
|
|
111
|
-
|
|
112
|
-
.toString()}`);
|
|
113
|
-
console.log(`Testing ${affected.dependentPackages.length} dependent packages: ${affected.dependentPackages
|
|
114
|
-
.map((t) => t.desc)
|
|
115
|
-
.toString()}`);
|
|
106
|
+
const deletions = gitDeletions(diffs);
|
|
107
|
+
if ("errors" in deletions) {
|
|
108
|
+
errors.push(...deletions.errors);
|
|
109
|
+
return errors;
|
|
110
|
+
}
|
|
111
|
+
if (errors.length) {
|
|
112
|
+
return errors;
|
|
113
|
+
}
|
|
114
|
+
const affected = await (0, get_affected_packages_1.getAffectedPackages)(allPackages, deletions.ok, definitelyTypedPath);
|
|
115
|
+
console.log(`Testing ${affected.packageNames.size} changed packages: ${(0, util_1.inspect)(affected.packageNames)}`);
|
|
116
|
+
console.log(`Testing ${affected.dependents.size} dependent packages: ${(0, util_1.inspect)(affected.dependents)}`);
|
|
116
117
|
return affected;
|
|
117
118
|
}
|
|
118
119
|
exports.getAffectedPackagesFromDiff = getAffectedPackagesFromDiff;
|
|
@@ -122,24 +123,35 @@ exports.getAffectedPackagesFromDiff = getAffectedPackagesFromDiff;
|
|
|
122
123
|
* 3. `name@asOfVersion` must exist on npm
|
|
123
124
|
*/
|
|
124
125
|
async function checkNotNeededPackage(unneeded) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
const errors = [];
|
|
127
|
+
const replacementPackage = await pacote
|
|
128
|
+
.manifest(`${unneeded.libraryName}@${unneeded.version}`, { cache: utils_1.cacheDir })
|
|
129
|
+
.catch((reason) => {
|
|
130
|
+
if (reason.code === "E404")
|
|
131
|
+
return `The entry for ${unneeded.name} in notNeededPackages.json has
|
|
128
132
|
"libraryName": "${unneeded.libraryName}", but there is no npm package with this name.
|
|
129
|
-
Unneeded packages have to be replaced with a package on npm
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
: reason;
|
|
133
|
+
Unneeded packages have to be replaced with a package on npm.`;
|
|
134
|
+
else if (reason.code === "ETARGET")
|
|
135
|
+
return `The specified version ${unneeded.version} of ${unneeded.libraryName} is not on npm.`;
|
|
136
|
+
else
|
|
137
|
+
throw reason;
|
|
135
138
|
}); // eg @babel/parser
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
139
|
+
if (typeof replacementPackage === "string")
|
|
140
|
+
errors.push(replacementPackage);
|
|
141
|
+
const typings = await pacote.manifest(unneeded.name, { cache: utils_1.cacheDir }).catch((reason) => {
|
|
142
|
+
if (reason.code === "E404")
|
|
143
|
+
return `Unexpected error: @types package not found for ${unneeded.name}`;
|
|
144
|
+
else
|
|
145
|
+
throw reason;
|
|
140
146
|
}); // eg @types/babel__parser
|
|
141
|
-
|
|
142
|
-
|
|
147
|
+
if (typeof typings === "string") {
|
|
148
|
+
errors.push(typings);
|
|
149
|
+
return errors;
|
|
150
|
+
}
|
|
151
|
+
if (!semver.gt(unneeded.version, typings.version))
|
|
152
|
+
errors.push(`The specified version ${unneeded.version} of ${unneeded.libraryName} must be newer than the version
|
|
153
|
+
it is supposed to replace, ${typings.version} of ${unneeded.name}.`);
|
|
154
|
+
return errors;
|
|
143
155
|
}
|
|
144
156
|
exports.checkNotNeededPackage = checkNotNeededPackage;
|
|
145
157
|
/**
|
|
@@ -147,23 +159,23 @@ exports.checkNotNeededPackage = checkNotNeededPackage;
|
|
|
147
159
|
* 2. Make sure that all deleted packages in notNeededPackages have no files left.
|
|
148
160
|
*/
|
|
149
161
|
function getNotNeededPackages(allPackages, diffs) {
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
162
|
+
const deletions = gitDeletions(diffs);
|
|
163
|
+
if ("errors" in deletions)
|
|
164
|
+
return deletions;
|
|
165
|
+
const deletedPackages = new Set(deletions.ok.map((p) => (0, utils_1.assertDefined)(p.typesDirectoryName)));
|
|
166
|
+
const notNeededs = [];
|
|
167
|
+
const errors = [];
|
|
168
|
+
for (const p of deletedPackages) {
|
|
169
|
+
const hasTyping = allPackages.hasTypingFor({ typesDirectoryName: p, version: "*" });
|
|
156
170
|
const notNeeded = allPackages.getNotNeededPackage(p);
|
|
157
|
-
if (hasTyping) {
|
|
158
|
-
|
|
159
|
-
throw new Error(`Please delete all files in ${p} when adding it to notNeededPackages.json.`);
|
|
160
|
-
}
|
|
161
|
-
return undefined;
|
|
171
|
+
if (hasTyping && notNeeded) {
|
|
172
|
+
errors.push(`Please delete all files in ${p} when adding it to notNeededPackages.json.`);
|
|
162
173
|
}
|
|
163
|
-
else {
|
|
164
|
-
|
|
174
|
+
else if (notNeeded) {
|
|
175
|
+
notNeededs.push(notNeeded);
|
|
165
176
|
}
|
|
166
|
-
}
|
|
177
|
+
}
|
|
178
|
+
return errors.length ? { errors } : { ok: notNeededs };
|
|
167
179
|
}
|
|
168
180
|
exports.getNotNeededPackages = getNotNeededPackages;
|
|
169
181
|
//# sourceMappingURL=git.js.map
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ const definition_parser_1 = require("./definition-parser");
|
|
|
9
9
|
const path_1 = require("path");
|
|
10
10
|
// This file is "called" by runWithChildProcesses from parse-definition.ts
|
|
11
11
|
exports.definitionParserWorkerFilename = __filename;
|
|
12
|
-
if (
|
|
12
|
+
if (require.main === module) {
|
|
13
13
|
process.on("message", (message) => {
|
|
14
14
|
assert(process.argv.length === 3);
|
|
15
15
|
const typesPath = process.argv[2];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-parser-worker.js","sourceRoot":"","sources":["../../src/lib/definition-parser-worker.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAClC,mCAAoC;AACpC,kDAA2D;AAC3D,kEAA6E;AAC7E,2DAAoD;AACpD,+BAA+B;AAE/B,0EAA0E;AAC7D,QAAA,8BAA8B,GAAG,UAAU,CAAC;AAEzD,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"definition-parser-worker.js","sourceRoot":"","sources":["../../src/lib/definition-parser-worker.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAClC,mCAAoC;AACpC,kDAA2D;AAC3D,kEAA6E;AAC7E,2DAAoD;AACpD,+BAA+B;AAE/B,0EAA0E;AAC7D,QAAA,8BAA8B,GAAG,UAAU,CAAC;AAEzD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;QAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,kDAAkD;QAClD,IAAA,yBAAiB,EAAC,KAAK,IAAI,EAAE;YAC3B,KAAK,MAAM,WAAW,IAAI,OAA4B,EAAE;gBACtD,MAAM,IAAI,GAAG,MAAM,IAAA,iCAAa,EAAC,WAAW,EAAE,IAAA,yDAAkC,EAAC,IAAA,cAAO,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACtG,OAAO,CAAC,IAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;aACtC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;CACJ"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { DependencyVersion, TypingsVersionsRaw, DirectoryParsedTypingVersion } from "../packages";
|
|
2
1
|
import { FS } from "@definitelytyped/utils";
|
|
3
|
-
|
|
2
|
+
import { DirectoryParsedTypingVersion, TypingsVersionsRaw } from "../packages";
|
|
3
|
+
export declare function getTypingInfo(packageName: string, dt: FS): Promise<TypingsVersionsRaw | {
|
|
4
|
+
errors: string[];
|
|
5
|
+
}>;
|
|
4
6
|
/**
|
|
5
7
|
* Parses a directory name into a version that either holds a single major version or a major and minor version.
|
|
6
8
|
*
|
|
@@ -12,13 +14,4 @@ export declare function getTypingInfo(packageName: string, dt: FS): Promise<Typi
|
|
|
12
14
|
* ```
|
|
13
15
|
*/
|
|
14
16
|
export declare function parseVersionFromDirectoryName(directoryName: string | undefined): DirectoryParsedTypingVersion | undefined;
|
|
15
|
-
/**
|
|
16
|
-
* Like `parseVersionFromDirectoryName`, but the leading 'v' is optional,
|
|
17
|
-
* and falls back to '*' if the input format is not parseable.
|
|
18
|
-
*/
|
|
19
|
-
export declare function tryParsePackageVersion(versionString: string | undefined): DependencyVersion;
|
|
20
|
-
/**
|
|
21
|
-
* Like `tryParsePackageVersion`, but throws if the input format is not parseable.
|
|
22
|
-
*/
|
|
23
|
-
export declare function parsePackageVersion(versionString: string): DirectoryParsedTypingVersion;
|
|
24
17
|
export declare function readFileAndThrowOnBOM(fileName: string, fs: FS): string;
|