yarn-why-duplicate 1.1.0 → 1.2.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/.editorconfig +13 -0
- package/.eslintrc.json +4 -0
- package/.prettierignore +2 -0
- package/CHANGELOG.md +30 -0
- package/README.md +22 -0
- package/bin/yarn-why-duplicate.mjs +3 -3
- package/lib/.eslintrc.json +4 -0
- package/lib/displayDuplicates.js +20 -7
- package/lib/identifyDuplicates.js +35 -17
- package/lib/readAndParseYarnWhy.js +12 -7
- package/package.json +45 -17
- package/scripts/check-package.js +3 -0
- package/tests/fixtures/date-fns.txt +0 -7
- package/tests/fixtures/native-base.txt +0 -9
- package/tests/fixtures/type-fest.txt +0 -58
- package/tests/fixtures/validators.txt +0 -19
- package/tests/tests.js +0 -95
package/.editorconfig
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# EditorConfig helps developers define and maintain consistent
|
|
2
|
+
# coding styles between different editors and IDEs
|
|
3
|
+
# http://editorconfig.org
|
|
4
|
+
|
|
5
|
+
root = true
|
|
6
|
+
|
|
7
|
+
[*]
|
|
8
|
+
indent_style = space
|
|
9
|
+
indent_size = 2
|
|
10
|
+
end_of_line = lf
|
|
11
|
+
charset = utf-8
|
|
12
|
+
trim_trailing_whitespace = true
|
|
13
|
+
insert_final_newline = true
|
package/.eslintrc.json
ADDED
package/.prettierignore
ADDED
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [1.2.0](https://github.com/christophehurpeau/yarn-why-duplicate/compare/v1.1.0...v1.2.0) (2023-04-25)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* force 1.2.0 ([72688d8](https://github.com/christophehurpeau/yarn-why-duplicate/commit/72688d83af568ebb83fe8ee261b6ac18adf44f0e))
|
|
9
|
+
|
|
10
|
+
## [1.1.0](https://github.com/christophehurpeau/yarn-why-duplicate/compare/v1.0.0...v1.1.0) (2023-04-25)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* force 1.1.0 ([d333635](https://github.com/christophehurpeau/yarn-why-duplicate/commit/d3336353ffe709910577310116dab70dd8f25f5c))
|
|
16
|
+
|
|
17
|
+
## 1.0.0 (2023-04-25)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **deps:** update dependency semver to v7.5.0 ([#4](https://github.com/christophehurpeau/yarn-why-duplicate/issues/4)) ([f9eee30](https://github.com/christophehurpeau/yarn-why-duplicate/commit/f9eee30e153dea0dc8dabb69b2484dd6dd3be0dc))
|
|
23
|
+
* first commit ([c3a6354](https://github.com/christophehurpeau/yarn-why-duplicate/commit/c3a6354ae139baffc75c4582af439db4f496329c))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* add try/catch on compareRange ([357eed7](https://github.com/christophehurpeau/yarn-why-duplicate/commit/357eed715012b156d4abd447f9d7232fdc066d72))
|
|
29
|
+
* use virtuals ([340d56a](https://github.com/christophehurpeau/yarn-why-duplicate/commit/340d56a8abc6c81b9973ed5ecb80604e6905990b))
|
|
30
|
+
* virtual child ([8798439](https://github.com/christophehurpeau/yarn-why-duplicate/commit/8798439ccf4f7ee40292ce9fb734e573a37c1d71))
|
package/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<h3 align="center">
|
|
2
|
+
yarn-why-duplicate
|
|
3
|
+
</h3>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
Simple bin to know why a package is duplicated
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://npmjs.org/package/yarn-why-duplicate"><img src="https://img.shields.io/npm/v/yarn-why-duplicate.svg?style=flat-square"></a>
|
|
11
|
+
<a href="https://npmjs.org/package/yarn-why-duplicate"><img src="https://img.shields.io/npm/dw/yarn-why-duplicate.svg?style=flat-square"></a>
|
|
12
|
+
<a href="https://npmjs.org/package/yarn-why-duplicate"><img src="https://img.shields.io/node/v/yarn-why-duplicate.svg?style=flat-square"></a>
|
|
13
|
+
<a href="https://npmjs.org/package/yarn-why-duplicate"><img src="https://img.shields.io/npm/types/yarn-why-duplicate.svg?style=flat-square"></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
With yarn berry:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
yarn dlx yarn-why-duplicate <dependencyName>
|
|
22
|
+
```
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {readAndParseYarnWhy} from '../lib/readAndParseYarnWhy.js';
|
|
4
|
-
import { identifyDuplicates } from '../lib/identifyDuplicates.js';
|
|
5
3
|
import { displayDuplicates } from '../lib/displayDuplicates.js';
|
|
4
|
+
import { identifyDuplicates } from '../lib/identifyDuplicates.js';
|
|
5
|
+
import { readAndParseYarnWhy } from '../lib/readAndParseYarnWhy.js';
|
|
6
6
|
|
|
7
7
|
const pkgName = process.argv.slice(2)[0];
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@ const yarnWhyResult = readAndParseYarnWhy(pkgName);
|
|
|
10
10
|
|
|
11
11
|
for (const line of yarnWhyResult) {
|
|
12
12
|
if (line.type === 'error') {
|
|
13
|
-
console.error(
|
|
13
|
+
console.error(`yarn error: ${line.data}`);
|
|
14
14
|
process.exit(1);
|
|
15
15
|
} else if (line.type === 'step') {
|
|
16
16
|
console.error('yarn 1 is not supported, use yarn berry (>=2)');
|
package/lib/displayDuplicates.js
CHANGED
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
import { structUtils, Configuration } from '@yarnpkg/core';
|
|
2
2
|
|
|
3
|
-
export const displayDuplicates = (
|
|
4
|
-
|
|
3
|
+
export const displayDuplicates = (
|
|
4
|
+
groupByVersions,
|
|
5
|
+
log = console.log,
|
|
6
|
+
configuration = Configuration.create(process.cwd()),
|
|
7
|
+
) => {
|
|
8
|
+
if (groupByVersions.length === 0) {
|
|
5
9
|
log('No version found');
|
|
6
10
|
return;
|
|
7
11
|
}
|
|
8
12
|
|
|
9
|
-
log(
|
|
13
|
+
log(
|
|
14
|
+
`Found ${groupByVersions.length} version${
|
|
15
|
+
groupByVersions.length === 1 ? '' : 's'
|
|
16
|
+
}:`,
|
|
17
|
+
);
|
|
10
18
|
log();
|
|
11
19
|
|
|
12
20
|
for (const { descriptor, sources } of groupByVersions) {
|
|
13
|
-
log(structUtils.prettyDescriptor(configuration,descriptor));
|
|
14
|
-
for (const { source,
|
|
15
|
-
log(
|
|
21
|
+
log(structUtils.prettyDescriptor(configuration, descriptor));
|
|
22
|
+
for (const { source, descriptor } of sources.values()) {
|
|
23
|
+
log(
|
|
24
|
+
`- ${structUtils.prettyDescriptor(
|
|
25
|
+
configuration,
|
|
26
|
+
source,
|
|
27
|
+
)} (${structUtils.prettyDescriptor(configuration, descriptor)})`,
|
|
28
|
+
); // TODO prettyDescriptor from structUtils
|
|
16
29
|
}
|
|
17
30
|
log();
|
|
18
31
|
}
|
|
19
|
-
}
|
|
32
|
+
};
|
|
@@ -5,27 +5,40 @@ export const identifyDuplicates = (yarnWhyResult) => {
|
|
|
5
5
|
const groupByVersions = new Map();
|
|
6
6
|
|
|
7
7
|
for (const line of yarnWhyResult) {
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
continue;
|
|
13
|
-
}
|
|
8
|
+
const descriptor = structUtils.parseDescriptor(line.value);
|
|
9
|
+
const devirtualizedDescriptor = structUtils.isVirtualDescriptor(descriptor)
|
|
10
|
+
? structUtils.devirtualizeDescriptor(descriptor)
|
|
11
|
+
: descriptor;
|
|
14
12
|
|
|
15
13
|
for (const [key, child] of Object.entries(line.children)) {
|
|
16
|
-
|
|
14
|
+
const childDescriptor = structUtils.parseDescriptor(key);
|
|
15
|
+
const devirtualizedChildDescriptor = structUtils.isVirtualDescriptor(
|
|
16
|
+
childDescriptor,
|
|
17
|
+
)
|
|
18
|
+
? structUtils.devirtualizeDescriptor(childDescriptor)
|
|
19
|
+
: childDescriptor;
|
|
20
|
+
|
|
21
|
+
let byVersion = groupByVersions.get(
|
|
22
|
+
devirtualizedChildDescriptor.descriptorHash,
|
|
23
|
+
);
|
|
17
24
|
if (!byVersion) {
|
|
18
25
|
byVersion = {
|
|
19
|
-
descriptor:
|
|
20
|
-
sources:
|
|
26
|
+
descriptor: devirtualizedChildDescriptor,
|
|
27
|
+
sources: new Map(),
|
|
21
28
|
};
|
|
22
|
-
groupByVersions.set(
|
|
29
|
+
groupByVersions.set(
|
|
30
|
+
devirtualizedChildDescriptor.descriptorHash,
|
|
31
|
+
byVersion,
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (!byVersion.sources.has(devirtualizedDescriptor.descriptorHash)) {
|
|
36
|
+
byVersion.sources.set(devirtualizedDescriptor.descriptorHash, {
|
|
37
|
+
source: devirtualizedDescriptor, // source of the dependency
|
|
38
|
+
descriptor: structUtils.parseDescriptor(child.descriptor), // value parsed from package.json eg date-fns@npm:^1.29.0
|
|
39
|
+
locator: structUtils.parseLocator(child.locator), // value resolved by yarn eg date-fns@npm:1.30.1
|
|
40
|
+
});
|
|
23
41
|
}
|
|
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
42
|
}
|
|
30
43
|
}
|
|
31
44
|
|
|
@@ -33,8 +46,13 @@ export const identifyDuplicates = (yarnWhyResult) => {
|
|
|
33
46
|
groups.sort((a, b) => {
|
|
34
47
|
const aRange = structUtils.parseRange(a.descriptor.range);
|
|
35
48
|
const bRange = structUtils.parseRange(b.descriptor.range);
|
|
36
|
-
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
return -compareRange(aRange.selector, bRange.selector);
|
|
52
|
+
} catch {
|
|
53
|
+
return 0;
|
|
54
|
+
}
|
|
37
55
|
});
|
|
38
56
|
|
|
39
57
|
return groups;
|
|
40
|
-
}
|
|
58
|
+
};
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { spawnSync } from 'child_process';
|
|
2
2
|
|
|
3
3
|
export const parseYarnWhy = (content) => {
|
|
4
|
-
return content
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
return content
|
|
5
|
+
.split('\n')
|
|
6
|
+
.filter(Boolean)
|
|
7
|
+
.map((line) => JSON.parse(line));
|
|
7
8
|
};
|
|
8
9
|
|
|
9
10
|
export const readAndParseYarnWhy = (pkgName) => {
|
|
10
|
-
const { stdout, stderr } = spawnSync('yarn',['why', pkgName, '--json'], {
|
|
11
|
+
const { stdout, stderr } = spawnSync('yarn', ['why', pkgName, '--json'], {
|
|
12
|
+
encoding: 'utf8',
|
|
13
|
+
stdio: 'pipe',
|
|
14
|
+
pwd: process.cwd(),
|
|
15
|
+
});
|
|
11
16
|
if (stderr) {
|
|
12
17
|
try {
|
|
13
18
|
return parseYarnWhy(stderr);
|
|
14
|
-
} catch
|
|
15
|
-
throw new Error(
|
|
19
|
+
} catch {
|
|
20
|
+
throw new Error(`yarn failed: ${stderr}`);
|
|
16
21
|
}
|
|
17
22
|
}
|
|
18
23
|
return parseYarnWhy(stdout);
|
|
19
|
-
};
|
|
24
|
+
};
|
package/package.json
CHANGED
|
@@ -1,30 +1,58 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yarn-why-duplicate",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Simple bin to know why a package is duplicated",
|
|
5
|
-
"main": "bin/yarn-why-duplicate.mjs",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
9
|
-
},
|
|
10
|
-
"repository": {
|
|
11
|
-
"type": "git",
|
|
12
|
-
"url": "git+https://github.com/christophehurpeau/yarn-why-duplicate.git"
|
|
13
|
-
},
|
|
14
|
-
"bin": {
|
|
15
|
-
"yarn-why-duplicate": "./bin/yarn-why-duplicate.mjs"
|
|
16
|
-
},
|
|
17
5
|
"keywords": [
|
|
18
6
|
"yarn",
|
|
19
7
|
"berry"
|
|
20
8
|
],
|
|
21
|
-
"author": "Christophe Hurpeau",
|
|
9
|
+
"author": "Christophe Hurpeau <christophe@hurpeau.com> (https://christophe.hurpeau.com)",
|
|
22
10
|
"license": "ISC",
|
|
11
|
+
"repository": "https://github.com/christophehurpeau/yarn-why-duplicate.git",
|
|
12
|
+
"homepage": "https://github.com/christophehurpeau/yarn-why-duplicate#readme",
|
|
23
13
|
"bugs": {
|
|
24
14
|
"url": "https://github.com/christophehurpeau/yarn-why-duplicate/issues"
|
|
25
15
|
},
|
|
26
|
-
"
|
|
16
|
+
"type": "module",
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=18.0.0"
|
|
19
|
+
},
|
|
20
|
+
"packageManager": "yarn@3.5.0",
|
|
21
|
+
"main": "./lib/index.js",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": "./lib/index.js",
|
|
24
|
+
"./package.json": "./package.json"
|
|
25
|
+
},
|
|
26
|
+
"sideEffects": false,
|
|
27
|
+
"bin": "./bin/yarn-why-duplicate.mjs",
|
|
28
|
+
"scripts": {
|
|
29
|
+
"checks": "node scripts/check-package.js",
|
|
30
|
+
"clean:build": "true",
|
|
31
|
+
"lint": "yarn run lint:prettier && yarn run lint:eslint",
|
|
32
|
+
"lint:eslint": "eslint --report-unused-disable-directives --resolve-plugins-relative-to . --quiet *.{js,cjs,mjs} lib bin scripts",
|
|
33
|
+
"lint:prettier": "pob-root-prettier --check .",
|
|
34
|
+
"lint:prettier:fix": "pob-root-prettier --write .",
|
|
35
|
+
"postinstallDev": "pob-root-postinstall",
|
|
36
|
+
"test": "node --test",
|
|
37
|
+
"test:coverage": "node --test",
|
|
38
|
+
"test:watch": "node --test --watch"
|
|
39
|
+
},
|
|
40
|
+
"prettier": "@pob/root/prettier-config",
|
|
41
|
+
"commitlint": {
|
|
42
|
+
"extends": [
|
|
43
|
+
"@pob/commitlint-config"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"pob": {},
|
|
27
47
|
"dependencies": {
|
|
28
|
-
"@yarnpkg/core": "
|
|
48
|
+
"@yarnpkg/core": "4.0.0-rc.42",
|
|
49
|
+
"semver": "7.5.0"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@pob/commitlint-config": "5.1.1",
|
|
53
|
+
"@pob/eslint-config": "50.0.4",
|
|
54
|
+
"@pob/root": "7.8.0",
|
|
55
|
+
"check-package-dependencies": "6.3.2",
|
|
56
|
+
"eslint": "8.39.0"
|
|
29
57
|
}
|
|
30
|
-
}
|
|
58
|
+
}
|
|
@@ -1,7 +0,0 @@
|
|
|
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"}}}
|
|
@@ -1,9 +0,0 @@
|
|
|
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."}}}
|
|
@@ -1,58 +0,0 @@
|
|
|
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"}}}
|
|
@@ -1,19 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
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
|