paperlint 11.1.1 → 11.1.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.
@@ -0,0 +1,230 @@
1
+ /**
2
+ * The `submission-confirm` hook — no send to a venue's portal without the person's own yes.
3
+ * PreToolUse on `Bash` (`plugin/hooks/hooks.json`): a command that sends a submission — `paperlint
4
+ * submission new|update` with `--save` or `--submit`, or a request straight at a HotCRP site — gets
5
+ * `"permissionDecision": "ask"`, and Claude Code puts the question to the person, with the reason
6
+ * below, in its permission prompt. Anything else: no output.
7
+ *
8
+ * ── WHY "ask", AND WHY NOTHING TURNS IT OFF ──────────────────────────────────────
9
+ * The hooks reference (code.claude.com/docs/en/hooks): "`ask` prompts the user to confirm"; "A
10
+ * hook's `ask` also forces a permission prompt in auto mode"; the reason is "shown to the user in
11
+ * the permission prompt"; and decisions combine deny > defer > ask > allow, so an `allow` rule in
12
+ * the settings does not outvote it. An agent cannot answer the prompt, and no flag or variable of
13
+ * this package skips it — that is the point: the send is the person's decision, taken on the dry
14
+ * run's venue check (paperlint#264). The hook never denies (the person may send over a limit) and
15
+ * never allows (that would skip the person).
16
+ *
17
+ * ── WHAT IT SEES, AND WHAT IT IS NOT ──────────────────────────────────────────────
18
+ * A send is judged on the command as the shell reads it (`shellLeaves`: each simple command across
19
+ * `&&`, `;`, `|`, words unquoted, the commands inside a `bash -c "…"` string too), never on the raw
20
+ * text: `submission`, `new|update` and `--save|--submit` in one command's words, or a portal's host
21
+ * in any word (a HotCRP-hosted site, or a host a venue preset declares), whatever program it runs.
22
+ * A false ask costs one click; a missed send cannot be taken back. NOT SEEN: an upload from a script
23
+ * file that names the host only inside the file, or words built at run time (`$(…)`).
24
+ *
25
+ * The hook catches an agent that runs a send without asking; it is not a security boundary against
26
+ * an agent that deliberately disguises a send.
27
+ *
28
+ * The reason is built from the same parse and the CLI's own argument parser (`readSend`), one block
29
+ * per send; a send whose PDF cannot be told for certain is still asked about, and says so.
30
+ *
31
+ * ── IT FAILS TOWARD THE QUESTION ─────────────────────────────────────────────────
32
+ * The reason is built from files (the PDF, the build's facts); whatever goes wrong there, the ask
33
+ * still goes out, saying what could not be read. A payload that is not JSON is asked about.
34
+ *
35
+ * ── WHY IN-PROCESS, NOT A VIGILES PROGRAM ────────────────────────────────────────
36
+ * It reads the build's facts with this package's own parser and hashes the PDF; a shipped vigiles
37
+ * hook may import nothing but `vigiles/hook` (`src/folder-layout-hook.ts` says the rest). So
38
+ * `paperlint hook submission-confirm` runs it in-process (`runHook`, src/cli.ts).
39
+ */
40
+ import { basename, isAbsolute, join, relative, resolve } from "node:path";
41
+ import { callerPath } from "./caller-path.js";
42
+ import { bodyEnd } from "./domain/body-pages.js";
43
+ import { fieldOf } from "./domain/record.js";
44
+ import { sha256Hex } from "./domain/sha256.js";
45
+ import { messageOf } from "./domain/text.js";
46
+ import { factsPath, parseFactsText } from "./facts-file.js";
47
+ import { paperPreset } from "./presets.js";
48
+ import { paperPdf } from "./submission.js";
49
+ const ask = (reason) => ({
50
+ hookSpecificOutput: {
51
+ hookEventName: "PreToolUse",
52
+ permissionDecision: "ask",
53
+ permissionDecisionReason: reason,
54
+ },
55
+ });
56
+ const LAST = "Allow only if you have read the dry run's venue check.";
57
+ /** The domain of HotCRP's hosted sites; a self-hosted portal is known by the host its preset declares. */
58
+ const HOTCRP_HOSTED = "hotcrp.com";
59
+ /**
60
+ * Every simple command the shell would run: the command line's own, and those inside a string
61
+ * argument (`bash -c "…"`), parsed the same way.
62
+ */
63
+ function allLeaves(command, parse) {
64
+ const top = parse(command);
65
+ return [
66
+ ...top,
67
+ ...top.flatMap((l) => l.args.filter((a) => /\s/u.test(a)).flatMap((a) => allLeaves(a, parse))),
68
+ ];
69
+ }
70
+ /** A `paperlint submission new|update` with `--save` or `--submit`, in the words of one command. */
71
+ function isSend(l) {
72
+ const at = l.args.indexOf("submission");
73
+ return (at >= 0 &&
74
+ l.args.slice(at + 1).some((w) => w === "new" || w === "update") &&
75
+ l.hasFlag("save", "submit"));
76
+ }
77
+ /** Programs that change the directory the rest of the command line runs in. */
78
+ const MOVES = new Set(["cd", "pushd", "popd"]);
79
+ /**
80
+ * Every send among the simple commands of a command line: its paper and PDF as the command's own
81
+ * argument parser reads them, or null where they cannot be told for certain — the words do not
82
+ * parse, or something before it may have changed the directory.
83
+ */
84
+ function sendsIn(leaves, readSend) {
85
+ return leaves.flatMap((l, n) => {
86
+ const at = l.args.findIndex((x, i) => x === "submission" && /^(?:new|update)$/u.test(l.args[i + 1] ?? ""));
87
+ if (at < 0 || !l.hasFlag("save", "submit"))
88
+ return [];
89
+ const moved = leaves
90
+ .slice(0, n + 1)
91
+ .some((x) => MOVES.has(x.head) || x.chdir !== null);
92
+ return [moved ? null : readSend(l.args.slice(at + 1))];
93
+ });
94
+ }
95
+ /**
96
+ * What the commands send: a submission through paperlint, anything that names a venue's portal — a
97
+ * HotCRP-hosted site, or a host a venue preset declares (`hosts`, read only when a word has a dot),
98
+ * whatever program it runs, as a plain case-insensitive substring of a word — or nothing. Judged on
99
+ * the shell's words only, never on the raw text.
100
+ */
101
+ export function sendKind(leaves, hosts) {
102
+ if (leaves.some(isSend))
103
+ return "paperlint";
104
+ const words = leaves
105
+ .flatMap((l) => [l.head, ...l.args])
106
+ .map((w) => w.toLowerCase())
107
+ .filter((w) => w.includes("."));
108
+ if (words.length === 0)
109
+ return null;
110
+ const known = [HOTCRP_HOSTED, ...hosts()]
111
+ .map((h) => h.toLowerCase())
112
+ .filter((h) => h !== "");
113
+ return words.some((w) => known.some((h) => w.includes(h))) ? "direct" : null;
114
+ }
115
+ /** The body pages the build counted: up to the references or appendix, or banal's count. */
116
+ function bodyPages(f) {
117
+ const end = bodyEnd(f.text.pages, {
118
+ bib: f.text.bibAnchorPage,
119
+ appendix: f.text.appendixAnchorPage,
120
+ });
121
+ if (end.kind === "found")
122
+ return `body pages: ${String(end.bodyPages)} (up to the ${end.by} on page ${String(end.page)})`;
123
+ return f.geometry === null
124
+ ? "body pages: not counted (the build found no references heading and measured no geometry)"
125
+ : `body pages: ${String(f.geometry.body_pages)} (as banal counts them)`;
126
+ }
127
+ /** What the build's facts say about the PDF to be sent, in lines. */
128
+ function factsLines(paperDir, sha, files) {
129
+ const bytes = files.readBytes(callerPath(factsPath(paperDir)));
130
+ if (bytes === null)
131
+ return [
132
+ "no build facts (_build/paper.facts.json): the paper was not built, so the venue check did not see this PDF",
133
+ ];
134
+ const f = parseFactsText(new TextDecoder().decode(bytes));
135
+ if (!f.ok)
136
+ return [
137
+ `could not read the build facts (_build/paper.facts.json): ${f.error.kind === "schema" ? `schema ${f.error.got}` : f.error.why}`,
138
+ ];
139
+ const stale = sha !== f.value.sha
140
+ ? [
141
+ "!! THE LAST BUILD IS NOT OF THIS PDF — the check did not see it. Rebuild (`paperlint build`) and run the dry run again.",
142
+ ]
143
+ : [];
144
+ return [...stale, bodyPages(f.value)];
145
+ }
146
+ /** One send, described: the paper, the PDF as the command resolves it, what the build saw. */
147
+ function sendLines(send, cwd, deps) {
148
+ const paperDir = resolve(cwd, send.paper ?? ".");
149
+ const p = paperPreset(paperDir, deps);
150
+ const own = paperPdf(paperDir, p.kind === "settings-problem" ? null : p.settings);
151
+ const pdf = send.pdf === null ? own : resolve(cwd, send.pdf);
152
+ const bytes = deps.files.readBytes(callerPath(pdf));
153
+ const sha = bytes === null ? null : sha256Hex(bytes);
154
+ return [
155
+ `paper folder: ${send.paper ?? `${basename(paperDir)} (the current folder)`}`,
156
+ `PDF: ${send.pdf ?? join(send.paper ?? ".", relative(paperDir, own))}${sha === null ? " — NOT FOUND" : `, sha256 ${sha.slice(0, 12)}`}`,
157
+ ...factsLines(paperDir, sha, deps.files),
158
+ ];
159
+ }
160
+ /** A send whose PDF cannot be told for certain. */
161
+ const UNRESOLVED = "could not resolve which PDF this send uploads — check the dry run";
162
+ /**
163
+ * Why the person is asked, for `paperlint submission` sends: each send's paper, PDF and build — every
164
+ * send in the command, one block each. Words the shell would expand (`$…`, backticks) are not
165
+ * guessed at: such a command is described as unresolved.
166
+ */
167
+ export function paperlintReason(command, leaves, cwd, deps) {
168
+ const sends = /[`$]/u.test(command) ? [] : sendsIn(leaves, deps.readSend);
169
+ const one = (x) => x === null ? [UNRESOLVED] : sendLines(x, cwd, deps);
170
+ const blocks = sends.length === 0
171
+ ? [UNRESOLVED]
172
+ : sends.length === 1
173
+ ? sends.flatMap(one)
174
+ : sends.flatMap((x, n) => [
175
+ `send ${String(n + 1)} of ${String(sends.length)}:`,
176
+ ...one(x),
177
+ ]);
178
+ return [SENDS, ...blocks, LAST].join("\n");
179
+ }
180
+ /** The ask when the hook's input cannot be read at all: it cannot tell, so the person decides. */
181
+ export const UNREADABLE_INPUT = ask(`paperlint could not read this command, so it cannot tell whether it sends a paper to a venue's portal. ${LAST}`);
182
+ const SENDS = "This sends the paper to the venue's portal (paperlint submission with --save or --submit).";
183
+ const DIRECT = `This command names a venue's submission portal, so it may send to it outside paperlint and its venue check. ${LAST}`;
184
+ /** The payload, parsed; null when it is not JSON. */
185
+ function parsed(stdin) {
186
+ try {
187
+ return JSON.parse(stdin);
188
+ }
189
+ catch {
190
+ return null;
191
+ }
192
+ }
193
+ /**
194
+ * The hook on one payload, as Claude Code sends it on stdin: the ask, or null for a command that
195
+ * sends nothing. Never throws: what it cannot read, it asks about.
196
+ */
197
+ export function submissionConfirm(stdin, deps) {
198
+ const payload = parsed(stdin);
199
+ if (payload === null)
200
+ return UNREADABLE_INPUT;
201
+ const raw = fieldOf(fieldOf(payload, "tool_input"), "command");
202
+ const command = typeof raw === "string" ? raw : "";
203
+ const given = fieldOf(payload, "cwd");
204
+ const cwd = typeof given === "string" && isAbsolute(given) ? given : resolve(".");
205
+ const kind = kindOf(command, cwd, deps);
206
+ if (kind === null)
207
+ return null;
208
+ if (kind !== "paperlint" && kind !== "direct")
209
+ return ask(kind.failed);
210
+ if (kind === "direct")
211
+ return ask(DIRECT);
212
+ try {
213
+ return ask(paperlintReason(command, deps.shellLeaves(command), cwd, deps));
214
+ }
215
+ catch (e) {
216
+ return ask(`${SENDS} paperlint could not say what will be sent: ${messageOf(e)}. ${LAST}`);
217
+ }
218
+ }
219
+ /** What the command sends, or — when reading it failed — the reason to ask anyway. */
220
+ function kindOf(command, cwd, deps) {
221
+ try {
222
+ return sendKind(allLeaves(command, deps.shellLeaves), () => deps.portalHosts(cwd));
223
+ }
224
+ catch (e) {
225
+ return {
226
+ failed: `paperlint could not tell what this command sends (${messageOf(e)}). ${LAST}`,
227
+ };
228
+ }
229
+ }
230
+ //# sourceMappingURL=submission-confirm-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submission-confirm-hook.js","sourceRoot":"","sources":["../src/submission-confirm-hook.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,13 @@ import { type Author, type CreateOutcome, type NewSubmission, type PortalFailure
4
4
  import { type FieldValues, type VenueFields } from "./domain/submission-fields.ts";
5
5
  import type { Files } from "./ports/files.ts";
6
6
  import type { PortalSite } from "./ports/submission-portal.ts";
7
- import { type PresetDeps } from "./presets.ts";
7
+ import { type PaperPreset, type PresetDeps } from "./presets.ts";
8
+ import type { PaperSettings } from "./paper-settings.ts";
8
9
  import { type InForce } from "./domain/deadline.ts";
9
10
  import { type TokenProblem } from "./domain/portal-token.ts";
10
11
  import type { LatexReader } from "./ports/latex.ts";
11
12
  import type { SourcesCodec } from "./ports/sources-codec.ts";
13
+ import { type VenueMessage } from "./venue-rules.ts";
12
14
  /** How to make and set the site's token: the page, the scopes, the variable. Pure. */
13
15
  export declare function tokenSteps(portal: SupportedPortal, site: PortalSite, variable: string): readonly string[];
14
16
  /** Why there is no token, as the complete instruction the author follows. Pure. */
@@ -48,11 +50,19 @@ export interface SubmissionDeps {
48
50
  readonly latex: LatexReader;
49
51
  /** Reads the build's record of the files TeX read, for the includes (`new`). */
50
52
  readonly codec: SourcesCodec;
53
+ /** Findings on one file, printed as `paperlint lint` prints them (the root passes ESLint's `stylish`). */
54
+ readonly lintText: (file: string, messages: readonly VenueMessage[]) => Promise<string>;
51
55
  readonly log: (line: string) => void;
52
56
  readonly err: (line: string) => void;
53
57
  }
54
58
  /** A paper's portal, its submission there, and the PDF the paper builds. */
55
59
  export interface SubmissionTarget {
60
+ /** The paper's folder, absolute. */
61
+ readonly paperDir: string;
62
+ /** The paper's settings and venue preset, resolved: what the venue rules judge the PDF against. */
63
+ readonly resolved: Extract<PaperPreset, {
64
+ readonly kind: "resolved";
65
+ }>;
56
66
  readonly portal: SupportedPortal;
57
67
  /** The paper's submission on the portal; null before `new` created one. */
58
68
  readonly id: number | null;
@@ -81,6 +91,8 @@ export interface SubmissionTarget {
81
91
  */
82
92
  readonly deadlines: readonly InForce[];
83
93
  }
94
+ /** The PDF a paper sends when no `--pdf` is named: its `pdf` setting, else `paper.pdf`. Pure. */
95
+ export declare const paperPdf: (paperDir: string, settings: Pick<PaperSettings, "pdf"> | null) => string;
84
96
  /** The paper directory → its portal and submission, or the line naming the file and key to set. */
85
97
  export declare function submissionTarget(paperDir: string, deps: PresetDeps): Result<SubmissionTarget, string>;
86
98
  /** A failure in words: HTTP status and the portal's own messages. Never the token. */
@@ -1 +1 @@
1
- {"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAIL,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EACV,UAAU,EAEX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhF,sFAAsF;AACtF,wBAAgB,UAAU,CACxB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,GACf,SAAS,MAAM,EAAE,CAOnB;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,UAAU,EAChB,CAAC,EAAE,YAAY,GACd,SAAS,MAAM,EAAE,CAMnB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,UAAU,EAChB,CAAC,EAAE,aAAa,GACf,SAAS,MAAM,EAAE,CASnB;AAED,eAAO,MAAM,WAAW,8CAA+C,CAAC;AACxE,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAItD,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACnD,2GAA2G;IAC3G,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,UAAU,CAAC;IAClD,oFAAoF;IACpF,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,0GAA0G;IAC1G,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,SAAS,YAAY,EAAE,KAC9B,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mGAAmG;IACnG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IACvE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9C,mGAAmG;IACnG,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,0FAA0F;IAC1F,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC;CACxC;AAID,iGAAiG;AACjG,eAAO,MAAM,QAAQ,GACnB,UAAU,MAAM,EAChB,UAAU,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,IAAI,KAC1C,MAAsD,CAAC;AAiE1D,mGAAmG;AACnG,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,GACf,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAWlC;AAQD,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAWpD;AAkBD,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAa/C;AAED,6BAA6B;AAC7B,wBAAgB,SAAS,CACvB,CAAC,EAAE,gBAAgB,EACnB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAChE,SAAS,MAAM,EAAE,CAcnB;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,MAAM,MAAM,GAAG,IAAI,KAAG,MACoS,CAAC;AAEvW,mFAAmF;AACnF,eAAO,MAAM,UAAU,GAAI,QAAQ,WAAW,KAAG,SAAS,MAAM,EAG7D,CAAC;AAEJ,2FAA2F;AAC3F,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,GAAG,IAAI,EACzB,CAAC,EAAE,aAAa,GACf,SAAS,MAAM,EAAE,CASnB;AAED,+BAA+B;AAC/B,wBAAgB,WAAW,CACzB,CAAC,EAAE,aAAa,EAChB,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC1D,IAAI,EAAE,OAAO,GACZ,SAAS,MAAM,EAAE,CAcnB;AAwND;;;GAGG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE;IACN,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,GAAG,IAAI,EACR,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EACpC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,GAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBxB;AAgBD,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,GAAG,SAAS,MAAM,EAAE,CAW5D;AAED,yHAAyH;AACzH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,aAAa,CAAC,EACnD,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,QAAQ,EAAE,MAAM,GACf,SAAS,MAAM,EAAE,CAcnB;AAED,mDAAmD;AACnD,wBAAgB,WAAW,CACzB,CAAC,EAAE,aAAa,EAChB,IAAI,EAAE,OAAO,GACZ,SAAS,MAAM,EAAE,CAanB;AAyMD,iHAAiH;AACjH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,aAAa,CAAC,EACnD,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAyBjE;AAuBD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAW7D;AAqBD,2GAA2G;AAC3G,wBAAsB,aAAa,CACjC,CAAC,EAAE,cAAc,EACjB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
@@ -18,6 +18,11 @@
18
18
  * sent (`src/domain/submission-fields.ts`). A checkbox field the portal did not take is said, and
19
19
  * fails the command: HotCRP keeps an option it does not know as nothing, without an error.
20
20
  *
21
+ * Before the portal is asked, `new` and `update` print what the venue rules find in the exact PDF
22
+ * they send, as `paperlint lint` prints it — or "venue rules: no errors" (paperlint#264). The verdict
23
+ * is the author's to act on; the one thing the command refuses is a `--save` whose build facts are
24
+ * missing or about other bytes, because then nothing was checked (exit 2).
25
+ *
21
26
  * 🔴 THE TOKEN IS AN INPUT, AND ONLY AN INPUT. It comes from the environment (the root reads it), is
22
27
  * handed to the adapter, and never appears in anything printed here.
23
28
  */
@@ -38,6 +43,7 @@ import { factsPath, parseFactsText } from "./facts-file.js";
38
43
  import { lineColumn, readPaper } from "./tex-paper.js";
39
44
  import { originOf } from "./domain/paper-source.js";
40
45
  import { MAIN } from "./build.js";
46
+ import { assessSent, venueMessages } from "./venue-rules.js";
41
47
  /** How to make and set the site's token: the page, the scopes, the variable. Pure. */
42
48
  export function tokenSteps(portal, site, variable) {
43
49
  const c = site.credentials;
@@ -70,6 +76,8 @@ export function tokenRefusedLines(portal, site, f) {
70
76
  export const SUBCOMMANDS = ["new", "show", "update", "topics"];
71
77
  const isSubcommand = (s) => SUBCOMMANDS.some((x) => x === s);
72
78
  const configOf = (dir) => join(dir, CONFIG_FILE);
79
+ /** The PDF a paper sends when no `--pdf` is named: its `pdf` setting, else `paper.pdf`. Pure. */
80
+ export const paperPdf = (paperDir, settings) => join(paperDir, settings?.pdf ?? "paper.pdf");
73
81
  /** Why a paper without a venue preset has no portal: the key to set, or — with cycles — where. */
74
82
  const noPresetLine = (paperDir, settings) => settings === null || settings.cycles === null
75
83
  ? `${configOf(paperDir)}: no "extends" — the venue preset it names declares the portal ("portal": { "kind": …, "url": … })`
@@ -96,6 +104,8 @@ function targetOf(paperDir, p) {
96
104
  ? []
97
105
  : currentDeadlines(p.settings.cycles.current);
98
106
  return ok({
107
+ paperDir,
108
+ resolved: p,
99
109
  portal: portal.value,
100
110
  id: p.settings.submission?.id ?? null,
101
111
  config: configOf(paperDir),
@@ -104,7 +114,7 @@ function targetOf(paperDir, p) {
104
114
  fields: {},
105
115
  venueFields: p.preset.submissionFields,
106
116
  accepted: p.settings.cycles?.current.kind === "accepted",
107
- pdf: join(paperDir, p.settings.pdf ?? "paper.pdf"),
117
+ pdf: paperPdf(paperDir, p.settings),
108
118
  call: identity.type === "venue" ? identity.url : null,
109
119
  deadlines: deadlinesInForce(own, p.preset.deadlines),
110
120
  });
@@ -263,6 +273,37 @@ const changeOf = (a, bytes, abstract, fields) => ({
263
273
  submit: a.submit,
264
274
  fields,
265
275
  });
276
+ /**
277
+ * The venue rules on the bytes about to be sent, printed as `paperlint lint` prints them (ESLint's
278
+ * `stylish`), or one line when they find nothing. Returns whether a `--save` stops, said: the
279
+ * build's facts are missing, unreadable or about other bytes, so the rules did not see this PDF.
280
+ */
281
+ async function venueCheck(t, bytes, save, deps) {
282
+ const a = assessSent(t.paperDir, t.resolved, bytes, deps.presets);
283
+ const tex = join(t.paperDir, MAIN);
284
+ const source = bytesAt(deps.files, tex);
285
+ const messages = venueMessages(a, source === null ? null : new TextDecoder().decode(source));
286
+ const printed = (await deps.lintText(tex, messages)).trim();
287
+ logAll(printed === ""
288
+ ? [nothingFound(a.kind)]
289
+ : [`${VENUE_RULES}:`, ...printed.split("\n")], deps);
290
+ // Checked on its own: a cycle still porting skips the venue rules, not this.
291
+ const refused = save && factsOfSent(t.paperDir, bytes, deps) === null;
292
+ if (refused)
293
+ deps.err(REBUILD_REFUSAL);
294
+ return refused;
295
+ }
296
+ /** The line for a check that found nothing — which, while a cycle is porting, is that nothing ran. */
297
+ const nothingFound = (kind) => kind === "porting"
298
+ ? "venue rules: none run — the current cycle's phase is \"porting\", so the venue's format does not apply yet"
299
+ : `${VENUE_RULES}: no errors`;
300
+ /**
301
+ * What the check is, said where it prints: the venue rules at paperlint's default levels and
302
+ * options. A paper's or the project's `rules` overrides are not read here; `paperlint lint` reads them.
303
+ */
304
+ const VENUE_RULES = "venue rules at their default options";
305
+ /** What `--save` says when the build's facts do not describe the PDF: nothing was sent. */
306
+ const REBUILD_REFUSAL = "refused: no build facts describe this PDF (none, unreadable, or of other bytes), so the venue rules did not see it — rebuild (`paperlint build`), run the dry run again, and read its venue check; nothing was sent";
266
307
  /** `update`: send the PDF (and the abstract, and "submitted" when asked); a dry run unless saving. */
267
308
  async function runUpdate(t, portal, a, deps) {
268
309
  const bytes = bytesAt(deps.files, a.pdfPath);
@@ -273,7 +314,11 @@ async function runUpdate(t, portal, a, deps) {
273
314
  const abstract = abstractOf(a, deps);
274
315
  if (!abstract.ok)
275
316
  return (deps.err(abstract.error), 2);
276
- logAll([checkPdfLine(shown, t.call), ...fieldLines(t.fields)], deps);
317
+ deps.log(checkPdfLine(shown, t.call));
318
+ const refused = await venueCheck(t, bytes, a.save, deps);
319
+ logAll(fieldLines(t.fields), deps);
320
+ if (refused)
321
+ return 2;
277
322
  const change = changeOf(a, bytes, abstract.value, t.fields);
278
323
  const r = await portal.update(t.id, change, { save: a.save });
279
324
  if (!r.ok)
@@ -286,14 +331,14 @@ async function runUpdate(t, portal, a, deps) {
286
331
  }
287
332
  // ── new ──────────────────────────────────────────────────────────────────────────────
288
333
  /**
289
- * The metadata of the PDF that is sent, from the build's facts — the title's fallback; null when
290
- * there are no facts, or they describe another PDF.
334
+ * The build's facts about the PDF that is sent — what the title falls back on, and what a `--save`
335
+ * needs to exist; null when there are none, they do not read, or they describe other bytes.
291
336
  */
292
- function pdfMetadata(paperDir, pdf, deps) {
337
+ function factsOfSent(paperDir, pdf, deps) {
293
338
  const bytes = bytesAt(deps.files, factsPath(paperDir));
294
339
  const facts = bytes === null ? null : parseFactsText(new TextDecoder().decode(bytes));
295
340
  return facts?.ok === true && facts.value.sha === sha256Hex(pdf)
296
- ? facts.value.text.metadata
341
+ ? facts.value
297
342
  : null;
298
343
  }
299
344
  /** Where an offset of the assembled paper stands in its own file: `file:line:column`. */
@@ -441,7 +486,7 @@ function titleAndAbstract(a, pdf, deps) {
441
486
  if (!own.ok)
442
487
  return own;
443
488
  const paper = assembledPaper(a.paperDir, deps);
444
- const metadata = pdfMetadata(a.paperDir, pdf, deps);
489
+ const metadata = factsOfSent(a.paperDir, pdf, deps)?.text.metadata ?? null;
445
490
  const title = titleOf(paper === null
446
491
  ? null
447
492
  : { text: paper.text, where: (o) => placeIn(paper, o) }, deps.latex, metadata);
@@ -502,7 +547,10 @@ async function runNew(t, portal, a, deps) {
502
547
  return (deps.err(n.error), 2);
503
548
  const { paper, shown } = n.value;
504
549
  deps.log(checkPdfLine(shown, t.call));
550
+ const refused = await venueCheck(t, paper.pdf.bytes, a.save, deps);
505
551
  logAll(newLines(paper), deps);
552
+ if (refused)
553
+ return 2;
506
554
  const r = await portal.create(paper, { save: a.save });
507
555
  if (!r.ok)
508
556
  return failed(r.error, deps);
@@ -1 +1 @@
1
- {"version":3,"file":"submission.js","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submission.js","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"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"}