paperlint 2.0.0 → 2.0.1

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 (138) hide show
  1. package/.github/workflows/ci.yml +4 -4
  2. package/CLAUDE.md +3 -3
  3. package/LICENSE +1 -1
  4. package/README.md +25 -10
  5. package/action.harness.mjs +10 -10
  6. package/action.mutations.mjs +3 -3
  7. package/action.yml +11 -11
  8. package/bin/{rpp.mjs → paperlint.mjs} +2 -2
  9. package/dist/adapters/banal/invocation.js +3 -3
  10. package/dist/adapters/banal/invocation.js.map +1 -1
  11. package/dist/adapters/banal/run.d.ts +1 -1
  12. package/dist/adapters/banal/run.js +1 -1
  13. package/dist/adapters/banal/run.js.map +1 -1
  14. package/dist/adapters/banal/settings.d.ts +4 -4
  15. package/dist/adapters/banal/settings.d.ts.map +1 -1
  16. package/dist/adapters/banal/settings.js +4 -4
  17. package/dist/adapters/banal/settings.js.map +1 -1
  18. package/dist/adapters/banal/xml.js +1 -1
  19. package/dist/adapters/banal/xml.js.map +1 -1
  20. package/dist/adapters/curl/download.io.d.ts.map +1 -1
  21. package/dist/adapters/curl/download.io.js +2 -2
  22. package/dist/adapters/curl/download.io.js.map +1 -1
  23. package/dist/build-engine.d.ts +1 -1
  24. package/dist/build-engine.js +1 -1
  25. package/dist/build.js +1 -1
  26. package/dist/cli.d.ts +14 -29
  27. package/dist/cli.d.ts.map +1 -1
  28. package/dist/cli.js +36 -74
  29. package/dist/cli.js.map +1 -1
  30. package/dist/doctor.d.ts.map +1 -1
  31. package/dist/doctor.js +0 -2
  32. package/dist/doctor.js.map +1 -1
  33. package/dist/engine.d.ts +2 -2
  34. package/dist/engine.d.ts.map +1 -1
  35. package/dist/engine.js +1 -1
  36. package/dist/hooks-settings.d.ts +0 -18
  37. package/dist/hooks-settings.d.ts.map +1 -1
  38. package/dist/hooks-settings.js +70 -42
  39. package/dist/hooks-settings.js.map +1 -1
  40. package/dist/init.d.ts +2 -10
  41. package/dist/init.d.ts.map +1 -1
  42. package/dist/init.js +7 -39
  43. package/dist/init.js.map +1 -1
  44. package/dist/link-skills.js +2 -2
  45. package/dist/link-skills.js.map +1 -1
  46. package/dist/rules-config.d.ts +1 -1
  47. package/dist/rules-config.js +2 -2
  48. package/dist/toolchain.d.ts +2 -2
  49. package/dist/toolchain.d.ts.map +1 -1
  50. package/dist/toolchain.js +8 -8
  51. package/dist/toolchain.js.map +1 -1
  52. package/dist/types.d.ts +4 -4
  53. package/dist/types.d.ts.map +1 -1
  54. package/docs/configuration.md +6 -10
  55. package/docs/e2e.md +3 -4
  56. package/docs/install.md +11 -3
  57. package/docs/optional-rules.md +1 -1
  58. package/docs/rules.md +1 -1
  59. package/docs/toolchain.md +5 -5
  60. package/eslint-rules/paper-typography.mjs +1 -1
  61. package/eslint-rules/paper-typography.mutations.mjs +1 -1
  62. package/eslint-rules/pdf-last-page-balance.harness.mjs +5 -3
  63. package/fixtures/build-e2e/guards/paper.tex +1 -1
  64. package/fixtures/pdf-facts/README.md +1 -1
  65. package/fixtures/real-markdown-paper/baseline.json +1 -1
  66. package/fixtures/real-markdown-paper/baseline.mjs +2 -2
  67. package/fixtures/toolchain-mirror/install-tl +2 -2
  68. package/fixtures/toolchain-mirror/stub-pdflatex +1 -1
  69. package/fixtures/toolchain-mirror/stub-tlmgr +1 -1
  70. package/hooks/hooks.harness.mjs +1 -1
  71. package/lib/paper-config.harness.mjs +3 -3
  72. package/lib/paper-config.mjs +3 -3
  73. package/lib/skill-trigger-cases.harness.mjs +1 -1
  74. package/package.json +4 -4
  75. package/plugin/hooks/hooks.json +3 -3
  76. package/scripts/check.mjs +1 -1
  77. package/scripts/harness-api.frozen.json +1 -1
  78. package/scripts/harness-api.test.ts +2 -2
  79. package/scripts/layer-legacy.frozen.json +1 -1
  80. package/scripts/mutation-batteries-frozen.harness.mjs +1 -1
  81. package/scripts/mutation-batteries.frozen.json +2 -2
  82. package/scripts/release-config.test.ts +1 -1
  83. package/skills/paper-pipeline/description-language.eval.mjs +1 -1
  84. package/skills/paper-pipeline/framing-vs-vocabulary.eval.mjs +1 -1
  85. package/skills/paper-pipeline/grade-paper-writing-ablation.eval.mjs +2 -2
  86. package/skills/paper-pipeline/pipeline-firing.eval.mjs +1 -1
  87. package/skills/paper-pipeline/pipeline-language.eval.mjs +1 -1
  88. package/skills/paper-pipeline/scripts/consumer.d.mts +1 -0
  89. package/skills/paper-pipeline/scripts/consumer.harness.mjs +10 -4
  90. package/skills/paper-pipeline/scripts/consumer.mjs +8 -1
  91. package/skills/paper-pipeline/scripts/consumer.mutations.mjs +1 -1
  92. package/skills/render-paper/SKILL.md +3 -3
  93. package/skills/render-paper/SKILL.md.spec.ts +2 -2
  94. package/skills/render-paper/extract-pdf-facts.harness.mjs +1 -1
  95. package/skills/submit-paper/references/venues/venue-profile.schema.json +1 -1
  96. package/src/adapters/banal/index.test.ts +1 -1
  97. package/src/adapters/banal/invocation.test.ts +3 -3
  98. package/src/adapters/banal/invocation.ts +3 -3
  99. package/src/adapters/banal/locate.test.ts +4 -4
  100. package/src/adapters/banal/run.ts +2 -2
  101. package/src/adapters/banal/settings.test.ts +12 -6
  102. package/src/adapters/banal/settings.ts +9 -5
  103. package/src/adapters/banal/xml.test.ts +1 -1
  104. package/src/adapters/banal/xml.ts +1 -1
  105. package/src/adapters/curl/download.io.ts +4 -2
  106. package/src/adapters/curl/download.test.ts +3 -1
  107. package/src/adapters/node/files.test.ts +1 -1
  108. package/src/adapters/node/process.test.ts +2 -2
  109. package/src/adapters/node/workspace.test.ts +4 -4
  110. package/src/build-engine.harness.mjs +2 -2
  111. package/src/build-engine.ts +1 -1
  112. package/src/build.harness.mjs +6 -6
  113. package/src/build.mutations.mjs +3 -2
  114. package/src/build.ts +1 -1
  115. package/src/cli.harness.mjs +68 -129
  116. package/src/cli.mutations.mjs +7 -32
  117. package/src/cli.ts +46 -92
  118. package/src/doctor.harness.mjs +9 -25
  119. package/src/doctor.ts +0 -2
  120. package/src/engine.harness.mjs +4 -2
  121. package/src/engine.ts +2 -2
  122. package/src/hooks-settings.harness.mjs +24 -15
  123. package/src/hooks-settings.mutations.mjs +2 -4
  124. package/src/hooks-settings.ts +92 -49
  125. package/src/init.ts +7 -49
  126. package/src/latex-log.harness.mjs +1 -1
  127. package/src/link-skills.harness.mjs +3 -1
  128. package/src/link-skills.mutations.mjs +1 -1
  129. package/src/link-skills.ts +2 -2
  130. package/src/new-paper.harness.mjs +1 -1
  131. package/src/pdf-facts.harness.mjs +1 -1
  132. package/src/rules-config.ts +2 -2
  133. package/src/structure.harness.mjs +1 -1
  134. package/src/tex-requirements.harness.mjs +1 -1
  135. package/src/toolchain.harness.mjs +34 -25
  136. package/src/toolchain.ts +14 -8
  137. package/src/types.ts +4 -4
  138. package/plugin/.claude-plugin/plugin.json +0 -8
@@ -260,23 +260,23 @@ jobs:
260
260
  # No `restore-keys`, deliberately: a partial restore would carry the old year's tree into the
261
261
  # new entry, and the old tree is never deleted, so the cache would grow by a whole TeX Live.
262
262
  - name: where TeX Live is cached
263
- run: echo "RPP_TEXLIVE_DIR=$HOME/.cache/rpp-texlive" >> "$GITHUB_ENV"
263
+ run: echo "PAPERLINT_TEXLIVE_DIR=$HOME/.cache/paperlint-texlive" >> "$GITHUB_ENV"
264
264
 
265
265
  - name: TeX Live from cache
266
266
  uses: actions/cache@v6
267
267
  with:
268
- path: ~/.cache/rpp-texlive
268
+ path: ~/.cache/paperlint-texlive
269
269
  key: texlive-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('skills/submit-paper/references/venues/*.jsonc') }}
270
270
 
271
271
  # The same command a user runs. On a cache hit it verifies and says "nothing to do"; on a miss
272
272
  # it installs from an empty directory and verifies every declared file with kpsewhich.
273
- # `node bin/rpp.mjs`, not `npx paperlint`: inside this repository npx would look the name up on npm.
273
+ # `node bin/paperlint.mjs`, not `npx paperlint`: inside this repository npx would look the name up on npm.
274
274
  # It also downloads banal, the Perl script HotCRP runs to measure page geometry (~90 KB, pinned
275
275
  # commit, sha256-checked, then run once on a test page). paperlint keeps banal and no longer needs
276
276
  # poppler: paperlint now writes the XML banal reads, which poppler's pdftohtml used to write.
277
277
  # Both runner images ship perl. The download is too small to be worth an Actions cache.
278
278
  - name: paperlint toolchain
279
- run: node bin/rpp.mjs toolchain
279
+ run: node bin/paperlint.mjs toolchain
280
280
  timeout-minutes: 15
281
281
 
282
282
  # Proves banal works without poppler. This runner has no poppler, and the test also limits
package/CLAUDE.md CHANGED
@@ -149,7 +149,7 @@ Rule 5 is about the tool you are replacing; this one is about the order of work.
149
149
  Four proposals were made and withdrawn in one session on 2026-09-17 for exactly this reason —
150
150
  [`docs/incidents.md`](docs/incidents.md).
151
151
 
152
- **10. Effects live in adapters, and WHERE rpp IS INSTALLED lives in ONE of them.** Rule 6 generalised: the caller's cwd is one case of it. Checking logic — lint rules,
152
+ **10. Effects live in adapters, and WHERE paperlint IS INSTALLED lives in ONE of them.** Rule 6 generalised: the caller's cwd is one case of it. Checking logic — lint rules,
153
153
  skills, hooks — must not know its own location, nor its distance from anything else. Every
154
154
  answer to _where_ comes from `skills/paper-pipeline/scripts/consumer.mjs`, which adapts per
155
155
  channel: own checkout · `node_modules` · plugin cache · CI. A skill naming a script by an
@@ -166,10 +166,10 @@ outside `consumer.mjs` a finding. Prose will not hold this class — four silent
166
166
  _while_ comments explaining the hazard sat directly above the code
167
167
  ([`docs/incidents.md`](docs/incidents.md)).
168
168
 
169
- **11. Installing and using rpp must be as smooth as possible.** Count the actions between "I
169
+ **11. Installing and using paperlint must be as smooth as possible.** Count the actions between "I
170
170
  want this" and "it works": every command to copy, flag to pass or file to edit is one more place
171
171
  to give up. The target is `npm i` plus one command. A per-paper script, a manual TeX install or a
172
- "now add this to your config" step is a defect in rpp, not a user task. The only exception is a
172
+ "now add this to your config" step is a defect in paperlint, not a user task. The only exception is a
173
173
  choice that really belongs to the user (irreversible, paid, privacy), and then it is named at the
174
174
  moment it is asked. The converse holds too: an automatic step that can fail silently is worse
175
175
  than an explicit one — it works, or it says loudly that it did not. Measured example of the
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 research-paper-pipeline contributors
3
+ Copyright (c) 2026 paperlint contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,15 +1,30 @@
1
1
  # paperlint
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/paperlint)](https://www.npmjs.com/package/paperlint)
4
- ![Node version](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fzernie%2Fresearch-paper-pipeline%2Fmain%2Fpackage.json&query=%24.engines.node&label=node)
5
-
6
- A checker for a research paper you keep in a git repository. You record what happened to the paper
7
- — "submitted on 22 July, as this PDF" — and `paperlint` checks that the files match: the PDF you say you
8
- sent is still there and unchanged, its LaTeX source was kept beside it, and the paper itself avoids
9
- a few mistakes reviewers flag. It runs on your machine and in CI, like a linter.
4
+ ![Node version](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fzernie%2Fpaperlint%2Fmain%2Fpackage.json&query=%24.engines.node&label=node)
5
+
6
+ A linter for scientific papers written in LaTeX. It catches the mechanical mistakes that get a
7
+ paper desk-rejected or sent back at camera-ready, before you submit.
8
+
9
+ A LaTeX paper can build without an error and still be wrong. The ACM template silently switches to
10
+ another font when one of its font packages is missing, and the pages break differently. The same
11
+ source paginates differently on a machine with another version of the template. The submitted PDF
12
+ gets overwritten a week later and nobody can say what was sent. You find out from a reviewer or a
13
+ publisher, or never. paperlint checks for these on your machine and in CI:
14
+
15
+ - **Builds the same PDF everywhere.** `paperlint toolchain` installs TeX Live with exactly the
16
+ packages your venue's template needs and checks that each one is really there, so the silent
17
+ font switch cannot happen and your laptop and CI build with the same TeX Live.
18
+ - **Keeps what you submitted.** Record "submitted on 22 July, as this PDF", and paperlint fails if
19
+ that PDF changes or disappears, or its LaTeX source was not kept beside it.
20
+ - **Knows the classic slips.** An ACM paper that overrides the title-page commands and loses part
21
+ of page 1; "code will be released" left in a camera-ready; references without a DOI or URL; an
22
+ unbalanced last page, for publishers that ask for balanced columns (an optional check).
23
+ - **Works with coding agents.** Hooks and skills for Claude Code run the checks after every edit
24
+ and stop an agent from rewriting the paper around them.
10
25
 
11
26
  It is for researchers and engineers who write papers in LaTeX inside git and submit them to
12
- conferences or journals. Claude Code users also get optional skills and hooks.
27
+ conferences or journals.
13
28
 
14
29
  ## Install and set up
15
30
 
@@ -27,7 +42,7 @@ your project's `node_modules`, so run without the install it has nothing to link
27
42
  first paper, and sets up the optional Claude Code skills and hooks. It installs no software. It
28
43
  asks questions only when you run it in a terminal; an agent, CI or `--yes` gets the defaults, and
29
44
  each default it takes is printed. It ends by running `paperlint doctor`, which checks the setup.
30
- Exactly what it writes: [`docs/install.md`](docs/install.md#what-rpp-init-writes).
45
+ Exactly what it writes: [`docs/install.md`](docs/install.md#what-paperlint-init-writes).
31
46
 
32
47
  ## What you get
33
48
 
@@ -139,7 +154,7 @@ never fail the run unless you pass `--max-warnings <n>`. `--json` prints the fin
139
154
  `paperlint init` offers to write this GitHub Actions workflow step for you. By hand:
140
155
 
141
156
  ```yaml
142
- - uses: zernie/research-paper-pipeline@v2.0.0
157
+ - uses: zernie/paperlint@v2.0.0
143
158
  with:
144
159
  paths: papers
145
160
  ```
@@ -219,7 +234,7 @@ with a normal file edit — those are not blocked.
219
234
  - **It does not write or grade the paper.** `paperlint lint` checks records and a few mechanical
220
235
  mistakes; judging the writing is what the optional skills are for.
221
236
  - **New papers are LaTeX.** Markdown papers (`paper.md`) are still read but deprecated
222
- ([#57](https://github.com/zernie/research-paper-pipeline/issues/57)).
237
+ ([#57](https://github.com/zernie/paperlint/issues/57)).
223
238
  - **No Yarn Plug'n'Play.** npm and pnpm are supported
224
239
  ([`docs/install.md`](docs/install.md#package-managers)).
225
240
 
@@ -25,7 +25,7 @@ import * as yaml from "js-yaml";
25
25
  import { guard } from "./scripts/eslint-report-guard.mjs";
26
26
 
27
27
  const HERE = dirname(fileURLToPath(import.meta.url));
28
- const TMP = realpathSync(mkdtempSync(join(tmpdir(), "rpp-action-")));
28
+ const TMP = realpathSync(mkdtempSync(join(tmpdir(), "paperlint-action-")));
29
29
  const action = yaml.load(readFileSync(join(HERE, "action.yml"), "utf8"));
30
30
 
31
31
  // ── I. SHAPE, read as nodes ───────────────────────────────────────────────────────────────────
@@ -43,12 +43,12 @@ assert.ok(eslintStep, `no step named "paperlint lint" among: ${names}`);
43
43
  // 🔴 THE ACTION MUST CALL THE PACKAGE'S OWN CLI, NOT ESLINT. This is not tidiness: while the step
44
44
  // invoked `npx eslint` directly it was a SECOND implementation of the same job, and it had already
45
45
  // drifted — the directory-structure check (a paper directory with no PIPELINE-STATUS.md gets zero
46
- // rules and reports clean) lives in `bin/rpp.mjs`, so in CI it did not run at all. Any future edit
46
+ // rules and reports clean) lives in `bin/paperlint.mjs`, so in CI it did not run at all. Any future edit
47
47
  // that reaches past the CLI reintroduces exactly that gap, silently and greenly.
48
48
  assert.match(
49
49
  eslintStep.run,
50
50
  /npx paperlint lint/,
51
- "the lint step must call this package's own CLI — invoking eslint directly bypasses rpp.json and the structure check",
51
+ "the lint step must call this package's own CLI — invoking eslint directly bypasses the settings and the structure check",
52
52
  );
53
53
  assert.doesNotMatch(
54
54
  eslintStep.run,
@@ -59,8 +59,8 @@ assert.doesNotMatch(
59
59
  // `overrideConfigFile: true`, so a consumer's nested config cannot reach the run. The guarantee
60
60
  // moved from a flag into the code — assert the code, not the flag.
61
61
  //
62
- // 🔴 AND ASSERT IT IN THE FILE THAT HOLDS IT. This read said `bin/rpp.mjs` until the CLI moved to
63
- // TypeScript; `bin/rpp.mjs` is now a loader shim and contains no such call, so the assertion went
62
+ // 🔴 AND ASSERT IT IN THE FILE THAT HOLDS IT. This read said `bin/paperlint.mjs` until the CLI moved to
63
+ // TypeScript; `bin/paperlint.mjs` is now a loader shim and contains no such call, so the assertion went
64
64
  // red on a move that changed no behaviour. That redness is the point — the same assertion written
65
65
  // as a grep over "the CLI" would have kept passing against whichever file still matched, which is
66
66
  // how a check quietly stops watching its subject.
@@ -72,7 +72,7 @@ assert.match(
72
72
  // The redirect into a report file is only sound while `--json` keeps stdout clean.
73
73
  assert.match(
74
74
  eslintStep.run,
75
- /--json > "\$RUNNER_TEMP\/rpp\.json"/,
75
+ /--json > "\$RUNNER_TEMP\/paperlint-report\.json"/,
76
76
  "the machine-readable report must be redirected whole — it is what the guard reads",
77
77
  );
78
78
  // The guard must be CALLED, and by file — an inline blob would be untestable.
@@ -93,7 +93,7 @@ assert.match(
93
93
  // So: execute the REAL `run:` block under the REAL flags, with a stub standing in for `npx`, and
94
94
  // require that the guard was reached and that ESLint's code came through it.
95
95
  const stubbedStepRun = (stubRc) => {
96
- const bin = realpathSync(mkdtempSync(join(tmpdir(), "rpp-bin-")));
96
+ const bin = realpathSync(mkdtempSync(join(tmpdir(), "paperlint-bin-")));
97
97
  writeFileSync(
98
98
  join(bin, "npx"),
99
99
  // Stub prints the report TO STDOUT, not to a file by the `-o` flag: the step no longer passes
@@ -115,9 +115,9 @@ const stubbedStepRun = (stubRc) => {
115
115
  PATH: `${bin}:${process.env.PATH}`,
116
116
  RUNNER_TEMP: TMP,
117
117
  GITHUB_ACTION_PATH: HERE,
118
- RPP_CONFIG: "eslint.config.mjs",
119
- RPP_PATHS: ".",
120
- RPP_MAXWARN: "-1",
118
+ PAPERLINT_CONFIG: "eslint.config.mjs",
119
+ PAPERLINT_PATHS: ".",
120
+ PAPERLINT_MAXWARN: "-1",
121
121
  STUB_RC: String(stubRc),
122
122
  REPORT_JSON: JSON.stringify([{ filePath: "/x/a.md", messages: [] }]),
123
123
  },
@@ -45,10 +45,10 @@ const M = [
45
45
  [
46
46
  ACTION,
47
47
  "the step goes back around the CLI to eslint (the words `paperlint lint` left in the comments)",
48
- "reinstate the bypass: rpp.json unread, the directory-structure check absent in CI, and a " +
48
+ "reinstate the bypass: the settings unread, the directory-structure check absent in CI, and a " +
49
49
  "consumer's nested config free to decide the rule set — while a grep still finds `paperlint lint`",
50
- "npx paperlint lint $RPP_PATHS",
51
- 'npx eslint --config "$RPP_CONFIG" $RPP_PATHS',
50
+ "npx paperlint lint $PAPERLINT_PATHS",
51
+ 'npx eslint --config "$PAPERLINT_CONFIG" $PAPERLINT_PATHS',
52
52
  ],
53
53
  [
54
54
  ACTION,
package/action.yml CHANGED
@@ -3,8 +3,8 @@
3
3
  # 🔴 THIS ACTION CALLS THE PACKAGE'S OWN CLI. It used to invoke `npx eslint` directly, and that was
4
4
  # not a style question — it was a second implementation of the same job, and it had already drifted:
5
5
  # the CLI's directory-structure check (a paper directory missing PIPELINE-STATUS.md gets ZERO rules
6
- # and reports clean) lived only in `bin/rpp.mjs`, so the gate existed locally and was ABSENT in CI,
7
- # which is the one place it has to hold. The same bypass also meant `rpp.json` was never read and
6
+ # and reports clean) lived only in `bin/paperlint.mjs`, so the gate existed locally and was ABSENT in CI,
7
+ # which is the one place it has to hold. The same bypass also meant the consumer's settings were never read and
8
8
  # the caller still had to keep an ESLint flat config — the exact thing the CLI exists to remove.
9
9
  #
10
10
  # WHY AN ACTION AND NOT A DOCUMENTED `run:` BLOCK. Two steps have to happen in this order and
@@ -26,7 +26,7 @@ description: Install the toolchain the texcount/* rules need, run ESLint, and re
26
26
  inputs:
27
27
  config:
28
28
  description: >-
29
- Path to `rpp.json`. Optional: `paperlint lint` finds it by walking up from the working directory,
29
+ Path to the `package.json` holding the `paperlint` settings. Optional: `paperlint lint` finds it by walking up from the working directory,
30
30
  the way eslint and tsc find theirs, so most callers never set this. Pass it only when the
31
31
  file is somewhere the walk cannot reach. ⚠️ Until 2026-09-18 this input took a path to an
32
32
  ESLint FLAT CONFIG and defaulted to `eslint.config.mjs`; a caller still passing one will
@@ -72,9 +72,9 @@ runs:
72
72
  - name: paths was actually given
73
73
  shell: bash
74
74
  env:
75
- RPP_PATHS: ${{ inputs.paths }}
75
+ PAPERLINT_PATHS: ${{ inputs.paths }}
76
76
  run: |
77
- if [ -z "${RPP_PATHS// /}" ]; then
77
+ if [ -z "${PAPERLINT_PATHS// /}" ]; then
78
78
  echo "::error::input \`paths\` is required and was empty. Name what to lint, e.g." \
79
79
  "\`paths: papers\`. There is no default on purpose: linting the whole checkout" \
80
80
  "by accident produces a green job over a scope nobody chose."
@@ -121,9 +121,9 @@ runs:
121
121
  shell: bash
122
122
  working-directory: ${{ inputs.working-directory }}
123
123
  env:
124
- RPP_CONFIG: ${{ inputs.config }}
125
- RPP_PATHS: ${{ inputs.paths }}
126
- RPP_MAXWARN: ${{ inputs.max-warnings }}
124
+ PAPERLINT_CONFIG: ${{ inputs.config }}
125
+ PAPERLINT_PATHS: ${{ inputs.paths }}
126
+ PAPERLINT_MAXWARN: ${{ inputs.max-warnings }}
127
127
  run: |
128
128
  # 🔴 `|| RC=$?` IS LOAD-BEARING, NOT STYLE. GitHub runs composite `shell: bash` as
129
129
  # `bash --noprofile --norc -eo pipefail`, so a bare `npx paperlint lint` that exits non-zero
@@ -132,7 +132,7 @@ runs:
132
132
  # (a bad config, an unreadable report, findings), so under `-e` the guard was reachable
133
133
  # ONLY on success, which is the one case it was not written for.
134
134
  RC=0
135
- npx paperlint lint $RPP_PATHS ${RPP_CONFIG:+--config "$RPP_CONFIG"} \
136
- --max-warnings="$RPP_MAXWARN" --json > "$RUNNER_TEMP/rpp.json" || RC=$?
135
+ npx paperlint lint $PAPERLINT_PATHS ${PAPERLINT_CONFIG:+--config "$PAPERLINT_CONFIG"} \
136
+ --max-warnings="$PAPERLINT_MAXWARN" --json > "$RUNNER_TEMP/paperlint-report.json" || RC=$?
137
137
  node "$GITHUB_ACTION_PATH/scripts/eslint-report-guard.mjs" \
138
- "$RUNNER_TEMP/rpp.json" "$RC" "$RPP_PATHS" "${RPP_CONFIG:-rpp.json}"
138
+ "$RUNNER_TEMP/paperlint-report.json" "$RC" "$PAPERLINT_PATHS" "${PAPERLINT_CONFIG:-package.json}"
@@ -6,10 +6,10 @@
6
6
  * 🔴 WHY NOT MOVE `bin` TO `dist/cli.js`. This path is a PUBLIC CONTRACT, and it already has
7
7
  * two consumers outside the package:
8
8
  * 1. `plugin/hooks/hooks.json` calls
9
- * node "${CLAUDE_PROJECT_DIR}/node_modules/paperlint/bin/rpp.mjs" hook <name>
9
+ * node "${CLAUDE_PROJECT_DIR}/node_modules/paperlint/bin/paperlint.mjs" hook <name>
10
10
  * — the hook wiring was fixed exactly because it addressed a file the consumer did not have;
11
11
  * changing it the next day would be the same class of error;
12
- * 2. docs/configuration.md documents `import { buildConfig } from "paperlint/bin/rpp.mjs"`.
12
+ * 2. docs/configuration.md documents `import { buildConfig } from "paperlint/bin/paperlint.mjs"`.
13
13
  * A move would cost both, and yield zero: a file name says nothing about what language it is in.
14
14
  *
15
15
  * 🔴 AND WHY THE FAILURE HERE IS LOUD. A consumer who installed the package from the registry
@@ -6,13 +6,13 @@ export const shQuote = (s) => `'${s.replace(/'/g, `'"'"'`)}'`;
6
6
  /** The stub standing in for `pdftohtml`: it answers `-v` and refuses to convert anything. */
7
7
  export const PDFTOHTML_STUB = [
8
8
  "#!/bin/sh",
9
- "# research-paper-pipeline: banal reads the banal input XML rpp writes, never a PDF. banal still",
10
- "# asks `pdftohtml -v` which dialect to expect; this answers with the one rpp writes.",
9
+ "# paperlint: banal reads the banal input XML it writes, never a PDF. banal still",
10
+ "# asks `pdftohtml -v` which dialect to expect; this answers with the one paperlint writes.",
11
11
  'if [ "$1" = "-v" ]; then',
12
12
  ` echo "pdftohtml version ${XML_DIALECT.version}"`,
13
13
  " exit 0",
14
14
  "fi",
15
- 'echo "rpp: this pdftohtml only answers -v; banal was given a PDF instead of the banal input XML" >&2',
15
+ 'echo "paperlint: this pdftohtml only answers -v; banal was given a PDF instead of the banal input XML" >&2',
16
16
  "exit 1",
17
17
  "",
18
18
  ].join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../../src/adapters/banal/invocation.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEhD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC;AAKpC,mGAAmG;AACnG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAY,EAAE,CAC7C,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAe,CAAC;AAE9C,6FAA6F;AAC7F,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW;IACX,iGAAiG;IACjG,sFAAsF;IACtF,0BAA0B;IAC1B,6BAA6B,WAAW,CAAC,OAAO,GAAG;IACnD,UAAU;IACV,IAAI;IACJ,sGAAsG;IACtG,QAAQ;IACR,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAgBb,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAA4B,EACd,EAAE,CAAC,CAAC;IAClB,KAAK,EAAE;QACL,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;QAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE;KAC7D;CACF,CAAC,CAAC;AAQH,uGAAuG;AACvG,MAAM,UAAU,KAAK,CAAC,CAAU,EAAE,OAAqB;IACrD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAClC,OAAO;QACL,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;KACnC,CAAC;AACnB,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAC1B,KAAmB,EACnB,MAAmB,EACnB,OAAyC;IAEzC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;QACnD,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACpD,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KACjC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../../src/adapters/banal/invocation.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEhD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC;AAKpC,mGAAmG;AACnG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAY,EAAE,CAC7C,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAe,CAAC;AAE9C,6FAA6F;AAC7F,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW;IACX,kFAAkF;IAClF,4FAA4F;IAC5F,0BAA0B;IAC1B,6BAA6B,WAAW,CAAC,OAAO,GAAG;IACnD,UAAU;IACV,IAAI;IACJ,4GAA4G;IAC5G,QAAQ;IACR,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAgBb,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAA4B,EACd,EAAE,CAAC,CAAC;IAClB,KAAK,EAAE;QACL,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;QAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE;KAC7D;CACF,CAAC,CAAC;AAQH,uGAAuG;AACvG,MAAM,UAAU,KAAK,CAAC,CAAU,EAAE,OAAqB;IACrD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAClC,OAAO;QACL,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;KACnC,CAAC;AACnB,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAC1B,KAAmB,EACnB,MAAmB,EACnB,OAAyC;IAEzC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;QACnD,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACpD,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KACjC,CAAC;AACJ,CAAC"}
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * ── THE LICENCE BOUNDARY ────────────────────────────────────────────────────────
10
10
  * banal is GPL-2.0-or-later; paperlint is MIT. paperlint therefore never contains banal: `paperlint toolchain`
11
- * DOWNLOADS it from HotCRP at a pinned commit, checks its sha256, and stores it in rpp's cache, and
11
+ * DOWNLOADS it from HotCRP at a pinned commit, checks its sha256, and stores it in paperlint's cache, and
12
12
  * paperlint EXECUTES it as a separate program (`perl banal …`), reading its JSON output. Nothing of banal
13
13
  * is copied, vendored, linked or translated into this package.
14
14
  *
@@ -9,7 +9,7 @@ import { acceptProbe, PROBE_PAGE } from "./probe.js";
9
9
  export const BANAL_DOWNLOAD_SECONDS = 60;
10
10
  /** Run `banal` on `pages` in a scratch directory that is gone when this returns. */
11
11
  function runBanal(d, s, banal, pages) {
12
- return d.workspace.within("rpp-banal-", (scratch) => parseBanalOutput(d.run.run(banalCommand(banal, stage(scratch, stageBanalInput(pages)), s.processEnv))));
12
+ return d.workspace.within("paperlint-banal-", (scratch) => parseBanalOutput(d.run.run(banalCommand(banal, stage(scratch, stageBanalInput(pages)), s.processEnv))));
13
13
  }
14
14
  /**
15
15
  * The page geometry banal measures for `pages` — the banal found by `$BANAL`, the project's
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/adapters/banal/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/adapters/banal/run.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { type Environment, type HostDirs } from "../../domain/host.ts";
2
2
  import type { AbsolutePath } from "../../domain/paths.ts";
3
- /** An explicit banal to use instead of rpp's (a path to the script). */
3
+ /** An explicit banal to use instead of paperlint's (a path to the script). */
4
4
  export declare const BANAL_ENV = "BANAL";
5
- /** Where `paperlint toolchain` stores banal. Default: `$XDG_CACHE_HOME/rpp/banal`, else `~/.cache/rpp/banal`. */
6
- export declare const BANAL_DIR_ENV = "RPP_BANAL_DIR";
5
+ /** Where `paperlint toolchain` stores banal. Default: `$XDG_CACHE_HOME/paperlint/banal`, else `~/.cache/paperlint/banal`. */
6
+ export declare const BANAL_DIR_ENV = "PAPERLINT_BANAL_DIR";
7
7
  export interface BanalSettings {
8
8
  /** `$BANAL`: the user's explicit choice; null when unset. */
9
9
  readonly explicit: AbsolutePath | null;
10
- /** `$RPP_BANAL_DIR` › `$XDG_CACHE_HOME/rpp/banal` › `<home>/.cache/rpp/banal`. */
10
+ /** `$PAPERLINT_BANAL_DIR` › `$XDG_CACHE_HOME/paperlint/banal` › `<home>/.cache/paperlint/banal`. */
11
11
  readonly cacheDir: AbsolutePath;
12
12
  /** Where scratch directories go. */
13
13
  readonly tmpDir: AbsolutePath;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/adapters/banal/settings.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,wEAAwE;AACxE,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,iHAAiH;AACjH,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACvC,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,+FAA+F;IAC/F,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD;AAgBD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,QAAQ,GACb,aAAa,CAQf"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/adapters/banal/settings.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,8EAA8E;AAC9E,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,6HAA6H;AAC7H,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACvC,oGAAoG;IACpG,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,+FAA+F;IAC/F,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD;AAoBD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,QAAQ,GACb,aAAa,CAQf"}
@@ -5,17 +5,17 @@
5
5
  */
6
6
  import { join, resolve } from "node:path";
7
7
  import { childEnv, } from "../../domain/host.js";
8
- /** An explicit banal to use instead of rpp's (a path to the script). */
8
+ /** An explicit banal to use instead of paperlint's (a path to the script). */
9
9
  export const BANAL_ENV = "BANAL";
10
- /** Where `paperlint toolchain` stores banal. Default: `$XDG_CACHE_HOME/rpp/banal`, else `~/.cache/rpp/banal`. */
11
- export const BANAL_DIR_ENV = "RPP_BANAL_DIR";
10
+ /** Where `paperlint toolchain` stores banal. Default: `$XDG_CACHE_HOME/paperlint/banal`, else `~/.cache/paperlint/banal`. */
11
+ export const BANAL_DIR_ENV = "PAPERLINT_BANAL_DIR";
12
12
  /** `resolve` with an absolute base never consults the process's cwd. */
13
13
  const absolute = (cwd, p) => resolve(cwd, p);
14
14
  /** An unset variable and an empty one mean the same: not set. */
15
15
  const set = (v) => (v ? v : null);
16
16
  function cacheDirOf(env, d) {
17
17
  return (set(env[BANAL_DIR_ENV]) ??
18
- join(set(env["XDG_CACHE_HOME"]) ?? join(d.home, ".cache"), "rpp", "banal"));
18
+ join(set(env["XDG_CACHE_HOME"]) ?? join(d.home, ".cache"), "paperlint", "banal"));
19
19
  }
20
20
  export function parseBanalSettings(env, dirs) {
21
21
  const explicit = set(env[BANAL_ENV]);
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/adapters/banal/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,QAAQ,GAGT,MAAM,sBAAsB,CAAC;AAG9B,wEAAwE;AACxE,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC;AACjC,iHAAiH;AACjH,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAa7C,wEAAwE;AACxE,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,CAAS,EAAgB,EAAE,CACxD,OAAO,CAAC,GAAG,EAAE,CAAC,CAAiB,CAAC;AAElC,iEAAiE;AACjE,MAAM,GAAG,GAAG,CAAC,CAAqB,EAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAErE,SAAS,UAAU,CAAC,GAAgB,EAAE,CAAW;IAC/C,OAAO,CACL,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAgB,EAChB,IAAc;IAEd,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACrC,OAAO;QACL,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;QACjE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;QACpC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/adapters/banal/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,QAAQ,GAGT,MAAM,sBAAsB,CAAC;AAG9B,8EAA8E;AAC9E,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC;AACjC,6HAA6H;AAC7H,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAanD,wEAAwE;AACxE,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,CAAS,EAAgB,EAAE,CACxD,OAAO,CAAC,GAAG,EAAE,CAAC,CAAiB,CAAC;AAElC,iEAAiE;AACjE,MAAM,GAAG,GAAG,CAAC,CAAqB,EAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAErE,SAAS,UAAU,CAAC,GAAgB,EAAE,CAAW;IAC/C,OAAO,CACL,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvB,IAAI,CACF,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EACpD,WAAW,EACX,OAAO,CACR,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAgB,EAChB,IAAc;IAEd,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACrC,OAAO;QACL,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;QACjE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;QACpC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC;KAC1B,CAAC;AACJ,CAAC"}
@@ -58,7 +58,7 @@ export function pdf2xml(pages) {
58
58
  const lines = [
59
59
  '<?xml version="1.0" encoding="UTF-8"?>',
60
60
  '<!DOCTYPE pdf2xml SYSTEM "pdf2xml.dtd">',
61
- `<pdf2xml producer="research-paper-pipeline (pdf.js)" version="${XML_DIALECT.version}">`,
61
+ `<pdf2xml producer="paperlint (pdf.js)" version="${XML_DIALECT.version}">`,
62
62
  ...pages.flatMap((p, i) => pageXml(p, i + 1, fonts)),
63
63
  "</pdf2xml>",
64
64
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"xml.js","sourceRoot":"","sources":["../../../src/adapters/banal/xml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xml.js","sourceRoot":"","sources":["../../../src/adapters/banal/xml.ts"],"names":[],"mappings":"AAiCA;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAW,CAAC;AAEpE,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB,gFAAgF;AAChF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAC7C,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAEnE,MAAM,QAAQ,GAAG,CAAC,CAAO,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAEzE,+FAA+F;AAC/F,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAC9E,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAElD;;;GAGG;AACH,MAAM,SAAS;IACI,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEjD,8DAA8D;IAC9D,IAAI,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc;QAC7C,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtB,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;CACF;AAED,iFAAiF;AACjF,SAAS,OAAO,CAAC,CAAa,EAAE,CAAS,EAAE,KAAgB;IACzD,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC;IAC3B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,KAAK;YACP,KAAK,CAAC,IAAI,CACR,mBAAmB,MAAM,CAAC,EAAE,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,MAAM,KAAK,CAC1G,CAAC;QACJ,KAAK,CAAC,IAAI,CACR,cAAc,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAC7K,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,iBAAiB,MAAM,CAAC,CAAC,CAAC,kDAAkD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7K,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,OAAO,CAAC,KAA4B;IAClD,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG;QACZ,wCAAwC;QACxC,yCAAyC;QACzC,mDAAmD,WAAW,CAAC,OAAO,IAAI;QAC1E,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD,YAAY;KACb,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"download.io.d.ts","sourceRoot":"","sources":["../../../src/adapters/curl/download.io.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGtE,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAQzD;AAUD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE;IAC9B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,QAAQ,CAgCX"}
1
+ {"version":3,"file":"download.io.d.ts","sourceRoot":"","sources":["../../../src/adapters/curl/download.io.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGtE,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAQzD;AAUD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE;IAC9B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,QAAQ,CAkCX"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * `Download` through `curl -fsSL`. Not Node's `fetch`: undici's `fetch` ignores `HTTPS_PROXY` unless
3
- * a proxy agent is installed, and rpp's CI and the containers it runs in reach the network only
3
+ * a proxy agent is installed, and paperlint's CI and the containers it runs in reach the network only
4
4
  * through a proxy. curl reads the proxy variables itself. (A claim from documentation, not measured
5
5
  * here — the port is what makes trying the other adapter cheap.)
6
6
  */
@@ -36,7 +36,7 @@ const readOrNull = (p) => {
36
36
  export function curlDownload(o) {
37
37
  return {
38
38
  fetch(url, timeoutMs) {
39
- const dir = realpathSync(mkdtempSync(join(o.tmpDir, "rpp-download-")));
39
+ const dir = realpathSync(mkdtempSync(join(o.tmpDir, "paperlint-download-")));
40
40
  const out = join(dir, "body");
41
41
  try {
42
42
  const seconds = String(Math.ceil(timeoutMs / 1000));
@@ -1 +1 @@
1
- {"version":3,"file":"download.io.js","sourceRoot":"","sources":["../../../src/adapters/curl/download.io.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAEjD,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,CAAc;IACxC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,uBAAuB,CAAC;IAC3D,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IAChD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,mBAAmB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7E,MAAM,IAAI,GACR,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrE,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAS,EAAqB,EAAE;IAClD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,CAI5B;IACC,OAAO;QACL,KAAK,CAAC,GAAW,EAAE,SAAiB;YAClC,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,OAAO;wBACP,SAAS;wBACT,GAAG;wBACH,YAAY;wBACZ,OAAO;wBACP,IAAI;wBACJ,GAAG;wBACH,GAAG;qBACJ;oBACD,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,SAAS,EAAE,SAAS,GAAG,MAAM;iBAC9B,CAAC,CACH,CAAC;gBACF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,KAAK;oBAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC,CAAC;YACzD,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"download.io.js","sourceRoot":"","sources":["../../../src/adapters/curl/download.io.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAEjD,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,CAAc;IACxC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,uBAAuB,CAAC;IAC3D,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IAChD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,mBAAmB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7E,MAAM,IAAI,GACR,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrE,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAS,EAAqB,EAAE;IAClD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,CAI5B;IACC,OAAO;QACL,KAAK,CAAC,GAAW,EAAE,SAAiB;YAClC,MAAM,GAAG,GAAG,YAAY,CACtB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CACnD,CAAC;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,OAAO;wBACP,SAAS;wBACT,GAAG;wBACH,YAAY;wBACZ,OAAO;wBACP,IAAI;wBACJ,GAAG;wBACH,GAAG;qBACJ;oBACD,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,SAAS,EAAE,SAAS,GAAG,MAAM;iBAC9B,CAAC,CACH,CAAC;gBACF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,KAAK;oBAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC,CAAC;YACzD,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -28,7 +28,7 @@ type Resolved = Required<Omit<EngineOptions, "install">> & {
28
28
  install: () => InstallResult;
29
29
  };
30
30
  /**
31
- * The facts `resolveEngine` decides on: rpp's cache and the PATH's TeX Live, each probed. The cache
31
+ * The facts `resolveEngine` decides on: paperlint's cache and the PATH's TeX Live, each probed. The cache
32
32
  * may hold one tree per TeX Live year; the one reported is the newest COMPLETE one, else the newest
33
33
  * (so a new year whose install was interrupted never wins over a complete older year).
34
34
  */
@@ -39,7 +39,7 @@ function withDefaults(o) {
39
39
  };
40
40
  }
41
41
  /**
42
- * The facts `resolveEngine` decides on: rpp's cache and the PATH's TeX Live, each probed. The cache
42
+ * The facts `resolveEngine` decides on: paperlint's cache and the PATH's TeX Live, each probed. The cache
43
43
  * may hold one tree per TeX Live year; the one reported is the newest COMPLETE one, else the newest
44
44
  * (so a new year whose install was interrupted never wins over a complete older year).
45
45
  */
package/dist/build.js CHANGED
@@ -33,7 +33,7 @@
33
33
  * ── WHAT IS PURE AND WHAT IS NOT ─────────────────────────────────────────────
34
34
  * The decision of the LaTeX loop is `latex-loop.ts`, reading the log is `latex-log.ts`; both are
35
35
  * pure. This file is the shell: it runs processes through the injected `run` (the existing port —
36
- * `spawnSync` by default) and reads the files a pass left behind. Where rpp's own files live is
36
+ * `spawnSync` by default) and reads the files a pass left behind. Where paperlint's own files live is
37
37
  * answered by `consumer.mjs`, the one module allowed to know it (rule 10).
38
38
  */
39
39
  // eslint-disable-next-line boundaries/dependencies -- legacy I/O, moves behind a port in #76
package/dist/cli.d.ts CHANGED
@@ -10,13 +10,13 @@
10
10
  *
11
11
  * Two entry points into the tool, and both are whole now:
12
12
  * npx paperlint lint ← here
13
- * uses: zernie/research-paper-pipeline@<sha> ← action.yml
13
+ * uses: zernie/paperlint@<sha> ← action.yml
14
14
  *
15
15
  * ⚠️ THE BOUNDARY THIS UTILITY HAS NO RIGHT TO ERASE: the consumer's data stays with the consumer.
16
16
  * The typography debt, the marker of the author-list check run, the field dictionary — all of that
17
17
  * is about ONE corpus, and wiring it into the package would repeat the defect that put the path
18
18
  * `.claude/skills/verify-citations/...` into a rule's message. So they live in the consumer's
19
- * `rpp.json`.
19
+ * `package.json`, under the `paperlint` key.
20
20
  *
21
21
  * 🔴 WHY THE COMMAND IS CALLED `lint` AND NOT `check`. It does exactly what everyone else calls by
22
22
  * that word: reads files, changes nothing, prints findings, exits non-zero. `check` is taken in the
@@ -29,22 +29,22 @@ import { ESLint } from "eslint";
29
29
  import { spawnSync } from "node:child_process";
30
30
  import { isMain } from "../skills/paper-pipeline/scripts/consumer.mjs";
31
31
  export { isMain };
32
- import type { Args, RppConfig, ConfigRead } from "./types.ts";
32
+ import type { Args, PaperlintConfig, ConfigRead } from "./types.ts";
33
33
  import { init } from "./init.ts";
34
34
  import { type PaperFormat } from "./new-paper.ts";
35
35
  import { type Parsed } from "./rules-config.ts";
36
36
  export { init };
37
37
  export { nextSteps } from "./init.ts";
38
38
  /** The config the user would otherwise write by hand. The data comes from `opts`, the mechanism is here. */
39
- export declare function buildConfig(opts: RppConfig | undefined, texLanguage: unknown): unknown[];
39
+ export declare function buildConfig(opts: PaperlintConfig | undefined, texLanguage: unknown): unknown[];
40
40
  /**
41
- * The rule ids a consumer may name in `rules`: every rule rpp's own config defines, read off that
42
- * config rather than listed again. `@eslint/markdown` is a dependency's plugin, not rpp's.
41
+ * The rule ids a consumer may name in `rules`: every rule paperlint's own config defines, read off that
42
+ * config rather than listed again. `@eslint/markdown` is a dependency's plugin, not paperlint's.
43
43
  */
44
44
  export declare const SHIPPED_RULES: ReadonlySet<string>;
45
45
  /**
46
46
  * Rules paperlint ships and turns on for no file itself — the ones a consumer opts into with `rules`.
47
- * Derived: every shipped rule that no block of rpp's own config names.
47
+ * Derived: every shipped rule that no block of paperlint's own config names.
48
48
  */
49
49
  export declare const OPTIONAL_RULES: ReadonlySet<string>;
50
50
  /**
@@ -54,38 +54,23 @@ export declare const OPTIONAL_RULES: ReadonlySet<string>;
54
54
  * consumer turned on, some linted `paper.tex` must actually have it enabled; the ones none has are
55
55
  * returned, for the caller to refuse.
56
56
  */
57
- export declare function silentOptionalRules(eslint: ESLint, lintedFiles: readonly string[], opts: RppConfig): Promise<string[]>;
57
+ export declare function silentOptionalRules(eslint: ESLint, lintedFiles: readonly string[], opts: PaperlintConfig): Promise<string[]>;
58
58
  /**
59
59
  * The settings after the boundary: an unknown key is refused by name, and `rules` becomes parsed
60
60
  * config blocks. Nothing after this sees the raw object.
61
61
  */
62
- export declare function parseSettings(opts: RppConfig, where: string, baseDir: string): Parsed<RppConfig>;
62
+ export declare function parseSettings(opts: PaperlintConfig, where: string, baseDir: string): Parsed<PaperlintConfig>;
63
63
  export declare function parseArgs(argv: readonly string[]): Args;
64
- export declare const CONFIG_NAME = "rpp.json";
65
64
  export declare const PKG_NAME = "package.json";
66
- /** Where the consumer's settings were found, and in which of the two carriers. */
67
- export interface Declaration {
68
- readonly path: string;
69
- readonly kind: "package.json" | "rpp.json";
70
- }
71
65
  /**
72
- * 🔴 THE CLI HAD TO LEARN TO READ `package.json`, AND THAT IS NOT A SIDE ERRAND. `paperlint init` now
73
- * writes ONE declaration, into the `package.json` key that the three hooks and `eslint-rules`
74
- * already read. Without this walker the install it produces would not work at all: `paperlint lint`
75
- * would find no `rpp.json`, report "nothing to lint", and the consumer would be back to
76
- * declaring the same directory twice — the defect the single declaration removes (issue #33,
66
+ * 🔴 THE CLI READS `package.json`, THE ONE DECLARATION. `paperlint init` writes the settings under
67
+ * the `package.json` key that the three hooks and `eslint-rules` already read; the CLI reads the
68
+ * same file, so the install and the check cannot look at different files (issue #33,
77
69
  * `docs/install.md`).
78
70
  *
79
- * `rpp.json` stays readable as a DEPRECATED fallback, and the read says so out loud. Silently
80
- * dropping a file this command used to write would break working setups on upgrade.
81
- *
82
71
  * The walk goes up to the filesystem root, the way eslint, prettier and tsc find theirs, so a run
83
- * from inside one paper sees the same settings as a run from the repository root. At each level
84
- * `package.json` wins over `rpp.json`: it is the carrier every other reader uses, so preferring
85
- * it is what keeps "one declaration" true rather than merely intended.
72
+ * from inside one paper sees the same settings as a run from the repository root.
86
73
  */
87
- export declare function findDeclaration(startDir: string): Declaration | null;
88
- /** Kept as the one-line question "which file holds the settings" — callers that only need a path. */
89
74
  export declare function findConfig(startDir: string): string | null;
90
75
  /**
91
76
  * Reading the config, ONE reader for all commands. Pulled out of `run()` the moment a second
@@ -100,7 +85,7 @@ export declare function readConfig(a: Args, { log, err, cwd, }?: {
100
85
  cwd?: string;
101
86
  }): ConfigRead;
102
87
  /** The papers directory field of the settings, read by its one declared name. */
103
- export declare function papersDirOf(opts: RppConfig): unknown;
88
+ export declare function papersDirOf(opts: PaperlintConfig): unknown;
104
89
  /** The papers directory may be one directory or several; both spellings normalise to a list. */
105
90
  export declare function toPaths(papers: unknown): string[];
106
91
  /**