@tamagui/static 2.0.0-rc.4 → 2.0.0-rc.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/check-dep-versions.cjs +201 -96
- package/dist/checkDeps.cjs +250 -46
- package/dist/constants.cjs +32 -30
- package/dist/exports.cjs +18 -13
- package/dist/extractor/accessSafe.cjs +25 -23
- package/dist/extractor/babelParse.cjs +30 -28
- package/dist/extractor/buildClassName.cjs +59 -35
- package/dist/extractor/bundle.cjs +177 -101
- package/dist/extractor/bundleConfig.cjs +554 -167
- package/dist/extractor/concatClassName.cjs +41 -29
- package/dist/extractor/createEvaluator.cjs +54 -41
- package/dist/extractor/createExtractor.cjs +1400 -581
- package/dist/extractor/createLogger.cjs +30 -25
- package/dist/extractor/detectModuleFormat.cjs +55 -0
- package/dist/extractor/ensureImportingConcat.cjs +31 -25
- package/dist/extractor/errors.cjs +12 -10
- package/dist/extractor/esbuildAliasPlugin.cjs +28 -16
- package/dist/extractor/esbuildTsconfigPaths.cjs +60 -36
- package/dist/extractor/evaluateAstNode.cjs +104 -59
- package/dist/extractor/extractHelpers.cjs +130 -67
- package/dist/extractor/extractMediaStyle.cjs +110 -69
- package/dist/extractor/extractToClassNames.cjs +337 -229
- package/dist/extractor/extractToNative.cjs +248 -154
- package/dist/extractor/findTopmostFunction.cjs +22 -13
- package/dist/extractor/generatedUid.cjs +39 -28
- package/dist/extractor/getPrefixLogs.cjs +12 -10
- package/dist/extractor/getPropValueFromAttributes.cjs +52 -34
- package/dist/extractor/getSourceModule.cjs +73 -37
- package/dist/extractor/getStaticBindingsForScope.cjs +131 -68
- package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +20 -14
- package/dist/extractor/hasTopLevelAwait.cjs +62 -0
- package/dist/extractor/hoistClassNames.cjs +46 -32
- package/dist/extractor/literalToAst.cjs +67 -42
- package/dist/extractor/loadFile.cjs +9 -3
- package/dist/extractor/loadTamagui.cjs +149 -104
- package/dist/extractor/logLines.cjs +27 -19
- package/dist/extractor/normalizeTernaries.cjs +66 -44
- package/dist/extractor/propsToFontFamilyCache.cjs +15 -11
- package/dist/extractor/regenerateConfig.cjs +109 -81
- package/dist/extractor/removeUnusedHooks.cjs +73 -41
- package/dist/extractor/timer.cjs +23 -14
- package/dist/extractor/validHTMLAttributes.cjs +61 -59
- package/dist/extractor/watchTamaguiConfig.cjs +35 -23
- package/dist/getPragmaOptions.cjs +38 -19
- package/dist/helpers/memoize.cjs +24 -16
- package/dist/helpers/requireTamaguiCore.cjs +22 -15
- package/dist/index.cjs +26 -24
- package/dist/registerRequire.cjs +167 -65
- package/dist/server.cjs +35 -28
- package/dist/types.cjs +7 -5
- package/dist/worker.cjs +62 -40
- package/package.json +26 -22
- package/src/checkDeps.ts +305 -68
- package/src/exports.ts +1 -0
- package/src/extractor/babelParse.ts +1 -0
- package/src/extractor/bundle.ts +140 -37
- package/src/extractor/bundleConfig.ts +435 -61
- package/src/extractor/createExtractor.ts +283 -48
- package/src/extractor/detectModuleFormat.ts +42 -0
- package/src/extractor/esbuildTsconfigPaths.ts +6 -1
- package/src/extractor/extractToClassNames.ts +15 -9
- package/src/extractor/extractToNative.ts +66 -33
- package/src/extractor/hasTopLevelAwait.ts +28 -0
- package/src/extractor/loadTamagui.ts +2 -2
- package/src/getPragmaOptions.ts +6 -1
- package/src/registerRequire.ts +88 -8
- package/types/checkDeps.d.ts.map +1 -1
- package/types/exports.d.ts +1 -0
- package/types/exports.d.ts.map +1 -1
- package/types/extractor/babelParse.d.ts.map +1 -1
- package/types/extractor/bundle.d.ts +83 -1
- package/types/extractor/bundle.d.ts.map +1 -1
- package/types/extractor/bundleConfig.d.ts +15 -2
- package/types/extractor/bundleConfig.d.ts.map +1 -1
- package/types/extractor/createExtractor.d.ts.map +1 -1
- package/types/extractor/detectModuleFormat.d.ts +5 -0
- package/types/extractor/detectModuleFormat.d.ts.map +1 -0
- package/types/extractor/esbuildTsconfigPaths.d.ts +8 -0
- package/types/extractor/esbuildTsconfigPaths.d.ts.map +1 -1
- package/types/extractor/extractToClassNames.d.ts.map +1 -1
- package/types/extractor/extractToNative.d.ts.map +1 -1
- package/types/extractor/hasTopLevelAwait.d.ts +2 -0
- package/types/extractor/hasTopLevelAwait.d.ts.map +1 -0
- package/types/getPragmaOptions.d.ts.map +1 -1
- package/types/registerRequire.d.ts.map +1 -1
- package/dist/check-dep-versions.js +0 -389
- package/dist/check-dep-versions.js.map +0 -6
- package/dist/checkDeps.js +0 -60
- package/dist/checkDeps.js.map +0 -6
- package/dist/constants.js +0 -34
- package/dist/constants.js.map +0 -6
- package/dist/exports.js +0 -34
- package/dist/exports.js.map +0 -6
- package/dist/extractor/accessSafe.js +0 -47
- package/dist/extractor/accessSafe.js.map +0 -6
- package/dist/extractor/babelParse.js +0 -59
- package/dist/extractor/babelParse.js.map +0 -6
- package/dist/extractor/buildClassName.js +0 -72
- package/dist/extractor/buildClassName.js.map +0 -6
- package/dist/extractor/bundle.js +0 -135
- package/dist/extractor/bundle.js.map +0 -6
- package/dist/extractor/bundleConfig.js +0 -352
- package/dist/extractor/bundleConfig.js.map +0 -6
- package/dist/extractor/concatClassName.js +0 -69
- package/dist/extractor/concatClassName.js.map +0 -6
- package/dist/extractor/createEvaluator.js +0 -66
- package/dist/extractor/createEvaluator.js.map +0 -6
- package/dist/extractor/createExtractor.js +0 -1215
- package/dist/extractor/createExtractor.js.map +0 -6
- package/dist/extractor/createLogger.js +0 -32
- package/dist/extractor/createLogger.js.map +0 -6
- package/dist/extractor/ensureImportingConcat.js +0 -50
- package/dist/extractor/ensureImportingConcat.js.map +0 -6
- package/dist/extractor/errors.js +0 -22
- package/dist/extractor/errors.js.map +0 -6
- package/dist/extractor/esbuildAliasPlugin.js +0 -36
- package/dist/extractor/esbuildAliasPlugin.js.map +0 -6
- package/dist/extractor/esbuildTsconfigPaths.js +0 -79
- package/dist/extractor/esbuildTsconfigPaths.js.map +0 -6
- package/dist/extractor/evaluateAstNode.js +0 -99
- package/dist/extractor/evaluateAstNode.js.map +0 -6
- package/dist/extractor/extractHelpers.js +0 -108
- package/dist/extractor/extractHelpers.js.map +0 -6
- package/dist/extractor/extractMediaStyle.js +0 -123
- package/dist/extractor/extractMediaStyle.js.map +0 -6
- package/dist/extractor/extractToClassNames.js +0 -351
- package/dist/extractor/extractToClassNames.js.map +0 -6
- package/dist/extractor/extractToNative.js +0 -286
- package/dist/extractor/extractToNative.js.map +0 -6
- package/dist/extractor/findTopmostFunction.js +0 -32
- package/dist/extractor/findTopmostFunction.js.map +0 -6
- package/dist/extractor/generatedUid.js +0 -42
- package/dist/extractor/generatedUid.js.map +0 -6
- package/dist/extractor/getPrefixLogs.js +0 -24
- package/dist/extractor/getPrefixLogs.js.map +0 -6
- package/dist/extractor/getPropValueFromAttributes.js +0 -65
- package/dist/extractor/getPropValueFromAttributes.js.map +0 -6
- package/dist/extractor/getSourceModule.js +0 -62
- package/dist/extractor/getSourceModule.js.map +0 -6
- package/dist/extractor/getStaticBindingsForScope.js +0 -145
- package/dist/extractor/getStaticBindingsForScope.js.map +0 -6
- package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.js +0 -32
- package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.js.map +0 -6
- package/dist/extractor/hoistClassNames.js +0 -63
- package/dist/extractor/hoistClassNames.js.map +0 -6
- package/dist/extractor/literalToAst.js +0 -90
- package/dist/extractor/literalToAst.js.map +0 -6
- package/dist/extractor/loadFile.js +0 -14
- package/dist/extractor/loadFile.js.map +0 -6
- package/dist/extractor/loadTamagui.js +0 -306
- package/dist/extractor/loadTamagui.js.map +0 -6
- package/dist/extractor/logLines.js +0 -30
- package/dist/extractor/logLines.js.map +0 -6
- package/dist/extractor/normalizeTernaries.js +0 -61
- package/dist/extractor/normalizeTernaries.js.map +0 -6
- package/dist/extractor/propsToFontFamilyCache.js +0 -33
- package/dist/extractor/propsToFontFamilyCache.js.map +0 -6
- package/dist/extractor/regenerateConfig.js +0 -123
- package/dist/extractor/regenerateConfig.js.map +0 -6
- package/dist/extractor/removeUnusedHooks.js +0 -72
- package/dist/extractor/removeUnusedHooks.js.map +0 -6
- package/dist/extractor/timer.js +0 -38
- package/dist/extractor/timer.js.map +0 -6
- package/dist/extractor/validHTMLAttributes.js +0 -72
- package/dist/extractor/validHTMLAttributes.js.map +0 -6
- package/dist/extractor/watchTamaguiConfig.js +0 -57
- package/dist/extractor/watchTamaguiConfig.js.map +0 -6
- package/dist/getPragmaOptions.js +0 -46
- package/dist/getPragmaOptions.js.map +0 -6
- package/dist/helpers/memoize.js +0 -33
- package/dist/helpers/memoize.js.map +0 -6
- package/dist/helpers/requireTamaguiCore.js +0 -30
- package/dist/helpers/requireTamaguiCore.js.map +0 -6
- package/dist/index.js +0 -30
- package/dist/index.js.map +0 -6
- package/dist/registerRequire.js +0 -100
- package/dist/registerRequire.js.map +0 -6
- package/dist/server.js +0 -58
- package/dist/server.js.map +0 -6
- package/dist/setup.js +0 -1
- package/dist/setup.js.map +0 -6
- package/dist/types.js +0 -14
- package/dist/types.js.map +0 -6
- package/dist/worker.js +0 -72
- package/dist/worker.js.map +0 -6
|
@@ -3,61 +3,106 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
5
|
var __export = (target, all) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
13
14
|
get: () => from[key],
|
|
14
15
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
16
|
});
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
18
20
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
19
|
-
value:
|
|
21
|
+
value: true
|
|
20
22
|
}), mod);
|
|
21
23
|
var check_dep_versions_exports = {};
|
|
22
24
|
__export(check_dep_versions_exports, {
|
|
23
25
|
CDVC: () => CDVC
|
|
24
26
|
});
|
|
25
27
|
module.exports = __toCommonJS(check_dep_versions_exports);
|
|
26
|
-
var import_fast_glob = require("fast-glob")
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
var import_fast_glob = require("fast-glob");
|
|
29
|
+
var import_js_yaml = require("js-yaml");
|
|
30
|
+
var import_node_fs = require("node:fs");
|
|
31
|
+
var import_node_path = require("node:path");
|
|
30
32
|
function calculateVersionsForEachDependency(packages, depType = DEFAULT_DEP_TYPES) {
|
|
31
33
|
const dependenciesToVersionsSeen = /* @__PURE__ */new Map();
|
|
32
|
-
for (const package_ of packages)
|
|
34
|
+
for (const package_ of packages) {
|
|
35
|
+
recordDependencyVersionsForPackageJson(dependenciesToVersionsSeen, package_, depType);
|
|
36
|
+
}
|
|
33
37
|
return dependenciesToVersionsSeen;
|
|
34
38
|
}
|
|
35
39
|
function recordDependencyVersionsForPackageJson(dependenciesToVersionsSeen, package_, depType) {
|
|
36
|
-
if (package_.packageJson.name && package_.packageJson.version
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (depType.includes("
|
|
40
|
-
|
|
40
|
+
if (package_.packageJson.name && package_.packageJson.version) {
|
|
41
|
+
recordDependencyVersion(dependenciesToVersionsSeen, package_.packageJson.name, package_.packageJson.version, package_, true);
|
|
42
|
+
}
|
|
43
|
+
if (depType.includes("dependencies" /* dependencies */) && package_.packageJson.dependencies) {
|
|
44
|
+
for (const [dependency, dependencyVersion] of Object.entries(package_.packageJson.dependencies)) {
|
|
45
|
+
if (dependencyVersion) {
|
|
46
|
+
recordDependencyVersion(dependenciesToVersionsSeen, dependency, dependencyVersion, package_);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (depType.includes("devDependencies" /* devDependencies */) && package_.packageJson.devDependencies) {
|
|
51
|
+
for (const [dependency, dependencyVersion] of Object.entries(package_.packageJson.devDependencies)) {
|
|
52
|
+
if (dependencyVersion) {
|
|
53
|
+
recordDependencyVersion(dependenciesToVersionsSeen, dependency, dependencyVersion, package_);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (depType.includes("optionalDependencies" /* optionalDependencies */) && package_.packageJson.optionalDependencies) {
|
|
58
|
+
for (const [dependency, dependencyVersion] of Object.entries(package_.packageJson.optionalDependencies)) {
|
|
59
|
+
if (dependencyVersion) {
|
|
60
|
+
recordDependencyVersion(dependenciesToVersionsSeen, dependency, dependencyVersion, package_);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (depType.includes("peerDependencies" /* peerDependencies */) && package_.packageJson.peerDependencies) {
|
|
65
|
+
for (const [dependency, dependencyVersion] of Object.entries(package_.packageJson.peerDependencies)) {
|
|
66
|
+
if (dependencyVersion) {
|
|
67
|
+
recordDependencyVersion(dependenciesToVersionsSeen, dependency, dependencyVersion, package_);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (depType.includes("resolutions" /* resolutions */) && package_.packageJson.resolutions) {
|
|
72
|
+
for (const [dependency, dependencyVersion] of Object.entries(package_.packageJson.resolutions)) {
|
|
73
|
+
if (dependencyVersion) {
|
|
74
|
+
recordDependencyVersion(dependenciesToVersionsSeen, dependency, dependencyVersion, package_);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
41
78
|
}
|
|
42
|
-
function recordDependencyVersion(dependenciesToVersionsSeen, dependency, version, package_, isLocalPackageVersion =
|
|
43
|
-
dependenciesToVersionsSeen.has(dependency)
|
|
79
|
+
function recordDependencyVersion(dependenciesToVersionsSeen, dependency, version, package_, isLocalPackageVersion = false) {
|
|
80
|
+
if (!dependenciesToVersionsSeen.has(dependency)) {
|
|
81
|
+
dependenciesToVersionsSeen.set(dependency, []);
|
|
82
|
+
}
|
|
44
83
|
const list = dependenciesToVersionsSeen.get(dependency);
|
|
45
|
-
list
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
84
|
+
if (list) {
|
|
85
|
+
list.push({
|
|
86
|
+
package: package_,
|
|
87
|
+
version,
|
|
88
|
+
isLocalPackageVersion
|
|
89
|
+
});
|
|
90
|
+
}
|
|
50
91
|
}
|
|
51
92
|
function calculateDependenciesAndVersions(dependencyVersions) {
|
|
52
93
|
return [...dependencyVersions.entries()].sort((a, b) => a[0].localeCompare(b[0])).flatMap(([dependency, versionObjectsForDep]) => {
|
|
53
|
-
if (!versionObjectsForDep)
|
|
94
|
+
if (!versionObjectsForDep) {
|
|
95
|
+
return [];
|
|
96
|
+
}
|
|
54
97
|
let versions = versionObjectsForDep.filter(versionObject => !versionObject.isLocalPackageVersion).map(versionObject => versionObject.version);
|
|
55
|
-
const localPackageVersions = versionObjectsForDep.filter(versionObject => versionObject.isLocalPackageVersion).map(versionObject => versionObject.version)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
localPackageVersions.length === 1 && !allVersionsHaveWorkspacePrefix && hasIncompatibilityWithLocalPackageVersion
|
|
59
|
-
|
|
60
|
-
|
|
98
|
+
const localPackageVersions = versionObjectsForDep.filter(versionObject => versionObject.isLocalPackageVersion).map(versionObject => versionObject.version);
|
|
99
|
+
const allVersionsHaveWorkspacePrefix = versions.every(version => version.startsWith("workspace:"));
|
|
100
|
+
const hasIncompatibilityWithLocalPackageVersion = versions.some(version => localPackageVersions[0] !== version);
|
|
101
|
+
if (localPackageVersions.length === 1 && !allVersionsHaveWorkspacePrefix && hasIncompatibilityWithLocalPackageVersion) {
|
|
102
|
+
versions = [...versions, ...localPackageVersions];
|
|
103
|
+
}
|
|
104
|
+
const uniqueVersions = [...new Set(versions)];
|
|
105
|
+
const uniqueVersionsWithInfo = versionsObjectsWithSortedPackages(uniqueVersions, versionObjectsForDep);
|
|
61
106
|
return {
|
|
62
107
|
dependency,
|
|
63
108
|
versions: uniqueVersionsWithInfo
|
|
@@ -77,30 +122,63 @@ const HARDCODED_IGNORED_DEPENDENCIES = /* @__PURE__ */new Set(["//"
|
|
|
77
122
|
// May be used to add comments to package.json files.
|
|
78
123
|
]);
|
|
79
124
|
function filterOutIgnoredDependencies(mismatchingVersions, ignoredDependencies, includedDependencyPatterns) {
|
|
80
|
-
for (const ignoreDependency of ignoredDependencies)
|
|
81
|
-
|
|
125
|
+
for (const ignoreDependency of ignoredDependencies) {
|
|
126
|
+
if (!mismatchingVersions.some(mismatchingVersion => mismatchingVersion.dependency === ignoreDependency)) {
|
|
127
|
+
throw new Error(`Specified option '--ignore-dep ${ignoreDependency}', but no version mismatches detected for this dependency.`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (ignoredDependencies.length > 0 || includedDependencyPatterns.length > 0 || mismatchingVersions.some(mismatchingVersion => HARDCODED_IGNORED_DEPENDENCIES.has(mismatchingVersion.dependency))) {
|
|
131
|
+
return mismatchingVersions.filter(mismatchingVersion => !ignoredDependencies.includes(mismatchingVersion.dependency) && includedDependencyPatterns.some(ignoreDependencyPattern => mismatchingVersion.dependency.match(ignoreDependencyPattern)) && !HARDCODED_IGNORED_DEPENDENCIES.has(mismatchingVersion.dependency));
|
|
132
|
+
}
|
|
133
|
+
return mismatchingVersions;
|
|
82
134
|
}
|
|
83
135
|
function getPackages(root, ignorePackages, ignorePackagePatterns, ignorePaths, ignorePathPatterns) {
|
|
84
|
-
if (!Package.exists(root))
|
|
136
|
+
if (!Package.exists(root)) {
|
|
137
|
+
throw new Error("No package.json found at provided path.");
|
|
138
|
+
}
|
|
85
139
|
const packages = accumulatePackages(root, ["."]);
|
|
86
|
-
for (const ignoredPackage of ignorePackages)
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
140
|
+
for (const ignoredPackage of ignorePackages) {
|
|
141
|
+
if (!Package.some(packages, package_ => package_.name === ignoredPackage)) {
|
|
142
|
+
throw new Error(`Specified option '--ignore-package ${ignoredPackage}', but no such package detected in workspace.`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
for (const ignoredPackagePattern of ignorePackagePatterns) {
|
|
146
|
+
if (
|
|
147
|
+
// eslint-disable-next-line unicorn/no-array-method-this-argument,unicorn/no-array-callback-reference -- false positive
|
|
148
|
+
!Package.some(packages, package_ => ignoredPackagePattern.test(package_.name))) {
|
|
149
|
+
throw new Error(`Specified option '--ignore-package-pattern ${String(ignoredPackagePattern)}', but no matching packages detected in workspace.`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
for (const ignoredPath of ignorePaths) {
|
|
153
|
+
if (
|
|
154
|
+
// eslint-disable-next-line unicorn/no-array-method-this-argument,unicorn/no-array-callback-reference -- false positive
|
|
155
|
+
!Package.some(packages, package_ => package_.pathRelative.includes(ignoredPath))) {
|
|
156
|
+
throw new Error(`Specified option '--ignore-path ${ignoredPath}', but no matching paths detected in workspace.`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
for (const ignoredPathPattern of ignorePathPatterns) {
|
|
160
|
+
if (
|
|
161
|
+
// eslint-disable-next-line unicorn/no-array-method-this-argument,unicorn/no-array-callback-reference -- false positive
|
|
162
|
+
!Package.some(packages, package_ => ignoredPathPattern.test(package_.pathRelative))) {
|
|
163
|
+
throw new Error(`Specified option '--ignore-path-pattern ${String(ignoredPathPattern)}', but no matching paths detected in workspace.`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (ignorePackages.length > 0 || ignorePackagePatterns.length > 0 || ignorePaths.length > 0 || ignorePathPatterns.length > 0) {
|
|
167
|
+
return packages.filter(package_ => !ignorePackages.includes(package_.name) && !ignorePackagePatterns.some(ignorePackagePattern => package_.name.match(ignorePackagePattern)) && !ignorePaths.some(ignorePath => package_.pathRelative.includes(ignorePath)) && !ignorePathPatterns.some(ignorePathPattern => package_.pathRelative.match(ignorePathPattern)));
|
|
168
|
+
}
|
|
169
|
+
return packages;
|
|
97
170
|
}
|
|
98
171
|
function expandWorkspaces(root, workspacePatterns) {
|
|
99
|
-
return workspacePatterns.flatMap(workspace =>
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
172
|
+
return workspacePatterns.flatMap(workspace => {
|
|
173
|
+
if (!workspace.includes("*")) {
|
|
174
|
+
return [workspace];
|
|
175
|
+
}
|
|
176
|
+
return (0, import_fast_glob.globSync)(workspace, {
|
|
177
|
+
onlyDirectories: true,
|
|
178
|
+
cwd: root,
|
|
179
|
+
ignore: ["**/node_modules"]
|
|
180
|
+
});
|
|
181
|
+
});
|
|
104
182
|
}
|
|
105
183
|
function accumulatePackages(root, paths) {
|
|
106
184
|
const results = [];
|
|
@@ -126,20 +204,26 @@ class Package {
|
|
|
126
204
|
packageJsonEndsInNewline;
|
|
127
205
|
pnpmWorkspacePackages;
|
|
128
206
|
constructor(path, pathWorkspace) {
|
|
129
|
-
this.path = path
|
|
207
|
+
this.path = path;
|
|
208
|
+
this.pathWorkspace = pathWorkspace;
|
|
209
|
+
this.pathPackageJson = (0, import_node_path.join)(path, "package.json");
|
|
130
210
|
const packageJsonContents = (0, import_node_fs.readFileSync)(this.pathPackageJson, "utf8");
|
|
131
|
-
this.packageJsonEndsInNewline = packageJsonContents.endsWith(
|
|
132
|
-
|
|
211
|
+
this.packageJsonEndsInNewline = packageJsonContents.endsWith("\n");
|
|
212
|
+
this.packageJson = JSON.parse(packageJsonContents);
|
|
133
213
|
const pnpmWorkspacePath = (0, import_node_path.join)(path, "pnpm-workspace.yaml");
|
|
134
214
|
if ((0, import_node_fs.existsSync)(pnpmWorkspacePath)) {
|
|
135
|
-
const pnpmWorkspaceContents = (0, import_node_fs.readFileSync)(pnpmWorkspacePath, "utf8")
|
|
136
|
-
|
|
215
|
+
const pnpmWorkspaceContents = (0, import_node_fs.readFileSync)(pnpmWorkspacePath, "utf8");
|
|
216
|
+
const pnpmWorkspaceYaml = (0, import_js_yaml.load)(pnpmWorkspaceContents);
|
|
137
217
|
this.pnpmWorkspacePackages = pnpmWorkspaceYaml.packages;
|
|
138
218
|
}
|
|
139
219
|
}
|
|
140
220
|
get name() {
|
|
141
|
-
if (this.workspacePatterns.length > 0 && !this.packageJson.name)
|
|
142
|
-
|
|
221
|
+
if (this.workspacePatterns.length > 0 && !this.packageJson.name) {
|
|
222
|
+
return "(Root)";
|
|
223
|
+
}
|
|
224
|
+
if (!this.packageJson.name) {
|
|
225
|
+
throw new Error(`${this.pathPackageJson} missing \`name\``);
|
|
226
|
+
}
|
|
143
227
|
return this.packageJson.name;
|
|
144
228
|
}
|
|
145
229
|
/** Relative to workspace root. */
|
|
@@ -148,14 +232,21 @@ class Package {
|
|
|
148
232
|
}
|
|
149
233
|
get workspacePatterns() {
|
|
150
234
|
if (this.packageJson.workspaces) {
|
|
151
|
-
if (Array.isArray(this.packageJson.workspaces))
|
|
152
|
-
|
|
153
|
-
|
|
235
|
+
if (Array.isArray(this.packageJson.workspaces)) {
|
|
236
|
+
return this.packageJson.workspaces;
|
|
237
|
+
} else if (this.packageJson.workspaces.packages) {
|
|
238
|
+
if (!Array.isArray(this.packageJson.workspaces.packages)) {
|
|
239
|
+
throw new TypeError("package.json `workspaces.packages` is not a string array.");
|
|
240
|
+
}
|
|
154
241
|
return this.packageJson.workspaces.packages;
|
|
155
|
-
} else
|
|
242
|
+
} else {
|
|
243
|
+
throw new TypeError("package.json `workspaces` is not a string array.");
|
|
244
|
+
}
|
|
156
245
|
}
|
|
157
246
|
if (this.pnpmWorkspacePackages) {
|
|
158
|
-
if (!Array.isArray(this.pnpmWorkspacePackages))
|
|
247
|
+
if (!Array.isArray(this.pnpmWorkspacePackages)) {
|
|
248
|
+
throw new TypeError("pnpm-workspace.yaml `packages` is not a string array.");
|
|
249
|
+
}
|
|
159
250
|
return this.pnpmWorkspacePackages;
|
|
160
251
|
}
|
|
161
252
|
return [];
|
|
@@ -171,7 +262,14 @@ class Package {
|
|
|
171
262
|
return package1.name.localeCompare(package2.name);
|
|
172
263
|
}
|
|
173
264
|
}
|
|
174
|
-
var DEPENDENCY_TYPE = /* @__PURE__ */(DEPENDENCY_TYPE2 =>
|
|
265
|
+
var DEPENDENCY_TYPE = /* @__PURE__ */(DEPENDENCY_TYPE2 => {
|
|
266
|
+
DEPENDENCY_TYPE2["dependencies"] = "dependencies";
|
|
267
|
+
DEPENDENCY_TYPE2["devDependencies"] = "devDependencies";
|
|
268
|
+
DEPENDENCY_TYPE2["optionalDependencies"] = "optionalDependencies";
|
|
269
|
+
DEPENDENCY_TYPE2["peerDependencies"] = "peerDependencies";
|
|
270
|
+
DEPENDENCY_TYPE2["resolutions"] = "resolutions";
|
|
271
|
+
return DEPENDENCY_TYPE2;
|
|
272
|
+
})(DEPENDENCY_TYPE || {});
|
|
175
273
|
const DEFAULT_DEP_TYPES = ["dependencies" /* dependencies */, "devDependencies" /* devDependencies */, "optionalDependencies" /* optionalDependencies */, "resolutions" /* resolutions */
|
|
176
274
|
// peerDependencies is not included by default, see discussion in: https://github.com/bmish/check-dependency-version-consistency/issues/402
|
|
177
275
|
];
|
|
@@ -179,38 +277,42 @@ function check(path) {
|
|
|
179
277
|
const options = {
|
|
180
278
|
includeDepPattern: ["tamagui", "react-native-web-lite", "react-native-web-internals"]
|
|
181
279
|
};
|
|
182
|
-
if (options && options.depType && options.depType.some(dt => !Object.keys(DEPENDENCY_TYPE).includes(dt)))
|
|
280
|
+
if (options && options.depType && options.depType.some(dt => !Object.keys(DEPENDENCY_TYPE).includes(dt))) {
|
|
281
|
+
throw new Error(`Invalid depType provided. Choices are: ${Object.keys(DEPENDENCY_TYPE).join(", ")}.`);
|
|
282
|
+
}
|
|
183
283
|
const optionsWithDefaults = {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
284
|
+
fix: false,
|
|
285
|
+
ignoreDep: [],
|
|
286
|
+
includeDepPattern: [],
|
|
287
|
+
ignorePackage: [],
|
|
288
|
+
ignorePackagePattern: [],
|
|
289
|
+
ignorePath: [],
|
|
290
|
+
ignorePathPattern: [],
|
|
291
|
+
...options,
|
|
292
|
+
// Fallback to default if no depType(s) provided.
|
|
293
|
+
depType: options && options.depType && options.depType.length > 0 ? options.depType : DEFAULT_DEP_TYPES
|
|
294
|
+
};
|
|
295
|
+
const packages = getPackages(path, optionsWithDefaults.ignorePackage, optionsWithDefaults.ignorePackagePattern.map(s => new RegExp(s)), optionsWithDefaults.ignorePath, optionsWithDefaults.ignorePathPattern.map(s => new RegExp(s)));
|
|
296
|
+
const dependencies = calculateVersionsForEachDependency(packages, optionsWithDefaults.depType.map(dt => DEPENDENCY_TYPE[dt])
|
|
297
|
+
// Convert string to enum.
|
|
298
|
+
);
|
|
299
|
+
const dependenciesAndVersions = calculateDependenciesAndVersions(dependencies);
|
|
300
|
+
const dependenciesAndVersionsWithMismatches = dependenciesAndVersions.filter(({
|
|
301
|
+
versions
|
|
302
|
+
}) => versions.length > 1);
|
|
303
|
+
const dependenciesAndVersionsWithoutIgnored = filterOutIgnoredDependencies(dependenciesAndVersions, optionsWithDefaults.ignoreDep, optionsWithDefaults.includeDepPattern.map(s => new RegExp(s)));
|
|
304
|
+
const dependenciesAndVersionsMismatchesWithoutIgnored = filterOutIgnoredDependencies(dependenciesAndVersionsWithMismatches, optionsWithDefaults.ignoreDep, optionsWithDefaults.includeDepPattern.map(s => new RegExp(s)));
|
|
205
305
|
return {
|
|
206
306
|
// Information about all dependencies.
|
|
207
307
|
dependencies: Object.fromEntries(dependenciesAndVersionsWithoutIgnored.map(({
|
|
208
308
|
dependency,
|
|
209
309
|
versions
|
|
210
|
-
}) =>
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
310
|
+
}) => {
|
|
311
|
+
return [dependency, {
|
|
312
|
+
isMismatching: dependenciesAndVersionsMismatchesWithoutIgnored.some(dep => dep.dependency === dependency),
|
|
313
|
+
versions
|
|
314
|
+
}];
|
|
315
|
+
}))
|
|
214
316
|
};
|
|
215
317
|
}
|
|
216
318
|
class CDVC {
|
|
@@ -260,8 +362,11 @@ function dependenciesToMismatchSummary(dependencies) {
|
|
|
260
362
|
dependency,
|
|
261
363
|
versions: value.versions
|
|
262
364
|
}));
|
|
263
|
-
if (mismatchingDependencyVersions.length === 0)
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
365
|
+
if (mismatchingDependencyVersions.length === 0) {
|
|
366
|
+
return "";
|
|
367
|
+
}
|
|
368
|
+
const tables = mismatchingDependencyVersions.map(object => {
|
|
369
|
+
return `${object.dependency} - ${object.versions.map(v => `${v.version}`).join(", ")}`;
|
|
370
|
+
}).join("");
|
|
371
|
+
return [`Found ${mismatchingDependencyVersions.length} ${mismatchingDependencyVersions.length === 1 ? "dependency" : "dependencies"} with mismatching versions across the workspace.`, tables].join("\n");
|
|
267
372
|
}
|