packtory 0.0.65 → 0.0.67
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/checks/check-runner.d.ts +6 -0
- package/checks/check-runner.d.ts.map +1 -0
- package/checks/check-runner.js +7 -6
- package/checks/check-runner.js.map +1 -1
- package/checks/rule.d.ts +5 -0
- package/checks/rule.d.ts.map +1 -0
- package/checks/rules/max-bundle-size.d.ts +3 -0
- package/checks/rules/max-bundle-size.d.ts.map +1 -0
- package/checks/rules/no-dev-dependency-imports.d.ts +4 -0
- package/checks/rules/no-dev-dependency-imports.d.ts.map +1 -0
- package/checks/rules/no-duplicated-files.d.ts +4 -0
- package/checks/rules/no-duplicated-files.d.ts.map +1 -0
- package/checks/rules/no-side-effects.d.ts +4 -0
- package/checks/rules/no-side-effects.d.ts.map +1 -0
- package/checks/rules/no-unused-bundle-dependencies.d.ts +4 -0
- package/checks/rules/no-unused-bundle-dependencies.d.ts.map +1 -0
- package/checks/rules/registry.d.ts +9 -0
- package/checks/rules/registry.d.ts.map +1 -0
- package/checks/rules/registry.js +13 -11
- package/checks/rules/registry.js.map +1 -1
- package/checks/rules/required-files.d.ts +4 -0
- package/checks/rules/required-files.d.ts.map +1 -0
- package/checks/rules/type-script-declaration-integrity.d.ts +3 -0
- package/checks/rules/type-script-declaration-integrity.d.ts.map +1 -0
- package/checks/rules/type-script-declaration-integrity.js +58 -0
- package/checks/rules/type-script-declaration-integrity.js.map +1 -0
- package/checks/rules/type-script-declaration-paths.js +56 -0
- package/checks/rules/type-script-declaration-paths.js.map +1 -0
- package/checks/rules/type-script-declaration-project.d.ts +2 -0
- package/checks/rules/type-script-declaration-project.d.ts.map +1 -0
- package/checks/rules/type-script-declaration-project.js +87 -0
- package/checks/rules/type-script-declaration-project.js.map +1 -0
- package/checks/rules/type-script-declaration-reachability.js +39 -0
- package/checks/rules/type-script-declaration-reachability.js.map +1 -0
- package/checks/rules/type-script-declaration-roots.js +31 -0
- package/checks/rules/type-script-declaration-roots.js.map +1 -0
- package/checks/rules/type-script-integrity.d.ts +6 -0
- package/checks/rules/type-script-integrity.d.ts.map +1 -0
- package/checks/rules/type-script-integrity.js +54 -0
- package/checks/rules/type-script-integrity.js.map +1 -0
- package/checks/rules/type-script-package-resolution.d.ts +5 -0
- package/checks/rules/type-script-package-resolution.d.ts.map +1 -0
- package/checks/rules/type-script-package-resolution.js +43 -0
- package/checks/rules/type-script-package-resolution.js.map +1 -0
- package/checks/rules/type-script-resolution-summary.js +54 -0
- package/checks/rules/type-script-resolution-summary.js.map +1 -0
- package/checks/rules/unique-target-paths.d.ts +4 -0
- package/checks/rules/unique-target-paths.d.ts.map +1 -0
- package/common/declaration-companion-paths.js +25 -0
- package/common/declaration-companion-paths.js.map +1 -0
- package/common/package-layout.js +9 -0
- package/common/package-layout.js.map +1 -1
- package/common/sort-values.js +8 -5
- package/common/sort-values.js.map +1 -1
- package/config/checks-schema.d.ts +4 -8
- package/config/checks-schema.d.ts.map +1 -1
- package/config/checks-schema.js +3 -3
- package/config/checks-schema.js.map +1 -1
- package/linker/linker.d.ts.map +1 -1
- package/linker/linker.js +24 -1
- package/linker/linker.js.map +1 -1
- package/linker/replacement-lookup.js +1 -1
- package/linker/replacement-lookup.js.map +1 -1
- package/package-surface/substitution-exports.js +37 -19
- package/package-surface/substitution-exports.js.map +1 -1
- package/package.json +1 -1
- package/packages/packtory.composition.js +24 -0
- package/packages/packtory.composition.js.map +1 -1
- package/packtory/packtory-resolve.js.map +1 -1
- package/packtory/packtory.d.ts +1 -0
- package/packtory/packtory.d.ts.map +1 -1
- package/packtory/packtory.js.map +1 -1
- package/packtory/resolved-package.d.ts +1 -1
- package/packtory/resolved-package.d.ts.map +1 -1
- package/packtory/resolved-package.js +38 -14
- package/packtory/resolved-package.js.map +1 -1
- package/report/release-diff/file-set-diff.d.ts +1 -1
- package/report/release-diff/file-set-diff.d.ts.map +1 -1
- package/report/release-diff/file-set-diff.js +16 -2
- package/report/release-diff/file-set-diff.js.map +1 -1
- package/resource-resolver/content.js +11 -2
- package/resource-resolver/content.js.map +1 -1
- package/resource-resolver/dependency-resolution-walker.js +90 -18
- package/resource-resolver/dependency-resolution-walker.js.map +1 -1
- package/resource-resolver/resource-resolver.js +1 -1
- package/resource-resolver/resource-resolver.js.map +1 -1
- package/sbom.cdx.json +5 -5
- package/checks/rules/are-the-types-wrong.js +0 -154
- package/checks/rules/are-the-types-wrong.js.map +0 -1
- package/file-manager/file-description-by-path.js +0 -8
- package/file-manager/file-description-by-path.js.map +0 -1
- package/report/release-diff/file-hunks.js +0 -10
- package/report/release-diff/file-hunks.js.map +0 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Result } from 'true-myth';
|
|
2
2
|
import { mapToObj } from 'remeda';
|
|
3
|
-
import {
|
|
3
|
+
import { collectPublicModuleUsage } from "../package-surface/public-module-usage.js";
|
|
4
4
|
const checkManifestVersion = '0.0.0';
|
|
5
5
|
export function createResolvedPackage(name, analyzedBundle, resolveOptions) {
|
|
6
6
|
return { name, analyzedBundle, resolveOptions };
|
|
7
7
|
}
|
|
8
|
-
function buildPublishedPackagesForChecks(dependencies, resolvedPackages) {
|
|
8
|
+
function buildPublishedPackagesForChecks(dependencies, resolvedPackages, publicModuleUsageByName) {
|
|
9
9
|
return new Map(resolvedPackages.map(function (resolvedPackage) {
|
|
10
10
|
const { analyzedBundle, resolveOptions } = resolvedPackage;
|
|
11
|
+
const substitutionPublicModuleSourcePaths = publicModuleUsageByName.get(resolvedPackage.name);
|
|
11
12
|
return [
|
|
12
13
|
resolvedPackage.name,
|
|
13
14
|
dependencies.versionManager.addVersion({
|
|
@@ -21,21 +22,36 @@ function buildPublishedPackagesForChecks(dependencies, resolvedPackages) {
|
|
|
21
22
|
return { name: bundleDependency.name, version: checkManifestVersion };
|
|
22
23
|
}),
|
|
23
24
|
additionalPackageJsonAttributes: resolveOptions.additionalPackageJsonAttributes,
|
|
24
|
-
allowMutableSpecifiers: resolveOptions.allowMutableSpecifiers
|
|
25
|
+
allowMutableSpecifiers: resolveOptions.allowMutableSpecifiers,
|
|
26
|
+
...substitutionPublicModuleSourcePaths === undefined
|
|
27
|
+
? {}
|
|
28
|
+
: { substitutionPublicModuleSourcePaths }
|
|
25
29
|
})
|
|
26
30
|
];
|
|
27
31
|
}));
|
|
28
32
|
}
|
|
29
33
|
function maybeBuildPublishedPackagesForChecks(dependencies, config, resolvedPackages) {
|
|
30
|
-
return config.checks?.
|
|
31
|
-
? buildPublishedPackagesForChecks(dependencies, resolvedPackages)
|
|
34
|
+
return config.checks?.typeScriptIntegrity?.enabled === true
|
|
35
|
+
? buildPublishedPackagesForChecks(dependencies, resolvedPackages, collectPublicModuleUsage(resolvedPackages.map(function (resolvedPackage) {
|
|
36
|
+
return resolvedPackage.analyzedBundle;
|
|
37
|
+
})))
|
|
32
38
|
: undefined;
|
|
33
39
|
}
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
function checkPackageIssue(error) {
|
|
41
|
+
return error instanceof Error ? error.message : String(error);
|
|
42
|
+
}
|
|
43
|
+
function tryBuildPublishedPackagesForChecks(dependencies, config, resolvedPackages) {
|
|
44
|
+
try {
|
|
45
|
+
return Result.ok(maybeBuildPublishedPackagesForChecks(dependencies, config, resolvedPackages));
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return Result.err({ type: 'checks', issues: [checkPackageIssue(error)] });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function createStaticCheckInputs(config, resolvedPackages) {
|
|
36
52
|
const perPackageSettings = new Map();
|
|
37
53
|
const commonMainPackageJson = config.commonPackageSettings?.mainPackageJson;
|
|
38
|
-
const
|
|
54
|
+
const packageConfigs = mapToObj(config.packages, function (packageConfig) {
|
|
39
55
|
perPackageSettings.set(packageConfig.name, packageConfig.checks);
|
|
40
56
|
return [
|
|
41
57
|
packageConfig.name,
|
|
@@ -48,13 +64,21 @@ export async function buildChecksResult(dependencies, validated, resolvedPackage
|
|
|
48
64
|
const bundles = resolvedPackages.map(function (resolvedPackage) {
|
|
49
65
|
return resolvedPackage.analyzedBundle;
|
|
50
66
|
});
|
|
51
|
-
|
|
52
|
-
|
|
67
|
+
return { bundles, packageConfigs, perPackageSettings };
|
|
68
|
+
}
|
|
69
|
+
export async function buildChecksResult(dependencies, validated, resolvedPackages) {
|
|
70
|
+
const { packtoryConfig: config } = validated;
|
|
71
|
+
const checkInputs = createStaticCheckInputs(config, resolvedPackages);
|
|
72
|
+
const publishedPackagesResult = tryBuildPublishedPackagesForChecks(dependencies, config, resolvedPackages);
|
|
73
|
+
if (publishedPackagesResult.isErr) {
|
|
74
|
+
return Result.err(publishedPackagesResult.error);
|
|
75
|
+
}
|
|
76
|
+
const checkIssues = await dependencies.runChecks({
|
|
53
77
|
settings: config.checks ?? {},
|
|
54
|
-
perPackageSettings,
|
|
55
|
-
packageConfigs:
|
|
56
|
-
bundles,
|
|
57
|
-
publishedPackages
|
|
78
|
+
perPackageSettings: checkInputs.perPackageSettings,
|
|
79
|
+
packageConfigs: checkInputs.packageConfigs,
|
|
80
|
+
bundles: checkInputs.bundles,
|
|
81
|
+
publishedPackages: publishedPackagesResult.value
|
|
58
82
|
});
|
|
59
83
|
if (checkIssues.length > 0) {
|
|
60
84
|
return Result.err({ type: 'checks', issues: checkIssues });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolved-package.js","sourceRoot":"","sources":["../../../../source/packtory/resolved-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"resolved-package.js","sourceRoot":"","sources":["../../../../source/packtory/resolved-package.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FileDescription } from '../../file-manager/file-description.ts';
|
|
2
|
-
import type
|
|
2
|
+
import { type PreviewDiffHunk } from '../preview/preview-document-diff.ts';
|
|
3
3
|
export declare const modifiedFileContentChangeKind: {
|
|
4
4
|
readonly binary: "binary";
|
|
5
5
|
readonly modeOnly: "mode-only";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-set-diff.d.ts","sourceRoot":"","sources":["../../../../../source/report/release-diff/file-set-diff.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC;AAC7E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"file-set-diff.d.ts","sourceRoot":"","sources":["../../../../../source/report/release-diff/file-set-diff.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC;AAC7E,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,qCAAqC;AAI7F,eAAO,MAAM,6BAA6B;;;;CAIhC;AAEV,eAAO,MAAM,uBAAuB;;;;CAI1B;AAEV,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAClC;AAED,KAAK,aAAa,GAAG;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAClC;AAED,KAAK,mBAAmB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,6BAA6B,CAAC,MAAM,CAAC;CAAE;AAC1F,KAAK,qBAAqB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,6BAA6B,CAAC,QAAQ,CAAC;CAAE;AAC9F,KAAK,iBAAiB,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,OAAO,6BAA6B,CAAC,IAAI,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;CAC9C;AACD,KAAK,0BAA0B,GAAG,SAAS;IACvC,mBAAmB;IACnB,qBAAqB;IACrB,iBAAiB;CACpB;AACD,KAAK,yBAAyB,GAAG,0BAA0B,CAAC,MAAM,CAAC;AAEnE,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC;CACrD;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;CAChD;AAED,KAAK,uBAAuB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC;AAErG,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC/B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { structuredPatch } from 'diff';
|
|
1
2
|
import { isTextDiffablePath } from "../../common/code-files.js";
|
|
2
3
|
import { areFileDescriptionEqual } from "../../file-manager/equal.js";
|
|
3
|
-
import {
|
|
4
|
-
|
|
4
|
+
import { toPreviewDiffHunk } from "../preview/preview-document-diff.js";
|
|
5
|
+
const diffContextLines = 3;
|
|
5
6
|
export const modifiedFileContentChangeKind = {
|
|
6
7
|
binary: 'binary',
|
|
7
8
|
modeOnly: 'mode-only',
|
|
@@ -15,6 +16,19 @@ export const packageReleaseDiffState = {
|
|
|
15
16
|
function sizeOf(content) {
|
|
16
17
|
return Buffer.byteLength(content);
|
|
17
18
|
}
|
|
19
|
+
function fileDescriptionByPath(files) {
|
|
20
|
+
const filesByPath = new Map();
|
|
21
|
+
for (const file of files) {
|
|
22
|
+
filesByPath.set(file.filePath, file);
|
|
23
|
+
}
|
|
24
|
+
return filesByPath;
|
|
25
|
+
}
|
|
26
|
+
function buildFileHunks(path, previousContent, newContent) {
|
|
27
|
+
const patch = structuredPatch(path, path, previousContent, newContent, undefined, undefined, {
|
|
28
|
+
context: diffContextLines
|
|
29
|
+
});
|
|
30
|
+
return patch.hunks.map(toPreviewDiffHunk);
|
|
31
|
+
}
|
|
18
32
|
function classifyContentChange(previous, current) {
|
|
19
33
|
if (previous.content === current.content) {
|
|
20
34
|
return { kind: modifiedFileContentChangeKind.modeOnly };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-set-diff.js","sourceRoot":"","sources":["../../../../../source/report/release-diff/file-set-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"file-set-diff.js","sourceRoot":"","sources":["../../../../../source/report/release-diff/file-set-diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,15 @@ function rejectCodeFile(targetFilePath) {
|
|
|
20
20
|
throw new Error(errorMessage);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
function rejectGeneratedManifestTarget(targetFilePath) {
|
|
24
|
+
if (targetFilePath === packageManifestFilePath) {
|
|
25
|
+
throw new Error(`additionalFiles must not target generated package manifest "${packageManifestFilePath}".`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function rejectAdditionalFileTarget(targetFilePath) {
|
|
29
|
+
rejectGeneratedManifestTarget(targetFilePath);
|
|
30
|
+
rejectCodeFile(targetFilePath);
|
|
31
|
+
}
|
|
23
32
|
function toSourceRelativeTargetPath(sourcesFolder, filePath) {
|
|
24
33
|
const targetFilePath = path.relative(sourcesFolder, filePath);
|
|
25
34
|
if (targetFilePath.startsWith('..') || path.isAbsolute(targetFilePath) || targetFilePath.length === 0) {
|
|
@@ -44,7 +53,7 @@ export function combineAllBundleFiles(sourcesFolder, localDependencies, addition
|
|
|
44
53
|
});
|
|
45
54
|
const additionalContents = additionalFiles.map(function (additionalFile) {
|
|
46
55
|
if (typeof additionalFile === 'string') {
|
|
47
|
-
|
|
56
|
+
rejectAdditionalFileTarget(additionalFile);
|
|
48
57
|
const sourceFilePath = path.join(sourcesFolder, additionalFile);
|
|
49
58
|
const targetFilePath = additionalFile;
|
|
50
59
|
return {
|
|
@@ -57,7 +66,7 @@ export function combineAllBundleFiles(sourcesFolder, localDependencies, addition
|
|
|
57
66
|
if (path.isAbsolute(additionalFile.targetFilePath)) {
|
|
58
67
|
throw new Error('The targetFilePath must be relative');
|
|
59
68
|
}
|
|
60
|
-
|
|
69
|
+
rejectAdditionalFileTarget(additionalFile.targetFilePath);
|
|
61
70
|
return {
|
|
62
71
|
sourceFilePath: prependSourcesFolderIfNecessary(sourcesFolder, additionalFile.sourceFilePath),
|
|
63
72
|
targetFilePath: additionalFile.targetFilePath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../../source/resource-resolver/content.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAItE,SAAS,+BAA+B,CAAC,aAAqB,EAAE,QAAgB;IAC5E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,cAAsB;IAC1C,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG;YACjB,0DAA0D,cAAc,IAAI;YAC5E,sEAAsE;YACtE,+DAA+D;YAC/D,iEAAiE;YACjE,qCAAqC;SACxC;aACI,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;AACL,CAAC;AAWD,SAAS,0BAA0B,CAAC,aAAqB,EAAE,QAAgB;IACvE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC9D,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpG,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,wCAAwC,aAAa,GAAG,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,aAAqB,EACrB,iBAAuC,EACvC,eAAgE;IAEhE,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,SAAS;QAChE,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB;YAChD,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,0BAA0B,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAuB;YAC3C,cAAc,EAAE,SAAS,CAAC,QAAQ;YAClC,cAAc;YACd,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,GAAG,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;YACxE,oBAAoB,EAAE,KAAK;YAC3B,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;SACxE,CAAC;QACF,OAAO,kBAAkB,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,cAAc;QACnE,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACrC,
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../../source/resource-resolver/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,96 @@
|
|
|
1
1
|
import { mergeDependencyFiles } from "../dependency-scanner/dependency-graph.js";
|
|
2
|
+
import { declarationCompanionCandidates } from "../common/declaration-companion-paths.js";
|
|
2
3
|
import { resolveRootsAndSurface } from "./resource-resolve-options.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
for (const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
4
|
+
function emptyDependencyFiles() {
|
|
5
|
+
return { externalDependencies: new Map(), localFiles: [] };
|
|
6
|
+
}
|
|
7
|
+
async function findReadableDeclarationCompanion(fileManager, filePath) {
|
|
8
|
+
for (const candidate of declarationCompanionCandidates(filePath)) {
|
|
9
|
+
const readability = await fileManager.checkReadability(candidate);
|
|
10
|
+
if (readability.isReadable) {
|
|
11
|
+
return candidate;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
async function scanDeclarationGraph(dependencies, options, entryFile, scannedDeclarationFiles) {
|
|
17
|
+
if (scannedDeclarationFiles.has(entryFile)) {
|
|
18
|
+
return emptyDependencyFiles();
|
|
19
|
+
}
|
|
20
|
+
scannedDeclarationFiles.record(entryFile);
|
|
21
|
+
const declarationDependencyGraph = await dependencies.dependencyScanner.scan(entryFile, options.sourcesFolder, {
|
|
22
|
+
includeSourceMapFiles: options.includeSourceMapFiles,
|
|
23
|
+
resolveDeclarationFiles: true,
|
|
24
|
+
mainPackageJson: options.mainPackageJson
|
|
25
|
+
});
|
|
26
|
+
return declarationDependencyGraph.flatten(entryFile);
|
|
27
|
+
}
|
|
28
|
+
async function resolveDeclarationCompanionDependencies(context, jsDependencies) {
|
|
29
|
+
let result = emptyDependencyFiles();
|
|
30
|
+
const nonRootLocalFiles = jsDependencies.localFiles.filter(function (localFile) {
|
|
31
|
+
return !context.rootJsSourceFilePaths.has(localFile.filePath);
|
|
32
|
+
});
|
|
33
|
+
for (const localFile of nonRootLocalFiles) {
|
|
34
|
+
const declarationCompanion = await findReadableDeclarationCompanion(context.dependencies.fileManager, localFile.filePath);
|
|
35
|
+
if (declarationCompanion !== undefined) {
|
|
36
|
+
result = mergeDependencyFiles(result, await scanDeclarationGraph(context.dependencies, context.options, declarationCompanion, context.scannedDeclarationFiles));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
function createDeclarationScanTracker() {
|
|
42
|
+
const scannedDeclarationFiles = new Set();
|
|
43
|
+
return {
|
|
44
|
+
has(filePath) {
|
|
45
|
+
return scannedDeclarationFiles.has(filePath);
|
|
46
|
+
},
|
|
47
|
+
record(filePath) {
|
|
48
|
+
scannedDeclarationFiles.add(filePath);
|
|
21
49
|
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
async function resolveJsDependencies(context, root) {
|
|
53
|
+
const { dependencies, options } = context;
|
|
54
|
+
const { sourcesFolder, includeSourceMapFiles, mainPackageJson } = options;
|
|
55
|
+
const jsDependencyGraph = await dependencies.dependencyScanner.scan(root.js, sourcesFolder, {
|
|
56
|
+
includeSourceMapFiles,
|
|
57
|
+
resolveDeclarationFiles: false,
|
|
58
|
+
mainPackageJson
|
|
59
|
+
});
|
|
60
|
+
return jsDependencyGraph.flatten(root.js);
|
|
61
|
+
}
|
|
62
|
+
async function resolveRootDeclarationDependencies(context, root) {
|
|
63
|
+
if (root.declarationFile !== undefined) {
|
|
64
|
+
return await scanDeclarationGraph(context.dependencies, context.options, root.declarationFile, context.scannedDeclarationFiles);
|
|
65
|
+
}
|
|
66
|
+
return emptyDependencyFiles();
|
|
67
|
+
}
|
|
68
|
+
async function resolveDependenciesForRoot(context, root) {
|
|
69
|
+
const jsDependencies = await resolveJsDependencies(context, root);
|
|
70
|
+
const declarationDependencies = await resolveRootDeclarationDependencies(context, root);
|
|
71
|
+
let dependencyFiles = mergeDependencyFiles(jsDependencies, declarationDependencies);
|
|
72
|
+
if (context.packageHasDeclarationRoots) {
|
|
73
|
+
dependencyFiles = mergeDependencyFiles(dependencyFiles, await resolveDeclarationCompanionDependencies(context, jsDependencies));
|
|
74
|
+
}
|
|
75
|
+
return dependencyFiles;
|
|
76
|
+
}
|
|
77
|
+
export async function resolveDependenciesForAllRoots(dependencies, options) {
|
|
78
|
+
const { roots } = resolveRootsAndSurface(options);
|
|
79
|
+
const rootValues = Object.values(roots);
|
|
80
|
+
const context = {
|
|
81
|
+
dependencies,
|
|
82
|
+
options,
|
|
83
|
+
packageHasDeclarationRoots: rootValues.some(function (root) {
|
|
84
|
+
return root.declarationFile !== undefined;
|
|
85
|
+
}),
|
|
86
|
+
rootJsSourceFilePaths: new Set(rootValues.map(function (root) {
|
|
87
|
+
return root.js;
|
|
88
|
+
})),
|
|
89
|
+
scannedDeclarationFiles: createDeclarationScanTracker()
|
|
90
|
+
};
|
|
91
|
+
let dependencyFiles = emptyDependencyFiles();
|
|
92
|
+
for (const root of rootValues) {
|
|
93
|
+
dependencyFiles = mergeDependencyFiles(dependencyFiles, await resolveDependenciesForRoot(context, root));
|
|
22
94
|
}
|
|
23
95
|
return dependencyFiles;
|
|
24
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-resolution-walker.js","sourceRoot":"","sources":["../../../../source/resource-resolver/dependency-resolution-walker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAwB,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"dependency-resolution-walker.js","sourceRoot":"","sources":["../../../../source/resource-resolver/dependency-resolution-walker.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export function createResourceResolver(dependencies) {
|
|
|
22
22
|
return {
|
|
23
23
|
async resolve(options) {
|
|
24
24
|
const normalized = resolveRootsAndSurface(options);
|
|
25
|
-
const resolvedDependencies = await resolveDependenciesForAllRoots(dependencyScanner, options);
|
|
25
|
+
const resolvedDependencies = await resolveDependenciesForAllRoots({ dependencyScanner, fileManager }, options);
|
|
26
26
|
const bundleFiles = combineAllBundleFiles(options.sourcesFolder, resolvedDependencies.localFiles, options.additionalFiles);
|
|
27
27
|
const contents = await Promise.all(bundleFiles.map(async function (bundleFile) {
|
|
28
28
|
const fileDescription = await resolveFileDescription(fileManager, bundleFile, options.mainPackageJson);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-resolver.js","sourceRoot":"","sources":["../../../../source/resource-resolver/resource-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAEnF,OAAO,EAAE,sBAAsB,EAA+B,MAAM,+BAA+B,CAAC;AAWpG,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAQvC,SAAS,wBAAwB,CAAC,eAA0D;IACxF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,4BAA4B,CAAC,IAAI,CAAC;AACtF,CAAC;AAED,KAAK,UAAU,sBAAsB,CACjC,WAAwB,EACxB,UAAsC,EACtC,eAA0D;IAE1D,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACjC,OAAO;YACH,OAAO,EAAE,wBAAwB,CAAC,eAAe,CAAC;YAClD,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,cAAc,EAAE,UAAU,CAAC,cAAc;SAC5C,CAAC;IACN,CAAC;IAED,OAAO,MAAM,WAAW,CAAC,sCAAsC,CAC3D,UAAU,CAAC,cAAc,EACzB,UAAU,CAAC,cAAc,CAC5B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,YAA0C;IAC7E,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;IAExD,OAAO;QACH,KAAK,CAAC,OAAO,CAAC,OAAO;YACjB,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,oBAAoB,GAAG,MAAM,8BAA8B,
|
|
1
|
+
{"version":3,"file":"resource-resolver.js","sourceRoot":"","sources":["../../../../source/resource-resolver/resource-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAEnF,OAAO,EAAE,sBAAsB,EAA+B,MAAM,+BAA+B,CAAC;AAWpG,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAQvC,SAAS,wBAAwB,CAAC,eAA0D;IACxF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,4BAA4B,CAAC,IAAI,CAAC;AACtF,CAAC;AAED,KAAK,UAAU,sBAAsB,CACjC,WAAwB,EACxB,UAAsC,EACtC,eAA0D;IAE1D,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACjC,OAAO;YACH,OAAO,EAAE,wBAAwB,CAAC,eAAe,CAAC;YAClD,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,cAAc,EAAE,UAAU,CAAC,cAAc;SAC5C,CAAC;IACN,CAAC;IAED,OAAO,MAAM,WAAW,CAAC,sCAAsC,CAC3D,UAAU,CAAC,cAAc,EACzB,UAAU,CAAC,cAAc,CAC5B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,YAA0C;IAC7E,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;IAExD,OAAO;QACH,KAAK,CAAC,OAAO,CAAC,OAAO;YACjB,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,oBAAoB,GAAG,MAAM,8BAA8B,CAC7D,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAClC,OAAO,CACV,CAAC;YAEF,MAAM,WAAW,GAAG,qBAAqB,CACrC,OAAO,CAAC,aAAa,EACrB,oBAAoB,CAAC,UAAU,EAC/B,OAAO,CAAC,eAAe,CAC1B,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,WAAW,CAAC,GAAG,CAAC,KAAK,WAAW,UAAU;gBACtC,MAAM,eAAe,GAAG,MAAM,sBAAsB,CAChD,WAAW,EACX,UAAU,EACV,OAAO,CAAC,eAAe,CAC1B,CAAC;gBAEF,OAAO;oBACH,eAAe;oBACf,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;oBACjD,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;oBACrD,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;iBACzE,CAAC;YACN,CAAC,CAAC,CACL,CAAC;YAEF,OAAO;gBACH,QAAQ;gBACR,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,oBAAoB,EAAE,oBAAoB,CAAC,oBAAoB;gBAC/D,KAAK,EAAE,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC;aAClD,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
|
package/sbom.cdx.json
CHANGED
|
@@ -9,16 +9,16 @@
|
|
|
9
9
|
{
|
|
10
10
|
"type": "application",
|
|
11
11
|
"name": "packtory",
|
|
12
|
-
"version": "0.0.
|
|
12
|
+
"version": "0.0.71"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
15
15
|
},
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "packtory",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/packtory@0.0.
|
|
21
|
-
"purl": "pkg:npm/packtory@0.0.
|
|
19
|
+
"version": "0.0.67",
|
|
20
|
+
"bom-ref": "pkg:npm/packtory@0.0.67",
|
|
21
|
+
"purl": "pkg:npm/packtory@0.0.67"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
@@ -379,7 +379,7 @@
|
|
|
379
379
|
"ref": "pkg:npm/npm-registry-fetch@20.0.1"
|
|
380
380
|
},
|
|
381
381
|
{
|
|
382
|
-
"ref": "pkg:npm/packtory@0.0.
|
|
382
|
+
"ref": "pkg:npm/packtory@0.0.67",
|
|
383
383
|
"dependsOn": [
|
|
384
384
|
"pkg:npm/@arethetypeswrong/core@0.18.5",
|
|
385
385
|
"pkg:npm/@cyclonedx/cyclonedx-library@10.1.0",
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { Package, checkPackage } from '@arethetypeswrong/core';
|
|
2
|
-
import { problemAffectsEntrypointResolution, problemAffectsResolutionKind, problemKindInfo } from '@arethetypeswrong/core/problems';
|
|
3
|
-
import { z } from 'zod/mini';
|
|
4
|
-
const ruleName = 'areTheTypesWrong';
|
|
5
|
-
const defaultProfile = 'esm-only';
|
|
6
|
-
const profileValues = ['strict', 'node16', 'esm-only'];
|
|
7
|
-
const profileSchema = z.enum(profileValues);
|
|
8
|
-
const globalSchema = z.strictObject({
|
|
9
|
-
enabled: z.boolean(),
|
|
10
|
-
profile: z.optional(profileSchema)
|
|
11
|
-
});
|
|
12
|
-
const perPackageSchema = z.strictObject({
|
|
13
|
-
profile: z.optional(profileSchema)
|
|
14
|
-
});
|
|
15
|
-
const requiredResolutionKindsByProfile = {
|
|
16
|
-
strict: ['node10', 'node16-cjs', 'node16-esm', 'bundler'],
|
|
17
|
-
node16: ['node16-cjs', 'node16-esm', 'bundler'],
|
|
18
|
-
'esm-only': ['node16-esm', 'bundler']
|
|
19
|
-
};
|
|
20
|
-
function resolveProfile(globalConfig, perPackageConfig) {
|
|
21
|
-
return perPackageConfig?.profile ?? globalConfig.profile ?? defaultProfile;
|
|
22
|
-
}
|
|
23
|
-
function toPackageFilePath(packageName, filePath) {
|
|
24
|
-
return `/node_modules/${packageName}/${filePath}`;
|
|
25
|
-
}
|
|
26
|
-
function createInMemoryPackage(publishedPackage) {
|
|
27
|
-
const files = {
|
|
28
|
-
[toPackageFilePath(publishedPackage.name, publishedPackage.manifestFile.filePath)]: publishedPackage.manifestFile.content
|
|
29
|
-
};
|
|
30
|
-
for (const entry of publishedPackage.contents) {
|
|
31
|
-
const filePath = toPackageFilePath(publishedPackage.name, entry.fileDescription.targetFilePath);
|
|
32
|
-
files[filePath] = entry.fileDescription.content;
|
|
33
|
-
}
|
|
34
|
-
return new Package(files, publishedPackage.name, publishedPackage.version);
|
|
35
|
-
}
|
|
36
|
-
function groupProblemsByKind(problems) {
|
|
37
|
-
const grouped = new Map();
|
|
38
|
-
for (const problem of problems) {
|
|
39
|
-
const existing = grouped.get(problem.kind);
|
|
40
|
-
if (existing === undefined) {
|
|
41
|
-
grouped.set(problem.kind, [problem]);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
existing.push(problem);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return grouped;
|
|
48
|
-
}
|
|
49
|
-
function listAffectedEntrypoints(problems, analysis, requiredResolutionKinds) {
|
|
50
|
-
const affectedEntrypoints = new Set();
|
|
51
|
-
for (const entrypoint of Object.keys(analysis.entrypoints)) {
|
|
52
|
-
for (const problem of problems) {
|
|
53
|
-
for (const resolutionKind of requiredResolutionKinds) {
|
|
54
|
-
if (problemAffectsEntrypointResolution(problem, entrypoint, resolutionKind, analysis)) {
|
|
55
|
-
affectedEntrypoints.add(entrypoint);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return Array.from(affectedEntrypoints);
|
|
61
|
-
}
|
|
62
|
-
function listAffectedResolutionKinds(problems, analysis, requiredResolutionKinds) {
|
|
63
|
-
const affectedResolutionKinds = new Set();
|
|
64
|
-
for (const resolutionKind of requiredResolutionKinds) {
|
|
65
|
-
for (const problem of problems) {
|
|
66
|
-
if (problemAffectsResolutionKind(problem, resolutionKind, analysis)) {
|
|
67
|
-
affectedResolutionKinds.add(resolutionKind);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return requiredResolutionKinds.filter(function (resolutionKind) {
|
|
72
|
-
return affectedResolutionKinds.has(resolutionKind);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
function formatQuotedList(prefix, values) {
|
|
76
|
-
return values
|
|
77
|
-
.map(function (value, index) {
|
|
78
|
-
const separator = index === 0 ? ` ${prefix} ` : ', ';
|
|
79
|
-
return `${separator}"${value}"`;
|
|
80
|
-
})
|
|
81
|
-
.join('');
|
|
82
|
-
}
|
|
83
|
-
function formatProblemSummary(input) {
|
|
84
|
-
const { packageName, kind, problems, analysis, requiredResolutionKinds } = input;
|
|
85
|
-
const problemInfo = problemKindInfo[kind];
|
|
86
|
-
const entrypoints = listAffectedEntrypoints(problems, analysis, requiredResolutionKinds);
|
|
87
|
-
const resolutionKinds = listAffectedResolutionKinds(problems, analysis, requiredResolutionKinds);
|
|
88
|
-
const findings = problems.length === 1 ? '' : ` (${problems.length} findings)`;
|
|
89
|
-
const entrypointList = formatQuotedList('affecting entrypoints', entrypoints);
|
|
90
|
-
const resolutionList = formatQuotedList('in resolutions', resolutionKinds);
|
|
91
|
-
return (`Package "${packageName}" failed the Are the Types Wrong check: ` +
|
|
92
|
-
`${problemInfo.shortDescription}${findings}${entrypointList}${resolutionList}`);
|
|
93
|
-
}
|
|
94
|
-
function summarizeProblems(packageName, analysis, activeProblems, requiredResolutionKinds) {
|
|
95
|
-
const summaries = Array.from(groupProblemsByKind(activeProblems), function ([kind, problems]) {
|
|
96
|
-
return formatProblemSummary({ packageName, kind, problems, analysis, requiredResolutionKinds });
|
|
97
|
-
});
|
|
98
|
-
return summaries;
|
|
99
|
-
}
|
|
100
|
-
function requiredResolutionKindsForProfile(profile) {
|
|
101
|
-
return requiredResolutionKindsByProfile[profile];
|
|
102
|
-
}
|
|
103
|
-
function filterActiveProblems(analysis, requiredResolutionKinds) {
|
|
104
|
-
return analysis.problems.filter(function (problem) {
|
|
105
|
-
return requiredResolutionKinds.some(function (resolutionKind) {
|
|
106
|
-
return problemAffectsResolutionKind(problem, resolutionKind, analysis);
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
function summarizeAnalysis(packageName, analysis, profile) {
|
|
111
|
-
const requiredResolutionKinds = requiredResolutionKindsForProfile(profile);
|
|
112
|
-
const activeProblems = filterActiveProblems(analysis, requiredResolutionKinds);
|
|
113
|
-
return summarizeProblems(packageName, analysis, activeProblems, requiredResolutionKinds);
|
|
114
|
-
}
|
|
115
|
-
function summarizeCheckResult(packageName, profile, result) {
|
|
116
|
-
if (result.types === false) {
|
|
117
|
-
return [`Package "${packageName}" does not expose TypeScript declarations`];
|
|
118
|
-
}
|
|
119
|
-
return summarizeAnalysis(packageName, result, profile);
|
|
120
|
-
}
|
|
121
|
-
async function summarizePublishedPackage(packageName, profile, publishedPackage) {
|
|
122
|
-
try {
|
|
123
|
-
const result = await checkPackage(createInMemoryPackage(publishedPackage));
|
|
124
|
-
return summarizeCheckResult(packageName, profile, result);
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
return [`Package "${packageName}" failed the Are the Types Wrong check: ${String(error)}`];
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
async function runForPackage(packageName, publishedPackage, profile) {
|
|
131
|
-
return summarizePublishedPackage(packageName, profile, publishedPackage);
|
|
132
|
-
}
|
|
133
|
-
async function run(params) {
|
|
134
|
-
const globalConfig = params.settings?.areTheTypesWrong;
|
|
135
|
-
if (globalConfig?.enabled !== true) {
|
|
136
|
-
return [];
|
|
137
|
-
}
|
|
138
|
-
const issuesByBundle = await Promise.all(params.bundles.map(async function (bundle) {
|
|
139
|
-
const publishedPackage = params.publishedPackages?.get(bundle.name);
|
|
140
|
-
if (publishedPackage === undefined) {
|
|
141
|
-
throw new Error(`Published package missing for "${bundle.name}"`);
|
|
142
|
-
}
|
|
143
|
-
const profile = resolveProfile(globalConfig, params.perPackageSettings.get(bundle.name)?.areTheTypesWrong);
|
|
144
|
-
return runForPackage(bundle.name, publishedPackage, profile);
|
|
145
|
-
}));
|
|
146
|
-
return issuesByBundle.flat();
|
|
147
|
-
}
|
|
148
|
-
export const areTheTypesWrongRule = {
|
|
149
|
-
name: ruleName,
|
|
150
|
-
globalSchema,
|
|
151
|
-
perPackageSchema,
|
|
152
|
-
run
|
|
153
|
-
};
|
|
154
|
-
//# sourceMappingURL=are-the-types-wrong.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"are-the-types-wrong.js","sourceRoot":"","sources":["../../../../../source/checks/rules/are-the-types-wrong.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-description-by-path.js","sourceRoot":"","sources":["../../../../source/file-manager/file-description-by-path.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,KAAiC;IACnE,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,WAAW,CAAC;AACvB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { structuredPatch } from 'diff';
|
|
2
|
-
import { toPreviewDiffHunk } from "../preview/preview-document-diff.js";
|
|
3
|
-
const diffContextLines = 3;
|
|
4
|
-
export function buildFileHunks(path, previousContent, newContent) {
|
|
5
|
-
const patch = structuredPatch(path, path, previousContent, newContent, undefined, undefined, {
|
|
6
|
-
context: diffContextLines
|
|
7
|
-
});
|
|
8
|
-
return patch.hunks.map(toPreviewDiffHunk);
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=file-hunks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-hunks.js","sourceRoot":"","sources":["../../../../../source/report/release-diff/file-hunks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,qCAAqC,CAAC;AAE9F,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,eAAuB,EAAE,UAAkB;IACpF,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE;QACzF,OAAO,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC9C,CAAC"}
|