paperlint 6.3.0 → 7.0.0

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.
Files changed (144) hide show
  1. package/CONTRIBUTING.md +4 -2
  2. package/README.md +2 -2
  3. package/dist/adapters/latex/conditionals.d.ts +21 -0
  4. package/dist/adapters/latex/conditionals.d.ts.map +1 -0
  5. package/dist/adapters/latex/conditionals.js +75 -0
  6. package/dist/adapters/latex/conditionals.js.map +1 -0
  7. package/dist/adapters/latex/headings.d.ts +10 -0
  8. package/dist/adapters/latex/headings.d.ts.map +1 -0
  9. package/dist/adapters/latex/headings.js +129 -0
  10. package/dist/adapters/latex/headings.js.map +1 -0
  11. package/dist/adapters/latex/index.d.ts +1 -0
  12. package/dist/adapters/latex/index.d.ts.map +1 -1
  13. package/dist/adapters/latex/index.js +3 -0
  14. package/dist/adapters/latex/index.js.map +1 -1
  15. package/dist/adapters/latex/parse.d.ts +1 -1
  16. package/dist/adapters/latex/parse.d.ts.map +1 -1
  17. package/dist/adapters/latex/parse.js +3 -2
  18. package/dist/adapters/latex/parse.js.map +1 -1
  19. package/dist/build.d.ts +1 -1
  20. package/dist/build.d.ts.map +1 -1
  21. package/dist/build.js +1 -1
  22. package/dist/build.js.map +1 -1
  23. package/dist/cli.d.ts +1 -1
  24. package/dist/cli.d.ts.map +1 -1
  25. package/dist/cli.js +17 -3
  26. package/dist/cli.js.map +1 -1
  27. package/dist/domain/heading-case.d.ts +100 -0
  28. package/dist/domain/heading-case.d.ts.map +1 -0
  29. package/dist/domain/heading-case.js +365 -0
  30. package/dist/domain/heading-case.js.map +1 -0
  31. package/dist/domain/tex-document.d.ts +32 -0
  32. package/dist/domain/tex-document.d.ts.map +1 -1
  33. package/dist/domain/tex-document.js +11 -0
  34. package/dist/domain/tex-document.js.map +1 -1
  35. package/dist/eslint-rules/latex-language.d.ts.map +1 -1
  36. package/dist/eslint-rules/latex-language.js +16 -3
  37. package/dist/eslint-rules/latex-language.js.map +1 -1
  38. package/dist/facts-file.d.ts +3 -3
  39. package/dist/facts-file.d.ts.map +1 -1
  40. package/dist/facts-file.js +3 -3
  41. package/dist/facts-file.js.map +1 -1
  42. package/dist/folder-venue-rule.js +6 -6
  43. package/dist/folder-venue-rule.js.map +1 -1
  44. package/dist/heading-case.d.ts +48 -0
  45. package/dist/heading-case.d.ts.map +1 -0
  46. package/dist/heading-case.js +191 -0
  47. package/dist/heading-case.js.map +1 -0
  48. package/dist/ports/latex.d.ts +7 -1
  49. package/dist/ports/latex.d.ts.map +1 -1
  50. package/dist/preset-card-rule.d.ts +100 -0
  51. package/dist/preset-card-rule.d.ts.map +1 -0
  52. package/dist/preset-card-rule.js +221 -0
  53. package/dist/preset-card-rule.js.map +1 -0
  54. package/dist/presets.d.ts +19 -2
  55. package/dist/presets.d.ts.map +1 -1
  56. package/dist/presets.js +97 -62
  57. package/dist/presets.js.map +1 -1
  58. package/dist/tex-requirements.d.ts +33 -3
  59. package/dist/tex-requirements.d.ts.map +1 -1
  60. package/dist/tex-requirements.js +27 -2
  61. package/dist/tex-requirements.js.map +1 -1
  62. package/dist/tex-venue-rules.d.ts +1 -1
  63. package/dist/tex-venue-rules.d.ts.map +1 -1
  64. package/dist/tex-venue-rules.js.map +1 -1
  65. package/docs/configuration.md +13 -1
  66. package/docs/optional-rules.md +4 -3
  67. package/docs/rules/format/page-limit.md +1 -1
  68. package/docs/rules/paper/folder-venue-leftover.md +1 -1
  69. package/docs/rules/talk/profile.md +1 -1
  70. package/docs/rules/tex/heading-case.md +424 -0
  71. package/docs/rules.md +62 -53
  72. package/eslint-rules/latex-language.test.mjs +12 -0
  73. package/eslint-rules/latex-language.ts +17 -4
  74. package/eslint-rules/paper-typography.test.mjs +12 -0
  75. package/eslint.config.mjs +59 -1
  76. package/fixtures/build-e2e/acmart/paper.tex +1 -1
  77. package/fixtures/build-e2e/fallback/expect.json +3 -3
  78. package/lib/skill-checks.mjs +31 -0
  79. package/package.json +7 -1
  80. package/presets/acm-sigconf.jsonc +5 -0
  81. package/presets/acm-sigconf.md +43 -0
  82. package/presets/agenticdev.jsonc +27 -6
  83. package/presets/agenticdev.md +151 -0
  84. package/presets/aidc.jsonc +6 -0
  85. package/presets/aidc.md +75 -0
  86. package/presets/aisec.jsonc +5 -1
  87. package/presets/aisec.md +117 -0
  88. package/presets/ieee-conference.jsonc +5 -0
  89. package/presets/ieee-conference.md +38 -0
  90. package/presets/realm.jsonc +7 -2
  91. package/presets/realm.md +166 -0
  92. package/presets/tex/agenticdev.tex +1 -1
  93. package/presets/tex-base.jsonc +6 -0
  94. package/presets/tex-base.md +30 -0
  95. package/presets/venue-profile.schema.json +40 -1
  96. package/skills/find-venue/SKILL.md +6 -5
  97. package/skills/find-venue/SKILL.md.spec.ts +5 -4
  98. package/skills/paper-pipeline/SKILL.md +5 -6
  99. package/skills/paper-pipeline/SKILL.md.spec.ts +4 -5
  100. package/skills/paper-pipeline/references/acl-venue-rules.md +1 -1
  101. package/skills/study-accepted-papers/SKILL.md +3 -3
  102. package/skills/study-accepted-papers/SKILL.md.spec.ts +2 -2
  103. package/skills/submit-paper/SKILL.md +26 -22
  104. package/skills/submit-paper/SKILL.md.spec.ts +25 -21
  105. package/skills/submit-paper/references/publishers/acm.md +1 -1
  106. package/src/adapters/latex/conditionals.ts +130 -0
  107. package/src/adapters/latex/headings.ts +163 -0
  108. package/src/adapters/latex/index.test.ts +65 -0
  109. package/src/adapters/latex/index.ts +3 -0
  110. package/src/adapters/latex/parse.ts +3 -2
  111. package/src/build.ts +2 -2
  112. package/src/cli.test.ts +50 -7
  113. package/src/cli.ts +21 -4
  114. package/src/domain/heading-case.test.ts +660 -0
  115. package/src/domain/heading-case.ts +538 -0
  116. package/src/domain/tex-document.ts +36 -0
  117. package/src/domain/venue-name.test.ts +13 -7
  118. package/src/facts-file.test.ts +4 -4
  119. package/src/facts-file.ts +6 -6
  120. package/src/folder-venue-rule.test.ts +10 -10
  121. package/src/folder-venue-rule.ts +6 -6
  122. package/src/heading-case.test.ts +500 -0
  123. package/src/heading-case.ts +275 -0
  124. package/src/init.test.ts +1 -1
  125. package/src/new-paper.test.ts +10 -6
  126. package/src/paper-settings-commands.test.ts +25 -10
  127. package/src/ports/latex.ts +7 -0
  128. package/src/preset-card-rule.test.ts +266 -0
  129. package/src/preset-card-rule.ts +384 -0
  130. package/src/presets.test.ts +193 -40
  131. package/src/presets.ts +139 -70
  132. package/src/rule-cases.test.ts +136 -50
  133. package/src/submission.test.ts +2 -1
  134. package/src/talk-rules.test.ts +6 -3
  135. package/src/tex-requirements.harness.ts +25 -11
  136. package/src/tex-requirements.test.ts +127 -1
  137. package/src/tex-requirements.ts +70 -8
  138. package/src/tex-venue-rules.test.ts +35 -21
  139. package/src/tex-venue-rules.ts +2 -1
  140. package/src/venue-rules.test.ts +7 -6
  141. package/templates/paper/paper.tex +1 -1
  142. package/skills/submit-paper/references/venues/agenticdev.md +0 -171
  143. package/skills/submit-paper/references/venues/aisec.md +0 -105
  144. package/skills/submit-paper/references/venues/realm.md +0 -155
@@ -0,0 +1,221 @@
1
+ /**
2
+ * `preset/card-rules` — the rules table in a preset's card, generated from the preset beside it.
3
+ *
4
+ * Every shipped preset has a card, `presets/<name>.md` beside `presets/<name>.jsonc`: what the venue
5
+ * or the template family is, its call for papers, its kinds and limits — prose a person writes. One
6
+ * part of the card is NOT prose: which rules a paper extending the preset runs with, at which
7
+ * severity and options, and which file of the chain set each. That part is generated between two
8
+ * markers and checked on every lint, so it cannot say anything the preset does not:
9
+ *
10
+ * <!-- paperlint:preset-rules -->
11
+ * …generated: what the preset is, its call for papers, the resolved rules…
12
+ * <!-- /paperlint:preset-rules -->
13
+ *
14
+ * A section that differs from what the preset resolves to is reported, and `eslint --fix` writes it.
15
+ * A card with no markers gets the section appended by `--fix`; a card with one marker and not the
16
+ * other is reported and left alone, since where the section should end is a person's call.
17
+ *
18
+ * ── WHY OUR OWN RULE, AND NOT eslint-doc-generator ───────────────────────────────
19
+ * eslint-doc-generator documents an ESLint PLUGIN: its rules, and which of the plugin's exported
20
+ * configs enable each. A preset is not an ESLint config — it is paperlint's own format, merged along
21
+ * an `extends` chain of files (`src/presets.ts`), and the column that matters here (which file of
22
+ * the chain set a rule) has no counterpart in a plugin's configs.
23
+ *
24
+ * ── WHAT IT READS ────────────────────────────────────────────────────────────────
25
+ * The card's markdown tree (the two markers are top-level `html` nodes), the preset beside it through
26
+ * `resolvePreset` — the reader every rule uses — and whether `docs/rules/<rule>.md` exists, to link
27
+ * a rule to its page or, before it has one, to the index `docs/rules.md`.
28
+ */
29
+ import { basename, dirname, join, relative } from "node:path";
30
+ import { callerPath } from "./caller-path.js";
31
+ import { presetProblemText, resolvePreset, resolveShipped, SHIPPED_PREFIX, } from "./presets.js";
32
+ /** The first line of the generated section. */
33
+ export const SECTION_START = "<!-- paperlint:preset-rules -->";
34
+ /** The last line of the generated section. */
35
+ export const SECTION_END = "<!-- /paperlint:preset-rules -->";
36
+ const PRESET_EXT = ".jsonc";
37
+ const CARD_EXT = ".md";
38
+ /** A rule entry (`"error"`, `2`, `["error", { … }]`) → its severity and its options as JSON. Pure. */
39
+ export function entryParts(entry) {
40
+ // One level of `flat`: an array entry gives its elements, a bare severity itself.
41
+ const [severity, ...options] = [entry].flat();
42
+ return {
43
+ severity: String(severity),
44
+ options: options.map((o) => JSON.stringify(o)).join(", "),
45
+ };
46
+ }
47
+ /** The resolved preset's rules, one row each, by rule id. Pure. */
48
+ export const ruleRows = (preset) => Object.entries(preset.ruleOrigins)
49
+ .sort(([a], [b]) => a.localeCompare(b))
50
+ .map(([id, origin]) => ({ id, ...entryParts(preset.rules[id]), origin }));
51
+ /** How a card names a preset file: `paperlint:<name>` when it is shipped, else its path from the card. */
52
+ const specOf = (file, card, venuesDir) => dirname(file) === venuesDir
53
+ ? `${SHIPPED_PREFIX}${basename(file, PRESET_EXT)}`
54
+ : relative(dirname(card), file);
55
+ /** A table cell's text with GFM's column separator escaped. Pure. */
56
+ const cell = (text) => text.split("|").join("\\|");
57
+ /** What the card says about where to look for the section's source, and how to rewrite it. */
58
+ const generatedNote = (preset) => `<!-- Generated from ${preset} by \`npx eslint --fix\` (rule preset/card-rules). Edit the preset, not this section. -->`;
59
+ /** The section's first paragraph: what the preset is, its call for papers or its relatives. */
60
+ function identityLine(o) {
61
+ const spec = o.specOf(o.own);
62
+ const extendsText = o.preset.chain
63
+ .slice(-2, -1)
64
+ .map((parent) => ` · extends \`${o.specOf(parent)}\``)
65
+ .join("");
66
+ switch (o.preset.identity.type) {
67
+ case "venue":
68
+ return `**\`${spec}\`** — venue preset for ${o.preset.identity.name} · call for papers: <${o.preset.identity.url}>${extendsText}`;
69
+ case "family": {
70
+ const by = o.extendedBy.length
71
+ ? o.extendedBy.map((s) => `\`${s}\``).join(", ")
72
+ : "no shipped preset";
73
+ return `**\`${spec}\`** — template family, no venue of its own${extendsText} · extended by ${by}`;
74
+ }
75
+ case "base":
76
+ return `**\`${basename(o.own)}\`** — the TeX base set: every paper gets it, whatever it extends, and no preset extends it`;
77
+ }
78
+ }
79
+ /** The table, or the sentence that stands for an empty one. Pure. */
80
+ function rulesTable(rows, own, link, originSpec) {
81
+ if (rows.length === 0)
82
+ return "No preset of this chain sets a rule: under it, every rule keeps paperlint's default.";
83
+ return [
84
+ "| rule | severity | options | set in |",
85
+ "| --- | --- | --- | --- |",
86
+ ...rows.map((r) => `| [\`${r.id}\`](${link(r.id)}) | ${r.severity} | ${r.options === "" ? "—" : `\`${cell(r.options)}\``} | ${r.origin === own ? "this preset" : `inherited from \`${originSpec(r.origin)}\``} |`),
87
+ ].join("\n");
88
+ }
89
+ /** A rule's link from the card: its page under `docs/rules/`, or the index before it has one. */
90
+ const ruleLink = (o) => (id) => {
91
+ const page = join(o.docsRoot, "docs", "rules", `${id}.md`);
92
+ return relative(dirname(o.card), o.docExists(page) ? page : join(o.docsRoot, "docs", "rules.md"));
93
+ };
94
+ /**
95
+ * The section between the markers for the preset `own`, resolved, as the card `card` shows it —
96
+ * without the markers. Wrapped in prettier-ignore, so the formatter and this rule never disagree
97
+ * about the table's spacing. Pure but for `docExists`.
98
+ */
99
+ export function cardSection(o) {
100
+ const link = ruleLink(o);
101
+ const spec = (file) => specOf(file, o.card, o.venuesDir);
102
+ return [
103
+ "<!-- prettier-ignore-start -->",
104
+ generatedNote(basename(o.own)),
105
+ "",
106
+ identityLine({
107
+ preset: o.preset,
108
+ own: o.own,
109
+ specOf: spec,
110
+ extendedBy: o.extendedBy,
111
+ }),
112
+ "",
113
+ rulesTable(ruleRows(o.preset), o.own, link, spec),
114
+ "",
115
+ "<!-- prettier-ignore-end -->",
116
+ ].join("\n");
117
+ }
118
+ /** The shipped presets whose chain runs through `file`, by their spec, `file` itself left out. */
119
+ const extendedByOf = (file, deps) => resolveShipped(deps)
120
+ .flatMap((p) => (p.chain.includes(file) ? p.chain.slice(-1) : []))
121
+ .filter((leaf) => leaf !== file)
122
+ .map((leaf) => specOf(leaf, file, deps.venuesDir));
123
+ /** The expected section for the card at `card`, or the finding that stands in its place. */
124
+ function expectedSection(card, deps) {
125
+ const own = join(dirname(card), `${basename(card, CARD_EXT)}${PRESET_EXT}`);
126
+ if (!deps.files.isFile(callerPath(own)))
127
+ return { ok: false, messageId: "noPreset", data: { preset: own } };
128
+ const r = resolvePreset(`./${basename(own)}`, card, deps);
129
+ if (!r.ok) {
130
+ const why = presetProblemText(r.error);
131
+ return { ok: false, messageId: "presetProblem", data: { why } };
132
+ }
133
+ return {
134
+ ok: true,
135
+ text: cardSection({
136
+ preset: r.value,
137
+ own,
138
+ card,
139
+ venuesDir: deps.venuesDir,
140
+ docsRoot: deps.docsRoot,
141
+ docExists: (f) => deps.files.isFile(callerPath(f)),
142
+ extendedBy: extendedByOf(own, deps),
143
+ }),
144
+ };
145
+ }
146
+ /** The first top-level `html` node of the card that is exactly `marker`, or null. */
147
+ const markerIn = (root, marker) => root.children
148
+ .filter((n) => n.type === "html")
149
+ .find((n) => String(n.value).trim() === marker) ?? null;
150
+ /** The section to append to a card that has none, after its last line. */
151
+ const appended = (text, section) => `${text.endsWith("\n") ? "" : "\n"}\n${SECTION_START}\n${section}\n${SECTION_END}\n`;
152
+ /** The finding for the section between `start` and `end`: stale, with the fix; null when it is right. */
153
+ function staleSection(between, text, section) {
154
+ const from = between.start.position.end.offset;
155
+ const to = between.end.position.start.offset;
156
+ const expected = `\n${section}\n`;
157
+ return text.slice(from, to) === expected
158
+ ? null
159
+ : {
160
+ node: between.start,
161
+ messageId: "stale",
162
+ fix: (fixer) => fixer.replaceTextRange([from, to], expected),
163
+ };
164
+ }
165
+ /** The card's section against `section`, the one its preset resolves to: missing, unpaired, stale, or right (null). */
166
+ function sectionFinding(root, text, section) {
167
+ const start = markerIn(root, SECTION_START);
168
+ const end = markerIn(root, SECTION_END);
169
+ if (start === null)
170
+ return end === null
171
+ ? {
172
+ node: root,
173
+ messageId: "missing",
174
+ fix: (fixer) => fixer.insertTextAfterRange([text.length, text.length], appended(text, section)),
175
+ }
176
+ : { node: end, messageId: "unpaired" };
177
+ if (end === null)
178
+ return { node: start, messageId: "unpaired" };
179
+ return staleSection({ start, end }, text, section);
180
+ }
181
+ /** Judge the card `context.filename`: its preset beside it, then its generated section. */
182
+ function judgeCard(context, root, deps) {
183
+ const want = expectedSection(context.filename, deps);
184
+ const finding = want.ok
185
+ ? sectionFinding(root, context.sourceCode.text, want.text)
186
+ : { node: root, messageId: want.messageId, data: want.data };
187
+ if (finding !== null)
188
+ context.report(finding);
189
+ }
190
+ /** The rule, over `deps`. */
191
+ export function presetCardRule(deps) {
192
+ return {
193
+ meta: {
194
+ type: "problem",
195
+ fixable: "code",
196
+ docs: {
197
+ description: "a preset card's rules table is the one its preset resolves to — generated, never hand-written",
198
+ },
199
+ schema: [],
200
+ messages: {
201
+ stale: "the rules section does not match the preset beside this card — run `npx eslint --fix` on this file to rewrite it from the preset",
202
+ missing: `this card has no generated rules section — run \`npx eslint --fix\` on this file to append one (between ${SECTION_START} and ${SECTION_END})`,
203
+ unpaired: `the generated rules section needs both markers, ${SECTION_START} and ${SECTION_END}, each on its own line`,
204
+ noPreset: "a preset card describes the preset beside it, and there is none: {{preset}}",
205
+ presetProblem: "the preset beside this card does not resolve, so its rules cannot be listed: {{why}}",
206
+ },
207
+ },
208
+ create(context) {
209
+ return {
210
+ root(node) {
211
+ judgeCard(context, node, deps);
212
+ },
213
+ };
214
+ },
215
+ };
216
+ }
217
+ /** The plugin's rules: `preset/card-rules` once registered under the name `preset`. */
218
+ export const presetCardRules = (deps) => ({
219
+ "card-rules": presetCardRule(deps),
220
+ });
221
+ //# sourceMappingURL=preset-card-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-card-rule.js","sourceRoot":"","sources":["../src/preset-card-rule.ts"],"names":[],"mappings":"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"}
package/dist/presets.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type RequiredSection, type TexRequirements, type VenueFormat } from "./tex-requirements.ts";
1
+ import { type PresetIdentity, type RequiredSection, type TexRequirements, type VenueFormat } from "./tex-requirements.ts";
2
2
  import { type Result } from "./domain/result.ts";
3
3
  import type { Files } from "./ports/files.ts";
4
4
  import { type PaperSettings, type SettingsProblem } from "./paper-settings.ts";
@@ -21,10 +21,17 @@ export interface PresetTemplate {
21
21
  }
22
22
  /** A resolved chain, merged. */
23
23
  export interface Preset {
24
- /** The word for this venue in messages. */
24
+ /**
25
+ * The preset's id: the spec's file name without its extension (`agenticdev`, `usenix-sec`). The
26
+ * stable key a machine reads — the facts file and the build plan carry it — whatever `name` says.
27
+ */
28
+ readonly id: string;
29
+ /** The word for this venue in messages: the venue's `name`, else the id. */
25
30
  readonly label: string;
26
31
  /** Every file of the chain, root first. */
27
32
  readonly chain: readonly string[];
33
+ /** What the spec names — the leaf file of the chain: a venue (with its call), or a family. */
34
+ readonly identity: PresetIdentity;
28
35
  /**
29
36
  * The `\\documentclass` the venue's template uses, as the preset spells it, and the file that
30
37
  * spells it; null when no file of the chain names one. Read by the rules and `paperlint new`,
@@ -39,6 +46,8 @@ export interface Preset {
39
46
  readonly tex: TexRequirements;
40
47
  readonly format: VenueFormat;
41
48
  readonly rules: Readonly<Record<string, unknown>>;
49
+ /** Rule id → the file of the chain that set its entry in `rules` (the last one to name it). */
50
+ readonly ruleOrigins: Readonly<Record<string, string>>;
42
51
  /** The accepted papers the register rules measure a body against; empty when no file names any. */
43
52
  readonly registerAnchors: readonly RegisterAnchor[];
44
53
  /** What the venue asks a presenter to send (`talk/*`); null when no file of the chain says. */
@@ -61,6 +70,14 @@ export type PresetProblem = {
61
70
  } | {
62
71
  readonly kind: "too-deep";
63
72
  readonly chain: readonly string[];
73
+ }
74
+ /** `file` extends `parent`, which a preset of its type may not extend. */
75
+ | {
76
+ readonly kind: "wrong-parent";
77
+ readonly file: string;
78
+ readonly parent: string;
79
+ /** A family extending a venue, or anything extending the base set. */
80
+ readonly parentType: "venue" | "base";
64
81
  } | {
65
82
  readonly kind: "broken";
66
83
  readonly file: string;
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
package/dist/presets.js CHANGED
@@ -12,20 +12,27 @@
12
12
  * Anything else — an npm package name, a bare name — is refused by name. npm presets are not
13
13
  * supported yet; a bare name is almost always a shipped name missing its prefix, and the message says so.
14
14
  *
15
+ * ── WHAT EACH FILE IS ─────────────────────────────────────────────────────────────
16
+ * Every preset declares its `type` (`venue-profile.schema.json`): a `venue` names itself and links
17
+ * its call for papers, a template `family` names no venue, and the TeX `base` set is extended by
18
+ * nothing. A chain must read top-down as template → venue: a family extends only a family, and
19
+ * nothing extends the base set. A chain that does not is refused naming both files.
20
+ *
15
21
  * ── THE CHAIN ─────────────────────────────────────────────────────────────────────
16
22
  * At most `MAX_PRESET_DEPTH` files, root to leaf. A cycle (relative paths can form one) is refused
17
23
  * naming the chain. The chain is merged block by block:
18
24
  *
19
25
  * tex union — a child never removes a package its parent needs
20
26
  * format per key, the child wins; `kinds` by kind name, a child's kind replaces that kind
21
- * rules per rule id, the child wins
27
+ * rules per rule id, the child wins; `ruleOrigins` keeps which file set each
22
28
  * template the child wins; so does `name`, and `required_sections`, `register`, `talk` and
23
29
  * `portal` (each whole)
24
30
  * aliases union, with every `name` — what the venue is called along the chain
25
31
  *
26
- * ── THE LABEL ─────────────────────────────────────────────────────────────────────
27
- * Messages, the facts file and the build plan need a word for the venue. It is the most derived
28
- * preset's `name` when one sets it, else the spec's file name without its extension
32
+ * ── THE ID AND THE LABEL ──────────────────────────────────────────────────────────
33
+ * The facts file and the build plan carry the preset's `id`: the spec's file name without its
34
+ * extension, a stable key consumers match against preset ids. Messages say the `label`: the most
35
+ * derived venue's `name` when the chain has a venue, else the id
29
36
  * (`paperlint:agenticdev` → `agenticdev`, `./venues/usenix-sec.jsonc` → `usenix-sec`). Display
30
37
  * only: nothing is ever resolved by it.
31
38
  */
@@ -82,24 +89,39 @@ function readPreset(spec, from, deps) {
82
89
  });
83
90
  }
84
91
  }
85
- /** The chain's files, leaf first, each parsed. */
86
- function chainOf(spec, from, deps) {
87
- const out = [];
88
- let next = { spec, from };
89
- while (next !== null) {
90
- const r = readPreset(next.spec, next.from, deps);
91
- if (!r.ok)
92
- return r;
93
- const files = out.map((x) => x.file);
94
- if (files.includes(r.value.file))
95
- return err({ kind: "cycle", chain: [...files, r.value.file] });
96
- if (out.length === MAX_PRESET_DEPTH)
97
- return err({ kind: "too-deep", chain: [...files, r.value.file] });
98
- out.push(r.value);
99
- const up = r.value.preset.extends;
100
- next = up === null ? null : { spec: up, from: r.value.file };
101
- }
102
- return ok(out);
92
+ /**
93
+ * The chain from `child` up, leaf first: `below` is every file read so far, `child` the last of them.
94
+ * Each parent is refused when it closes a cycle, makes the chain too long, or is of a type `child`
95
+ * may not extend.
96
+ */
97
+ function chainUp(below, child, deps) {
98
+ const up = child.preset.extends;
99
+ if (up === null)
100
+ return ok(below);
101
+ const r = readPreset(up, child.file, deps);
102
+ if (!r.ok)
103
+ return r;
104
+ const files = below.map((x) => x.file);
105
+ if (files.includes(r.value.file))
106
+ return err({ kind: "cycle", chain: [...files, r.value.file] });
107
+ if (below.length === MAX_PRESET_DEPTH)
108
+ return err({ kind: "too-deep", chain: [...files, r.value.file] });
109
+ const parentType = r.value.preset.identity.type;
110
+ if (parentType === "venue" && child.preset.identity.type === "family")
111
+ return err({
112
+ kind: "wrong-parent",
113
+ file: child.file,
114
+ parent: r.value.file,
115
+ parentType,
116
+ });
117
+ if (parentType === "base")
118
+ return err({
119
+ kind: "wrong-parent",
120
+ file: child.file,
121
+ parent: r.value.file,
122
+ parentType,
123
+ });
124
+ return chainUp([...below, r.value], r.value, deps);
103
125
  }
104
126
  /** A child's format over its parent's: per key the child wins, kinds by name. Pure. */
105
127
  export function mergeFormat(parent, child) {
@@ -119,44 +141,50 @@ export function mergeFormat(parent, child) {
119
141
  kinds: new Map([...parent.kinds, ...child.kinds]),
120
142
  };
121
143
  }
144
+ /** A venue's name; a family and the base set have none. Pure. */
145
+ const nameOf = (i) => i.type === "venue" ? i.name : null;
146
+ /** A venue's name as a list, empty for a family and the base set. Pure. */
147
+ const namesOf = (i) => i.type === "venue" ? [i.name] : [];
148
+ const NOTHING_MERGED = {
149
+ name: null,
150
+ template: null,
151
+ aliases: [],
152
+ blind: false,
153
+ requiredSections: [],
154
+ tex: NO_REQUIREMENTS,
155
+ format: NO_FORMAT,
156
+ rules: {},
157
+ ruleOrigins: {},
158
+ registerAnchors: [],
159
+ talk: null,
160
+ portal: null,
161
+ };
162
+ /** One file of the chain, `file`, merged over what its parents gave. Pure. */
163
+ const mergeOne = (acc, { preset: p, file }) => ({
164
+ name: nameOf(p.identity) ?? acc.name,
165
+ template: p.template === null ? acc.template : { text: p.template, file },
166
+ aliases: [...new Set([...acc.aliases, ...namesOf(p.identity), ...p.aliases])],
167
+ blind: p.blind ?? acc.blind,
168
+ requiredSections: p.requiredSections ?? acc.requiredSections,
169
+ tex: p.tex ? mergeRequirements(acc.tex, p.tex) : acc.tex,
170
+ format: mergeFormat(acc.format, p.format),
171
+ rules: { ...acc.rules, ...p.rules },
172
+ ruleOrigins: {
173
+ ...acc.ruleOrigins,
174
+ ...Object.fromEntries(Object.keys(p.rules).map((id) => [id, file])),
175
+ },
176
+ registerAnchors: p.registerAnchors ?? acc.registerAnchors,
177
+ talk: p.talk ?? acc.talk,
178
+ portal: p.portal ?? acc.portal,
179
+ });
122
180
  /** The chain, root first, merged into one preset. Pure. */
123
- function merged(spec, rootFirst) {
124
- const base = {
125
- name: null,
126
- template: null,
127
- aliases: [],
128
- blind: false,
129
- requiredSections: [],
130
- tex: NO_REQUIREMENTS,
131
- format: NO_FORMAT,
132
- rules: {},
133
- registerAnchors: [],
134
- talk: null,
135
- portal: null,
136
- };
137
- const m = rootFirst.reduce((acc, { preset: p, file }) => ({
138
- name: p.name ?? acc.name,
139
- template: p.template === null ? acc.template : { text: p.template, file },
140
- aliases: [
141
- ...new Set([
142
- ...acc.aliases,
143
- ...(p.name === null ? [] : [p.name]),
144
- ...p.aliases,
145
- ]),
146
- ],
147
- blind: p.blind ?? acc.blind,
148
- requiredSections: p.requiredSections ?? acc.requiredSections,
149
- tex: p.tex ? mergeRequirements(acc.tex, p.tex) : acc.tex,
150
- format: mergeFormat(acc.format, p.format),
151
- rules: { ...acc.rules, ...p.rules },
152
- registerAnchors: p.registerAnchors ?? acc.registerAnchors,
153
- talk: p.talk ?? acc.talk,
154
- portal: p.portal ?? acc.portal,
155
- }), base);
156
- const { name, ...rest } = m;
181
+ function merged(spec, rootFirst, leaf) {
182
+ const { name, ...rest } = rootFirst.reduce(mergeOne, NOTHING_MERGED);
157
183
  return {
184
+ id: labelOf(spec),
158
185
  label: name ?? labelOf(spec),
159
186
  chain: rootFirst.map((x) => x.file),
187
+ identity: leaf.preset.identity,
160
188
  ...rest,
161
189
  };
162
190
  }
@@ -165,13 +193,16 @@ function merged(spec, rootFirst) {
165
193
  * does not resolve. Reads through `deps.files` only; never throws.
166
194
  */
167
195
  export function resolvePreset(spec, fromFile, deps) {
168
- const chain = chainOf(spec, fromFile, deps);
196
+ const refused = (p) => err(p.kind === "not-found"
197
+ ? { ...p, shipped: shippedPresets(deps.venuesDir) }
198
+ : p);
199
+ const leaf = readPreset(spec, fromFile, deps);
200
+ if (!leaf.ok)
201
+ return refused(leaf.error);
202
+ const chain = chainUp([leaf.value], leaf.value, deps);
169
203
  if (!chain.ok)
170
- return chain.error.kind === "not-found"
171
- ? err({ ...chain.error, shipped: shippedPresets(deps.venuesDir) })
172
- : chain;
173
- const rootFirst = [...chain.value].reverse();
174
- return ok(merged(spec, rootFirst));
204
+ return refused(chain.error);
205
+ return ok(merged(spec, [...chain.value].reverse(), leaf.value));
175
206
  }
176
207
  /** The shipped presets' names (each is spelled `paperlint:<name>`). */
177
208
  export function shippedPresets(venuesDir) {
@@ -219,6 +250,10 @@ export function presetProblemText(p) {
219
250
  return `the preset chain is longer than ${String(MAX_PRESET_DEPTH)}: ${p.chain.join(" → ")}`;
220
251
  case "broken":
221
252
  return `the preset ${p.file} does not parse: ${p.why}`;
253
+ case "wrong-parent":
254
+ return p.parentType === "base"
255
+ ? `the preset ${p.file} extends ${p.parent}, the TeX base set — every paper gets that set already, and no preset extends it`
256
+ : `the preset ${p.file} is a template family and extends ${p.parent}, a venue — a family builds only on a family; a venue extends a family or another venue`;
222
257
  }
223
258
  }
224
259
  /** A paper directory → its settings and its resolved preset. Reads through `deps.files`; never throws. */
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
@@ -62,15 +62,31 @@ export interface RequiredSection {
62
62
  /** "last": after every section of the body; null: anywhere. */
63
63
  readonly position: "last" | null;
64
64
  }
65
+ /**
66
+ * What a preset file IS, as its `type` declares it. A venue names itself and its call for papers; a
67
+ * template family and the base set name no venue, so they cannot carry either — the union has no
68
+ * field to put them in, the way the schema refuses them.
69
+ */
70
+ export type PresetIdentity = {
71
+ readonly type: "venue";
72
+ readonly name: string;
73
+ readonly url: string;
74
+ } | {
75
+ readonly type: "family";
76
+ } | {
77
+ readonly type: "base";
78
+ };
79
+ /** A preset's kind of file: `venue`, `family` or `base`. */
80
+ export type PresetType = PresetIdentity["type"];
65
81
  /**
66
82
  * One preset FILE, parsed — before its `extends` chain is resolved (`src/presets.ts` does that).
67
- * A preset is a venue or a template family: `{ extends?, name?, template?, format?, tex?, rules? }`.
83
+ * A preset is a venue, a template family, or the TeX base set (`identity`).
68
84
  */
69
85
  export interface PresetFile {
86
+ /** What the file is, and for a venue, its name and call for papers. */
87
+ readonly identity: PresetIdentity;
70
88
  /** The preset this one builds on: `paperlint:<name>` or a relative path. */
71
89
  readonly extends: string | null;
72
- /** A display name for messages; the file name otherwise. */
73
- readonly name: string | null;
74
90
  /** The `\\documentclass` the venue's template uses, as the file spells it; null when it names none. */
75
91
  readonly template: string | null;
76
92
  /** Other names the venue goes by in a paper's text; empty when the file names none. */
@@ -94,6 +110,20 @@ export interface PresetFile {
94
110
  /** Where the venue takes submissions (`paperlint submission`); null when the file does not say. */
95
111
  readonly portal: VenuePortal | null;
96
112
  }
113
+ /** One ajv error, as far as the hints read it. */
114
+ interface SchemaError {
115
+ readonly keyword: string;
116
+ readonly dataPath: string;
117
+ readonly params: object;
118
+ }
119
+ /**
120
+ * What to write instead, for the violations of a preset's identity — ajv's own words for them
121
+ * ("should have required property 'url'", "boolean schema is false") name the key but not why.
122
+ * Read off the error's keyword and parameters, never its message text. Pure.
123
+ */
124
+ export declare function identityHint(e: SchemaError): string | null;
125
+ /** The hints for every violation that has one, each once. Ajv's null `errors` has none. */
126
+ export declare const identityHints: (v: Readonly<Pick<Validate, "errors">>) => readonly string[];
97
127
  /**
98
128
  * The text of one preset file → the typed file, or an Error naming every problem. The ONE parser
99
129
  * of a preset: the toolchain reads its `tex`, the venue rules its `format`, the config its `rules`.
@@ -1 +1 @@
1
- {"version":3,"file":"tex-requirements.d.ts","sourceRoot":"","sources":["../src/tex-requirements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tex-requirements.d.ts","sourceRoot":"","sources":["../src/tex-requirements.ts"],"names":[],"mappings":"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"}