Skip to content

Commit 61ca8a7

Browse files
committed
Generate thirdparty notices
1 parent d4e7b24 commit 61ca8a7

6 files changed

+268
-20
lines changed

LICENSE.md

+5-16
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,12 @@
1-
# Anno 2018 License
1+
# License
22

3-
This project is licensed under the AGPLv3. See the COPYING.AGPLv3 file for further information.
3+
The code is licensed under the AGPLv3. See the COPYING.AGPLv3 file for further information.
44

55
This project includes code based on the [mdcii-engine](https://github.com/roybaer/mdcii-engine) project
6-
by Benedikt Freisen, originally licensed under the GPLv2 or later and redistributed
7-
as part of this project under the AGPLv3.
6+
by Benedikt Freisen, originally licensed under the GPLv2+ license.
87

98
This project includes code based on the [FFmpeg](https://github.com/FFmpeg/FFmpeg) project
10-
(see `src/parsers/WAV/wav-parser.ts`), originally licensed under the LGPLv2.1+ and redistributed
11-
as part of this project under the AGPLv3.
9+
(see `src/parsers/WAV/wav-parser.ts`), originally licensed under the LGPLv2.1+ license.
1210

1311
This project includes code based on the [pixi-keyboard](https://github.com/Nazariglez/pixi-keyboard) project
14-
(see `src/game/renderer/keyboard`), originally licensed under MIT and redistributed
15-
as part of this project under the AGPLv3.
16-
17-
This project bundles a build of [LAME](http://lame.sourceforge.net/) as part of the
18-
[lamejs](https://github.com/zhuker/lamejs) project, licensed under the LGPL and redistributed
19-
as part of this project under the AGPLv3.
20-
21-
This project bundles a build of [FFmpeg](https://www.ffmpeg.org/), licensed under the GPLv3 and
22-
[libx264](https://www.videolan.org/developers/x264.html), licensed under the GPL, both of which
23-
are redistributed as part of this project under the AGPLv3.
12+
by Celsius online (see `src/game/renderer/keyboard`), originally licensed under the MIT license.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"husky": "^3.0.9",
5555
"jest": "^25.1.0",
5656
"jest-canvas-mock": "^2.1.2",
57+
"license-checker-webpack-plugin": "^0.1.4",
5758
"patch-package": "^6.2.0",
5859
"postinstall-postinstall": "^2.0.0",
5960
"prettier": "1.18.2",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
diff --git a/node_modules/license-checker-webpack-plugin/src/index.js b/node_modules/license-checker-webpack-plugin/src/index.js
2+
index 4eac03e..214e31e 100644
3+
--- a/node_modules/license-checker-webpack-plugin/src/index.js
4+
+++ b/node_modules/license-checker-webpack-plugin/src/index.js
5+
@@ -22,13 +22,15 @@ class LicenseCheckerWebpackPlugin {
6+
override,
7+
emitError,
8+
outputFilename,
9+
- outputWriter
10+
+ outputWriter,
11+
+ additionalPackages
12+
} = this.options;
13+
14+
compiler.hooks.emit.tapPromise("LicenseCheckerWebpackPlugin", async compilation => {
15+
let licenseInformation = getLicenseInformationForCompilation(compilation, filter);
16+
licenseInformation = ignoreLicenses(licenseInformation, ignore);
17+
licenseInformation = overrideLicenses(licenseInformation, override);
18+
+ licenseInformation = { ...licenseInformation, ...additionalPackages };
19+
20+
const licenseViolations = getLicenseViolations(licenseInformation, allow);
21+
if (emitError) {
22+
diff --git a/node_modules/license-checker-webpack-plugin/src/optionsUtils.js b/node_modules/license-checker-webpack-plugin/src/optionsUtils.js
23+
index 4476a82..4731ca6 100644
24+
--- a/node_modules/license-checker-webpack-plugin/src/optionsUtils.js
25+
+++ b/node_modules/license-checker-webpack-plugin/src/optionsUtils.js
26+
@@ -15,7 +15,8 @@ const optionsSchema = Joi.object().keys({
27+
outputWriter: Joi.alternatives()
28+
.try(Joi.string(), Joi.func())
29+
.required(),
30+
- outputFilename: Joi.string().required()
31+
+ outputFilename: Joi.string().required(),
32+
+ additionalPackages: Joi.object().required()
33+
});
34+
35+
const defaultOptions = {
36+
@@ -25,7 +26,8 @@ const defaultOptions = {
37+
override: {},
38+
emitError: false,
39+
outputWriter: defaultOutputWriter,
40+
- outputFilename: "ThirdPartyNotice.txt"
41+
+ outputFilename: "ThirdPartyNotice.txt",
42+
+ additionalPackages: []
43+
};
44+
45+
const getOptions = options => {

src/index.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,11 @@ import { Translator } from "./translation/translator";
4141
game.id = "game";
4242
const version = document.createElement("p");
4343
version.innerHTML = `Anno 2018, version ${__VERSION__},
44-
made by <a href="https://github.com/cmfcmf">@cmfcmf</a>.
45-
The sourcecode can be found at <a href="https://github.com/cmfcmf/Anno2018">GitHub</a>.`;
44+
made by <a href="https://github.com/cmfcmf">@cmfcmf</a>.
45+
The source is at <a href="https://github.com/cmfcmf/Anno2018">GitHub</a>.
46+
<br />
47+
<a href="thirdparty.txt">Thirdparty Notices</a>
48+
| <a href="https://cmfcmf.github.io/about">Datenschutz</a>`;
4649

4750
document.head.appendChild(style);
4851
document.body.appendChild(game);

webpack.prod.js

+104-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ const merge = require("webpack-merge");
22
const common = require("./webpack.common.js");
33
const webpack = require("webpack");
44
const path = require("path");
5+
const fs = require("fs");
6+
const LicenseCheckerWebpackPlugin = require("license-checker-webpack-plugin");
57

68
module.exports = merge.smartStrategy({ entry: "prepend" })(common, {
79
devtool: "source-map",
@@ -76,6 +78,107 @@ module.exports = merge.smartStrategy({ entry: "prepend" })(common, {
7678
// Hash the module ids so that the file hash doesn't change if
7779
// modules are reordered.
7880
// https://webpack.js.org/guides/caching/#module-identifiers
79-
new webpack.HashedModuleIdsPlugin()
81+
new webpack.HashedModuleIdsPlugin(),
82+
new LicenseCheckerWebpackPlugin({
83+
outputFilename: "thirdparty.txt",
84+
allow: "MIT OR BSD-3-Clause OR Apache-2.0 OR ISC OR Zlib OR GPL-3.0-only OR GPL-2.0-or-later OR LGPL-2.1-or-later",
85+
emitError: true,
86+
override: {
87+
88+
// Adds the zlib copyright notice to the MIT license written in LICENSE
89+
licenseText: `\
90+
${fs.readFileSync(path.join("node_modules", "pako", "LICENSE"), { encoding: "utf-8" })}
91+
92+
zlib License
93+
94+
Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
95+
96+
This software is provided 'as-is', without any express or implied
97+
warranty. In no event will the authors be held liable for any damages
98+
arising from the use of this software.
99+
100+
Permission is granted to anyone to use this software for any purpose,
101+
including commercial applications, and to alter it and redistribute it
102+
freely, subject to the following restrictions:
103+
104+
1. The origin of this software must not be misrepresented; you must not
105+
claim that you wrote the original software. If you use this software
106+
in a product, an acknowledgment in the product documentation would be
107+
appreciated but is not required.
108+
2. Altered source versions must be plainly marked as such, and must not be
109+
misrepresented as being the original software.
110+
3. This notice may not be removed or altered from any source distribution.
111+
112+
Jean-loup Gailly Mark Adler
113+
114+
}
115+
},
116+
additionalPackages: {
117+
"mdcii-engine": {
118+
name: "mdcii-engine",
119+
version: " master",
120+
repository: "https://github.com/roybaer/mdcii-engine",
121+
licenseName: "GPL-2.0-or-later",
122+
licenseText: `\
123+
This project includes code based on the mdcii-engine project by Benedikt Freisen
124+
originally licensed under the GPLv2 or later license.
125+
126+
${fs.readFileSync("COPYING.GPLv2", { encoding: "utf-8" })}`
127+
},
128+
"ffmpeg-wav": {
129+
name: "FFmpeg",
130+
version: "n4.0",
131+
repository: "https://git.ffmpeg.org/ffmpeg.git",
132+
licenseName: "LGPL-2.1-or-later",
133+
licenseText: fs.readFileSync("COPYING.LGPLv2.1", { encoding: "utf-8" })
134+
},
135+
"pixi-keyboard": {
136+
name: "pixi-keyboard",
137+
version: "0.9.4",
138+
repository: "https://github.com/Nazariglez/pixi-keyboard",
139+
licenseName: "MIT",
140+
licenseText: `\
141+
This project includes code based on the pixi-keyboard project by Celsius online
142+
(see \`src/game/renderer/keyboard\`) originally licensed under the MIT license.
143+
144+
The MIT License (MIT)
145+
146+
Copyright (c) 2015 Celsius online
147+
148+
Permission is hereby granted, free of charge, to any person obtaining a copy
149+
of this software and associated documentation files (the "Software"), to deal
150+
in the Software without restriction, including without limitation the rights
151+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
152+
copies of the Software, and to permit persons to whom the Software is
153+
furnished to do so, subject to the following conditions:
154+
155+
The above copyright notice and this permission notice shall be included in all
156+
copies or substantial portions of the Software.
157+
158+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
159+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
160+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
161+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
162+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
163+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
164+
SOFTWARE.`
165+
},
166+
167+
"smk2mp4-ffmpeg": {
168+
name: "FFmpeg",
169+
version: "3.1.3",
170+
repository: "https://git.ffmpeg.org/ffmpeg.git",
171+
licenseName: "GPL-2.0-or-later",
172+
licenseText: fs.readFileSync("COPYING.GPLv2", { encoding: "utf-8" })
173+
},
174+
"smk2mp4-libx264": {
175+
name: "libx264",
176+
version: "x264-snapshot-20160910-2245",
177+
repository: "https://code.videolan.org/videolan/x264.git",
178+
licenseName: "GPL-2.0-or-later",
179+
licenseText: fs.readFileSync("COPYING.GPLv2", { encoding: "utf-8" })
180+
},
181+
}
182+
})
80183
]
81184
});

yarn.lock

+108-1
Original file line numberDiff line numberDiff line change
@@ -896,6 +896,44 @@
896896
exec-sh "^0.3.2"
897897
minimist "^1.2.0"
898898

899+
"@hapi/address@^2.1.2":
900+
version "2.1.4"
901+
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
902+
integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==
903+
904+
"@hapi/formula@^1.2.0":
905+
version "1.2.0"
906+
resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-1.2.0.tgz#994649c7fea1a90b91a0a1e6d983523f680e10cd"
907+
integrity sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA==
908+
909+
"@hapi/hoek@^8.2.4", "@hapi/hoek@^8.3.0":
910+
version "8.5.1"
911+
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06"
912+
integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==
913+
914+
"@hapi/joi@^16.1.7":
915+
version "16.1.8"
916+
resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-16.1.8.tgz#84c1f126269489871ad4e2decc786e0adef06839"
917+
integrity sha512-wAsVvTPe+FwSrsAurNt5vkg3zo+TblvC5Bb1zMVK6SJzZqw9UrJnexxR+76cpePmtUZKHAPxcQ2Bf7oVHyahhg==
918+
dependencies:
919+
"@hapi/address" "^2.1.2"
920+
"@hapi/formula" "^1.2.0"
921+
"@hapi/hoek" "^8.2.4"
922+
"@hapi/pinpoint" "^1.0.2"
923+
"@hapi/topo" "^3.1.3"
924+
925+
"@hapi/pinpoint@^1.0.2":
926+
version "1.0.2"
927+
resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-1.0.2.tgz#025b7a36dbbf4d35bf1acd071c26b20ef41e0d13"
928+
integrity sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ==
929+
930+
"@hapi/topo@^3.1.3":
931+
version "3.1.6"
932+
resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"
933+
integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==
934+
dependencies:
935+
"@hapi/hoek" "^8.3.0"
936+
899937
"@istanbuljs/load-nyc-config@^1.0.0":
900938
version "1.0.0"
901939
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b"
@@ -2093,6 +2131,11 @@ array-equal@^1.0.0:
20932131
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
20942132
integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
20952133

2134+
array-find-index@^1.0.2:
2135+
version "1.0.2"
2136+
resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
2137+
integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
2138+
20962139
20972140
version "1.1.1"
20982141
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
@@ -5980,6 +6023,20 @@ levn@^0.3.0, levn@~0.3.0:
59806023
prelude-ls "~1.1.2"
59816024
type-check "~0.3.2"
59826025

6026+
license-checker-webpack-plugin@^0.1.4:
6027+
version "0.1.4"
6028+
resolved "https://registry.yarnpkg.com/license-checker-webpack-plugin/-/license-checker-webpack-plugin-0.1.4.tgz#2b984e0a4b7dcf9d8729fa1add58f58ad535f175"
6029+
integrity sha512-FExcCJnxIXX5stAIKtnm6y0N42WMtusV6mjDIjNr5qvC3wSw/tmxC11cSGzVjtPCkk3tO5Z6ysf3Ut7HheNNaw==
6030+
dependencies:
6031+
"@hapi/joi" "^16.1.7"
6032+
lodash.template "^4.5.0"
6033+
minimatch "^3.0.4"
6034+
semver "^6.3.0"
6035+
spdx-expression-validate "^2.0.0"
6036+
spdx-satisfies "^5.0.0"
6037+
webpack-sources "^1.4.3"
6038+
wrap-ansi "^6.1.0"
6039+
59836040
lie@~3.3.0:
59846041
version "3.3.0"
59856042
resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
@@ -6031,6 +6088,11 @@ locate-path@^5.0.0:
60316088
dependencies:
60326089
p-locate "^4.1.0"
60336090

6091+
lodash._reinterpolate@^3.0.0:
6092+
version "3.0.0"
6093+
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
6094+
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
6095+
60346096
60356097
version "4.1.2"
60366098
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
@@ -6041,6 +6103,21 @@ lodash.sortby@^4.7.0:
60416103
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
60426104
integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
60436105

6106+
lodash.template@^4.5.0:
6107+
version "4.5.0"
6108+
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
6109+
integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
6110+
dependencies:
6111+
lodash._reinterpolate "^3.0.0"
6112+
lodash.templatesettings "^4.0.0"
6113+
6114+
lodash.templatesettings@^4.0.0:
6115+
version "4.2.0"
6116+
resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
6117+
integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
6118+
dependencies:
6119+
lodash._reinterpolate "^3.0.0"
6120+
60446121
60456122
version "4.0.1"
60466123
resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
@@ -8249,6 +8326,15 @@ source-map@^0.7.3:
82498326
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
82508327
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
82518328

8329+
spdx-compare@^1.0.0:
8330+
version "1.0.0"
8331+
resolved "https://registry.yarnpkg.com/spdx-compare/-/spdx-compare-1.0.0.tgz#2c55f117362078d7409e6d7b08ce70a857cd3ed7"
8332+
integrity sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==
8333+
dependencies:
8334+
array-find-index "^1.0.2"
8335+
spdx-expression-parse "^3.0.0"
8336+
spdx-ranges "^2.0.0"
8337+
82528338
spdx-correct@^3.0.0:
82538339
version "3.1.0"
82548340
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
@@ -8270,11 +8356,32 @@ spdx-expression-parse@^3.0.0:
82708356
spdx-exceptions "^2.1.0"
82718357
spdx-license-ids "^3.0.0"
82728358

8359+
spdx-expression-validate@^2.0.0:
8360+
version "2.0.0"
8361+
resolved "https://registry.yarnpkg.com/spdx-expression-validate/-/spdx-expression-validate-2.0.0.tgz#25c9408e1c63fad94fff5517bb7101ffcd23350b"
8362+
integrity sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==
8363+
dependencies:
8364+
spdx-expression-parse "^3.0.0"
8365+
82738366
spdx-license-ids@^3.0.0:
82748367
version "3.0.5"
82758368
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
82768369
integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
82778370

8371+
spdx-ranges@^2.0.0:
8372+
version "2.1.1"
8373+
resolved "https://registry.yarnpkg.com/spdx-ranges/-/spdx-ranges-2.1.1.tgz#87573927ba51e92b3f4550ab60bfc83dd07bac20"
8374+
integrity sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==
8375+
8376+
spdx-satisfies@^5.0.0:
8377+
version "5.0.0"
8378+
resolved "https://registry.yarnpkg.com/spdx-satisfies/-/spdx-satisfies-5.0.0.tgz#d740b8f14caeada36fb307629dee87146970a256"
8379+
integrity sha512-/hGhwh20BeGmkA+P/lm06RvXD94JduwNxtx/oX3B5ClPt1/u/m5MCaDNo1tV3Y9laLkQr/NRde63b9lLMhlNfw==
8380+
dependencies:
8381+
spdx-compare "^1.0.0"
8382+
spdx-expression-parse "^3.0.0"
8383+
spdx-ranges "^2.0.0"
8384+
82788385
spdy-transport@^3.0.0:
82798386
version "3.0.0"
82808387
resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
@@ -9475,7 +9582,7 @@ wrap-ansi@^5.1.0:
94759582
string-width "^3.0.0"
94769583
strip-ansi "^5.0.0"
94779584

9478-
wrap-ansi@^6.2.0:
9585+
wrap-ansi@^6.1.0, wrap-ansi@^6.2.0:
94799586
version "6.2.0"
94809587
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
94819588
integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==

0 commit comments

Comments
 (0)