metascope 0.7.0 → 0.7.2
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/bin/chunk-Bdh3yLIe.js +1 -0
- package/dist/bin/cli.js +308 -284
- package/dist/bin/dns-CUigd8AG.js +1 -0
- package/dist/bin/{jiti-D2Njwwqq.js → jiti-BTBDwj9g.js} +2 -2
- package/dist/bin/renovate-DxDKd5Ft.js +1 -0
- package/dist/bin/shared-CTlQdTfh.js +5 -0
- package/dist/lib/file-matching.js +20 -13
- package/dist/lib/log.d.ts +6 -4
- package/dist/lib/log.js +5 -3
- package/dist/lib/metadata-types.d.ts +33 -21
- package/dist/lib/metadata-types.js +8 -9
- package/dist/lib/metadata.js +7 -7
- package/dist/lib/package.js +1 -1
- package/dist/lib/parsers/gemspec-parser.js +16 -14
- package/dist/lib/parsers/go-mod-parser.js +13 -10
- package/dist/lib/parsers/makefile-config-parser.js +20 -17
- package/dist/lib/parsers/properties-parser.js +3 -3
- package/dist/lib/parsers/rfc822-header-parser.js +4 -4
- package/dist/lib/parsers/setup-py-parser.js +3 -4
- package/dist/lib/source.d.ts +1 -0
- package/dist/lib/source.js +5 -4
- package/dist/lib/sources/arduino-library-properties.d.ts +10 -10
- package/dist/lib/sources/arduino-library-properties.js +32 -15
- package/dist/lib/sources/cinder-cinderblock-xml.d.ts +11 -11
- package/dist/lib/sources/cinder-cinderblock-xml.js +21 -9
- package/dist/lib/sources/codemeta-json.d.ts +66 -66
- package/dist/lib/sources/codemeta-json.js +27 -23
- package/dist/lib/sources/git-stats.js +1 -1
- package/dist/lib/sources/github-actions.js +9 -2
- package/dist/lib/sources/github.js +1 -1
- package/dist/lib/sources/go-go-mod.d.ts +4 -4
- package/dist/lib/sources/go-goreleaser-yaml.d.ts +8 -8
- package/dist/lib/sources/go-goreleaser-yaml.js +5 -4
- package/dist/lib/sources/java-pom-xml.d.ts +12 -12
- package/dist/lib/sources/java-pom-xml.js +38 -19
- package/dist/lib/sources/metadata-file.d.ts +4 -4
- package/dist/lib/sources/metadata-file.js +15 -12
- package/dist/lib/sources/node-npm-registry.js +1 -1
- package/dist/lib/sources/openframeworks-addon-config-mk.d.ts +7 -7
- package/dist/lib/sources/openframeworks-addon-config-mk.js +7 -0
- package/dist/lib/sources/openframeworks-install-xml.d.ts +10 -10
- package/dist/lib/sources/openframeworks-install-xml.js +24 -14
- package/dist/lib/sources/processing-library-properties.d.ts +8 -8
- package/dist/lib/sources/processing-library-properties.js +25 -10
- package/dist/lib/sources/processing-sketch-properties.d.ts +16 -16
- package/dist/lib/sources/processing-sketch-properties.js +51 -7
- package/dist/lib/sources/publiccode-yaml.d.ts +23 -23
- package/dist/lib/sources/publiccode-yaml.js +37 -5
- package/dist/lib/sources/python-pkg-info.d.ts +18 -18
- package/dist/lib/sources/python-pkg-info.js +2 -2
- package/dist/lib/sources/python-setup-cfg.d.ts +14 -14
- package/dist/lib/sources/python-setup-cfg.js +2 -2
- package/dist/lib/sources/python-setup-py.d.ts +14 -14
- package/dist/lib/sources/readme-file.js +9 -2
- package/dist/lib/sources/ruby-gemspec.d.ts +22 -22
- package/dist/lib/sources/ruby-gemspec.js +1 -0
- package/dist/lib/sources/rust-cargo-toml.d.ts +14 -14
- package/dist/lib/sources/rust-cargo-toml.js +29 -10
- package/dist/lib/sources/xcode-info-plist.d.ts +12 -12
- package/dist/lib/sources/xcode-info-plist.js +48 -24
- package/dist/lib/sources/xcode-project-pbxproj.d.ts +8 -8
- package/dist/lib/sources/xcode-project-pbxproj.js +22 -12
- package/dist/lib/templates/codemeta-json.d.ts +4 -5
- package/dist/lib/templates/codemeta-json.js +4 -5
- package/dist/lib/templates/codemeta.js +30 -30
- package/dist/lib/templates/metadata.d.ts +2 -2
- package/dist/lib/templates/metadata.js +3 -3
- package/dist/lib/utilities/codemeta-helpers.d.ts +3 -2
- package/dist/lib/utilities/codemeta-helpers.js +14 -12
- package/dist/lib/utilities/fetch.js +2 -2
- package/dist/lib/utilities/formatting.js +4 -3
- package/dist/lib/utilities/github.js +3 -3
- package/dist/lib/utilities/license-identification.d.ts +3 -1
- package/dist/lib/utilities/license-identification.js +21 -25
- package/dist/lib/utilities/schema-primitives.js +16 -13
- package/dist/lib/utilities/template-helpers.js +3 -3
- package/package.json +14 -14
- package/readme.md +7 -3
- package/dist/.DS_Store +0 -0
- package/dist/bin/chunk-BjEoQXZ0.js +0 -1
|
@@ -32,24 +32,40 @@ const CANONICAL_CATEGORIES = [
|
|
|
32
32
|
const CATEGORY_MAP = new Map(CANONICAL_CATEGORIES.map((cat) => [cat.replaceAll(/[^a-z]/gi, "").toLowerCase(), cat]));
|
|
33
33
|
CATEGORY_MAP.set("sensor", "Sensors");
|
|
34
34
|
const arduinoLibraryPropertiesSchema = z.object({
|
|
35
|
+
/** Comma-separated architecture identifiers, or ["*"] for all. */
|
|
35
36
|
architectures: stringArray,
|
|
37
|
+
/** Parsed author entries. */
|
|
36
38
|
authors: z.array(arduinoLibraryPropertiesPersonEntrySchema),
|
|
39
|
+
/** Normalized category, or undefined if invalid/empty. */
|
|
37
40
|
category: z.enum(CANONICAL_CATEGORIES).optional(),
|
|
41
|
+
/** Parsed dependency entries. */
|
|
38
42
|
depends: z.array(arduinoLibraryPropertiesDependencyEntrySchema),
|
|
43
|
+
/** Top-level email field (non-standard, used in some fixtures). */
|
|
39
44
|
email: nonEmptyString,
|
|
45
|
+
/** Comma-separated header files. */
|
|
40
46
|
includes: stringArray,
|
|
47
|
+
/** License value (non-standard field). */
|
|
41
48
|
license: nonEmptyString,
|
|
49
|
+
/** Parsed maintainer entry. */
|
|
42
50
|
maintainer: arduinoLibraryPropertiesPersonEntrySchema.optional(),
|
|
51
|
+
/** Library name. */
|
|
43
52
|
name: nonEmptyString,
|
|
53
|
+
/** Extended description paragraph. */
|
|
44
54
|
paragraph: nonEmptyString,
|
|
55
|
+
/** Raw key-value pairs. */
|
|
45
56
|
raw: z.record(z.string(), z.string()),
|
|
57
|
+
/** Repository URL (non-standard field). */
|
|
46
58
|
repository: optionalUrl,
|
|
59
|
+
/** One-sentence description. */
|
|
47
60
|
sentence: nonEmptyString,
|
|
61
|
+
/** Project URL. */
|
|
48
62
|
url: optionalUrl,
|
|
63
|
+
/** Library version. */
|
|
49
64
|
version: nonEmptyString
|
|
50
65
|
});
|
|
51
66
|
/**
|
|
52
|
-
* Parse an Arduino `library.properties` content string into a structured
|
|
67
|
+
* Parse an Arduino `library.properties` content string into a structured
|
|
68
|
+
* object.
|
|
53
69
|
*/
|
|
54
70
|
function parse(content) {
|
|
55
71
|
const raw = parseProperties(content);
|
|
@@ -78,19 +94,20 @@ function get(raw, key) {
|
|
|
78
94
|
}
|
|
79
95
|
/** Return a trimmed string, or undefined if empty/whitespace-only. */
|
|
80
96
|
function nonEmpty(value) {
|
|
81
|
-
if (value === void 0) return
|
|
97
|
+
if (value === void 0) return;
|
|
82
98
|
const trimmed = value.trim();
|
|
83
99
|
return trimmed.length > 0 ? trimmed : void 0;
|
|
84
100
|
}
|
|
85
101
|
/**
|
|
86
|
-
* Normalize a category string to the canonical Arduino category.
|
|
87
|
-
*
|
|
88
|
-
*
|
|
102
|
+
* Normalize a category string to the canonical Arduino category. Strips all
|
|
103
|
+
* non-letter characters, lowercases, and matches against the canonical map. For
|
|
104
|
+
* comma-separated values (e.g. "Sensors, Timing"), takes the first valid
|
|
105
|
+
* match.
|
|
89
106
|
*/
|
|
90
107
|
function normalizeCategory(value) {
|
|
91
|
-
if (value === void 0) return
|
|
108
|
+
if (value === void 0) return;
|
|
92
109
|
const trimmed = value.trim();
|
|
93
|
-
if (trimmed.length === 0) return
|
|
110
|
+
if (trimmed.length === 0) return;
|
|
94
111
|
for (const part of trimmed.split(",")) {
|
|
95
112
|
const key = part.replaceAll(/[^a-z]/gi, "").toLowerCase();
|
|
96
113
|
if (key.length === 0) continue;
|
|
@@ -128,9 +145,9 @@ function parsePersonList(value) {
|
|
|
128
145
|
return results;
|
|
129
146
|
}
|
|
130
147
|
/**
|
|
131
|
-
* Parse a comma-separated list of dependencies with optional version
|
|
132
|
-
* e.g. "ArduinoHttpClient (>=1.0.0), ArduinoJson" →
|
|
133
|
-
*
|
|
148
|
+
* Parse a comma-separated list of dependencies with optional version
|
|
149
|
+
* constraints. e.g. "ArduinoHttpClient (>=1.0.0), ArduinoJson" → [{ name:
|
|
150
|
+
* "ArduinoHttpClient", versionConstraint: ">=1.0.0" }, ...]
|
|
134
151
|
*/
|
|
135
152
|
function parseDependencies(value) {
|
|
136
153
|
const trimmed = value.trim();
|
|
@@ -162,8 +179,8 @@ function parseDependencies(value) {
|
|
|
162
179
|
return results;
|
|
163
180
|
}
|
|
164
181
|
/**
|
|
165
|
-
* Arduino-specific fields that distinguish library.properties from
|
|
166
|
-
*
|
|
182
|
+
* Arduino-specific fields that distinguish library.properties from Processing's
|
|
183
|
+
* identically-named format.
|
|
167
184
|
*/
|
|
168
185
|
const ARDUINO_SPECIFIC_FIELDS = new Set([
|
|
169
186
|
"architectures",
|
|
@@ -178,9 +195,9 @@ const PROCESSING_EXCLUSIVE_FIELDS = new Set([
|
|
|
178
195
|
"prettyversion"
|
|
179
196
|
]);
|
|
180
197
|
/**
|
|
181
|
-
* Validate that a library.properties file is Arduino (not Processing).
|
|
182
|
-
*
|
|
183
|
-
*
|
|
198
|
+
* Validate that a library.properties file is Arduino (not Processing). Requires
|
|
199
|
+
* name=, version=, author= and either an Arduino-specific field or no
|
|
200
|
+
* Processing-exclusive fields.
|
|
184
201
|
*/
|
|
185
202
|
function isArduinoLibraryProperties(content) {
|
|
186
203
|
const raw = parseProperties(content);
|
|
@@ -3,17 +3,17 @@ import { z } from "zod";
|
|
|
3
3
|
|
|
4
4
|
//#region src/lib/sources/cinder-cinderblock-xml.d.ts
|
|
5
5
|
declare const cinderCinderblockSchema: z.ZodObject<{
|
|
6
|
-
author: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString
|
|
7
|
-
git: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
8
|
-
id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
9
|
-
library: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
10
|
-
license: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
11
|
-
name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
12
|
-
requires: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString
|
|
13
|
-
summary: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
14
|
-
supports: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString
|
|
15
|
-
url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
16
|
-
version: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
6
|
+
author: z.ZodDefault<z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>>;
|
|
7
|
+
git: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
8
|
+
id: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
9
|
+
library: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
10
|
+
license: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
11
|
+
name: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
12
|
+
requires: z.ZodDefault<z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>>;
|
|
13
|
+
summary: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
14
|
+
supports: z.ZodDefault<z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>>;
|
|
15
|
+
url: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
16
|
+
version: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
17
17
|
}, z.core.$strip>;
|
|
18
18
|
type CinderCinderblock = z.infer<typeof cinderCinderblockSchema>;
|
|
19
19
|
type CinderCinderblockXmlData = OneOrMany<SourceRecord<CinderCinderblock>> | undefined;
|
|
@@ -18,16 +18,27 @@ import { XMLParser } from "fast-xml-parser";
|
|
|
18
18
|
* Uses `fast-xml-parser` with attribute parsing enabled.
|
|
19
19
|
*/
|
|
20
20
|
const cinderCinderblockSchema = z.object({
|
|
21
|
+
/** Block author name(s), split from comma-separated values. */
|
|
21
22
|
author: stringArray,
|
|
23
|
+
/** Git repository URL. */
|
|
22
24
|
git: optionalUrl,
|
|
25
|
+
/** Block identifier (e.g. "info.v002.syphon"). */
|
|
23
26
|
id: nonEmptyString,
|
|
27
|
+
/** Library or libraryUrl reference link. */
|
|
24
28
|
library: optionalUrl,
|
|
29
|
+
/** License identifier. */
|
|
25
30
|
license: nonEmptyString,
|
|
31
|
+
/** Block display name. */
|
|
26
32
|
name: nonEmptyString,
|
|
33
|
+
/** Software dependencies from `<requires>` elements. */
|
|
27
34
|
requires: stringArray,
|
|
35
|
+
/** Block summary / description. */
|
|
28
36
|
summary: nonEmptyString,
|
|
37
|
+
/** Supported operating systems from `<supports os="...">` elements. */
|
|
29
38
|
supports: stringArray,
|
|
39
|
+
/** Project URL. */
|
|
30
40
|
url: optionalUrl,
|
|
41
|
+
/** Version string. */
|
|
31
42
|
version: nonEmptyString
|
|
32
43
|
});
|
|
33
44
|
/**
|
|
@@ -40,8 +51,8 @@ const OS_MAP = {
|
|
|
40
51
|
msw: "Windows"
|
|
41
52
|
};
|
|
42
53
|
/**
|
|
43
|
-
* Parse a `cinderblock.xml` content string into a structured object.
|
|
44
|
-
*
|
|
54
|
+
* Parse a `cinderblock.xml` content string into a structured object. Returns
|
|
55
|
+
* undefined if the XML is malformed or missing the expected structure.
|
|
45
56
|
*/
|
|
46
57
|
function parse(content) {
|
|
47
58
|
const parser = new XMLParser({
|
|
@@ -52,14 +63,14 @@ function parse(content) {
|
|
|
52
63
|
let data;
|
|
53
64
|
try {
|
|
54
65
|
const parsed = parser.parse(content);
|
|
55
|
-
if (!is.plainObject(parsed)) return
|
|
66
|
+
if (!is.plainObject(parsed)) return;
|
|
56
67
|
data = parsed;
|
|
57
68
|
} catch {
|
|
58
69
|
return;
|
|
59
70
|
}
|
|
60
|
-
if (!is.plainObject(data.cinder)) return
|
|
71
|
+
if (!is.plainObject(data.cinder)) return;
|
|
61
72
|
const { cinder } = data;
|
|
62
|
-
if (!is.plainObject(cinder.block)) return
|
|
73
|
+
if (!is.plainObject(cinder.block)) return;
|
|
63
74
|
const { block } = cinder;
|
|
64
75
|
return cinderCinderblockSchema.parse({
|
|
65
76
|
author: splitCommaSeparated(getAttribute(block, "author")),
|
|
@@ -76,17 +87,18 @@ function parse(content) {
|
|
|
76
87
|
});
|
|
77
88
|
}
|
|
78
89
|
/**
|
|
79
|
-
* Get a trimmed string attribute from a parsed XML element.
|
|
80
|
-
*
|
|
90
|
+
* Get a trimmed string attribute from a parsed XML element. fast-xml-parser
|
|
91
|
+
* stores attributes with the `@_` prefix.
|
|
81
92
|
*/
|
|
82
93
|
function getAttribute(element, name) {
|
|
83
94
|
const value = element[`@_${name}`];
|
|
84
|
-
if (typeof value !== "string") return
|
|
95
|
+
if (typeof value !== "string") return;
|
|
85
96
|
const trimmed = value.trim();
|
|
86
97
|
return trimmed.length > 0 ? trimmed : void 0;
|
|
87
98
|
}
|
|
88
99
|
/**
|
|
89
|
-
* Extract deduplicated, mapped operating system names from `<supports
|
|
100
|
+
* Extract deduplicated, mapped operating system names from `<supports
|
|
101
|
+
* os="...">` elements.
|
|
90
102
|
*/
|
|
91
103
|
function parseOperatingSystems(block) {
|
|
92
104
|
const results = [];
|
|
@@ -3,113 +3,113 @@ import { z } from "zod";
|
|
|
3
3
|
|
|
4
4
|
//#region src/lib/sources/codemeta-json.d.ts
|
|
5
5
|
declare const codeMetaJsonDataSchema: z.ZodObject<{
|
|
6
|
-
applicationCategory: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
7
|
-
applicationSubCategory: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
6
|
+
applicationCategory: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
7
|
+
applicationSubCategory: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
8
8
|
author: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
9
|
-
affiliation: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
10
|
-
email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
11
|
-
familyName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
12
|
-
givenName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
13
|
-
id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
14
|
-
name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
9
|
+
affiliation: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
10
|
+
email: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
11
|
+
familyName: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
12
|
+
givenName: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
13
|
+
id: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
14
|
+
name: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
15
15
|
type: z.ZodOptional<z.ZodEnum<{
|
|
16
16
|
Organization: "Organization";
|
|
17
17
|
Person: "Person";
|
|
18
18
|
}>>;
|
|
19
|
-
url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
19
|
+
url: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
20
20
|
}, z.core.$strip>>>>>;
|
|
21
|
-
buildInstructions: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
22
|
-
codeRepository: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
23
|
-
continuousIntegration: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
21
|
+
buildInstructions: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
22
|
+
codeRepository: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
23
|
+
continuousIntegration: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
24
24
|
contributor: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
25
|
-
affiliation: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
26
|
-
email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
27
|
-
familyName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
28
|
-
givenName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
29
|
-
id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
30
|
-
name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
25
|
+
affiliation: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
26
|
+
email: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
27
|
+
familyName: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
28
|
+
givenName: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
29
|
+
id: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
30
|
+
name: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
31
31
|
type: z.ZodOptional<z.ZodEnum<{
|
|
32
32
|
Organization: "Organization";
|
|
33
33
|
Person: "Person";
|
|
34
34
|
}>>;
|
|
35
|
-
url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
35
|
+
url: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
36
36
|
}, z.core.$strip>>>>>;
|
|
37
37
|
copyrightHolder: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
38
|
-
affiliation: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
39
|
-
email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
40
|
-
familyName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
41
|
-
givenName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
42
|
-
id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
43
|
-
name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
38
|
+
affiliation: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
39
|
+
email: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
40
|
+
familyName: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
41
|
+
givenName: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
42
|
+
id: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
43
|
+
name: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
44
44
|
type: z.ZodOptional<z.ZodEnum<{
|
|
45
45
|
Organization: "Organization";
|
|
46
46
|
Person: "Person";
|
|
47
47
|
}>>;
|
|
48
|
-
url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
48
|
+
url: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
49
49
|
}, z.core.$strip>>>>>;
|
|
50
|
-
copyrightYear: z.ZodPipe<z.ZodTransform<number | undefined, unknown>, z.ZodOptional<z.ZodNumber
|
|
51
|
-
dateCreated: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
52
|
-
dateModified: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
53
|
-
datePublished: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
54
|
-
description: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
55
|
-
developmentStatus: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
56
|
-
downloadUrl: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
50
|
+
copyrightYear: z.ZodOptional<z.ZodPipe<z.ZodTransform<number | undefined, unknown>, z.ZodOptional<z.ZodNumber>>>;
|
|
51
|
+
dateCreated: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
52
|
+
dateModified: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
53
|
+
datePublished: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
54
|
+
description: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
55
|
+
developmentStatus: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
56
|
+
downloadUrl: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
57
57
|
funder: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
58
|
-
affiliation: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
59
|
-
email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
60
|
-
familyName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
61
|
-
givenName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
62
|
-
id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
63
|
-
name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
58
|
+
affiliation: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
59
|
+
email: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
60
|
+
familyName: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
61
|
+
givenName: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
62
|
+
id: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
63
|
+
name: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
64
64
|
type: z.ZodOptional<z.ZodEnum<{
|
|
65
65
|
Organization: "Organization";
|
|
66
66
|
Person: "Person";
|
|
67
67
|
}>>;
|
|
68
|
-
url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
68
|
+
url: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
69
69
|
}, z.core.$strip>>>>>;
|
|
70
|
-
funding: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
71
|
-
identifier: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
72
|
-
installUrl: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
70
|
+
funding: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
71
|
+
identifier: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
72
|
+
installUrl: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
73
73
|
isAccessibleForFree: z.ZodOptional<z.ZodBoolean>;
|
|
74
|
-
issueTracker: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
74
|
+
issueTracker: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
75
75
|
keywords: z.ZodOptional<z.ZodPipe<z.ZodTransform<string[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodString>>>>;
|
|
76
76
|
license: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | string[] | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>>;
|
|
77
77
|
maintainer: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
78
|
-
affiliation: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
79
|
-
email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
80
|
-
familyName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
81
|
-
givenName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
82
|
-
id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
83
|
-
name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
78
|
+
affiliation: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
79
|
+
email: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
80
|
+
familyName: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
81
|
+
givenName: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
82
|
+
id: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
83
|
+
name: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
84
84
|
type: z.ZodOptional<z.ZodEnum<{
|
|
85
85
|
Organization: "Organization";
|
|
86
86
|
Person: "Person";
|
|
87
87
|
}>>;
|
|
88
|
-
url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
88
|
+
url: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
89
89
|
}, z.core.$strip>>>>>;
|
|
90
|
-
name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
90
|
+
name: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
91
91
|
operatingSystem: z.ZodOptional<z.ZodPipe<z.ZodTransform<string[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodString>>>>;
|
|
92
92
|
programmingLanguage: z.ZodOptional<z.ZodPipe<z.ZodTransform<string[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodString>>>>;
|
|
93
|
-
readme: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
93
|
+
readme: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
94
94
|
relatedLink: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | string[] | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>>;
|
|
95
|
-
releaseNotes: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
95
|
+
releaseNotes: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
96
96
|
runtimePlatform: z.ZodOptional<z.ZodPipe<z.ZodTransform<string[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodString>>>>;
|
|
97
|
-
softwareHelp: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
97
|
+
softwareHelp: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
98
98
|
softwareRequirements: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
99
|
-
identifier: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
100
|
-
name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
101
|
-
runtimePlatform: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
102
|
-
version: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
99
|
+
identifier: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
100
|
+
name: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
101
|
+
runtimePlatform: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
102
|
+
version: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
103
103
|
}, z.core.$strip>>>>>;
|
|
104
104
|
softwareSuggestions: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
105
|
-
identifier: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
106
|
-
name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
107
|
-
runtimePlatform: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
108
|
-
version: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
105
|
+
identifier: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
106
|
+
name: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
107
|
+
runtimePlatform: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
108
|
+
version: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
109
109
|
}, z.core.$strip>>>>>;
|
|
110
|
-
softwareVersion: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
111
|
-
url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
112
|
-
version: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
110
|
+
softwareVersion: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
111
|
+
url: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
112
|
+
version: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>>>;
|
|
113
113
|
}, z.core.$strip>;
|
|
114
114
|
type CodeMetaJson = z.infer<typeof codeMetaJsonDataSchema>;
|
|
115
115
|
type CodeMetaJsonData = OneOrMany<SourceRecord<CodeMetaJson>> | undefined;
|
|
@@ -12,15 +12,17 @@ import { z } from "zod";
|
|
|
12
12
|
* CodeMeta JSON metadata source.
|
|
13
13
|
*
|
|
14
14
|
* Reads a codemeta.json file (v1, v2, or v3) and normalizes it into a
|
|
15
|
-
* consistent shape with predictable types. No enrichment, no JSON-LD
|
|
16
|
-
*
|
|
15
|
+
* consistent shape with predictable types. No enrichment, no JSON-LD expansion
|
|
16
|
+
* — just an honest representation of what's in the file.
|
|
17
17
|
*
|
|
18
18
|
* Uses Zod preprocess schemas to handle v1/v2/v3 normalization:
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* -
|
|
19
|
+
*
|
|
20
|
+
* - `@`-prefixed JSON-LD keys stripped, v1 property names remapped
|
|
21
|
+
* - `{"@type": "xsd:anyURI", "@value": "..."}` unwrapped to plain strings
|
|
22
|
+
* - Person/org objects normalized (`@type`→`type`, `@id`→`id`,
|
|
23
|
+
* affiliation-as-object)
|
|
24
|
+
* - Comma-separated strings split to arrays, `{"name":"..."}` objects unwrapped
|
|
25
|
+
* - Dependencies normalized (string → `{name: string}`)
|
|
24
26
|
*/
|
|
25
27
|
/**
|
|
26
28
|
* A string that also unwraps `{"@value": "..."}` JSON-LD typed values.
|
|
@@ -29,17 +31,19 @@ import { z } from "zod";
|
|
|
29
31
|
const codeMetaString = z.preprocess((value) => {
|
|
30
32
|
if (typeof value === "string") return value;
|
|
31
33
|
if (is.plainObject(value) && typeof value["@value"] === "string") return value["@value"];
|
|
32
|
-
}, nonEmptyString);
|
|
34
|
+
}, nonEmptyString).optional();
|
|
33
35
|
/** Same as codeMetaString but semantically a URL field. */
|
|
34
36
|
const codeMetaUrl = z.preprocess((value) => {
|
|
35
37
|
if (typeof value === "string") return value;
|
|
36
38
|
if (is.plainObject(value) && typeof value["@value"] === "string") return value["@value"];
|
|
37
|
-
}, optionalUrl);
|
|
39
|
+
}, optionalUrl).optional();
|
|
38
40
|
/**
|
|
39
41
|
* A string array that handles CodeMeta's polymorphic inputs:
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
42
|
+
*
|
|
43
|
+
* - Single comma-separated string → split to array (common in v1)
|
|
44
|
+
* - Array of strings → pass through
|
|
45
|
+
* - Array of `{"name":"..."}` objects → extract name strings (e.g.
|
|
46
|
+
* programmingLanguage)
|
|
43
47
|
*/
|
|
44
48
|
const codeMetaStringArray = z.preprocess((value) => {
|
|
45
49
|
if (value === void 0 || value === null) return;
|
|
@@ -72,9 +76,9 @@ const codeMetaPersonOrOrgSchema = z.object({
|
|
|
72
76
|
url: optionalUrl
|
|
73
77
|
});
|
|
74
78
|
/**
|
|
75
|
-
* Preprocess a raw person/org value into a normalized shape.
|
|
76
|
-
*
|
|
77
|
-
* affiliation
|
|
79
|
+
* Preprocess a raw person/org value into a normalized shape. Handles: plain
|
|
80
|
+
* string → {name: string}, `@type`→`type`, `@id`→`id`, affiliation-as-object →
|
|
81
|
+
* affiliation string.
|
|
78
82
|
*/
|
|
79
83
|
function preprocessPersonOrOrg(value) {
|
|
80
84
|
if (typeof value === "string") return { name: value };
|
|
@@ -96,8 +100,8 @@ function preprocessPersonOrOrg(value) {
|
|
|
96
100
|
if (result.name ?? result.givenName ?? result.familyName ?? result.email) return result;
|
|
97
101
|
}
|
|
98
102
|
/**
|
|
99
|
-
* A person/org array that normalizes single values to arrays,
|
|
100
|
-
*
|
|
103
|
+
* A person/org array that normalizes single values to arrays, and each element
|
|
104
|
+
* through `preprocessPersonOrOrg`.
|
|
101
105
|
*/
|
|
102
106
|
const codeMetaPersonArray = z.preprocess((value) => {
|
|
103
107
|
if (value === void 0 || value === null) return;
|
|
@@ -111,8 +115,8 @@ const codeMetaDependencySchema = z.object({
|
|
|
111
115
|
version: nonEmptyString
|
|
112
116
|
});
|
|
113
117
|
/**
|
|
114
|
-
* Preprocess a raw dependency value into a normalized shape.
|
|
115
|
-
*
|
|
118
|
+
* Preprocess a raw dependency value into a normalized shape. Handles: plain
|
|
119
|
+
* string → {name: string}.
|
|
116
120
|
*/
|
|
117
121
|
function preprocessDependency(value) {
|
|
118
122
|
if (typeof value === "string") return { name: value };
|
|
@@ -125,8 +129,8 @@ function preprocessDependency(value) {
|
|
|
125
129
|
if (dep.name ?? dep.identifier) return dep;
|
|
126
130
|
}
|
|
127
131
|
/**
|
|
128
|
-
* A dependency array that normalizes single values to arrays,
|
|
129
|
-
*
|
|
132
|
+
* A dependency array that normalizes single values to arrays, and each element
|
|
133
|
+
* through `preprocessDependency`.
|
|
130
134
|
*/
|
|
131
135
|
const codeMetaDependencyArray = z.preprocess((value) => {
|
|
132
136
|
if (value === void 0 || value === null) return;
|
|
@@ -148,7 +152,7 @@ const codeMetaJsonDataSchema = z.object({
|
|
|
148
152
|
const parsed = Number.parseInt(v, 10);
|
|
149
153
|
return Number.isNaN(parsed) ? void 0 : parsed;
|
|
150
154
|
}
|
|
151
|
-
}, z.number().optional()),
|
|
155
|
+
}, z.number().optional()).optional(),
|
|
152
156
|
dateCreated: codeMetaString,
|
|
153
157
|
dateModified: codeMetaString,
|
|
154
158
|
datePublished: codeMetaString,
|
|
@@ -191,7 +195,7 @@ const v1PropertyMap = {
|
|
|
191
195
|
*/
|
|
192
196
|
function parse(content) {
|
|
193
197
|
const raw = parseJsonRecord(content);
|
|
194
|
-
if (!raw) return
|
|
198
|
+
if (!raw) return;
|
|
195
199
|
const migrated = migrateV1Properties(raw);
|
|
196
200
|
if (migrated.datePublished === void 0 && typeof migrated.dateReleased === "string") migrated.datePublished = migrated.dateReleased;
|
|
197
201
|
return codeMetaJsonDataSchema.parse(migrated);
|
|
@@ -39,12 +39,19 @@ const workflowRunConclusion = z.enum([
|
|
|
39
39
|
"timed_out"
|
|
40
40
|
]);
|
|
41
41
|
const githubActionSchema = z.object({
|
|
42
|
+
/** Relative path to the workflow file. */
|
|
42
43
|
file: z.string(),
|
|
44
|
+
/** ISO 8601 timestamp of the latest completed run on the default branch. */
|
|
43
45
|
lastRunAt: z.string().optional(),
|
|
46
|
+
/** Conclusion of the latest run on the default branch. */
|
|
44
47
|
lastRunConclusion: workflowRunConclusion.optional(),
|
|
48
|
+
/** Duration of the latest run in milliseconds. */
|
|
45
49
|
lastRunDurationMs: z.number().optional(),
|
|
50
|
+
/** Status of the latest run on the default branch. */
|
|
46
51
|
lastRunStatus: workflowRunStatus.optional(),
|
|
52
|
+
/** URL of the latest run on GitHub. */
|
|
47
53
|
lastRunUrl: z.string().optional(),
|
|
54
|
+
/** Workflow name from the `name` field. */
|
|
48
55
|
name: z.string()
|
|
49
56
|
});
|
|
50
57
|
/** Resolve owner/repo from git config remotes in context. */
|
|
@@ -93,7 +100,7 @@ async function fetchWorkflowRuns(octokit, owner, repo, defaultBranch) {
|
|
|
93
100
|
const githubActionsSource = {
|
|
94
101
|
async extract(context) {
|
|
95
102
|
const inputs = await getMatches(context.options, [".github/workflows/*.{yml,yaml}"]);
|
|
96
|
-
if (inputs.length === 0) return
|
|
103
|
+
if (inputs.length === 0) return;
|
|
97
104
|
const records = [];
|
|
98
105
|
for (const input of inputs) try {
|
|
99
106
|
const parsed = parse(await readFile(input, "utf8"));
|
|
@@ -112,7 +119,7 @@ const githubActionsSource = {
|
|
|
112
119
|
} catch (error) {
|
|
113
120
|
log.warn(`Failed to parse workflow "${input}": ${error instanceof Error ? error.message : String(error)}`);
|
|
114
121
|
}
|
|
115
|
-
if (records.length === 0) return
|
|
122
|
+
if (records.length === 0) return;
|
|
116
123
|
if (context.options.offline) log.debug("Skipping GitHub Actions run data (offline mode)");
|
|
117
124
|
else try {
|
|
118
125
|
const ownerRepo = await resolveOwnerRepo(context);
|
|
@@ -218,7 +218,7 @@ async function checkHasPages(octokit, owner, repo) {
|
|
|
218
218
|
}
|
|
219
219
|
async function getUpstreamComparison(octokit, owner, repo, defaultBranch, parent) {
|
|
220
220
|
const parentBranch = parent.defaultBranchRef?.name;
|
|
221
|
-
if (!parentBranch) return
|
|
221
|
+
if (!parentBranch) return;
|
|
222
222
|
try {
|
|
223
223
|
const response = await octokit.rest.repos.compareCommitsWithBasehead({
|
|
224
224
|
basehead: `${parent.owner.login}:${parentBranch}...${owner}:${defaultBranch}`,
|
|
@@ -7,10 +7,10 @@ declare const goModDataSchema: z.ZodObject<{
|
|
|
7
7
|
module: z.ZodString;
|
|
8
8
|
version: z.ZodString;
|
|
9
9
|
}, z.core.$strip>>;
|
|
10
|
-
go_version: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
11
|
-
module: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
12
|
-
repository_url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
13
|
-
tool_dependencies: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString
|
|
10
|
+
go_version: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
11
|
+
module: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
12
|
+
repository_url: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
13
|
+
tool_dependencies: z.ZodDefault<z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>>;
|
|
14
14
|
}, z.core.$strip>;
|
|
15
15
|
/** Parsed go.mod metadata */
|
|
16
16
|
type GoMod = z.infer<typeof goModDataSchema>;
|
|
@@ -3,14 +3,14 @@ import { z } from "zod";
|
|
|
3
3
|
|
|
4
4
|
//#region src/lib/sources/go-goreleaser-yaml.d.ts
|
|
5
5
|
declare const goreleaserDataSchema: z.ZodObject<{
|
|
6
|
-
description: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
7
|
-
homepage: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
8
|
-
license: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
9
|
-
maintainer: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
10
|
-
operating_systems: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString
|
|
11
|
-
project_name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
12
|
-
repository_url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
13
|
-
vendor: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString
|
|
6
|
+
description: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
7
|
+
homepage: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
8
|
+
license: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
9
|
+
maintainer: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
10
|
+
operating_systems: z.ZodDefault<z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>>;
|
|
11
|
+
project_name: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
12
|
+
repository_url: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
13
|
+
vendor: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
|
|
14
14
|
}, z.core.$strip>;
|
|
15
15
|
/** Parsed goreleaser metadata */
|
|
16
16
|
type Goreleaser = z.infer<typeof goreleaserDataSchema>;
|