From 594b9d6e72bbb01330da044f669f8c8721e4f951 Mon Sep 17 00:00:00 2001 From: janzon Date: Thu, 28 Nov 2024 07:45:55 +0100 Subject: [PATCH 1/2] Made url in license object optional --- packages/core/src/file-utils.test.ts | 8 ++++++++ packages/core/src/file-utils.ts | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/core/src/file-utils.test.ts b/packages/core/src/file-utils.test.ts index eb7c10a3..86843649 100644 --- a/packages/core/src/file-utils.test.ts +++ b/packages/core/src/file-utils.test.ts @@ -20,6 +20,14 @@ describe("packageJsonSchema", () => { }).success, ).toBe(true); }); + test("when license is object and url is missing", () => { + expect( + packageJsonSchema.safeParse({ + name: "valid", + license: { type: "MIT" }, + }).success, + ).toBe(true); + }); test("when licenses are array of string", () => { expect( packageJsonSchema.safeParse({ name: "valid", licenses: ["MIT"] }) diff --git a/packages/core/src/file-utils.ts b/packages/core/src/file-utils.ts index dbf319d8..9ec3d50e 100644 --- a/packages/core/src/file-utils.ts +++ b/packages/core/src/file-utils.ts @@ -9,7 +9,7 @@ type PackageJsonResult = const packageLicenseObjectSchema = z .object({ type: z.string(), - url: z.string(), + url: z.string().optional(), }) .transform((license) => license.type); From 1bff780dd5ea133316d6a6c932cd5f8cb483562f Mon Sep 17 00:00:00 2001 From: janzon Date: Thu, 28 Nov 2024 08:08:40 +0100 Subject: [PATCH 2/2] fix: allowed licenses in package.json to be a string --- packages/core/src/file-utils.test.ts | 5 +++++ packages/core/src/file-utils.ts | 1 + 2 files changed, 6 insertions(+) diff --git a/packages/core/src/file-utils.test.ts b/packages/core/src/file-utils.test.ts index 86843649..94cdad64 100644 --- a/packages/core/src/file-utils.test.ts +++ b/packages/core/src/file-utils.test.ts @@ -34,6 +34,11 @@ describe("packageJsonSchema", () => { .success, ).toBe(true); }); + test("when licenses is a string", () => { + expect( + packageJsonSchema.safeParse({ name: "valid", licenses: "MIT" }).success, + ).toBe(true); + }); test("when licenses are array of object", () => { expect( diff --git a/packages/core/src/file-utils.ts b/packages/core/src/file-utils.ts index 9ec3d50e..be688571 100644 --- a/packages/core/src/file-utils.ts +++ b/packages/core/src/file-utils.ts @@ -18,6 +18,7 @@ const licenseFieldSchema = z.union([z.string(), packageLicenseObjectSchema]); const licensesFieldSchema = z.union([ z.array(z.string()), z.array(packageLicenseObjectSchema), + z.string(), ]); export const packageJsonSchema = z.union([