yarn-why-duplicate 1.0.0 → 1.1.0
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/bin/yarn-why-duplicate.mjs +12 -21
- package/lib/displayDuplicates.js +19 -0
- package/lib/identifyDuplicates.js +40 -0
- package/lib/readAndParseYarnWhy.js +19 -0
- package/package.json +7 -3
- package/tests/fixtures/date-fns.txt +7 -0
- package/tests/fixtures/native-base.txt +9 -0
- package/tests/fixtures/type-fest.txt +58 -0
- package/tests/fixtures/validators.txt +19 -0
- package/tests/tests.js +95 -0
|
@@ -1,31 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {readAndParseYarnWhy} from '../lib/readAndParseYarnWhy.js';
|
|
4
|
+
import { identifyDuplicates } from '../lib/identifyDuplicates.js';
|
|
5
|
+
import { displayDuplicates } from '../lib/displayDuplicates.js';
|
|
4
6
|
|
|
5
7
|
const pkgName = process.argv.slice(2)[0];
|
|
6
8
|
|
|
7
|
-
const yarnWhyResult =
|
|
8
|
-
.split('\n')
|
|
9
|
-
.filter(Boolean)
|
|
10
|
-
.map((line) => JSON.parse(line));
|
|
11
|
-
|
|
12
|
-
const groupByVersions = new Map();
|
|
9
|
+
const yarnWhyResult = readAndParseYarnWhy(pkgName);
|
|
13
10
|
|
|
14
11
|
for (const line of yarnWhyResult) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
values.push(line.value);
|
|
12
|
+
if (line.type === 'error') {
|
|
13
|
+
console.error('yarn error: ' + line.data);
|
|
14
|
+
process.exit(1);
|
|
15
|
+
} else if (line.type === 'step') {
|
|
16
|
+
console.error('yarn 1 is not supported, use yarn berry (>=2)');
|
|
17
|
+
process.exit(1);
|
|
22
18
|
}
|
|
23
19
|
}
|
|
24
20
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
for (const value of values) {
|
|
28
|
-
console.log(`- ${value}`);
|
|
29
|
-
}
|
|
30
|
-
console.log();
|
|
31
|
-
}
|
|
21
|
+
const groupByVersions = identifyDuplicates(yarnWhyResult);
|
|
22
|
+
displayDuplicates(groupByVersions);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { structUtils, Configuration } from '@yarnpkg/core';
|
|
2
|
+
|
|
3
|
+
export const displayDuplicates = (groupByVersions, log = console.log, configuration = Configuration.create(process.cwd())) => {
|
|
4
|
+
if (!groupByVersions.length) {
|
|
5
|
+
log('No version found');
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
log(`Found ${groupByVersions.length} version${groupByVersions.length === 1 ? '' : 's'}:`)
|
|
10
|
+
log();
|
|
11
|
+
|
|
12
|
+
for (const { descriptor, sources } of groupByVersions) {
|
|
13
|
+
log(structUtils.prettyDescriptor(configuration,descriptor));
|
|
14
|
+
for (const { source, locator, descriptor } of sources) {
|
|
15
|
+
log(`- ${structUtils.prettyDescriptor(configuration,source)} (${structUtils.prettyDescriptor(configuration,descriptor)})`); // TODO prettyDescriptor from structUtils
|
|
16
|
+
}
|
|
17
|
+
log();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { structUtils } from '@yarnpkg/core';
|
|
2
|
+
import { compare as compareRange } from 'semver';
|
|
3
|
+
|
|
4
|
+
export const identifyDuplicates = (yarnWhyResult) => {
|
|
5
|
+
const groupByVersions = new Map();
|
|
6
|
+
|
|
7
|
+
for (const line of yarnWhyResult) {
|
|
8
|
+
const parsedValue = structUtils.parseDescriptor(line.value);
|
|
9
|
+
|
|
10
|
+
if (structUtils.isVirtualDescriptor(parsedValue)) {
|
|
11
|
+
// when looking for duplicates, we don't want to look at virtual packages
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
for (const [key, child] of Object.entries(line.children)) {
|
|
16
|
+
let byVersion = groupByVersions.get(key);
|
|
17
|
+
if (!byVersion) {
|
|
18
|
+
byVersion = {
|
|
19
|
+
descriptor: structUtils.parseDescriptor(key),
|
|
20
|
+
sources: [],
|
|
21
|
+
};
|
|
22
|
+
groupByVersions.set(key, byVersion);
|
|
23
|
+
}
|
|
24
|
+
byVersion.sources.push({
|
|
25
|
+
source: parsedValue, // source of the dependency
|
|
26
|
+
descriptor: structUtils.parseDescriptor(child.descriptor), // value parsed from package.json eg date-fns@npm:^1.29.0
|
|
27
|
+
locator: structUtils.parseLocator(child.locator), // value resolved by yarn eg date-fns@npm:1.30.1
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const groups = [...groupByVersions.values()];
|
|
33
|
+
groups.sort((a, b) => {
|
|
34
|
+
const aRange = structUtils.parseRange(a.descriptor.range);
|
|
35
|
+
const bRange = structUtils.parseRange(b.descriptor.range);
|
|
36
|
+
return -compareRange(aRange.selector, bRange.selector);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
return groups;
|
|
40
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { spawnSync } from 'child_process';
|
|
2
|
+
|
|
3
|
+
export const parseYarnWhy = (content) => {
|
|
4
|
+
return content.split('\n')
|
|
5
|
+
.filter(Boolean)
|
|
6
|
+
.map((line) => JSON.parse(line));
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export const readAndParseYarnWhy = (pkgName) => {
|
|
10
|
+
const { stdout, stderr } = spawnSync('yarn',['why', pkgName, '--json'], { encoding: 'utf8', 'stdio': 'pipe', pwd: process.cwd() });
|
|
11
|
+
if (stderr) {
|
|
12
|
+
try {
|
|
13
|
+
return parseYarnWhy(stderr);
|
|
14
|
+
} catch (err) {
|
|
15
|
+
throw new Error('yarn failed: ' + stderr);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return parseYarnWhy(stdout);
|
|
19
|
+
};
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yarn-why-duplicate",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Simple bin to know why a package is duplicated",
|
|
5
5
|
"main": "bin/yarn-why-duplicate.mjs",
|
|
6
|
+
"type": "module",
|
|
6
7
|
"scripts": {
|
|
7
8
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
9
|
},
|
|
@@ -22,5 +23,8 @@
|
|
|
22
23
|
"bugs": {
|
|
23
24
|
"url": "https://github.com/christophehurpeau/yarn-why-duplicate/issues"
|
|
24
25
|
},
|
|
25
|
-
"homepage": "https://github.com/christophehurpeau/yarn-why-duplicate#readme"
|
|
26
|
-
|
|
26
|
+
"homepage": "https://github.com/christophehurpeau/yarn-why-duplicate#readme",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@yarnpkg/core": "^4.0.0-rc.42"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{"value":"@ornikar/learner-apps-shared@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#workspace:@ornikar/learner-apps-shared","children":{"date-fns@npm:1.30.1":{"locator":"date-fns@npm:1.30.1","descriptor":"date-fns@npm:1.30.1"}}}
|
|
2
|
+
{"value":"@ornikar/learner-apps-shared@virtual:74b4ee70bd6a38b10f925bd66e65d0142e2ee6418cefa62443ad0a5071d5e3013ade614aacfa04ed7ad7eb898eb4f5d788c3b246824acc7ce546f40d4046456a#workspace:@ornikar/learner-apps-shared","children":{"date-fns@npm:1.30.1":{"locator":"date-fns@npm:1.30.1","descriptor":"date-fns@npm:1.30.1"}}}
|
|
3
|
+
{"value":"@ornikar/learner-apps-shared@workspace:@ornikar/learner-apps-shared","children":{"date-fns@npm:1.30.1":{"locator":"date-fns@npm:1.30.1","descriptor":"date-fns@npm:1.30.1"}}}
|
|
4
|
+
{"value":"@ornikar/learner-native-app@workspace:@ornikar/learner-native-app","children":{"date-fns@npm:1.30.1":{"locator":"date-fns@npm:1.30.1","descriptor":"date-fns@npm:1.30.1"}}}
|
|
5
|
+
{"value":"@ornikar/learner-webapp@workspace:@ornikar/learner-webapp","children":{"date-fns@npm:1.30.1":{"locator":"date-fns@npm:1.30.1","descriptor":"date-fns@npm:1.30.1"}}}
|
|
6
|
+
{"value":"date-fns-timezone@npm:0.1.4","children":{"date-fns@npm:1.30.1":{"locator":"date-fns@npm:1.30.1","descriptor":"date-fns@npm:^1.29.0"}}}
|
|
7
|
+
{"value":"listr-verbose-renderer@npm:0.5.0","children":{"date-fns@npm:1.30.1":{"locator":"date-fns@npm:1.30.1","descriptor":"date-fns@npm:^1.27.2"}}}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{"value":"@ornikar/kitt-universal@npm:9.47.2","children":{"native-base@patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.":{"locator":"native-base@patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.","descriptor":"native-base@patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A."}}}
|
|
2
|
+
{"value":"@ornikar/kitt-universal@virtual:0be1bed3bf44b487b4f72ea3695e753a329b20e6f34aad2b49c1ffe05302161a5820d406390378609bd21e85f867075b568762523dded617babeee2a4931d60c#npm:9.47.2","children":{"native-base@virtual:90f5f41ee6601135942900f486c3c5ffedde9284b4533392d4dff9f0f03959aa66453ebc8ca730d75ba9f32e751d5c196d42c4e9b160d95d68d8cc4c382bf9b9#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.":{"locator":"native-base@virtual:90f5f41ee6601135942900f486c3c5ffedde9284b4533392d4dff9f0f03959aa66453ebc8ca730d75ba9f32e751d5c196d42c4e9b160d95d68d8cc4c382bf9b9#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.","descriptor":"native-base@virtual:90f5f41ee6601135942900f486c3c5ffedde9284b4533392d4dff9f0f03959aa66453ebc8ca730d75ba9f32e751d5c196d42c4e9b160d95d68d8cc4c382bf9b9#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A."}}}
|
|
3
|
+
{"value":"@ornikar/kitt-universal@virtual:0ca324951f76c640d167f8be57292cc5427c8e53f9895c89483e077c606224ccbcf16ad9922d175a40513e38e935f54868149960f54484e24b48c8cccfab76e1#npm:9.47.2","children":{"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.":{"locator":"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.","descriptor":"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A."}}}
|
|
4
|
+
{"value":"@ornikar/kitt-universal@virtual:1136f75479f1c0368379cdac9e20ca0d345350ab0b4bc311d0e68cd11cf749e0e6c3da8127f098c07ca6c98279501ed797a99404d1a7d7b28228182a8666befd#npm:9.47.2","children":{"native-base@virtual:90f5f41ee6601135942900f486c3c5ffedde9284b4533392d4dff9f0f03959aa66453ebc8ca730d75ba9f32e751d5c196d42c4e9b160d95d68d8cc4c382bf9b9#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.":{"locator":"native-base@virtual:90f5f41ee6601135942900f486c3c5ffedde9284b4533392d4dff9f0f03959aa66453ebc8ca730d75ba9f32e751d5c196d42c4e9b160d95d68d8cc4c382bf9b9#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.","descriptor":"native-base@virtual:90f5f41ee6601135942900f486c3c5ffedde9284b4533392d4dff9f0f03959aa66453ebc8ca730d75ba9f32e751d5c196d42c4e9b160d95d68d8cc4c382bf9b9#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A."}}}
|
|
5
|
+
{"value":"@ornikar/kitt-universal@virtual:1f1cae68357607dff1de137d1818886277734c6ef3353ca79fcafc15661da2f5a24850b7813fd6c37767689b4ca26137572e6c5f677492fe71ecf7c4b6013047#npm:9.47.2","children":{"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.":{"locator":"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.","descriptor":"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A."}}}
|
|
6
|
+
{"value":"@ornikar/kitt-universal@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:9.47.2","children":{"native-base@virtual:7e32c6d530be59789f2b5bd604ab253edad99eca5686bf4aa54de4acfc450f1913bb49e8a06d399f730db201824476391d6c76c642188c6ce41996fd39ecdaa5#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.":{"locator":"native-base@virtual:7e32c6d530be59789f2b5bd604ab253edad99eca5686bf4aa54de4acfc450f1913bb49e8a06d399f730db201824476391d6c76c642188c6ce41996fd39ecdaa5#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.","descriptor":"native-base@virtual:7e32c6d530be59789f2b5bd604ab253edad99eca5686bf4aa54de4acfc450f1913bb49e8a06d399f730db201824476391d6c76c642188c6ce41996fd39ecdaa5#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A."}}}
|
|
7
|
+
{"value":"@ornikar/kitt-universal@virtual:74b4ee70bd6a38b10f925bd66e65d0142e2ee6418cefa62443ad0a5071d5e3013ade614aacfa04ed7ad7eb898eb4f5d788c3b246824acc7ce546f40d4046456a#npm:9.47.2","children":{"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.":{"locator":"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.","descriptor":"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A."}}}
|
|
8
|
+
{"value":"@ornikar/kitt-universal@virtual:a17044608ff370441880abc6c9644f8eab0c9711e8541578ef687648781bbafb9e2f16d4e9c8922e4f978da848d66ce5fd9ba4e4ccab272c7abd57eeea4a8499#npm:9.47.2","children":{"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.":{"locator":"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.","descriptor":"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A."}}}
|
|
9
|
+
{"value":"@ornikar/kitt-universal@virtual:a263e33b1a50d76cea6ded5941f5756223998e8d38de08d4b0717fd7d8bf285b7eb6b3009a326693a41b27b271e9ce1b5a82c32769ac357127bcb51edde55b1f#npm:9.47.2","children":{"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.":{"locator":"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.","descriptor":"native-base@virtual:52b0d29897f20bc016d2290033e1ba0da865e17e2ba48137dc23ae8a9b50c1163a6794c1ffc5ba320e3915131fd7441b1b39bbec567fcb06a150b36e61d8607a#patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A."}}}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{"value":"@ornikar/api-helpers@npm:4.9.8","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.3.0"}}}
|
|
2
|
+
{"value":"@ornikar/kitt-universal@npm:9.47.2","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
3
|
+
{"value":"@ornikar/kitt-universal@virtual:0be1bed3bf44b487b4f72ea3695e753a329b20e6f34aad2b49c1ffe05302161a5820d406390378609bd21e85f867075b568762523dded617babeee2a4931d60c#npm:9.47.2","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
4
|
+
{"value":"@ornikar/kitt-universal@virtual:0ca324951f76c640d167f8be57292cc5427c8e53f9895c89483e077c606224ccbcf16ad9922d175a40513e38e935f54868149960f54484e24b48c8cccfab76e1#npm:9.47.2","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
5
|
+
{"value":"@ornikar/kitt-universal@virtual:1136f75479f1c0368379cdac9e20ca0d345350ab0b4bc311d0e68cd11cf749e0e6c3da8127f098c07ca6c98279501ed797a99404d1a7d7b28228182a8666befd#npm:9.47.2","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
6
|
+
{"value":"@ornikar/kitt-universal@virtual:1f1cae68357607dff1de137d1818886277734c6ef3353ca79fcafc15661da2f5a24850b7813fd6c37767689b4ca26137572e6c5f677492fe71ecf7c4b6013047#npm:9.47.2","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
7
|
+
{"value":"@ornikar/kitt-universal@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:9.47.2","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
8
|
+
{"value":"@ornikar/kitt-universal@virtual:74b4ee70bd6a38b10f925bd66e65d0142e2ee6418cefa62443ad0a5071d5e3013ade614aacfa04ed7ad7eb898eb4f5d788c3b246824acc7ce546f40d4046456a#npm:9.47.2","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
9
|
+
{"value":"@ornikar/kitt-universal@virtual:a17044608ff370441880abc6c9644f8eab0c9711e8541578ef687648781bbafb9e2f16d4e9c8922e4f978da848d66ce5fd9ba4e4ccab272c7abd57eeea4a8499#npm:9.47.2","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
10
|
+
{"value":"@ornikar/kitt-universal@virtual:a263e33b1a50d76cea6ded5941f5756223998e8d38de08d4b0717fd7d8bf285b7eb6b3009a326693a41b27b271e9ce1b5a82c32769ac357127bcb51edde55b1f#npm:9.47.2","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
11
|
+
{"value":"@ornikar/kitt@npm:34.6.4","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
12
|
+
{"value":"@ornikar/kitt@virtual:0ca324951f76c640d167f8be57292cc5427c8e53f9895c89483e077c606224ccbcf16ad9922d175a40513e38e935f54868149960f54484e24b48c8cccfab76e1#npm:34.6.4","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
13
|
+
{"value":"@ornikar/kitt@virtual:da577c8f16da6474f3dba62af00535e709b51ddb3169861379b7841bdd1533b5977dc9d9554ac25a380f243246f8920d037a3e2cbe381f0d98e059beacc155ed#npm:34.6.4","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
14
|
+
{"value":"@ornikar/learner-apps-shared@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#workspace:@ornikar/learner-apps-shared","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:2.19.0"}}}
|
|
15
|
+
{"value":"@ornikar/learner-apps-shared@virtual:74b4ee70bd6a38b10f925bd66e65d0142e2ee6418cefa62443ad0a5071d5e3013ade614aacfa04ed7ad7eb898eb4f5d788c3b246824acc7ce546f40d4046456a#workspace:@ornikar/learner-apps-shared","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:2.19.0"}}}
|
|
16
|
+
{"value":"@ornikar/learner-apps-shared@workspace:@ornikar/learner-apps-shared","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:2.19.0"}}}
|
|
17
|
+
{"value":"@ornikar/learner-webapp@workspace:@ornikar/learner-webapp","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:2.19.0"}}}
|
|
18
|
+
{"value":"@ornikar/react-apollo@npm:5.7.3","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
19
|
+
{"value":"@ornikar/react-apollo@virtual:0ca324951f76c640d167f8be57292cc5427c8e53f9895c89483e077c606224ccbcf16ad9922d175a40513e38e935f54868149960f54484e24b48c8cccfab76e1#npm:5.7.3","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
20
|
+
{"value":"@ornikar/react-apollo@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:5.7.3","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
21
|
+
{"value":"@ornikar/react-app-error-provider@npm:7.10.0","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
22
|
+
{"value":"@ornikar/react-app-error-provider@virtual:0be1bed3bf44b487b4f72ea3695e753a329b20e6f34aad2b49c1ffe05302161a5820d406390378609bd21e85f867075b568762523dded617babeee2a4931d60c#npm:7.10.0","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
23
|
+
{"value":"@ornikar/react-app-error-provider@virtual:0ca324951f76c640d167f8be57292cc5427c8e53f9895c89483e077c606224ccbcf16ad9922d175a40513e38e935f54868149960f54484e24b48c8cccfab76e1#npm:7.10.0","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
24
|
+
{"value":"@ornikar/react-app-error-provider@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:7.10.0","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
25
|
+
{"value":"@ornikar/react-app-error-provider@virtual:74b4ee70bd6a38b10f925bd66e65d0142e2ee6418cefa62443ad0a5071d5e3013ade614aacfa04ed7ad7eb898eb4f5d788c3b246824acc7ce546f40d4046456a#npm:7.10.0","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
26
|
+
{"value":"@ornikar/react-app-error-provider@virtual:a263e33b1a50d76cea6ded5941f5756223998e8d38de08d4b0717fd7d8bf285b7eb6b3009a326693a41b27b271e9ce1b5a82c32769ac357127bcb51edde55b1f#npm:7.10.0","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
27
|
+
{"value":"@ornikar/react-forms@npm:13.4.12","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.3.0"}}}
|
|
28
|
+
{"value":"@ornikar/react-forms@virtual:6770e8087524c83554bada67a9fa4cb309227999c62fd9e0a8446680d3e08c41437b67326aaf58d9b680e0a5d9fad92496921281e9846e94d85c0deffdcef441#npm:13.4.12","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.3.0"}}}
|
|
29
|
+
{"value":"@ornikar/react-forms@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:13.4.12","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.3.0"}}}
|
|
30
|
+
{"value":"@ornikar/react-forms@virtual:cd4444764c288b532f422165f7e60a4431bd20c3cb04efb487d7ea857b10e04a1c2de14ae081851286c6600b42253b0cb167f5f2be42abd5ac9725dbc80da841#npm:13.4.12","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.3.0"}}}
|
|
31
|
+
{"value":"@ornikar/react-header@npm:12.6.4","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.3.0"}}}
|
|
32
|
+
{"value":"@ornikar/react-header@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:12.6.4","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.3.0"}}}
|
|
33
|
+
{"value":"@ornikar/react-mixpanel@npm:1.1.2","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
34
|
+
{"value":"@ornikar/react-mixpanel@virtual:0ca324951f76c640d167f8be57292cc5427c8e53f9895c89483e077c606224ccbcf16ad9922d175a40513e38e935f54868149960f54484e24b48c8cccfab76e1#npm:1.1.2","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
35
|
+
{"value":"@ornikar/react-mixpanel@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:1.1.2","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
36
|
+
{"value":"@ornikar/react-notification@npm:10.4.9","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.3.0"}}}
|
|
37
|
+
{"value":"@ornikar/react-notification@virtual:0ca324951f76c640d167f8be57292cc5427c8e53f9895c89483e077c606224ccbcf16ad9922d175a40513e38e935f54868149960f54484e24b48c8cccfab76e1#npm:10.4.9","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.3.0"}}}
|
|
38
|
+
{"value":"@ornikar/react-notification@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:10.4.9","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.3.0"}}}
|
|
39
|
+
{"value":"@ornikar/webapp-configs@npm:4.2.3","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
40
|
+
{"value":"@ornikar/webapp-configs@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:4.2.3","children":{"type-fest@npm:2.19.0":{"locator":"type-fest@npm:2.19.0","descriptor":"type-fest@npm:^2.0.0"}}}
|
|
41
|
+
{"value":"ansi-escapes@npm:4.3.2","children":{"type-fest@npm:0.21.3":{"locator":"type-fest@npm:0.21.3","descriptor":"type-fest@npm:^0.21.3"}}}
|
|
42
|
+
{"value":"boxen@npm:4.2.0","children":{"type-fest@npm:0.8.1":{"locator":"type-fest@npm:0.8.1","descriptor":"type-fest@npm:^0.8.1"}}}
|
|
43
|
+
{"value":"boxen@npm:5.1.2","children":{"type-fest@npm:0.20.2":{"locator":"type-fest@npm:0.20.2","descriptor":"type-fest@npm:^0.20.2"}}}
|
|
44
|
+
{"value":"check-package-dependencies@npm:6.3.1","children":{"type-fest@npm:3.5.3":{"locator":"type-fest@npm:3.5.3","descriptor":"type-fest@npm:^3.0.0"}}}
|
|
45
|
+
{"value":"globals@npm:13.20.0","children":{"type-fest@npm:0.20.2":{"locator":"type-fest@npm:0.20.2","descriptor":"type-fest@npm:^0.20.2"}}}
|
|
46
|
+
{"value":"load-json-file@npm:5.3.0","children":{"type-fest@npm:0.3.1":{"locator":"type-fest@npm:0.3.1","descriptor":"type-fest@npm:^0.3.0"}}}
|
|
47
|
+
{"value":"load-json-file@npm:6.2.0","children":{"type-fest@npm:0.6.0":{"locator":"type-fest@npm:0.6.0","descriptor":"type-fest@npm:^0.6.0"}}}
|
|
48
|
+
{"value":"meow@npm:8.1.2","children":{"type-fest@npm:0.18.1":{"locator":"type-fest@npm:0.18.1","descriptor":"type-fest@npm:^0.18.0"}}}
|
|
49
|
+
{"value":"meow@npm:9.0.0","children":{"type-fest@npm:0.18.1":{"locator":"type-fest@npm:0.18.1","descriptor":"type-fest@npm:^0.18.0"}}}
|
|
50
|
+
{"value":"msw@npm:0.29.0","children":{"type-fest@npm:1.4.0":{"locator":"type-fest@npm:1.4.0","descriptor":"type-fest@npm:^1.1.3"}}}
|
|
51
|
+
{"value":"read-pkg-up@npm:7.0.1","children":{"type-fest@npm:0.8.1":{"locator":"type-fest@npm:0.8.1","descriptor":"type-fest@npm:^0.8.1"}}}
|
|
52
|
+
{"value":"read-pkg@npm:5.2.0","children":{"type-fest@npm:0.6.0":{"locator":"type-fest@npm:0.6.0","descriptor":"type-fest@npm:^0.6.0"}}}
|
|
53
|
+
{"value":"serialize-error@npm:6.0.0","children":{"type-fest@npm:0.12.0":{"locator":"type-fest@npm:0.12.0","descriptor":"type-fest@npm:^0.12.0"}}}
|
|
54
|
+
{"value":"serialize-error@npm:7.0.1","children":{"type-fest@npm:0.13.1":{"locator":"type-fest@npm:0.13.1","descriptor":"type-fest@npm:^0.13.1"}}}
|
|
55
|
+
{"value":"stacktrace-parser@npm:0.1.10","children":{"type-fest@npm:0.7.1":{"locator":"type-fest@npm:0.7.1","descriptor":"type-fest@npm:^0.7.1"}}}
|
|
56
|
+
{"value":"tempy@npm:0.3.0","children":{"type-fest@npm:0.3.1":{"locator":"type-fest@npm:0.3.1","descriptor":"type-fest@npm:^0.3.1"}}}
|
|
57
|
+
{"value":"tempy@npm:0.7.1","children":{"type-fest@npm:0.16.0":{"locator":"type-fest@npm:0.16.0","descriptor":"type-fest@npm:^0.16.0"}}}
|
|
58
|
+
{"value":"write-pkg@npm:4.0.0","children":{"type-fest@npm:0.4.1":{"locator":"type-fest@npm:0.4.1","descriptor":"type-fest@npm:^0.4.1"}}}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{"value":"@ornikar/learner-apps-shared@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#workspace:@ornikar/learner-apps-shared","children":{"@ornikar/validators@npm:7.3.0":{"locator":"@ornikar/validators@npm:7.3.0","descriptor":"@ornikar/validators@npm:7.3.0"}}}
|
|
2
|
+
{"value":"@ornikar/learner-apps-shared@virtual:74b4ee70bd6a38b10f925bd66e65d0142e2ee6418cefa62443ad0a5071d5e3013ade614aacfa04ed7ad7eb898eb4f5d788c3b246824acc7ce546f40d4046456a#workspace:@ornikar/learner-apps-shared","children":{"@ornikar/validators@npm:7.3.0":{"locator":"@ornikar/validators@npm:7.3.0","descriptor":"@ornikar/validators@npm:7.3.0"}}}
|
|
3
|
+
{"value":"@ornikar/learner-apps-shared@workspace:@ornikar/learner-apps-shared","children":{"@ornikar/validators@npm:7.3.0":{"locator":"@ornikar/validators@npm:7.3.0","descriptor":"@ornikar/validators@npm:7.3.0"}}}
|
|
4
|
+
{"value":"@ornikar/learner-native-app@workspace:@ornikar/learner-native-app","children":{"@ornikar/validators@npm:7.3.0":{"locator":"@ornikar/validators@npm:7.3.0","descriptor":"@ornikar/validators@npm:7.3.0"}}}
|
|
5
|
+
{"value":"@ornikar/learner-webapp@workspace:@ornikar/learner-webapp","children":{"@ornikar/validators@npm:7.3.0":{"locator":"@ornikar/validators@npm:7.3.0","descriptor":"@ornikar/validators@npm:7.3.0"}}}
|
|
6
|
+
{"value":"@ornikar/react-forms-universal@npm:12.2.0","children":{"@ornikar/validators@npm:7.2.11":{"locator":"@ornikar/validators@npm:7.2.11","descriptor":"@ornikar/validators@npm:^7.2.10"}}}
|
|
7
|
+
{"value":"@ornikar/react-forms-universal@virtual:0be1bed3bf44b487b4f72ea3695e753a329b20e6f34aad2b49c1ffe05302161a5820d406390378609bd21e85f867075b568762523dded617babeee2a4931d60c#npm:12.2.0","children":{"@ornikar/validators@npm:7.2.11":{"locator":"@ornikar/validators@npm:7.2.11","descriptor":"@ornikar/validators@npm:^7.2.10"}}}
|
|
8
|
+
{"value":"@ornikar/react-forms-universal@virtual:0ca324951f76c640d167f8be57292cc5427c8e53f9895c89483e077c606224ccbcf16ad9922d175a40513e38e935f54868149960f54484e24b48c8cccfab76e1#npm:12.2.0","children":{"@ornikar/validators@npm:7.2.11":{"locator":"@ornikar/validators@npm:7.2.11","descriptor":"@ornikar/validators@npm:^7.2.10"}}}
|
|
9
|
+
{"value":"@ornikar/react-forms-universal@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:12.2.0","children":{"@ornikar/validators@npm:7.2.11":{"locator":"@ornikar/validators@npm:7.2.11","descriptor":"@ornikar/validators@npm:^7.2.10"}}}
|
|
10
|
+
{"value":"@ornikar/react-forms-universal@virtual:74b4ee70bd6a38b10f925bd66e65d0142e2ee6418cefa62443ad0a5071d5e3013ade614aacfa04ed7ad7eb898eb4f5d788c3b246824acc7ce546f40d4046456a#npm:12.2.0","children":{"@ornikar/validators@npm:7.2.11":{"locator":"@ornikar/validators@npm:7.2.11","descriptor":"@ornikar/validators@npm:^7.2.10"}}}
|
|
11
|
+
{"value":"@ornikar/react-forms-universal@virtual:a263e33b1a50d76cea6ded5941f5756223998e8d38de08d4b0717fd7d8bf285b7eb6b3009a326693a41b27b271e9ce1b5a82c32769ac357127bcb51edde55b1f#npm:12.2.0","children":{"@ornikar/validators@npm:7.2.11":{"locator":"@ornikar/validators@npm:7.2.11","descriptor":"@ornikar/validators@npm:^7.2.10"}}}
|
|
12
|
+
{"value":"@ornikar/react-validators@npm:8.0.10","children":{"@ornikar/validators@npm:7.3.0":{"locator":"@ornikar/validators@npm:7.3.0","descriptor":"@ornikar/validators@npm:^7.3.0"}}}
|
|
13
|
+
{"value":"@ornikar/react-validators@npm:8.0.8","children":{"@ornikar/validators@npm:7.2.11":{"locator":"@ornikar/validators@npm:7.2.11","descriptor":"@ornikar/validators@npm:^7.2.11"}}}
|
|
14
|
+
{"value":"@ornikar/react-validators@virtual:085310bb81d85a57193990d1ee74e85e6e6450b9384d4da43f24e3e764c9745557583a229c8213ce540b91033f5e655b5121c971e0a3a5ad698d5eb2c629d846#npm:8.0.8","children":{"@ornikar/validators@npm:7.2.11":{"locator":"@ornikar/validators@npm:7.2.11","descriptor":"@ornikar/validators@npm:^7.2.11"}}}
|
|
15
|
+
{"value":"@ornikar/react-validators@virtual:0ca324951f76c640d167f8be57292cc5427c8e53f9895c89483e077c606224ccbcf16ad9922d175a40513e38e935f54868149960f54484e24b48c8cccfab76e1#npm:8.0.10","children":{"@ornikar/validators@npm:7.3.0":{"locator":"@ornikar/validators@npm:7.3.0","descriptor":"@ornikar/validators@npm:^7.3.0"}}}
|
|
16
|
+
{"value":"@ornikar/react-validators@virtual:2461a6aeecc99f352c5f65b0edebf5e7cae3321973320f143a89cdea29fd814895846db5b05845a6f72a92d056a24a389c6a29326c997b79d163846b510f6081#npm:8.0.8","children":{"@ornikar/validators@npm:7.2.11":{"locator":"@ornikar/validators@npm:7.2.11","descriptor":"@ornikar/validators@npm:^7.2.11"}}}
|
|
17
|
+
{"value":"@ornikar/react-validators@virtual:5aeba2480109c20d26c87f1e67d4063eb6a5e9e1ffb5041e41df1f1b64e330b7cc0429c7ad153e9ad5b6e1a420cf4c6f9b5c8247be874e99d0778808010f3a34#npm:8.0.8","children":{"@ornikar/validators@npm:7.2.11":{"locator":"@ornikar/validators@npm:7.2.11","descriptor":"@ornikar/validators@npm:^7.2.11"}}}
|
|
18
|
+
{"value":"@ornikar/react-validators@virtual:72efe2163a558449a8f66d9788562063236597b9b91f180e4c4438146efb94a72f711a8dd32272d11bfb7021567117fcfc487b64e6e65b2d2dd86917a2212195#npm:8.0.10","children":{"@ornikar/validators@npm:7.3.0":{"locator":"@ornikar/validators@npm:7.3.0","descriptor":"@ornikar/validators@npm:^7.3.0"}}}
|
|
19
|
+
{"value":"@ornikar/react-validators@virtual:74b4ee70bd6a38b10f925bd66e65d0142e2ee6418cefa62443ad0a5071d5e3013ade614aacfa04ed7ad7eb898eb4f5d788c3b246824acc7ce546f40d4046456a#npm:8.0.10","children":{"@ornikar/validators@npm:7.3.0":{"locator":"@ornikar/validators@npm:7.3.0","descriptor":"@ornikar/validators@npm:^7.3.0"}}}
|
package/tests/tests.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { strictEqual } from 'assert/strict';
|
|
2
|
+
import { Configuration } from '@yarnpkg/core';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import {parseYarnWhy} from '../lib/readAndParseYarnWhy.js';
|
|
5
|
+
import { identifyDuplicates } from '../lib/identifyDuplicates.js';
|
|
6
|
+
import { displayDuplicates } from '../lib/displayDuplicates.js';
|
|
7
|
+
|
|
8
|
+
const configuration = Configuration.create(process.cwd());
|
|
9
|
+
configuration.values.set('enableColors', false);
|
|
10
|
+
|
|
11
|
+
const loadAndAssert = (fileName, expected) => {
|
|
12
|
+
const fileContent = fs.readFileSync(new URL(`./fixtures/${fileName}`, import.meta.url), 'utf-8');
|
|
13
|
+
const content = parseYarnWhy(fileContent);
|
|
14
|
+
const duplicates = identifyDuplicates(content);
|
|
15
|
+
const logs = [];
|
|
16
|
+
displayDuplicates(duplicates, (log = '') => logs.push(log), configuration);
|
|
17
|
+
strictEqual( logs.join('\n'), expected);
|
|
18
|
+
};
|
|
19
|
+
// no duplicates
|
|
20
|
+
loadAndAssert('date-fns.txt', 'date-fns@npm:1.30.1\n' +
|
|
21
|
+
'- @ornikar/learner-apps-shared@workspace:@ornikar/learner-apps-shared (date-fns@npm:1.30.1)\n' +
|
|
22
|
+
'- @ornikar/learner-native-app@workspace:@ornikar/learner-native-app (date-fns@npm:1.30.1)\n' +
|
|
23
|
+
'- @ornikar/learner-webapp@workspace:@ornikar/learner-webapp (date-fns@npm:1.30.1)\n' +
|
|
24
|
+
'- date-fns-timezone@npm:0.1.4 (date-fns@npm:^1.29.0)\n' +
|
|
25
|
+
'- listr-verbose-renderer@npm:0.5.0 (date-fns@npm:^1.27.2)\n');
|
|
26
|
+
loadAndAssert('type-fest.txt', 'type-fest@npm:3.5.3\n' +
|
|
27
|
+
'- @ornikar/api-helpers@npm:4.9.8 (type-fest@npm:^3.3.0)\n' +
|
|
28
|
+
'- @ornikar/kitt-universal@npm:9.47.2 (type-fest@npm:^3.0.0)\n' +
|
|
29
|
+
'- @ornikar/kitt@npm:34.6.4 (type-fest@npm:^3.0.0)\n' +
|
|
30
|
+
'- @ornikar/react-forms@npm:13.4.12 (type-fest@npm:^3.3.0)\n' +
|
|
31
|
+
'- @ornikar/react-header@npm:12.6.4 (type-fest@npm:^3.3.0)\n' +
|
|
32
|
+
'- @ornikar/react-notification@npm:10.4.9 (type-fest@npm:^3.3.0)\n' +
|
|
33
|
+
'- check-package-dependencies@npm:6.3.1 (type-fest@npm:^3.0.0)\n' +
|
|
34
|
+
'\n' +
|
|
35
|
+
'type-fest@npm:2.19.0\n' +
|
|
36
|
+
'- @ornikar/learner-apps-shared@workspace:@ornikar/learner-apps-shared (type-fest@npm:2.19.0)\n' +
|
|
37
|
+
'- @ornikar/learner-webapp@workspace:@ornikar/learner-webapp (type-fest@npm:2.19.0)\n' +
|
|
38
|
+
'- @ornikar/react-apollo@npm:5.7.3 (type-fest@npm:^2.0.0)\n' +
|
|
39
|
+
'- @ornikar/react-app-error-provider@npm:7.10.0 (type-fest@npm:^2.0.0)\n' +
|
|
40
|
+
'- @ornikar/react-mixpanel@npm:1.1.2 (type-fest@npm:^2.0.0)\n' +
|
|
41
|
+
'- @ornikar/webapp-configs@npm:4.2.3 (type-fest@npm:^2.0.0)\n' +
|
|
42
|
+
'\n' +
|
|
43
|
+
'type-fest@npm:1.4.0\n' +
|
|
44
|
+
'- msw@npm:0.29.0 (type-fest@npm:^1.1.3)\n' +
|
|
45
|
+
'\n' +
|
|
46
|
+
'type-fest@npm:0.21.3\n' +
|
|
47
|
+
'- ansi-escapes@npm:4.3.2 (type-fest@npm:^0.21.3)\n' +
|
|
48
|
+
'\n' +
|
|
49
|
+
'type-fest@npm:0.20.2\n' +
|
|
50
|
+
'- boxen@npm:5.1.2 (type-fest@npm:^0.20.2)\n' +
|
|
51
|
+
'- globals@npm:13.20.0 (type-fest@npm:^0.20.2)\n' +
|
|
52
|
+
'\n' +
|
|
53
|
+
'type-fest@npm:0.18.1\n' +
|
|
54
|
+
'- meow@npm:8.1.2 (type-fest@npm:^0.18.0)\n' +
|
|
55
|
+
'- meow@npm:9.0.0 (type-fest@npm:^0.18.0)\n' +
|
|
56
|
+
'\n' +
|
|
57
|
+
'type-fest@npm:0.16.0\n' +
|
|
58
|
+
'- tempy@npm:0.7.1 (type-fest@npm:^0.16.0)\n' +
|
|
59
|
+
'\n' +
|
|
60
|
+
'type-fest@npm:0.13.1\n' +
|
|
61
|
+
'- serialize-error@npm:7.0.1 (type-fest@npm:^0.13.1)\n' +
|
|
62
|
+
'\n' +
|
|
63
|
+
'type-fest@npm:0.12.0\n' +
|
|
64
|
+
'- serialize-error@npm:6.0.0 (type-fest@npm:^0.12.0)\n' +
|
|
65
|
+
'\n' +
|
|
66
|
+
'type-fest@npm:0.8.1\n' +
|
|
67
|
+
'- boxen@npm:4.2.0 (type-fest@npm:^0.8.1)\n' +
|
|
68
|
+
'- read-pkg-up@npm:7.0.1 (type-fest@npm:^0.8.1)\n' +
|
|
69
|
+
'\n' +
|
|
70
|
+
'type-fest@npm:0.7.1\n' +
|
|
71
|
+
'- stacktrace-parser@npm:0.1.10 (type-fest@npm:^0.7.1)\n' +
|
|
72
|
+
'\n' +
|
|
73
|
+
'type-fest@npm:0.6.0\n' +
|
|
74
|
+
'- load-json-file@npm:6.2.0 (type-fest@npm:^0.6.0)\n' +
|
|
75
|
+
'- read-pkg@npm:5.2.0 (type-fest@npm:^0.6.0)\n' +
|
|
76
|
+
'\n' +
|
|
77
|
+
'type-fest@npm:0.4.1\n' +
|
|
78
|
+
'- write-pkg@npm:4.0.0 (type-fest@npm:^0.4.1)\n' +
|
|
79
|
+
'\n' +
|
|
80
|
+
'type-fest@npm:0.3.1\n' +
|
|
81
|
+
'- load-json-file@npm:5.3.0 (type-fest@npm:^0.3.0)\n' +
|
|
82
|
+
'- tempy@npm:0.3.0 (type-fest@npm:^0.3.1)\n'); // simple duplicates
|
|
83
|
+
loadAndAssert('native-base.txt',
|
|
84
|
+
'native-base@patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::version=3.4.18&hash=f36c02&locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.\n' +
|
|
85
|
+
'- @ornikar/kitt-universal@npm:9.47.2 (native-base@patch:native-base@npm%3A3.4.18#./.yarn/patches/native-base-npm-3.4.18-63dd34e5ad.patch::locator=%40ornikar%2Flearner-apps-monorepo%40workspace%3A.)\n'); // example with patch
|
|
86
|
+
loadAndAssert('validators.txt',
|
|
87
|
+
'@ornikar/validators@npm:7.3.0\n' +
|
|
88
|
+
'- @ornikar/learner-apps-shared@workspace:@ornikar/learner-apps-shared (@ornikar/validators@npm:7.3.0)\n' +
|
|
89
|
+
'- @ornikar/learner-native-app@workspace:@ornikar/learner-native-app (@ornikar/validators@npm:7.3.0)\n' +
|
|
90
|
+
'- @ornikar/learner-webapp@workspace:@ornikar/learner-webapp (@ornikar/validators@npm:7.3.0)\n' +
|
|
91
|
+
'- @ornikar/react-validators@npm:8.0.10 (@ornikar/validators@npm:^7.3.0)\n' +
|
|
92
|
+
'\n' +
|
|
93
|
+
'@ornikar/validators@npm:7.2.11\n' +
|
|
94
|
+
'- @ornikar/react-forms-universal@npm:12.2.0 (@ornikar/validators@npm:^7.2.10)\n' +
|
|
95
|
+
'- @ornikar/react-validators@npm:8.0.8 (@ornikar/validators@npm:^7.2.11)\n'); // complex duplicates
|