@ckeditor/ckeditor5-dev-license-checker 55.6.0 → 55.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md.
4
- */
5
- export { validateLicenseFiles } from './validate-license-files.js';
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md.
4
+ */
5
+ export { validateLicenseFiles } from "./validate-license-files.js";
package/dist/index.js CHANGED
@@ -1,242 +1,207 @@
1
- import { glob, readFile, writeFile } from 'node:fs/promises';
2
- import { findPackageJSON } from 'node:module';
3
- import { createPatch } from 'diff';
4
- import upath from 'upath';
5
-
1
+ import { findPackageJSON } from "node:module";
2
+ import { glob, readFile, writeFile } from "node:fs/promises";
3
+ import { createPatch } from "diff";
4
+ import upath from "upath";
5
+ //#region src/validate-license-files.ts
6
6
  /**
7
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
8
- * For licensing, see LICENSE.md.
9
- */
10
- const conjunctionFormatter = new Intl.ListFormat('en', { style: 'long', type: 'conjunction' });
7
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
8
+ * For licensing, see LICENSE.md.
9
+ */
10
+ const conjunctionFormatter = new Intl.ListFormat("en", {
11
+ style: "long",
12
+ type: "conjunction"
13
+ });
11
14
  /**
12
- * @param options
13
- * @param options.fix Whether to fix license files instead of printing errors.
14
- * @param options.verbose Whether to print diff instead of just path to file on failed validation.
15
- * @param options.shouldProcessRoot Whether validation should process the root.
16
- * @param options.shouldProcessPackages Whether validation should process `packages/*`.
17
- * @param options.isPublic Whether license should use disclaimer meant for open source repositories.
18
- * @param options.rootDir Base directory.
19
- * @param options.projectName Project name referred to in the licenses.
20
- * @param options.mainPackageName Designated package that contains collected licenses from all other packages.
21
- * @param options.copyrightOverrides Map of of copyright that can both add new ones, as well as override existing ones.
22
- *
23
- * @returns Exit code of the script that indicates whether it passed or errored.
24
- */
15
+ * @param options
16
+ * @param options.fix Whether to fix license files instead of printing errors.
17
+ * @param options.verbose Whether to print diff instead of just path to file on failed validation.
18
+ * @param options.shouldProcessRoot Whether validation should process the root.
19
+ * @param options.shouldProcessPackages Whether validation should process `packages/*`.
20
+ * @param options.isPublic Whether license should use disclaimer meant for open source repositories.
21
+ * @param options.rootDir Base directory.
22
+ * @param options.projectName Project name referred to in the licenses.
23
+ * @param options.mainPackageName Designated package that contains collected licenses from all other packages.
24
+ * @param options.copyrightOverrides Map of of copyright that can both add new ones, as well as override existing ones.
25
+ *
26
+ * @returns Exit code of the script that indicates whether it passed or errored.
27
+ */
25
28
  async function validateLicenseFiles({ fix = false, verbose = false, shouldProcessRoot = false, shouldProcessPackages = false, isPublic = false, rootDir, projectName, mainPackageName, copyrightOverrides = [] }) {
26
- const packagePaths = [];
27
- if (shouldProcessRoot) {
28
- packagePaths.push(rootDir);
29
- }
30
- if (shouldProcessPackages) {
31
- packagePaths.push(...await fromAsync(glob(upath.join(rootDir, 'packages', '*'))));
32
- }
33
- if (!packagePaths.length) {
34
- console.error([
35
- 'No packages to parse detected. Make sure that you provided proper paths,',
36
- 'as well as set at least one of: `shouldProcessRoot` or `shouldProcessPackages`.'
37
- ].join('\n'));
38
- return 1;
39
- }
40
- const dependencyMaps = await Promise.all(packagePaths.map(async (packagePath) => getPackageDependencyMap(packagePath, copyrightOverrides)));
41
- console.info('Validating licenses in following packages:');
42
- console.info(dependencyMaps.map(({ packageName }) => ` - ${packageName}`).join('\n'));
43
- const missingCopyrightLists = getMissingCopyrightLists(dependencyMaps);
44
- if (missingCopyrightLists.length) {
45
- console.error('\n❌ Following packages include dependencies where finding copyright message failed. Please add an override:\n');
46
- console.error(missingCopyrightLists.join('\n'));
47
- return 1;
48
- }
49
- if (mainPackageName) {
50
- copyDependenciesToTheMainPackage(dependencyMaps, mainPackageName);
51
- }
52
- const processingResults = await Promise.all(dependencyMaps.map(dependencyMap => processDependencyMap({ dependencyMap, projectName, isPublic, fix })));
53
- const updatedLicenses = processingResults.filter(processingResult => 'updated' in processingResult);
54
- const licensesMissing = processingResults.filter(processingResult => 'licenseMissing' in processingResult);
55
- const sectionsMissing = processingResults.filter(processingResult => 'sectionMissing' in processingResult);
56
- const updatesNeeded = processingResults.filter((processingResult) => 'updateNeeded' in processingResult);
57
- if (updatedLicenses.length) {
58
- console.info('\nUpdated the following license files:');
59
- console.info(makeLicenseFileList(updatedLicenses));
60
- }
61
- if (!licensesMissing.length && !sectionsMissing.length && !updatesNeeded.length) {
62
- console.info('\nValidation complete.');
63
- return 0;
64
- }
65
- if (licensesMissing.length) {
66
- console.error('\nFollowing license files are missing. Please create them:');
67
- console.error(makeLicenseFileList(licensesMissing));
68
- }
69
- if (sectionsMissing.length) {
70
- console.error([
71
- '\nFailed to detect license section in following files.',
72
- 'Please add an `Sources of Intellectual Property Included in ...` section to them:'
73
- ].join(' '));
74
- console.error(makeLicenseFileList(sectionsMissing));
75
- }
76
- if (updatesNeeded.length) {
77
- console.error('\nFollowing license files are not up to date. Please run this script with `--fix` option and review the changes.');
78
- if (!verbose) {
79
- console.error(makeLicenseFileList(updatesNeeded));
80
- }
81
- else {
82
- console.error('\n' + updatesNeeded.map(({ patch }) => patch).join('\n'));
83
- }
84
- }
85
- return 1;
29
+ const packagePaths = [];
30
+ if (shouldProcessRoot) packagePaths.push(rootDir);
31
+ if (shouldProcessPackages) packagePaths.push(...await fromAsync(glob(upath.join(rootDir, "packages", "*"))));
32
+ if (!packagePaths.length) {
33
+ console.error(["No packages to parse detected. Make sure that you provided proper paths,", "as well as set at least one of: `shouldProcessRoot` or `shouldProcessPackages`."].join("\n"));
34
+ return 1;
35
+ }
36
+ const dependencyMaps = await Promise.all(packagePaths.map(async (packagePath) => getPackageDependencyMap(packagePath, copyrightOverrides)));
37
+ console.info("Validating licenses in following packages:");
38
+ console.info(dependencyMaps.map(({ packageName }) => ` - ${packageName}`).join("\n"));
39
+ const missingCopyrightLists = getMissingCopyrightLists(dependencyMaps);
40
+ if (missingCopyrightLists.length) {
41
+ console.error("\n❌ Following packages include dependencies where finding copyright message failed. Please add an override:\n");
42
+ console.error(missingCopyrightLists.join("\n"));
43
+ return 1;
44
+ }
45
+ if (mainPackageName) copyDependenciesToTheMainPackage(dependencyMaps, mainPackageName);
46
+ const processingResults = await Promise.all(dependencyMaps.map((dependencyMap) => processDependencyMap({
47
+ dependencyMap,
48
+ projectName,
49
+ isPublic,
50
+ fix
51
+ })));
52
+ const updatedLicenses = processingResults.filter((processingResult) => "updated" in processingResult);
53
+ const licensesMissing = processingResults.filter((processingResult) => "licenseMissing" in processingResult);
54
+ const sectionsMissing = processingResults.filter((processingResult) => "sectionMissing" in processingResult);
55
+ const updatesNeeded = processingResults.filter((processingResult) => "updateNeeded" in processingResult);
56
+ if (updatedLicenses.length) {
57
+ console.info("\nUpdated the following license files:");
58
+ console.info(makeLicenseFileList(updatedLicenses));
59
+ }
60
+ if (!licensesMissing.length && !sectionsMissing.length && !updatesNeeded.length) {
61
+ console.info("\nValidation complete.");
62
+ return 0;
63
+ }
64
+ if (licensesMissing.length) {
65
+ console.error("\nFollowing license files are missing. Please create them:");
66
+ console.error(makeLicenseFileList(licensesMissing));
67
+ }
68
+ if (sectionsMissing.length) {
69
+ console.error(["\nFailed to detect license section in following files.", "Please add an `Sources of Intellectual Property Included in ...` section to them:"].join(" "));
70
+ console.error(makeLicenseFileList(sectionsMissing));
71
+ }
72
+ if (updatesNeeded.length) {
73
+ console.error("\nFollowing license files are not up to date. Please run this script with `--fix` option and review the changes.");
74
+ if (!verbose) console.error(makeLicenseFileList(updatesNeeded));
75
+ else console.error("\n" + updatesNeeded.map(({ patch }) => patch).join("\n"));
76
+ }
77
+ return 1;
86
78
  }
87
79
  async function getPackageDependencyMap(packagePath, copyrightOverrides) {
88
- const pkgJsonPath = upath.join(packagePath, 'package.json');
89
- const pkgJsonContent = JSON.parse(await readFile(pkgJsonPath, 'utf-8'));
90
- const dependencyNames = Object.keys(pkgJsonContent.dependencies || {})
91
- .filter(dependency => !dependency.match(/(ckeditor)|(cksource)/i));
92
- const packageName = pkgJsonContent.name;
93
- const dependencyMap = {
94
- packageName,
95
- packagePath,
96
- dependencies: []
97
- };
98
- const copyrightOverridesPackage = copyrightOverrides
99
- .find(({ packageName: overridePackageName }) => packageName === overridePackageName);
100
- if (copyrightOverridesPackage) {
101
- dependencyMap.dependencies.push(...copyrightOverridesPackage.dependencies);
102
- }
103
- for (const dependencyName of dependencyNames) {
104
- // If override already exists, skip parsing the dependency.
105
- if (dependencyMap.dependencies.some(({ name }) => name === dependencyName)) {
106
- continue;
107
- }
108
- const dependencyData = { name: dependencyName };
109
- dependencyMap.dependencies.push(dependencyData);
110
- try {
111
- const dependencyPkgJsonPath = findPackageJSON(dependencyName, packagePath);
112
- const dependencyPkgJsonContent = JSON.parse(await readFile(dependencyPkgJsonPath, 'utf-8'));
113
- dependencyData.license = dependencyPkgJsonContent.license;
114
- dependencyData.copyright = await getCopyright(dependencyPkgJsonPath);
115
- }
116
- catch {
117
- // For packages such as `empathic` there is no export under that namespace, only `empathic/*`.
118
- // This causes `findPackageJSON()` to error. We silently fail and later ask the integrator to add an override.
119
- }
120
- }
121
- return dependencyMap;
80
+ const pkgJsonPath = upath.join(packagePath, "package.json");
81
+ const pkgJsonContent = JSON.parse(await readFile(pkgJsonPath, "utf-8"));
82
+ const dependencyNames = Object.keys(pkgJsonContent.dependencies || {}).filter((dependency) => !dependency.match(/(ckeditor)|(cksource)/i));
83
+ const packageName = pkgJsonContent.name;
84
+ const dependencyMap = {
85
+ packageName,
86
+ packagePath,
87
+ dependencies: []
88
+ };
89
+ const copyrightOverridesPackage = copyrightOverrides.find(({ packageName: overridePackageName }) => packageName === overridePackageName);
90
+ if (copyrightOverridesPackage) dependencyMap.dependencies.push(...copyrightOverridesPackage.dependencies);
91
+ for (const dependencyName of dependencyNames) {
92
+ if (dependencyMap.dependencies.some(({ name }) => name === dependencyName)) continue;
93
+ const dependencyData = { name: dependencyName };
94
+ dependencyMap.dependencies.push(dependencyData);
95
+ try {
96
+ const dependencyPkgJsonPath = findPackageJSON(dependencyName, packagePath);
97
+ dependencyData.license = JSON.parse(await readFile(dependencyPkgJsonPath, "utf-8")).license;
98
+ dependencyData.copyright = await getCopyright(dependencyPkgJsonPath);
99
+ } catch {}
100
+ }
101
+ return dependencyMap;
122
102
  }
123
103
  function getMissingCopyrightLists(dependencyMaps) {
124
- return dependencyMaps
125
- .map(({ packageName, dependencies }) => {
126
- const missingCopyrights = dependencies
127
- .filter(({ license, copyright }) => !license || !copyright)
128
- .map(({ name }) => ` - ${name}`);
129
- if (missingCopyrights.length) {
130
- return [
131
- `${packageName}:`,
132
- ...missingCopyrights,
133
- ''
134
- ].join('\n');
135
- }
136
- })
137
- .filter((item) => typeof item === 'string');
104
+ return dependencyMaps.map(({ packageName, dependencies }) => {
105
+ const missingCopyrights = dependencies.filter(({ license, copyright }) => !license || !copyright).map(({ name }) => ` - ${name}`);
106
+ if (missingCopyrights.length) return [
107
+ `${packageName}:`,
108
+ ...missingCopyrights,
109
+ ""
110
+ ].join("\n");
111
+ }).filter((item) => typeof item === "string");
138
112
  }
139
113
  function copyDependenciesToTheMainPackage(dependencyMaps, mainPackageName) {
140
- const mainPackage = dependencyMaps.find(({ packageName }) => packageName === mainPackageName);
141
- mainPackage.dependencies = dependencyMaps.reduce((output, item) => {
142
- item.dependencies.forEach(dependency => {
143
- const itemAlreadyPresent = output.some(({ name }) => name === dependency.name);
144
- if (!itemAlreadyPresent) {
145
- output.push(dependency);
146
- }
147
- });
148
- return output;
149
- }, []);
114
+ const mainPackage = dependencyMaps.find(({ packageName }) => packageName === mainPackageName);
115
+ mainPackage.dependencies = dependencyMaps.reduce((output, item) => {
116
+ item.dependencies.forEach((dependency) => {
117
+ if (!output.some(({ name }) => name === dependency.name)) output.push(dependency);
118
+ });
119
+ return output;
120
+ }, []);
150
121
  }
151
122
  async function processDependencyMap({ dependencyMap, projectName, isPublic, fix }) {
152
- const licenseSectionPattern = /(?<=\n)Sources of Intellectual Property Included in .*?\n[\S\s]*?(?=(\nTrademarks\n)|$)/;
153
- const header = `Sources of Intellectual Property Included in ${projectName}`;
154
- const licensePath = upath.join(dependencyMap.packagePath, 'LICENSE.md');
155
- let currentLicense;
156
- try {
157
- currentLicense = await readFile(licensePath, 'utf-8');
158
- }
159
- catch {
160
- return { licensePath, licenseMissing: true };
161
- }
162
- if (!currentLicense.match(licenseSectionPattern)) {
163
- return { licensePath, sectionMissing: true };
164
- }
165
- const newLicense = currentLicense.replace(licenseSectionPattern, [
166
- header,
167
- '-'.repeat(header.length),
168
- '',
169
- getAuthorDisclaimer(projectName, isPublic),
170
- '',
171
- ...getLicenseList(projectName, dependencyMap.dependencies)
172
- ].filter(item => typeof item === 'string').join('\n'));
173
- if (currentLicense === newLicense) {
174
- return { licensePath };
175
- }
176
- if (fix) {
177
- await writeFile(licensePath, newLicense, 'utf-8');
178
- return { licensePath, updated: true };
179
- }
180
- const patch = createPatch(licensePath, currentLicense, newLicense);
181
- return { licensePath, updateNeeded: true, patch };
123
+ const licenseSectionPattern = /(?<=\n)Sources of Intellectual Property Included in .*?\n[\S\s]*?(?=(\nTrademarks\n)|$)/;
124
+ const header = `Sources of Intellectual Property Included in ${projectName}`;
125
+ const licensePath = upath.join(dependencyMap.packagePath, "LICENSE.md");
126
+ let currentLicense;
127
+ try {
128
+ currentLicense = await readFile(licensePath, "utf-8");
129
+ } catch {
130
+ return {
131
+ licensePath,
132
+ licenseMissing: true
133
+ };
134
+ }
135
+ if (!currentLicense.match(licenseSectionPattern)) return {
136
+ licensePath,
137
+ sectionMissing: true
138
+ };
139
+ const newLicense = currentLicense.replace(licenseSectionPattern, [
140
+ header,
141
+ "-".repeat(header.length),
142
+ "",
143
+ getAuthorDisclaimer(projectName, isPublic),
144
+ "",
145
+ ...getLicenseList(projectName, dependencyMap.dependencies)
146
+ ].filter((item) => typeof item === "string").join("\n"));
147
+ if (currentLicense === newLicense) return { licensePath };
148
+ if (fix) {
149
+ await writeFile(licensePath, newLicense, "utf-8");
150
+ return {
151
+ licensePath,
152
+ updated: true
153
+ };
154
+ }
155
+ return {
156
+ licensePath,
157
+ updateNeeded: true,
158
+ patch: createPatch(licensePath, currentLicense, newLicense)
159
+ };
182
160
  }
183
161
  function getAuthorDisclaimer(projectName, isPublic) {
184
- const authorDisclaimer = [
185
- `Where not otherwise indicated, all ${projectName} content is authored`,
186
- 'by CKSource engineers and consists of CKSource-owned intellectual property.'
187
- ];
188
- if (isPublic) {
189
- authorDisclaimer.push(`In some specific instances, ${projectName} will incorporate work done by`, 'developers outside of CKSource with their express permission.');
190
- }
191
- return authorDisclaimer.join(' ');
162
+ const authorDisclaimer = [`Where not otherwise indicated, all ${projectName} content is authored`, "by CKSource engineers and consists of CKSource-owned intellectual property."];
163
+ if (isPublic) authorDisclaimer.push(`In some specific instances, ${projectName} will incorporate work done by`, "developers outside of CKSource with their express permission.");
164
+ return authorDisclaimer.join(" ");
192
165
  }
193
166
  function getLicenseTypeHeader(projectName, licenseType) {
194
- return [
195
- 'The following libraries are included in',
196
- projectName,
197
- `under the [${licenseType} license](https://opensource.org/licenses/${licenseType}):`
198
- ].join(' ');
167
+ return [
168
+ "The following libraries are included in",
169
+ projectName,
170
+ `under the [${licenseType} license](https://opensource.org/licenses/${licenseType}):`
171
+ ].join(" ");
199
172
  }
200
173
  function getLicenseList(projectName, dependencies) {
201
- const licenseTypes = removeDuplicates(dependencies.flatMap(dependency => dependency.license));
202
- return licenseTypes.sort().flatMap(licenseType => [
203
- getLicenseTypeHeader(projectName, licenseType),
204
- '',
205
- ...dependencies
206
- .filter(({ license }) => license === licenseType)
207
- .sort((a, b) => a.name.localeCompare(b.name))
208
- .map(({ name, copyright }) => `* ${name} - ${copyright}`),
209
- ''
210
- ]);
174
+ return removeDuplicates(dependencies.flatMap((dependency) => dependency.license)).sort().flatMap((licenseType) => [
175
+ getLicenseTypeHeader(projectName, licenseType),
176
+ "",
177
+ ...dependencies.filter(({ license }) => license === licenseType).sort((a, b) => a.name.localeCompare(b.name)).map(({ name, copyright }) => `* ${name} - ${copyright}`),
178
+ ""
179
+ ]);
211
180
  }
212
181
  async function getCopyright(dependencyPkgJsonPath) {
213
- const dependencyPath = upath.dirname(dependencyPkgJsonPath);
214
- const dependencyRootFilePaths = await fromAsync(glob(upath.join(dependencyPath, '*')));
215
- const dependencyLicensePath = dependencyRootFilePaths.find(path => upath.basename(path).match(/license/i));
216
- if (!dependencyLicensePath) {
217
- return;
218
- }
219
- const dependencyLicenseContent = await readFile(dependencyLicensePath, 'utf-8');
220
- const matches = dependencyLicenseContent.match(/(?<=^|\n[ \t]*?)Copyright.+/g);
221
- if (!matches) {
222
- return;
223
- }
224
- return conjunctionFormatter.format(matches.map(match => match.replace(/\.$/, '')) // Strip preexisting trailing dot.
225
- ) + '.'; // Add the trailing dot back.
182
+ const dependencyPath = upath.dirname(dependencyPkgJsonPath);
183
+ const dependencyLicensePath = (await fromAsync(glob(upath.join(dependencyPath, "*")))).find((path) => upath.basename(path).match(/license/i));
184
+ if (!dependencyLicensePath) return;
185
+ const matches = (await readFile(dependencyLicensePath, "utf-8")).match(/(?<=^|\n[ \t]*?)Copyright.+/g);
186
+ if (!matches) return;
187
+ return conjunctionFormatter.format(matches.map((match) => match.replace(/\.$/, ""))) + ".";
226
188
  }
227
189
  function removeDuplicates(array) {
228
- return Array.from(new Set(array));
190
+ return Array.from(new Set(array));
229
191
  }
230
192
  function makeLicenseFileList(array) {
231
- return array.map(({ licensePath }) => ` - ${licensePath}`).join('\n');
193
+ return array.map(({ licensePath }) => ` - ${licensePath}`).join("\n");
232
194
  }
233
- // TODO: Replace with `Array.fromAsync()` once we upgrade to TS 5.5
234
195
  async function fromAsync(iterable) {
235
- const result = [];
236
- for await (const item of iterable) {
237
- result.push(item);
238
- }
239
- return result;
196
+ const result = [];
197
+ for await (const item of iterable) result.push(item);
198
+ return result;
240
199
  }
241
-
200
+ //#endregion
201
+ //#region src/index.ts
202
+ /**
203
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
204
+ * For licensing, see LICENSE.md.
205
+ */
206
+ //#endregion
242
207
  export { validateLicenseFiles };
@@ -1,38 +1,34 @@
1
- /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md.
4
- */
5
1
  type CopyrightOverride = {
6
- packageName: string;
7
- dependencies: Array<{
8
- license: string;
9
- name: string;
10
- copyright: string;
11
- }>;
2
+ packageName: string;
3
+ dependencies: Array<{
4
+ license: string;
5
+ name: string;
6
+ copyright: string;
7
+ }>;
12
8
  };
13
9
  /**
14
- * @param options
15
- * @param options.fix Whether to fix license files instead of printing errors.
16
- * @param options.verbose Whether to print diff instead of just path to file on failed validation.
17
- * @param options.shouldProcessRoot Whether validation should process the root.
18
- * @param options.shouldProcessPackages Whether validation should process `packages/*`.
19
- * @param options.isPublic Whether license should use disclaimer meant for open source repositories.
20
- * @param options.rootDir Base directory.
21
- * @param options.projectName Project name referred to in the licenses.
22
- * @param options.mainPackageName Designated package that contains collected licenses from all other packages.
23
- * @param options.copyrightOverrides Map of of copyright that can both add new ones, as well as override existing ones.
24
- *
25
- * @returns Exit code of the script that indicates whether it passed or errored.
26
- */
10
+ * @param options
11
+ * @param options.fix Whether to fix license files instead of printing errors.
12
+ * @param options.verbose Whether to print diff instead of just path to file on failed validation.
13
+ * @param options.shouldProcessRoot Whether validation should process the root.
14
+ * @param options.shouldProcessPackages Whether validation should process `packages/*`.
15
+ * @param options.isPublic Whether license should use disclaimer meant for open source repositories.
16
+ * @param options.rootDir Base directory.
17
+ * @param options.projectName Project name referred to in the licenses.
18
+ * @param options.mainPackageName Designated package that contains collected licenses from all other packages.
19
+ * @param options.copyrightOverrides Map of of copyright that can both add new ones, as well as override existing ones.
20
+ *
21
+ * @returns Exit code of the script that indicates whether it passed or errored.
22
+ */
27
23
  export declare function validateLicenseFiles({ fix, verbose, shouldProcessRoot, shouldProcessPackages, isPublic, rootDir, projectName, mainPackageName, copyrightOverrides }: {
28
- fix?: boolean;
29
- verbose?: boolean;
30
- shouldProcessRoot?: boolean;
31
- shouldProcessPackages?: boolean;
32
- isPublic?: boolean;
33
- rootDir: string;
34
- projectName: string;
35
- mainPackageName?: string;
36
- copyrightOverrides?: Array<CopyrightOverride>;
24
+ fix?: boolean;
25
+ verbose?: boolean;
26
+ shouldProcessRoot?: boolean;
27
+ shouldProcessPackages?: boolean;
28
+ isPublic?: boolean;
29
+ rootDir: string;
30
+ projectName: string;
31
+ mainPackageName?: string;
32
+ copyrightOverrides?: Array<CopyrightOverride>;
37
33
  }): Promise<number>;
38
34
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-dev-license-checker",
3
- "version": "55.6.0",
3
+ "version": "55.6.1",
4
4
  "description": "Contains tools for validating licenses.",
5
5
  "keywords": [],
6
6
  "author": "CKSource (http://cksource.com/)",