@zenalexa/unicli 0.225.2 → 0.225.3
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/AGENTS.md +2 -2
- package/README.md +3 -3
- package/README.zh-CN.md +3 -3
- package/dist/adapters/acl-anthology/papers.d.ts +16 -9
- package/dist/adapters/acl-anthology/papers.d.ts.map +1 -1
- package/dist/adapters/acl-anthology/papers.js +322 -58
- package/dist/adapters/acl-anthology/papers.js.map +1 -1
- package/dist/adapters/arxiv/papers.d.ts +22 -4
- package/dist/adapters/arxiv/papers.d.ts.map +1 -1
- package/dist/adapters/arxiv/papers.js +202 -4
- package/dist/adapters/arxiv/papers.js.map +1 -1
- package/dist/adapters/baidu-scholar/search.d.ts +15 -1
- package/dist/adapters/baidu-scholar/search.d.ts.map +1 -1
- package/dist/adapters/baidu-scholar/search.js +72 -8
- package/dist/adapters/baidu-scholar/search.js.map +1 -1
- package/dist/adapters/biorxiv/preprints.d.ts +9 -0
- package/dist/adapters/biorxiv/preprints.d.ts.map +1 -0
- package/dist/adapters/biorxiv/preprints.js +78 -0
- package/dist/adapters/biorxiv/preprints.js.map +1 -0
- package/dist/adapters/cnki/search.d.ts +82 -0
- package/dist/adapters/cnki/search.d.ts.map +1 -0
- package/dist/adapters/cnki/search.js +236 -0
- package/dist/adapters/cnki/search.js.map +1 -0
- package/dist/adapters/cvf/papers.d.ts +12 -7
- package/dist/adapters/cvf/papers.d.ts.map +1 -1
- package/dist/adapters/cvf/papers.js +210 -27
- package/dist/adapters/cvf/papers.js.map +1 -1
- package/dist/adapters/dblp/publications.d.ts +12 -5
- package/dist/adapters/dblp/publications.d.ts.map +1 -1
- package/dist/adapters/dblp/publications.js +31 -8
- package/dist/adapters/dblp/publications.js.map +1 -1
- package/dist/adapters/google-scholar/search.d.ts +22 -1
- package/dist/adapters/google-scholar/search.d.ts.map +1 -1
- package/dist/adapters/google-scholar/search.js +129 -14
- package/dist/adapters/google-scholar/search.js.map +1 -1
- package/dist/adapters/hf/paper.d.ts +12 -3
- package/dist/adapters/hf/paper.d.ts.map +1 -1
- package/dist/adapters/hf/paper.js +65 -5
- package/dist/adapters/hf/paper.js.map +1 -1
- package/dist/adapters/medrxiv/preprints.d.ts +9 -0
- package/dist/adapters/medrxiv/preprints.d.ts.map +1 -0
- package/dist/adapters/medrxiv/preprints.js +78 -0
- package/dist/adapters/medrxiv/preprints.js.map +1 -0
- package/dist/adapters/neurips/proceedings.d.ts +8 -7
- package/dist/adapters/neurips/proceedings.d.ts.map +1 -1
- package/dist/adapters/neurips/proceedings.js +209 -21
- package/dist/adapters/neurips/proceedings.js.map +1 -1
- package/dist/adapters/openalex/works.d.ts +21 -5
- package/dist/adapters/openalex/works.d.ts.map +1 -1
- package/dist/adapters/openalex/works.js +108 -8
- package/dist/adapters/openalex/works.js.map +1 -1
- package/dist/adapters/openreview/papers.d.ts +10 -4
- package/dist/adapters/openreview/papers.d.ts.map +1 -1
- package/dist/adapters/openreview/papers.js +351 -24
- package/dist/adapters/openreview/papers.js.map +1 -1
- package/dist/adapters/pmlr/proceedings.d.ts +6 -6
- package/dist/adapters/pmlr/proceedings.d.ts.map +1 -1
- package/dist/adapters/pmlr/proceedings.js +92 -12
- package/dist/adapters/pmlr/proceedings.js.map +1 -1
- package/dist/adapters/pubmed/articles.d.ts +8 -4
- package/dist/adapters/pubmed/articles.d.ts.map +1 -1
- package/dist/adapters/pubmed/articles.js +272 -39
- package/dist/adapters/pubmed/articles.js.map +1 -1
- package/dist/adapters/rxiv/preprints.d.ts +75 -0
- package/dist/adapters/rxiv/preprints.d.ts.map +1 -0
- package/dist/adapters/rxiv/preprints.js +651 -0
- package/dist/adapters/rxiv/preprints.js.map +1 -0
- package/dist/adapters/scholar-artifacts/pdf-read.d.ts +49 -0
- package/dist/adapters/scholar-artifacts/pdf-read.d.ts.map +1 -0
- package/dist/adapters/scholar-artifacts/pdf-read.js +204 -0
- package/dist/adapters/scholar-artifacts/pdf-read.js.map +1 -0
- package/dist/adapters/scholar-artifacts/pdf.d.ts +16 -0
- package/dist/adapters/scholar-artifacts/pdf.d.ts.map +1 -0
- package/dist/adapters/scholar-artifacts/pdf.js +122 -0
- package/dist/adapters/scholar-artifacts/pdf.js.map +1 -0
- package/dist/adapters/semantic-scholar/papers.d.ts +6 -6
- package/dist/adapters/semantic-scholar/papers.d.ts.map +1 -1
- package/dist/adapters/semantic-scholar/papers.js +80 -6
- package/dist/adapters/semantic-scholar/papers.js.map +1 -1
- package/dist/adapters/unpaywall/works.d.ts +7 -7
- package/dist/adapters/unpaywall/works.d.ts.map +1 -1
- package/dist/adapters/unpaywall/works.js +104 -12
- package/dist/adapters/unpaywall/works.js.map +1 -1
- package/dist/adapters/wanfang/search.d.ts +14 -0
- package/dist/adapters/wanfang/search.d.ts.map +1 -1
- package/dist/adapters/wanfang/search.js +56 -7
- package/dist/adapters/wanfang/search.js.map +1 -1
- package/dist/browser/page.d.ts +2 -0
- package/dist/browser/page.d.ts.map +1 -1
- package/dist/browser/page.js +12 -0
- package/dist/browser/page.js.map +1 -1
- package/dist/commands/browser/actions.d.ts.map +1 -1
- package/dist/commands/browser/actions.js +59 -3
- package/dist/commands/browser/actions.js.map +1 -1
- package/dist/commands/scholar.d.ts +77 -5
- package/dist/commands/scholar.d.ts.map +1 -1
- package/dist/commands/scholar.js +2945 -83
- package/dist/commands/scholar.js.map +1 -1
- package/dist/core/command-contract.d.ts.map +1 -1
- package/dist/core/command-contract.js +5 -0
- package/dist/core/command-contract.js.map +1 -1
- package/dist/core/schema-v2.d.ts +1 -0
- package/dist/core/schema-v2.d.ts.map +1 -1
- package/dist/core/schema-v2.js +1 -0
- package/dist/core/schema-v2.js.map +1 -1
- package/dist/discovery/aliases.d.ts.map +1 -1
- package/dist/discovery/aliases.js +208 -0
- package/dist/discovery/aliases.js.map +1 -1
- package/dist/discovery/core-catalog.d.ts +2 -0
- package/dist/discovery/core-catalog.d.ts.map +1 -1
- package/dist/discovery/core-catalog.js +487 -0
- package/dist/discovery/core-catalog.js.map +1 -1
- package/dist/discovery/intents.d.ts.map +1 -1
- package/dist/discovery/intents.js +273 -2
- package/dist/discovery/intents.js.map +1 -1
- package/dist/discovery/loader.d.ts.map +1 -1
- package/dist/discovery/loader.js +3 -0
- package/dist/discovery/loader.js.map +1 -1
- package/dist/engine/capability-policy.d.ts.map +1 -1
- package/dist/engine/capability-policy.js +30 -4
- package/dist/engine/capability-policy.js.map +1 -1
- package/dist/engine/kernel/stages.d.ts.map +1 -1
- package/dist/engine/kernel/stages.js +3 -0
- package/dist/engine/kernel/stages.js.map +1 -1
- package/dist/engine/operation-policy.d.ts +4 -1
- package/dist/engine/operation-policy.d.ts.map +1 -1
- package/dist/engine/operation-policy.js +23 -0
- package/dist/engine/operation-policy.js.map +1 -1
- package/dist/fast-path/manifest.d.ts +3 -0
- package/dist/fast-path/manifest.d.ts.map +1 -1
- package/dist/fast-path/manifest.js.map +1 -1
- package/dist/fast-path/policy.d.ts.map +1 -1
- package/dist/fast-path/policy.js +3 -0
- package/dist/fast-path/policy.js.map +1 -1
- package/dist/manifest-compact.txt +1 -1
- package/dist/manifest.json +6804 -1002
- package/dist/registry.d.ts +2 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +1 -0
- package/dist/registry.js.map +1 -1
- package/dist/types/scholarly.d.ts +19 -4
- package/dist/types/scholarly.d.ts.map +1 -1
- package/dist/types/scholarly.js +4 -4
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/skills/unicli/SKILL.md +1 -1
- package/skills/unicli-claude-code/SKILL.md +1 -1
- package/skills/unicli-hermes/SKILL.md +1 -1
- package/src/adapters/acl-anthology/papers.test.ts +111 -0
- package/src/adapters/acl-anthology/papers.ts +379 -71
- package/src/adapters/arxiv/papers.test.ts +46 -0
- package/src/adapters/arxiv/papers.ts +251 -4
- package/src/adapters/baidu-scholar/search.ts +74 -11
- package/src/adapters/biorxiv/preprints.ts +112 -0
- package/src/adapters/cnki/search.ts +357 -0
- package/src/adapters/cvf/papers.ts +260 -27
- package/src/adapters/dblp/publications.test.ts +9 -0
- package/src/adapters/dblp/publications.ts +31 -8
- package/src/adapters/google-scholar/search.ts +165 -17
- package/src/adapters/hf/paper.test.ts +23 -0
- package/src/adapters/hf/paper.ts +89 -5
- package/src/adapters/hf/top.yaml +34 -2
- package/src/adapters/huggingface-papers/daily.yaml +37 -3
- package/src/adapters/huggingface-papers/search.yaml +43 -9
- package/src/adapters/medrxiv/preprints.ts +112 -0
- package/src/adapters/neurips/proceedings.ts +266 -22
- package/src/adapters/openalex/works.test.ts +15 -4
- package/src/adapters/openalex/works.ts +136 -8
- package/src/adapters/openreview/papers.test.ts +31 -0
- package/src/adapters/openreview/papers.ts +407 -29
- package/src/adapters/pmlr/proceedings.ts +102 -12
- package/src/adapters/pubmed/articles.test.ts +88 -1
- package/src/adapters/pubmed/articles.ts +343 -44
- package/src/adapters/rxiv/preprints.test.ts +233 -0
- package/src/adapters/rxiv/preprints.ts +849 -0
- package/src/adapters/scholar-artifacts/pdf-read.ts +277 -0
- package/src/adapters/scholar-artifacts/pdf.ts +133 -0
- package/src/adapters/semantic-scholar/papers.ts +98 -6
- package/src/adapters/unpaywall/works.ts +141 -12
- package/src/adapters/wanfang/search.ts +57 -7
- package/src/adapters/cnki/search.yaml +0 -49
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @owner src::adapters::neurips::proceedings
|
|
3
|
-
* @does Registers NeurIPS proceedings search over
|
|
4
|
-
* @needs proceedings.neurips.cc static HTML, src/registry.ts
|
|
5
|
-
* @feeds src/commands/scholar.ts via scholar.search, scholar.pdf, and scholar.venue
|
|
6
|
-
* @breaks NeurIPS markup drift
|
|
7
|
-
* @invariants Year is explicit; paper
|
|
8
|
-
* @side-effects HTTPS egress to proceedings.neurips.cc
|
|
9
|
-
* @perf O(N) over one proceedings HTML page
|
|
3
|
+
* @does Registers NeurIPS proceedings search, paper detail retrieval, and PDF text reading over official paper pages.
|
|
4
|
+
* @needs proceedings.neurips.cc static HTML/PDFs, src/adapters/scholar-artifacts/pdf-read.ts, src/registry.ts
|
|
5
|
+
* @feeds src/commands/scholar.ts via scholar.search, scholar.get, scholar.pdf, scholar.fulltext, and scholar.venue
|
|
6
|
+
* @breaks NeurIPS markup/PDF drift, denied downloads, or missing pdftotext surface as explicit adapter errors; no unrelated source fallback is used.
|
|
7
|
+
* @invariants Year is explicit; paper detail prefers citation_* metadata and official /file/ PDF URLs.
|
|
8
|
+
* @side-effects HTTPS egress to proceedings.neurips.cc; read writes one PDF artifact and executes pdftotext.
|
|
9
|
+
* @perf O(N) over one proceedings HTML page; read is O(PDF bytes + selected pages)
|
|
10
10
|
* @concurrency safe
|
|
11
11
|
* @test tests/unit/adapters/scholar-sources.test.ts
|
|
12
12
|
* @stability experimental
|
|
13
13
|
* @since 2026-05-19
|
|
14
14
|
*/
|
|
15
15
|
import type { ScholarlyWorkRecord } from "../../types/scholarly.js";
|
|
16
|
+
export declare function parseNeuripsPaperPage(html: string, sourceUrl: string): ScholarlyWorkRecord;
|
|
16
17
|
export declare function parseNeuripsRows(html: string, year?: string): ScholarlyWorkRecord[];
|
|
17
18
|
//# sourceMappingURL=proceedings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proceedings.d.ts","sourceRoot":"","sources":["../../../src/adapters/neurips/proceedings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"proceedings.d.ts","sourceRoot":"","sources":["../../../src/adapters/neurips/proceedings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AA4FpE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,mBAAmB,CAwCrB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,SAAS,GACZ,mBAAmB,EAAE,CA2BvB"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @owner src::adapters::neurips::proceedings
|
|
3
|
-
* @does Registers NeurIPS proceedings search over
|
|
4
|
-
* @needs proceedings.neurips.cc static HTML, src/registry.ts
|
|
5
|
-
* @feeds src/commands/scholar.ts via scholar.search, scholar.pdf, and scholar.venue
|
|
6
|
-
* @breaks NeurIPS markup drift
|
|
7
|
-
* @invariants Year is explicit; paper
|
|
8
|
-
* @side-effects HTTPS egress to proceedings.neurips.cc
|
|
9
|
-
* @perf O(N) over one proceedings HTML page
|
|
3
|
+
* @does Registers NeurIPS proceedings search, paper detail retrieval, and PDF text reading over official paper pages.
|
|
4
|
+
* @needs proceedings.neurips.cc static HTML/PDFs, src/adapters/scholar-artifacts/pdf-read.ts, src/registry.ts
|
|
5
|
+
* @feeds src/commands/scholar.ts via scholar.search, scholar.get, scholar.pdf, scholar.fulltext, and scholar.venue
|
|
6
|
+
* @breaks NeurIPS markup/PDF drift, denied downloads, or missing pdftotext surface as explicit adapter errors; no unrelated source fallback is used.
|
|
7
|
+
* @invariants Year is explicit; paper detail prefers citation_* metadata and official /file/ PDF URLs.
|
|
8
|
+
* @side-effects HTTPS egress to proceedings.neurips.cc; read writes one PDF artifact and executes pdftotext.
|
|
9
|
+
* @perf O(N) over one proceedings HTML page; read is O(PDF bytes + selected pages)
|
|
10
10
|
* @concurrency safe
|
|
11
11
|
* @test tests/unit/adapters/scholar-sources.test.ts
|
|
12
12
|
* @stability experimental
|
|
13
13
|
* @since 2026-05-19
|
|
14
14
|
*/
|
|
15
15
|
import { cli, Strategy } from "../../registry.js";
|
|
16
|
+
import { readScholarPdf } from "../scholar-artifacts/pdf-read.js";
|
|
16
17
|
const ORIGIN = "https://proceedings.neurips.cc";
|
|
18
|
+
const NEURIPS_USER_AGENT = "unicli-neurips/1.0 (https://github.com/olo-dot-io/Uni-CLI)";
|
|
17
19
|
function decode(value) {
|
|
18
20
|
return value
|
|
19
21
|
.replace(/&/g, "&")
|
|
@@ -29,12 +31,85 @@ function absolute(path) {
|
|
|
29
31
|
? path
|
|
30
32
|
: `${ORIGIN}${path.startsWith("/") ? "" : "/"}${path}`;
|
|
31
33
|
}
|
|
34
|
+
function metaContents(html, name) {
|
|
35
|
+
const values = [];
|
|
36
|
+
const re = new RegExp(`<meta\\s+name=["']${name}["']\\s+content=["']([^"']*)["'][^>]*>`, "gi");
|
|
37
|
+
let match;
|
|
38
|
+
while ((match = re.exec(html)) !== null)
|
|
39
|
+
values.push(decode(match[1]));
|
|
40
|
+
return values;
|
|
41
|
+
}
|
|
42
|
+
function firstMetaContent(html, name) {
|
|
43
|
+
return metaContents(html, name)[0] ?? "";
|
|
44
|
+
}
|
|
32
45
|
function requireYear(value) {
|
|
33
46
|
const year = String(value ?? "").trim();
|
|
34
47
|
if (!/^\d{4}$/.test(year))
|
|
35
48
|
throw new Error(`neurips year "${year}" is not valid.`);
|
|
36
49
|
return year;
|
|
37
50
|
}
|
|
51
|
+
function requireNeuripsPaperId(value) {
|
|
52
|
+
const raw = String(value ?? "").trim();
|
|
53
|
+
const id = raw
|
|
54
|
+
.match(/\/(?:hash|file)\/([^/?#]+\.html)/)?.[1]
|
|
55
|
+
?.replace(/\.html$/, "") ?? raw.replace(/\.html$/, "");
|
|
56
|
+
if (!/^[A-Za-z0-9_.-]+$/.test(id)) {
|
|
57
|
+
throw new Error(`NeurIPS paper id "${raw}" is not valid.`);
|
|
58
|
+
}
|
|
59
|
+
return id;
|
|
60
|
+
}
|
|
61
|
+
function abstractUrl(id, year) {
|
|
62
|
+
return `${ORIGIN}/paper_files/paper/${year}/hash/${id}.html`;
|
|
63
|
+
}
|
|
64
|
+
function pdfUrlFromAbstractUrl(sourceUrl) {
|
|
65
|
+
return sourceUrl
|
|
66
|
+
.replace("/hash/", "/file/")
|
|
67
|
+
.replace("-Abstract-", "-Paper-")
|
|
68
|
+
.replace(/\.html$/, ".pdf");
|
|
69
|
+
}
|
|
70
|
+
function neuripsUpstreamError(label, detail) {
|
|
71
|
+
const error = new Error(`${label} failed: ${detail}.`);
|
|
72
|
+
error.code = "upstream_error";
|
|
73
|
+
error.suggestion =
|
|
74
|
+
"NeurIPS proceedings did not return the expected public paper page on this network path; retry later or verify the official proceedings.neurips.cc page manually.";
|
|
75
|
+
error.retryable =
|
|
76
|
+
/fetch failed|timeout|ECONNRESET|ETIMEDOUT|HTTP (429|5\d\d)/i.test(detail);
|
|
77
|
+
error.alternatives = [];
|
|
78
|
+
return error;
|
|
79
|
+
}
|
|
80
|
+
export function parseNeuripsPaperPage(html, sourceUrl) {
|
|
81
|
+
const title = firstMetaContent(html, "citation_title") ||
|
|
82
|
+
decode(html
|
|
83
|
+
.match(/<h1 class="paper-title">([\s\S]*?)<\/h1>/i)?.[1]
|
|
84
|
+
?.replace(/<[^>]+>/g, " ") ?? "");
|
|
85
|
+
if (!title)
|
|
86
|
+
throw new Error("NeurIPS paper page did not expose a title.");
|
|
87
|
+
const year = firstMetaContent(html, "citation_publication_date").match(/\d{4}/)?.[0] ??
|
|
88
|
+
sourceUrl.match(/\/paper\/(\d{4})\//)?.[1];
|
|
89
|
+
const id = sourceUrl
|
|
90
|
+
.split("/")
|
|
91
|
+
.pop()
|
|
92
|
+
?.replace(/\.html$/, "") ?? title;
|
|
93
|
+
const pdfUrl = firstMetaContent(html, "citation_pdf_url") ||
|
|
94
|
+
html.match(/href=["']([^"']+-Paper-[^"']+\.pdf)["']/i)?.[1] ||
|
|
95
|
+
"";
|
|
96
|
+
return {
|
|
97
|
+
id,
|
|
98
|
+
title,
|
|
99
|
+
authors: metaContents(html, "citation_author"),
|
|
100
|
+
year: year ? Number(year) : undefined,
|
|
101
|
+
venue: "NeurIPS",
|
|
102
|
+
type: firstMetaContent(html, "citation_journal_title") || undefined,
|
|
103
|
+
doi: firstMetaContent(html, "citation_doi") || undefined,
|
|
104
|
+
abstract: decode(html
|
|
105
|
+
.match(/<p class="paper-abstract">([\s\S]*?)<\/p>\s*<\/p>/i)?.[1]
|
|
106
|
+
?.replace(/<[^>]+>/g, " ") ?? "") || undefined,
|
|
107
|
+
pdf_url: pdfUrl ? absolute(pdfUrl) : undefined,
|
|
108
|
+
source_adapter: "neurips",
|
|
109
|
+
source_url: sourceUrl,
|
|
110
|
+
retrieved_at: new Date().toISOString(),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
38
113
|
export function parseNeuripsRows(html, year = "2024") {
|
|
39
114
|
const out = [];
|
|
40
115
|
const re = /<div class="paper-content">[\s\S]*?<a title="paper title" href="([^"]+)">([\s\S]*?)<\/a>[\s\S]*?<span class="paper-authors">([\s\S]*?)<\/span>/g;
|
|
@@ -53,9 +128,7 @@ export function parseNeuripsRows(html, year = "2024") {
|
|
|
53
128
|
.filter(Boolean),
|
|
54
129
|
year: Number(year),
|
|
55
130
|
venue: "NeurIPS",
|
|
56
|
-
pdf_url: sourceUrl
|
|
57
|
-
.replace("-Abstract-", "-Paper-")
|
|
58
|
-
.replace(/\.html$/, ".pdf"),
|
|
131
|
+
pdf_url: pdfUrlFromAbstractUrl(sourceUrl),
|
|
59
132
|
source_adapter: "neurips",
|
|
60
133
|
source_url: sourceUrl,
|
|
61
134
|
retrieved_at: new Date().toISOString(),
|
|
@@ -63,6 +136,46 @@ export function parseNeuripsRows(html, year = "2024") {
|
|
|
63
136
|
}
|
|
64
137
|
return out;
|
|
65
138
|
}
|
|
139
|
+
async function fetchNeuripsHtml(url, label) {
|
|
140
|
+
let response;
|
|
141
|
+
try {
|
|
142
|
+
response = await fetch(url, {
|
|
143
|
+
headers: {
|
|
144
|
+
Accept: "text/html",
|
|
145
|
+
"User-Agent": NEURIPS_USER_AGENT,
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
throw neuripsUpstreamError(label, error instanceof Error ? error.message : String(error));
|
|
151
|
+
}
|
|
152
|
+
if (response.status === 404)
|
|
153
|
+
throw new Error(`${label} returned no page.`);
|
|
154
|
+
if (!response.ok)
|
|
155
|
+
throw neuripsUpstreamError(label, `HTTP ${response.status}`);
|
|
156
|
+
return response.text();
|
|
157
|
+
}
|
|
158
|
+
async function readNeuripsPaperPdf(row, kwargs) {
|
|
159
|
+
if (!row.pdf_url)
|
|
160
|
+
throw new Error(`NeurIPS paper ${row.id} has no PDF URL.`);
|
|
161
|
+
return readScholarPdf({
|
|
162
|
+
id: row.id,
|
|
163
|
+
title: row.title,
|
|
164
|
+
source_adapter: "neurips",
|
|
165
|
+
source_url: row.source_url,
|
|
166
|
+
pdf_url: row.pdf_url,
|
|
167
|
+
output: kwargs.output,
|
|
168
|
+
filename: kwargs.filename,
|
|
169
|
+
"first-page": kwargs["first-page"] ?? kwargs.firstPage,
|
|
170
|
+
"last-page": kwargs["last-page"] ?? kwargs.lastPage,
|
|
171
|
+
"max-chars": kwargs["max-chars"] ?? kwargs.maxChars,
|
|
172
|
+
}, {
|
|
173
|
+
site: "neurips",
|
|
174
|
+
command: "read",
|
|
175
|
+
defaultOutput: "./neurips-downloads",
|
|
176
|
+
userAgent: NEURIPS_USER_AGENT,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
66
179
|
cli({
|
|
67
180
|
site: "neurips",
|
|
68
181
|
name: "search",
|
|
@@ -88,18 +201,8 @@ cli({
|
|
|
88
201
|
if (!query)
|
|
89
202
|
throw new Error("neurips search query cannot be empty.");
|
|
90
203
|
const year = requireYear(kwargs.year);
|
|
91
|
-
const response = await fetch(`${ORIGIN}/paper_files/paper/${year}`, {
|
|
92
|
-
headers: {
|
|
93
|
-
Accept: "text/html",
|
|
94
|
-
"User-Agent": "unicli-neurips/1.0 (https://github.com/olo-dot-io/Uni-CLI)",
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
if (response.status === 404)
|
|
98
|
-
throw new Error(`NeurIPS ${year} returned no proceedings page.`);
|
|
99
|
-
if (!response.ok)
|
|
100
|
-
throw new Error(`NeurIPS ${year} returned HTTP ${response.status}.`);
|
|
101
204
|
const limit = Math.min(Math.max(Number(kwargs.limit ?? 20), 1), 200);
|
|
102
|
-
const rows = parseNeuripsRows(await
|
|
205
|
+
const rows = parseNeuripsRows(await fetchNeuripsHtml(`${ORIGIN}/paper_files/paper/${year}`, `NeurIPS ${year}`), year)
|
|
103
206
|
.filter((row) => `${row.title} ${row.authors?.join(" ") ?? ""}`
|
|
104
207
|
.toLowerCase()
|
|
105
208
|
.includes(query))
|
|
@@ -109,4 +212,89 @@ cli({
|
|
|
109
212
|
return rows;
|
|
110
213
|
},
|
|
111
214
|
});
|
|
215
|
+
cli({
|
|
216
|
+
site: "neurips",
|
|
217
|
+
name: "paper",
|
|
218
|
+
description: "Fetch NeurIPS proceedings paper metadata by page id",
|
|
219
|
+
domain: "proceedings.neurips.cc",
|
|
220
|
+
strategy: Strategy.PUBLIC,
|
|
221
|
+
args: [
|
|
222
|
+
{ name: "id", type: "str", required: true, positional: true },
|
|
223
|
+
{ name: "year", type: "str", default: "2024" },
|
|
224
|
+
],
|
|
225
|
+
columns: [
|
|
226
|
+
"id",
|
|
227
|
+
"title",
|
|
228
|
+
"authors",
|
|
229
|
+
"year",
|
|
230
|
+
"venue",
|
|
231
|
+
"doi",
|
|
232
|
+
"pdf_url",
|
|
233
|
+
"source_url",
|
|
234
|
+
],
|
|
235
|
+
capabilities: ["http.fetch", "scholar.get", "scholar.pdf"],
|
|
236
|
+
func: async (_page, kwargs) => {
|
|
237
|
+
const year = requireYear(kwargs.year);
|
|
238
|
+
const id = requireNeuripsPaperId(kwargs.id ?? kwargs.ref);
|
|
239
|
+
const url = abstractUrl(id, year);
|
|
240
|
+
return [
|
|
241
|
+
parseNeuripsPaperPage(await fetchNeuripsHtml(url, `NeurIPS paper ${id}`), url),
|
|
242
|
+
];
|
|
243
|
+
},
|
|
244
|
+
});
|
|
245
|
+
cli({
|
|
246
|
+
site: "neurips",
|
|
247
|
+
name: "read",
|
|
248
|
+
description: "Download a NeurIPS proceedings paper PDF by page id and extract text",
|
|
249
|
+
domain: "proceedings.neurips.cc",
|
|
250
|
+
strategy: Strategy.PUBLIC,
|
|
251
|
+
args: [
|
|
252
|
+
{ name: "id", type: "str", required: true, positional: true },
|
|
253
|
+
{ name: "year", type: "str", default: "2024" },
|
|
254
|
+
{
|
|
255
|
+
name: "output",
|
|
256
|
+
type: "str",
|
|
257
|
+
default: "./neurips-downloads",
|
|
258
|
+
description: "Output directory for the downloaded PDF",
|
|
259
|
+
"x-unicli-kind": "path",
|
|
260
|
+
},
|
|
261
|
+
{ name: "filename", type: "str", description: "Output PDF filename" },
|
|
262
|
+
{ name: "first-page", type: "int", default: 1, description: "First page" },
|
|
263
|
+
{ name: "last-page", type: "int", default: 20, description: "Last page" },
|
|
264
|
+
{
|
|
265
|
+
name: "max-chars",
|
|
266
|
+
type: "int",
|
|
267
|
+
default: 40000,
|
|
268
|
+
description: "Maximum extracted text characters",
|
|
269
|
+
},
|
|
270
|
+
],
|
|
271
|
+
columns: [
|
|
272
|
+
"id",
|
|
273
|
+
"title",
|
|
274
|
+
"source_adapter",
|
|
275
|
+
"source_url",
|
|
276
|
+
"pdf_url",
|
|
277
|
+
"path",
|
|
278
|
+
"text_source",
|
|
279
|
+
"text",
|
|
280
|
+
"text_chars",
|
|
281
|
+
"text_truncated",
|
|
282
|
+
],
|
|
283
|
+
capabilities: [
|
|
284
|
+
"http.fetch",
|
|
285
|
+
"http.download",
|
|
286
|
+
"subprocess.exec",
|
|
287
|
+
"scholar.fulltext",
|
|
288
|
+
"scholar.pdf",
|
|
289
|
+
],
|
|
290
|
+
executables: ["pdftotext"],
|
|
291
|
+
minimum_capability: "subprocess.exec",
|
|
292
|
+
func: async (_page, kwargs) => {
|
|
293
|
+
const year = requireYear(kwargs.year);
|
|
294
|
+
const id = requireNeuripsPaperId(kwargs.id ?? kwargs.ref);
|
|
295
|
+
const url = abstractUrl(id, year);
|
|
296
|
+
const row = parseNeuripsPaperPage(await fetchNeuripsHtml(url, `NeurIPS paper ${id}`), url);
|
|
297
|
+
return [await readNeuripsPaperPdf(row, kwargs)];
|
|
298
|
+
},
|
|
299
|
+
});
|
|
112
300
|
//# sourceMappingURL=proceedings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proceedings.js","sourceRoot":"","sources":["../../../src/adapters/neurips/proceedings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"proceedings.js","sourceRoot":"","sources":["../../../src/adapters/neurips/proceedings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,MAAM,MAAM,GAAG,gCAAgC,CAAC;AAChD,MAAM,kBAAkB,GACtB,4DAA4D,CAAC;AAS/D,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,KAAK;SACT,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,IAAI,MAAM,CACnB,qBAAqB,IAAI,wCAAwC,EACjE,IAAI,CACL,CAAC;IACF,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAY;IAClD,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,EAAE,GACN,GAAG;SACA,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,iBAAiB,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,EAAU,EAAE,IAAY;IAC3C,OAAO,GAAG,MAAM,sBAAsB,IAAI,SAAS,EAAE,OAAO,CAAC;AAC/D,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,OAAO,SAAS;SACb,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAC3B,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC;SAChC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAa,EACb,MAAc;IAEd,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,GAAG,KAAK,YAAY,MAAM,GAAG,CACJ,CAAC;IAC5B,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC9B,KAAK,CAAC,UAAU;QACd,kKAAkK,CAAC;IACrK,KAAK,CAAC,SAAS;QACb,6DAA6D,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7E,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,SAAiB;IAEjB,MAAM,KAAK,GACT,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC;QACxC,MAAM,CACJ,IAAI;aACD,KAAK,CAAC,2CAA2C,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,CACnC,CAAC;IACJ,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC1E,MAAM,IAAI,GACR,gBAAgB,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,EAAE,GACN,SAAS;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,EAAE;QACN,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;IACtC,MAAM,MAAM,GACV,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,EAAE,CAAC;IACL,OAAO;QACL,EAAE;QACF,KAAK;QACL,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC9C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACrC,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,wBAAwB,CAAC,IAAI,SAAS;QACnE,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,SAAS;QACxD,QAAQ,EACN,MAAM,CACJ,IAAI;aACD,KAAK,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,CACnC,IAAI,SAAS;QAChB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9C,cAAc,EAAE,SAAS;QACzB,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,IAAI,GAAG,MAAM;IAEb,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,MAAM,EAAE,GACN,iJAAiJ,CAAC;IACpJ,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EACA,SAAS;iBACN,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,EAAE;gBACN,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChD,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAChD,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACtB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;iBAC9B,MAAM,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;YAClB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC;YACzC,cAAc,EAAE,SAAS;YACzB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,KAAa;IACxD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC1B,OAAO,EAAE;gBACP,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,kBAAkB;aACjC;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,oBAAoB,CACxB,KAAK,EACL,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IAC3E,IAAI,CAAC,QAAQ,CAAC,EAAE;QACd,MAAM,oBAAoB,CAAC,KAAK,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,GAAwB,EACxB,MAA+B;IAE/B,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAC7E,OAAO,cAAc,CACnB;QACE,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,cAAc,EAAE,SAAS;QACzB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,SAAS;QACtD,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,QAAQ;QACnD,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,QAAQ;KACpD,EACD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,qBAAqB;QACpC,SAAS,EAAE,kBAAkB;KAC9B,CACF,CAAC;AACJ,CAAC;AAED,GAAG,CAAC;IACF,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,oCAAoC;IACjD,MAAM,EAAE,wBAAwB;IAChC,QAAQ,EAAE,QAAQ,CAAC,MAAM;IACzB,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QAChE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;QAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;KAC5C;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC;IAC7E,YAAY,EAAE;QACZ,YAAY;QACZ,gBAAgB;QAChB,eAAe;QACf,aAAa;KACd;IACD,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;aACrC,IAAI,EAAE;aACN,WAAW,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,gBAAgB,CAC3B,MAAM,gBAAgB,CACpB,GAAG,MAAM,sBAAsB,IAAI,EAAE,EACrC,WAAW,IAAI,EAAE,CAClB,EACD,IAAI,CACL;aACE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACd,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;aAC3C,WAAW,EAAE;aACb,QAAQ,CAAC,KAAK,CAAC,CACnB;aACA,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,oBAAoB,KAAK,IAAI,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC,CAAC;AAEH,GAAG,CAAC;IACF,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,qDAAqD;IAClE,MAAM,EAAE,wBAAwB;IAChC,QAAQ,EAAE,QAAQ,CAAC,MAAM;IACzB,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QAC7D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;KAC/C;IACD,OAAO,EAAE;QACP,IAAI;QACJ,OAAO;QACP,SAAS;QACT,MAAM;QACN,OAAO;QACP,KAAK;QACL,SAAS;QACT,YAAY;KACb;IACD,YAAY,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;IAC1D,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAClC,OAAO;YACL,qBAAqB,CACnB,MAAM,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAClD,GAAG,CACJ;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,GAAG,CAAC;IACF,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,sEAAsE;IACxE,MAAM,EAAE,wBAAwB;IAChC,QAAQ,EAAE,QAAQ,CAAC,MAAM;IACzB,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QAC7D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;QAC9C;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,qBAAqB;YAC9B,WAAW,EAAE,yCAAyC;YACtD,eAAe,EAAE,MAAM;SACxB;QACD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE;QACrE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE;QAC1E,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE;QACzE;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,mCAAmC;SACjD;KACF;IACD,OAAO,EAAE;QACP,IAAI;QACJ,OAAO;QACP,gBAAgB;QAChB,YAAY;QACZ,SAAS;QACT,MAAM;QACN,aAAa;QACb,MAAM;QACN,YAAY;QACZ,gBAAgB;KACjB;IACD,YAAY,EAAE;QACZ,YAAY;QACZ,eAAe;QACf,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;KACd;IACD,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,kBAAkB,EAAE,iBAAiB;IACrC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,qBAAqB,CAC/B,MAAM,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAClD,GAAG,CACJ,CAAC;QACF,OAAO,CAAC,MAAM,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @owner
|
|
3
|
-
* @does
|
|
4
|
-
* @needs
|
|
5
|
-
* @feeds
|
|
6
|
-
* @breaks
|
|
2
|
+
* @owner src::adapters::openalex::works
|
|
3
|
+
* @does Registers agent-facing OpenAlex work search, detail, and source PDF read commands.
|
|
4
|
+
* @needs Public OpenAlex API, src/adapters/scholar-artifacts/pdf-read.ts, pdftotext
|
|
5
|
+
* @feeds src/commands/scholar.ts via scholar.* capability tags, surface coverage ledger, scholarly work rows
|
|
6
|
+
* @breaks OpenAlex API envelope drift, weak DOI/id parsing, missing OA PDF URLs, or abstract reconstruction errors surface as explicit adapter errors.
|
|
7
|
+
* @invariants Work references normalize to OpenAlex W ids or doi: refs; read requires a source-provided PDF URL before text is claimed.
|
|
8
|
+
* @side-effects HTTPS egress to api.openalex.org and source PDF hosts; read writes one PDF and executes pdftotext.
|
|
9
|
+
* @perf O(limit) JSON mapping for search; O(PDF bytes + extracted page range) for read
|
|
10
|
+
* @concurrency safe
|
|
11
|
+
* @test src/adapters/openalex/works.test.ts, tests/unit/adapters/scholar-sources.test.ts
|
|
12
|
+
* @stability experimental
|
|
13
|
+
* @since 2026-05-19
|
|
7
14
|
*/
|
|
8
15
|
interface OpenAlexWork {
|
|
9
16
|
id?: unknown;
|
|
@@ -18,6 +25,15 @@ interface OpenAlexWork {
|
|
|
18
25
|
};
|
|
19
26
|
}>;
|
|
20
27
|
primary_location?: {
|
|
28
|
+
landing_page_url?: unknown;
|
|
29
|
+
pdf_url?: unknown;
|
|
30
|
+
source?: {
|
|
31
|
+
display_name?: unknown;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
best_oa_location?: {
|
|
35
|
+
landing_page_url?: unknown;
|
|
36
|
+
pdf_url?: unknown;
|
|
21
37
|
source?: {
|
|
22
38
|
display_name?: unknown;
|
|
23
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"works.d.ts","sourceRoot":"","sources":["../../../src/adapters/openalex/works.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"works.d.ts","sourceRoot":"","sources":["../../../src/adapters/openalex/works.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAqCH,UAAU,YAAY;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,MAAM,CAAC,EAAE;YACP,YAAY,CAAC,EAAE,OAAO,CAAC;SACxB,CAAC;KACH,CAAC,CAAC;IACH,gBAAgB,CAAC,EAAE;QACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE;YACP,YAAY,CAAC,EAAE,OAAO,CAAC;SACxB,CAAC;KACH,CAAC;IACF,gBAAgB,CAAC,EAAE;QACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE;YACP,YAAY,CAAC,EAAE,OAAO,CAAC;SACxB,CAAC;KACH,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpD;AAUD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAK,GAAG,MAAM,CAS1E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKrD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAI9C;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAsB7D;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAclE;AAqDD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EAAE,EACrB,KAAK,EAAE,MAAM,GACZ,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAyBhC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkCzB"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @owner
|
|
3
|
-
* @does
|
|
4
|
-
* @needs
|
|
5
|
-
* @feeds
|
|
6
|
-
* @breaks
|
|
2
|
+
* @owner src::adapters::openalex::works
|
|
3
|
+
* @does Registers agent-facing OpenAlex work search, detail, and source PDF read commands.
|
|
4
|
+
* @needs Public OpenAlex API, src/adapters/scholar-artifacts/pdf-read.ts, pdftotext
|
|
5
|
+
* @feeds src/commands/scholar.ts via scholar.* capability tags, surface coverage ledger, scholarly work rows
|
|
6
|
+
* @breaks OpenAlex API envelope drift, weak DOI/id parsing, missing OA PDF URLs, or abstract reconstruction errors surface as explicit adapter errors.
|
|
7
|
+
* @invariants Work references normalize to OpenAlex W ids or doi: refs; read requires a source-provided PDF URL before text is claimed.
|
|
8
|
+
* @side-effects HTTPS egress to api.openalex.org and source PDF hosts; read writes one PDF and executes pdftotext.
|
|
9
|
+
* @perf O(limit) JSON mapping for search; O(PDF bytes + extracted page range) for read
|
|
10
|
+
* @concurrency safe
|
|
11
|
+
* @test src/adapters/openalex/works.test.ts, tests/unit/adapters/scholar-sources.test.ts
|
|
12
|
+
* @stability experimental
|
|
13
|
+
* @since 2026-05-19
|
|
7
14
|
*/
|
|
8
15
|
import { cli, Strategy } from "../../registry.js";
|
|
16
|
+
import { readScholarPdf } from "../scholar-artifacts/pdf-read.js";
|
|
9
17
|
const OPENALEX_BASE = "https://api.openalex.org";
|
|
10
18
|
const WORK_ID_RE = /^W\d{4,}$/;
|
|
11
19
|
const DOI_RE = /^10\.\S+$/;
|
|
@@ -17,6 +25,7 @@ const SEARCH_SELECT = [
|
|
|
17
25
|
"cited_by_count",
|
|
18
26
|
"authorships",
|
|
19
27
|
"primary_location",
|
|
28
|
+
"best_oa_location",
|
|
20
29
|
"open_access",
|
|
21
30
|
"type",
|
|
22
31
|
].join(",");
|
|
@@ -29,6 +38,7 @@ const WORK_SELECT = [
|
|
|
29
38
|
"cited_by_count",
|
|
30
39
|
"authorships",
|
|
31
40
|
"primary_location",
|
|
41
|
+
"best_oa_location",
|
|
32
42
|
"open_access",
|
|
33
43
|
"type",
|
|
34
44
|
"referenced_works",
|
|
@@ -135,7 +145,17 @@ function authorList(work) {
|
|
|
135
145
|
: [];
|
|
136
146
|
}
|
|
137
147
|
function venue(work) {
|
|
138
|
-
return stringField(work.primary_location?.source?.display_name).trim()
|
|
148
|
+
return (stringField(work.primary_location?.source?.display_name).trim() ||
|
|
149
|
+
stringField(work.best_oa_location?.source?.display_name).trim());
|
|
150
|
+
}
|
|
151
|
+
function publisherLandingUrl(work) {
|
|
152
|
+
return (stringField(work.primary_location?.landing_page_url).trim() ||
|
|
153
|
+
stringField(work.best_oa_location?.landing_page_url).trim() ||
|
|
154
|
+
stringField(work.open_access?.oa_url).trim());
|
|
155
|
+
}
|
|
156
|
+
function openAlexPdfUrl(work) {
|
|
157
|
+
return (stringField(work.primary_location?.pdf_url).trim() ||
|
|
158
|
+
stringField(work.best_oa_location?.pdf_url).trim());
|
|
139
159
|
}
|
|
140
160
|
export function mapOpenAlexSearchRows(works, limit) {
|
|
141
161
|
return works.slice(0, limit).map((work, index) => {
|
|
@@ -153,7 +173,8 @@ export function mapOpenAlexSearchRows(works, limit) {
|
|
|
153
173
|
is_open_access: Boolean(work.open_access?.is_oa),
|
|
154
174
|
type: stringField(work.type).trim(),
|
|
155
175
|
doi: bareDoi(work.doi),
|
|
156
|
-
pdf_url:
|
|
176
|
+
pdf_url: openAlexPdfUrl(work),
|
|
177
|
+
landing_url: publisherLandingUrl(work) || undefined,
|
|
157
178
|
openalex_id: id,
|
|
158
179
|
source_adapter: "openalex",
|
|
159
180
|
source_url: id ? `https://openalex.org/${id}` : "",
|
|
@@ -181,7 +202,8 @@ export function mapOpenAlexWorkRow(work) {
|
|
|
181
202
|
openAccess: Boolean(work.open_access?.is_oa),
|
|
182
203
|
is_open_access: Boolean(work.open_access?.is_oa),
|
|
183
204
|
openAccessUrl: stringField(work.open_access?.oa_url).trim(),
|
|
184
|
-
pdf_url:
|
|
205
|
+
pdf_url: openAlexPdfUrl(work),
|
|
206
|
+
landing_url: publisherLandingUrl(work) || undefined,
|
|
185
207
|
referencedCount: Array.isArray(work.referenced_works)
|
|
186
208
|
? work.referenced_works.length
|
|
187
209
|
: null,
|
|
@@ -197,6 +219,26 @@ export function mapOpenAlexWorkRow(work) {
|
|
|
197
219
|
url: `https://openalex.org/${id}`,
|
|
198
220
|
};
|
|
199
221
|
}
|
|
222
|
+
async function readOpenAlexWorkPdf(row, kwargs) {
|
|
223
|
+
const pdfUrl = stringField(row.pdf_url);
|
|
224
|
+
if (!pdfUrl) {
|
|
225
|
+
const id = stringField(row.id) || stringField(row.openalex_id) || "record";
|
|
226
|
+
throw new Error(`OpenAlex work ${id} has no source PDF URL.`);
|
|
227
|
+
}
|
|
228
|
+
return readScholarPdf({
|
|
229
|
+
...kwargs,
|
|
230
|
+
id: stringField(row.id) || stringField(row.openalex_id) || pdfUrl,
|
|
231
|
+
title: stringField(row.title) || pdfUrl,
|
|
232
|
+
source_adapter: "openalex",
|
|
233
|
+
source_url: stringField(row.source_url) || stringField(row.url),
|
|
234
|
+
pdf_url: pdfUrl,
|
|
235
|
+
}, {
|
|
236
|
+
site: "openalex",
|
|
237
|
+
command: "read",
|
|
238
|
+
defaultOutput: "./openalex-downloads",
|
|
239
|
+
userAgent: "unicli-openalex/1.0 (https://github.com/olo-dot-io/Uni-CLI)",
|
|
240
|
+
});
|
|
241
|
+
}
|
|
200
242
|
async function fetchOpenAlex(url, label) {
|
|
201
243
|
const response = await fetch(appendMailto(url), {
|
|
202
244
|
headers: {
|
|
@@ -296,4 +338,62 @@ cli({
|
|
|
296
338
|
return [mapOpenAlexWorkRow(work)];
|
|
297
339
|
},
|
|
298
340
|
});
|
|
341
|
+
cli({
|
|
342
|
+
site: "openalex",
|
|
343
|
+
name: "read",
|
|
344
|
+
description: "Download an OpenAlex open-access Work PDF and extract text",
|
|
345
|
+
domain: "api.openalex.org",
|
|
346
|
+
strategy: Strategy.PUBLIC,
|
|
347
|
+
args: [
|
|
348
|
+
{
|
|
349
|
+
name: "id",
|
|
350
|
+
type: "str",
|
|
351
|
+
required: true,
|
|
352
|
+
positional: true,
|
|
353
|
+
description: "OpenAlex Work id or DOI",
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
name: "output",
|
|
357
|
+
type: "str",
|
|
358
|
+
default: "./openalex-downloads",
|
|
359
|
+
description: "Output directory for the downloaded PDF",
|
|
360
|
+
"x-unicli-kind": "path",
|
|
361
|
+
},
|
|
362
|
+
{ name: "filename", type: "str", description: "Output PDF filename" },
|
|
363
|
+
{ name: "first-page", type: "int", default: 1, description: "First page" },
|
|
364
|
+
{ name: "last-page", type: "int", default: 20, description: "Last page" },
|
|
365
|
+
{
|
|
366
|
+
name: "max-chars",
|
|
367
|
+
type: "int",
|
|
368
|
+
default: 40000,
|
|
369
|
+
description: "Maximum extracted text characters",
|
|
370
|
+
},
|
|
371
|
+
],
|
|
372
|
+
columns: [
|
|
373
|
+
"id",
|
|
374
|
+
"title",
|
|
375
|
+
"source_adapter",
|
|
376
|
+
"source_url",
|
|
377
|
+
"pdf_url",
|
|
378
|
+
"path",
|
|
379
|
+
"text_source",
|
|
380
|
+
"text",
|
|
381
|
+
"text_chars",
|
|
382
|
+
"text_truncated",
|
|
383
|
+
],
|
|
384
|
+
capabilities: [
|
|
385
|
+
"http.fetch",
|
|
386
|
+
"http.download",
|
|
387
|
+
"subprocess.exec",
|
|
388
|
+
"scholar.fulltext",
|
|
389
|
+
"scholar.pdf",
|
|
390
|
+
],
|
|
391
|
+
executables: ["pdftotext"],
|
|
392
|
+
minimum_capability: "subprocess.exec",
|
|
393
|
+
func: async (_page, kwargs) => {
|
|
394
|
+
const ref = requireOpenAlexWorkRef(kwargs.id);
|
|
395
|
+
const work = (await fetchOpenAlex(`${OPENALEX_BASE}/works/${encodeURIComponent(ref)}?select=${WORK_SELECT}`, "openalex work"));
|
|
396
|
+
return [await readOpenAlexWorkPdf(mapOpenAlexWorkRow(work), kwargs)];
|
|
397
|
+
},
|
|
398
|
+
});
|
|
299
399
|
//# sourceMappingURL=works.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"works.js","sourceRoot":"","sources":["../../../src/adapters/openalex/works.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"works.js","sourceRoot":"","sources":["../../../src/adapters/openalex/works.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @owner src/adapters/openreview/papers.ts
|
|
3
|
-
* @does Register agent-facing OpenReview search, paper, author, venue, and
|
|
4
|
-
* @needs Public api2.openreview.net notes API, forum/profile id validation, note content normalization.
|
|
5
|
-
* @feeds surface coverage ledger, scholarly review workflow, agent-readable paper/review rows.
|
|
6
|
-
* @breaks OpenReview API envelope drift, content.value parsing, or silent empty threads hide paper review state.
|
|
3
|
+
* @does Register agent-facing OpenReview search, paper, author, venue, reviews, PDF download, and PDF text extraction commands.
|
|
4
|
+
* @needs Public api2.openreview.net notes API, openreview.net PDF URLs, pdftotext for read, forum/profile id validation, note content normalization.
|
|
5
|
+
* @feeds surface coverage ledger, scholarly review workflow, agent-readable paper/review rows, local PDF/fulltext workflow.
|
|
6
|
+
* @breaks OpenReview API envelope drift, content.value parsing, PDF download failure, pdftotext absence, or silent empty threads hide paper review state.
|
|
7
7
|
*/
|
|
8
8
|
interface OpenReviewContentValue {
|
|
9
9
|
value?: unknown;
|
|
@@ -22,6 +22,12 @@ export declare function coerceOpenReviewInt(value: unknown): number;
|
|
|
22
22
|
export declare function requireOpenReviewLimit(value: unknown, fallback: number, max: number): number;
|
|
23
23
|
export declare function requireOpenReviewOffset(value: unknown, fallback?: number): number;
|
|
24
24
|
export declare function requireForumId(value: unknown, label?: string): string;
|
|
25
|
+
export declare function requireOpenReviewPageRange(firstPage: unknown, lastPage: unknown): {
|
|
26
|
+
firstPage: number;
|
|
27
|
+
lastPage: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function requireOpenReviewMaxChars(value: unknown, fallback?: number): number;
|
|
30
|
+
export declare function openReviewPdfFilename(id: string, title: unknown): string;
|
|
25
31
|
export declare function requireProfileId(value: unknown): string;
|
|
26
32
|
export declare function readContent(content: OpenReviewContent | undefined, key: string): unknown;
|
|
27
33
|
export declare function formatOpenReviewDate(value: unknown): string;
|