use std::collections::HashSet;
use std::sync::LazyLock;
pub(super) const PREFIXES: &[&str] = &[
"?",
"??",
"????",
"(insert",
"then",
"current",
"year)",
"maintained",
"by",
"developed",
"created",
"written",
"recoded",
"coded",
"modified",
"maintainedcreated",
"$year",
"year",
"uref",
"owner",
"from",
"and",
"of",
"to",
"for",
"or",
"<p>",
];
pub(super) static COPYRIGHTS_SUFFIXES: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {
[
"copyright",
".",
",",
"year",
"parts",
"any",
"0",
"1",
"author",
"all",
"some",
"and",
"</p>",
"is",
"-",
"distributed",
"information",
"credited",
"by",
]
.into_iter()
.collect()
});
pub(super) static AUTHORS_PREFIXES: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {
let mut s: HashSet<&str> = PREFIXES.iter().copied().collect();
for w in &[
"contributor",
"contributor(s)",
"authors",
"author",
"authors'",
"author:",
"author(s)",
"authored",
"created",
"author.",
"author'",
"authors,",
"authorship",
"maintainer",
"co-maintainer",
"or",
"spdx-filecontributor",
"</b>",
"mailto:",
"name'",
"a",
"moduleauthor",
"\u{a9}", ] {
s.insert(w);
}
s
});
pub(super) static AUTHORS_JUNK: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {
[
"james hacker.",
"james random hacker.",
"contributor. c. a",
"grant the u.s. government and others",
"james random hacker",
"james hacker",
"company",
"contributing project",
"its author",
"gnomovision",
"would",
"may",
"attributions",
"the",
"app id",
"homepage",
"repository",
"documentation",
"package author",
"package authors",
"project",
"previous lucene",
"group",
"the coordinator",
"the owner",
"a group",
"sonatype nexus",
"apache tomcat",
"visual studio",
"apache maven",
"visual studio and visual studio",
"work",
"additional",
"builder",
"chef-client",
"compatible",
"guice",
"incorporated",
"guide",
"grants",
"recommend",
"recheck",
"reputations",
"review",
"reviewer",
"document",
"otherwise",
"disclaims",
"liability",
"required",
"desired",
"intended",
"someone",
"performing",
"volunteer",
"volunteers",
"automatically generated",
"donald becker",
]
.into_iter()
.collect()
});
pub(super) const AUTHORS_JUNK_PREFIX: &str = "httpProxy";
pub(super) static HOLDERS_PREFIXES: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {
let mut s: HashSet<&str> = PREFIXES.iter().copied().collect();
for w in &[
"-",
"a",
"<a",
"href",
"ou",
"portions",
"portion",
"notice",
"holders",
"holder",
"property",
"parts",
"part",
"at",
"cppyright",
"assemblycopyright",
"c",
"works",
"present",
"right",
"rights",
"reserved",
"held",
"is",
"(x)",
"later",
"$",
"current.year",
"\u{a9}", "author",
"authors",
] {
s.insert(w);
}
s
});
pub(super) static HOLDERS_PREFIXES_WITH_ALL: LazyLock<HashSet<&'static str>> =
LazyLock::new(|| {
let mut s = HOLDERS_PREFIXES.clone();
s.insert("all");
s
});
pub(super) static HOLDERS_SUFFIXES: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {
[
"http",
"and",
"email",
"licensing@",
"(minizip)",
"website",
"(c)",
"<http",
"/>",
".",
",",
"year",
"some",
"all",
"right",
"rights",
"reserved",
"reserved.",
"href",
"c",
"a",
"</p>",
"or",
"taken",
"from",
"is",
"-",
"distributed",
"information",
"credited",
"$",
]
.into_iter()
.collect()
});
pub(super) static HOLDERS_JUNK: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {
[
"a href",
"property",
"copyright",
"licensing@",
"c",
"works",
"http",
"the",
"are",
"?",
"cppyright",
"parts",
"disclaimed",
"or",
"<holders>",
"author",
"holders",
"holder",
"holder,",
"and/or",
"if",
"grant",
"notice",
"header",
"comment",
"do the following",
"does",
"has",
"each",
"also",
"in",
"simply",
"other",
"shall",
"said",
"who",
"your",
"their",
"ensure",
"allow",
"terms",
"conditions",
"information",
"contributors",
"contributors as",
"contributors and the university",
"indemnification",
"license",
"claimed",
"but",
"agrees",
"patent",
"owner",
"owners",
"yyyy",
"expressly",
"stating",
"enforce",
"d",
"ss",
"given",
"may",
"every",
"no",
"good",
"row",
"logo",
"flag",
"updated",
"law",
"england",
"tm",
"pgp",
"distributed",
"as",
"null",
"psy",
"object",
"indicate the origin and nature of",
"statements",
"protection",
"(if any) with",
"if any with",
"ga",
"ka",
"aa",
"qa",
"yx",
"ac",
"ae",
"gn",
"cb",
"ib",
"qb",
"py",
"pu",
"ce",
"nmd",
"a1",
"deg",
"gnu",
"with",
"yy",
"c/",
"messages",
"licenses",
"not limited",
"charge",
"case 2",
"dot",
"public",
"width",
"len",
"do",
"date",
"year",
"note",
"update",
"info",
"notices",
"duplicated",
"register",
"isascii",
"iscntrl",
"isprint",
"isdigit",
"isalpha",
"toupper",
"yyunput",
"ambiguous",
"indir",
"notive",
"strict",
"decoded",
"unsigned",
"0 1",
"8",
"9",
"16",
"24",
"4",
"notices all the files",
"may not be removed or altered",
"duplicated in",
"mjander",
"3dfx",
"related",
]
.into_iter()
.collect()
});