docrev 0.8.1 → 0.8.5

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 (306) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/PLAN-tables-and-postprocess.md +850 -0
  3. package/README.md +33 -0
  4. package/bin/rev.js +12 -131
  5. package/bin/rev.ts +145 -0
  6. package/dist/bin/rev.d.ts +9 -0
  7. package/dist/bin/rev.d.ts.map +1 -0
  8. package/dist/bin/rev.js +118 -0
  9. package/dist/bin/rev.js.map +1 -0
  10. package/dist/lib/annotations.d.ts +91 -0
  11. package/dist/lib/annotations.d.ts.map +1 -0
  12. package/dist/lib/annotations.js +554 -0
  13. package/dist/lib/annotations.js.map +1 -0
  14. package/dist/lib/build.d.ts +171 -0
  15. package/dist/lib/build.d.ts.map +1 -0
  16. package/dist/lib/build.js +755 -0
  17. package/dist/lib/build.js.map +1 -0
  18. package/dist/lib/citations.d.ts +34 -0
  19. package/dist/lib/citations.d.ts.map +1 -0
  20. package/dist/lib/citations.js +140 -0
  21. package/dist/lib/citations.js.map +1 -0
  22. package/dist/lib/commands/build.d.ts +13 -0
  23. package/dist/lib/commands/build.d.ts.map +1 -0
  24. package/dist/lib/commands/build.js +678 -0
  25. package/dist/lib/commands/build.js.map +1 -0
  26. package/dist/lib/commands/citations.d.ts +11 -0
  27. package/dist/lib/commands/citations.d.ts.map +1 -0
  28. package/dist/lib/commands/citations.js +428 -0
  29. package/dist/lib/commands/citations.js.map +1 -0
  30. package/dist/lib/commands/comments.d.ts +11 -0
  31. package/dist/lib/commands/comments.d.ts.map +1 -0
  32. package/dist/lib/commands/comments.js +883 -0
  33. package/dist/lib/commands/comments.js.map +1 -0
  34. package/dist/lib/commands/context.d.ts +35 -0
  35. package/dist/lib/commands/context.d.ts.map +1 -0
  36. package/dist/lib/commands/context.js +59 -0
  37. package/dist/lib/commands/context.js.map +1 -0
  38. package/dist/lib/commands/core.d.ts +11 -0
  39. package/dist/lib/commands/core.d.ts.map +1 -0
  40. package/dist/lib/commands/core.js +246 -0
  41. package/dist/lib/commands/core.js.map +1 -0
  42. package/dist/lib/commands/doi.d.ts +11 -0
  43. package/dist/lib/commands/doi.d.ts.map +1 -0
  44. package/dist/lib/commands/doi.js +373 -0
  45. package/dist/lib/commands/doi.js.map +1 -0
  46. package/dist/lib/commands/history.d.ts +11 -0
  47. package/dist/lib/commands/history.d.ts.map +1 -0
  48. package/dist/lib/commands/history.js +245 -0
  49. package/dist/lib/commands/history.js.map +1 -0
  50. package/dist/lib/commands/index.d.ts +28 -0
  51. package/dist/lib/commands/index.d.ts.map +1 -0
  52. package/dist/lib/commands/index.js +35 -0
  53. package/dist/lib/commands/index.js.map +1 -0
  54. package/dist/lib/commands/init.d.ts +11 -0
  55. package/dist/lib/commands/init.d.ts.map +1 -0
  56. package/dist/lib/commands/init.js +209 -0
  57. package/dist/lib/commands/init.js.map +1 -0
  58. package/dist/lib/commands/response.d.ts +11 -0
  59. package/dist/lib/commands/response.d.ts.map +1 -0
  60. package/dist/lib/commands/response.js +317 -0
  61. package/dist/lib/commands/response.js.map +1 -0
  62. package/dist/lib/commands/sections.d.ts +11 -0
  63. package/dist/lib/commands/sections.d.ts.map +1 -0
  64. package/dist/lib/commands/sections.js +1071 -0
  65. package/dist/lib/commands/sections.js.map +1 -0
  66. package/dist/lib/commands/utilities.d.ts +19 -0
  67. package/dist/lib/commands/utilities.d.ts.map +1 -0
  68. package/dist/lib/commands/utilities.js +2009 -0
  69. package/dist/lib/commands/utilities.js.map +1 -0
  70. package/dist/lib/comment-realign.d.ts +50 -0
  71. package/dist/lib/comment-realign.d.ts.map +1 -0
  72. package/dist/lib/comment-realign.js +372 -0
  73. package/dist/lib/comment-realign.js.map +1 -0
  74. package/dist/lib/config.d.ts +41 -0
  75. package/dist/lib/config.d.ts.map +1 -0
  76. package/dist/lib/config.js +76 -0
  77. package/dist/lib/config.js.map +1 -0
  78. package/dist/lib/crossref.d.ts +108 -0
  79. package/dist/lib/crossref.d.ts.map +1 -0
  80. package/dist/lib/crossref.js +597 -0
  81. package/dist/lib/crossref.js.map +1 -0
  82. package/dist/lib/dependencies.d.ts +30 -0
  83. package/dist/lib/dependencies.d.ts.map +1 -0
  84. package/dist/lib/dependencies.js +95 -0
  85. package/dist/lib/dependencies.js.map +1 -0
  86. package/dist/lib/doi-cache.d.ts +29 -0
  87. package/dist/lib/doi-cache.d.ts.map +1 -0
  88. package/dist/lib/doi-cache.js +104 -0
  89. package/dist/lib/doi-cache.js.map +1 -0
  90. package/dist/lib/doi.d.ts +65 -0
  91. package/dist/lib/doi.d.ts.map +1 -0
  92. package/dist/lib/doi.js +710 -0
  93. package/dist/lib/doi.js.map +1 -0
  94. package/dist/lib/equations.d.ts +61 -0
  95. package/dist/lib/equations.d.ts.map +1 -0
  96. package/dist/lib/equations.js +445 -0
  97. package/dist/lib/equations.js.map +1 -0
  98. package/dist/lib/errors.d.ts +60 -0
  99. package/dist/lib/errors.d.ts.map +1 -0
  100. package/dist/lib/errors.js +303 -0
  101. package/dist/lib/errors.js.map +1 -0
  102. package/dist/lib/format.d.ts +104 -0
  103. package/dist/lib/format.d.ts.map +1 -0
  104. package/dist/lib/format.js +416 -0
  105. package/dist/lib/format.js.map +1 -0
  106. package/dist/lib/git.d.ts +88 -0
  107. package/dist/lib/git.d.ts.map +1 -0
  108. package/dist/lib/git.js +304 -0
  109. package/dist/lib/git.js.map +1 -0
  110. package/dist/lib/grammar.d.ts +62 -0
  111. package/dist/lib/grammar.d.ts.map +1 -0
  112. package/dist/lib/grammar.js +244 -0
  113. package/dist/lib/grammar.js.map +1 -0
  114. package/dist/lib/image-registry.d.ts +68 -0
  115. package/dist/lib/image-registry.d.ts.map +1 -0
  116. package/dist/lib/image-registry.js +112 -0
  117. package/dist/lib/image-registry.js.map +1 -0
  118. package/dist/lib/import.d.ts +184 -0
  119. package/dist/lib/import.d.ts.map +1 -0
  120. package/dist/lib/import.js +1581 -0
  121. package/dist/lib/import.js.map +1 -0
  122. package/dist/lib/journals.d.ts +55 -0
  123. package/dist/lib/journals.d.ts.map +1 -0
  124. package/dist/lib/journals.js +417 -0
  125. package/dist/lib/journals.js.map +1 -0
  126. package/dist/lib/merge.d.ts +138 -0
  127. package/dist/lib/merge.d.ts.map +1 -0
  128. package/dist/lib/merge.js +603 -0
  129. package/dist/lib/merge.js.map +1 -0
  130. package/dist/lib/orcid.d.ts +36 -0
  131. package/dist/lib/orcid.d.ts.map +1 -0
  132. package/dist/lib/orcid.js +117 -0
  133. package/dist/lib/orcid.js.map +1 -0
  134. package/dist/lib/pdf-comments.d.ts +95 -0
  135. package/dist/lib/pdf-comments.d.ts.map +1 -0
  136. package/dist/lib/pdf-comments.js +192 -0
  137. package/dist/lib/pdf-comments.js.map +1 -0
  138. package/dist/lib/pdf-import.d.ts +118 -0
  139. package/dist/lib/pdf-import.d.ts.map +1 -0
  140. package/dist/lib/pdf-import.js +397 -0
  141. package/dist/lib/pdf-import.js.map +1 -0
  142. package/dist/lib/plugins.d.ts +76 -0
  143. package/dist/lib/plugins.d.ts.map +1 -0
  144. package/dist/lib/plugins.js +235 -0
  145. package/dist/lib/plugins.js.map +1 -0
  146. package/dist/lib/postprocess.d.ts +42 -0
  147. package/dist/lib/postprocess.d.ts.map +1 -0
  148. package/dist/lib/postprocess.js +138 -0
  149. package/dist/lib/postprocess.js.map +1 -0
  150. package/dist/lib/pptx-template.d.ts +59 -0
  151. package/dist/lib/pptx-template.d.ts.map +1 -0
  152. package/dist/lib/pptx-template.js +613 -0
  153. package/dist/lib/pptx-template.js.map +1 -0
  154. package/dist/lib/pptx-themes.d.ts +80 -0
  155. package/dist/lib/pptx-themes.d.ts.map +1 -0
  156. package/dist/lib/pptx-themes.js +818 -0
  157. package/dist/lib/pptx-themes.js.map +1 -0
  158. package/dist/lib/protect-restore.d.ts +137 -0
  159. package/dist/lib/protect-restore.d.ts.map +1 -0
  160. package/dist/lib/protect-restore.js +394 -0
  161. package/dist/lib/protect-restore.js.map +1 -0
  162. package/dist/lib/rate-limiter.d.ts +27 -0
  163. package/dist/lib/rate-limiter.d.ts.map +1 -0
  164. package/dist/lib/rate-limiter.js +79 -0
  165. package/dist/lib/rate-limiter.js.map +1 -0
  166. package/dist/lib/response.d.ts +41 -0
  167. package/dist/lib/response.d.ts.map +1 -0
  168. package/dist/lib/response.js +150 -0
  169. package/dist/lib/response.js.map +1 -0
  170. package/dist/lib/review.d.ts +35 -0
  171. package/dist/lib/review.d.ts.map +1 -0
  172. package/dist/lib/review.js +263 -0
  173. package/dist/lib/review.js.map +1 -0
  174. package/dist/lib/schema.d.ts +66 -0
  175. package/dist/lib/schema.d.ts.map +1 -0
  176. package/dist/lib/schema.js +339 -0
  177. package/dist/lib/schema.js.map +1 -0
  178. package/dist/lib/scientific-words.d.ts +6 -0
  179. package/dist/lib/scientific-words.d.ts.map +1 -0
  180. package/dist/lib/scientific-words.js +66 -0
  181. package/dist/lib/scientific-words.js.map +1 -0
  182. package/dist/lib/sections.d.ts +40 -0
  183. package/dist/lib/sections.d.ts.map +1 -0
  184. package/dist/lib/sections.js +288 -0
  185. package/dist/lib/sections.js.map +1 -0
  186. package/dist/lib/slides.d.ts +86 -0
  187. package/dist/lib/slides.d.ts.map +1 -0
  188. package/dist/lib/slides.js +676 -0
  189. package/dist/lib/slides.js.map +1 -0
  190. package/dist/lib/spelling.d.ts +76 -0
  191. package/dist/lib/spelling.d.ts.map +1 -0
  192. package/dist/lib/spelling.js +272 -0
  193. package/dist/lib/spelling.js.map +1 -0
  194. package/dist/lib/templates.d.ts +30 -0
  195. package/dist/lib/templates.d.ts.map +1 -0
  196. package/dist/lib/templates.js +504 -0
  197. package/dist/lib/templates.js.map +1 -0
  198. package/dist/lib/themes.d.ts +85 -0
  199. package/dist/lib/themes.d.ts.map +1 -0
  200. package/dist/lib/themes.js +652 -0
  201. package/dist/lib/themes.js.map +1 -0
  202. package/dist/lib/trackchanges.d.ts +51 -0
  203. package/dist/lib/trackchanges.d.ts.map +1 -0
  204. package/dist/lib/trackchanges.js +202 -0
  205. package/dist/lib/trackchanges.js.map +1 -0
  206. package/dist/lib/tui.d.ts +76 -0
  207. package/dist/lib/tui.d.ts.map +1 -0
  208. package/dist/lib/tui.js +377 -0
  209. package/dist/lib/tui.js.map +1 -0
  210. package/dist/lib/types.d.ts +447 -0
  211. package/dist/lib/types.d.ts.map +1 -0
  212. package/dist/lib/types.js +6 -0
  213. package/dist/lib/types.js.map +1 -0
  214. package/dist/lib/undo.d.ts +57 -0
  215. package/dist/lib/undo.d.ts.map +1 -0
  216. package/dist/lib/undo.js +185 -0
  217. package/dist/lib/undo.js.map +1 -0
  218. package/dist/lib/utils.d.ts +16 -0
  219. package/dist/lib/utils.d.ts.map +1 -0
  220. package/dist/lib/utils.js +40 -0
  221. package/dist/lib/utils.js.map +1 -0
  222. package/dist/lib/variables.d.ts +42 -0
  223. package/dist/lib/variables.d.ts.map +1 -0
  224. package/dist/lib/variables.js +141 -0
  225. package/dist/lib/variables.js.map +1 -0
  226. package/dist/lib/word.d.ts +80 -0
  227. package/dist/lib/word.d.ts.map +1 -0
  228. package/dist/lib/word.js +360 -0
  229. package/dist/lib/word.js.map +1 -0
  230. package/dist/lib/wordcomments.d.ts +51 -0
  231. package/dist/lib/wordcomments.d.ts.map +1 -0
  232. package/dist/lib/wordcomments.js +587 -0
  233. package/dist/lib/wordcomments.js.map +1 -0
  234. package/eslint.config.js +27 -0
  235. package/lib/annotations.ts +622 -0
  236. package/lib/apply-buildup-colors.py +88 -0
  237. package/lib/build.ts +1013 -0
  238. package/lib/{citations.js → citations.ts} +38 -27
  239. package/lib/commands/{build.js → build.ts} +80 -27
  240. package/lib/commands/{citations.js → citations.ts} +36 -18
  241. package/lib/commands/{comments.js → comments.ts} +187 -54
  242. package/lib/commands/{context.js → context.ts} +18 -8
  243. package/lib/commands/{core.js → core.ts} +34 -20
  244. package/lib/commands/{doi.js → doi.ts} +32 -16
  245. package/lib/commands/{history.js → history.ts} +25 -12
  246. package/lib/commands/{index.js → index.ts} +9 -5
  247. package/lib/commands/{init.js → init.ts} +20 -8
  248. package/lib/commands/{response.js → response.ts} +47 -20
  249. package/lib/commands/{sections.js → sections.ts} +273 -68
  250. package/lib/commands/{utilities.js → utilities.ts} +338 -158
  251. package/lib/{comment-realign.js → comment-realign.ts} +117 -45
  252. package/lib/config.ts +84 -0
  253. package/lib/{crossref.js → crossref.ts} +213 -138
  254. package/lib/dependencies.ts +106 -0
  255. package/lib/doi-cache.ts +115 -0
  256. package/lib/{doi.js → doi.ts} +115 -281
  257. package/lib/{equations.js → equations.ts} +60 -64
  258. package/lib/{errors.js → errors.ts} +56 -48
  259. package/lib/{format.js → format.ts} +137 -63
  260. package/lib/{git.js → git.ts} +66 -63
  261. package/lib/{grammar.js → grammar.ts} +45 -32
  262. package/lib/image-registry.ts +180 -0
  263. package/lib/import.ts +2060 -0
  264. package/lib/journals.ts +505 -0
  265. package/lib/{merge.js → merge.ts} +185 -135
  266. package/lib/{orcid.js → orcid.ts} +17 -22
  267. package/lib/{pdf-comments.js → pdf-comments.ts} +76 -18
  268. package/lib/{pdf-import.js → pdf-import.ts} +148 -70
  269. package/lib/{plugins.js → plugins.ts} +82 -39
  270. package/lib/postprocess.ts +188 -0
  271. package/lib/pptx-color-filter.lua +37 -0
  272. package/lib/pptx-template.ts +625 -0
  273. package/lib/pptx-themes/academic.pptx +0 -0
  274. package/lib/pptx-themes/corporate.pptx +0 -0
  275. package/lib/pptx-themes/dark.pptx +0 -0
  276. package/lib/pptx-themes/default.pptx +0 -0
  277. package/lib/pptx-themes/minimal.pptx +0 -0
  278. package/lib/pptx-themes/plant.pptx +0 -0
  279. package/lib/pptx-themes.ts +896 -0
  280. package/lib/protect-restore.ts +516 -0
  281. package/lib/rate-limiter.ts +94 -0
  282. package/lib/{response.js → response.ts} +36 -21
  283. package/lib/{review.js → review.ts} +53 -43
  284. package/lib/{schema.js → schema.ts} +70 -25
  285. package/lib/{sections.js → sections.ts} +71 -76
  286. package/lib/slides.ts +793 -0
  287. package/lib/{spelling.js → spelling.ts} +43 -59
  288. package/lib/{templates.js → templates.ts} +20 -17
  289. package/lib/themes.ts +742 -0
  290. package/lib/{trackchanges.js → trackchanges.ts} +52 -23
  291. package/lib/types.ts +509 -0
  292. package/lib/{undo.js → undo.ts} +75 -52
  293. package/lib/utils.ts +41 -0
  294. package/lib/{variables.js → variables.ts} +60 -54
  295. package/lib/word.ts +428 -0
  296. package/lib/{wordcomments.js → wordcomments.ts} +94 -40
  297. package/package.json +15 -5
  298. package/skill/REFERENCE.md +67 -0
  299. package/tsconfig.json +26 -0
  300. package/lib/annotations.js +0 -414
  301. package/lib/build.js +0 -639
  302. package/lib/config.js +0 -79
  303. package/lib/import.js +0 -1145
  304. package/lib/journals.js +0 -629
  305. package/lib/word.js +0 -225
  306. /package/lib/{scientific-words.js → scientific-words.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../lib/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Journal validation profiles
3
+ * Check manuscripts against journal-specific requirements
4
+ */
5
+ import type { JournalProfile } from './types.js';
6
+ /**
7
+ * Journal requirement profiles
8
+ * Based on publicly available author guidelines
9
+ */
10
+ export declare const JOURNAL_PROFILES: Record<string, JournalProfile>;
11
+ interface ListJournalsOptions {
12
+ includeCustom?: boolean;
13
+ customOnly?: boolean;
14
+ }
15
+ interface JournalListItem {
16
+ id: string;
17
+ name: string;
18
+ url: string;
19
+ custom?: boolean;
20
+ }
21
+ /**
22
+ * List all available journal profiles
23
+ */
24
+ export declare function listJournals(options?: ListJournalsOptions): JournalListItem[];
25
+ /**
26
+ * Get a specific journal profile
27
+ */
28
+ export declare function getJournalProfile(journalId: string): JournalProfile | null;
29
+ interface ManuscriptStats {
30
+ wordCount: number;
31
+ abstractWords: number;
32
+ titleChars: number;
33
+ figures: number;
34
+ tables: number;
35
+ references: number;
36
+ sections: number;
37
+ }
38
+ interface ManuscriptValidationResult {
39
+ valid: boolean;
40
+ errors: string[];
41
+ warnings: string[];
42
+ stats: ManuscriptStats | null;
43
+ journal?: string;
44
+ url?: string;
45
+ }
46
+ /**
47
+ * Validate manuscript against journal requirements
48
+ */
49
+ export declare function validateManuscript(text: string, journalId: string): ManuscriptValidationResult;
50
+ /**
51
+ * Validate multiple files against journal requirements
52
+ */
53
+ export declare function validateProject(files: string[], journalId: string): ManuscriptValidationResult;
54
+ export {};
55
+ //# sourceMappingURL=journals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journals.d.ts","sourceRoot":"","sources":["../../lib/journals.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,YAAY,CAAC;AAIxF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA4N3D,CAAC;AAWF,UAAU,mBAAmB;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,eAAe,EAAE,CAejF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAI1E;AAmGD,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,0BAA0B;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,0BAA0B,CAqF9F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,0BAA0B,CAQ9F"}
@@ -0,0 +1,417 @@
1
+ /**
2
+ * Journal validation profiles
3
+ * Check manuscripts against journal-specific requirements
4
+ */
5
+ import * as fs from 'fs';
6
+ import { loadCustomProfiles } from './plugins.js';
7
+ import { countWords } from './utils.js';
8
+ /**
9
+ * Journal requirement profiles
10
+ * Based on publicly available author guidelines
11
+ */
12
+ export const JOURNAL_PROFILES = {
13
+ nature: {
14
+ name: 'Nature',
15
+ url: 'https://www.nature.com/nature/for-authors',
16
+ requirements: {
17
+ wordLimit: { main: 3000, abstract: 150 },
18
+ references: { max: 50, doiRequired: true },
19
+ figures: { max: 6 },
20
+ sections: ['Abstract', 'Introduction', 'Results', 'Discussion', 'Methods'],
21
+ },
22
+ },
23
+ science: {
24
+ name: 'Science',
25
+ url: 'https://www.science.org/content/page/instructions-preparing-initial-manuscript',
26
+ requirements: {
27
+ wordLimit: { main: 2500, abstract: 125 },
28
+ references: { max: 40, doiRequired: true },
29
+ figures: { max: 4 },
30
+ sections: ['Abstract', 'Introduction', 'Results', 'Discussion'],
31
+ },
32
+ },
33
+ 'plos-one': {
34
+ name: 'PLOS ONE',
35
+ url: 'https://journals.plos.org/plosone/s/submission-guidelines',
36
+ requirements: {
37
+ wordLimit: { abstract: 300 },
38
+ references: { doiRequired: false },
39
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
40
+ },
41
+ },
42
+ 'pnas': {
43
+ name: 'PNAS',
44
+ url: 'https://www.pnas.org/author-center/submitting-your-manuscript',
45
+ requirements: {
46
+ wordLimit: { main: 4500, abstract: 250 },
47
+ references: { max: 50, doiRequired: true },
48
+ figures: { max: 6 },
49
+ sections: ['Abstract', 'Introduction', 'Results', 'Discussion'],
50
+ },
51
+ },
52
+ 'ecology-letters': {
53
+ name: 'Ecology Letters',
54
+ url: 'https://onlinelibrary.wiley.com/page/journal/14610248/homepage/forauthors.html',
55
+ requirements: {
56
+ wordLimit: { main: 5000, abstract: 150 },
57
+ references: { max: 50, doiRequired: true },
58
+ figures: { max: 6 },
59
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
60
+ },
61
+ },
62
+ 'ecological-applications': {
63
+ name: 'Ecological Applications',
64
+ url: 'https://esajournals.onlinelibrary.wiley.com/hub/journal/19395582/author-guidelines',
65
+ requirements: {
66
+ wordLimit: { main: 7000, abstract: 350 },
67
+ references: { doiRequired: true },
68
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
69
+ },
70
+ },
71
+ 'molecular-ecology': {
72
+ name: 'Molecular Ecology',
73
+ url: 'https://onlinelibrary.wiley.com/page/journal/1365294x/homepage/forauthors.html',
74
+ requirements: {
75
+ wordLimit: { main: 8000, abstract: 250 },
76
+ references: { doiRequired: true },
77
+ figures: { max: 8 },
78
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
79
+ },
80
+ },
81
+ 'elife': {
82
+ name: 'eLife',
83
+ url: 'https://reviewer.elifesciences.org/author-guide/full',
84
+ requirements: {
85
+ wordLimit: { abstract: 150 },
86
+ references: { doiRequired: true },
87
+ sections: ['Abstract', 'Introduction', 'Results', 'Discussion', 'Methods'],
88
+ },
89
+ },
90
+ 'cell': {
91
+ name: 'Cell',
92
+ url: 'https://www.cell.com/cell/authors',
93
+ requirements: {
94
+ wordLimit: { main: 7000, abstract: 150 },
95
+ references: { max: 100, doiRequired: true },
96
+ figures: { max: 7 },
97
+ sections: ['Abstract', 'Introduction', 'Results', 'Discussion'],
98
+ },
99
+ },
100
+ 'current-biology': {
101
+ name: 'Current Biology',
102
+ url: 'https://www.cell.com/current-biology/authors',
103
+ requirements: {
104
+ wordLimit: { main: 5000, abstract: 150 },
105
+ references: { max: 60, doiRequired: true },
106
+ figures: { max: 4 },
107
+ sections: ['Summary', 'Results', 'Discussion'],
108
+ },
109
+ },
110
+ 'conservation-biology': {
111
+ name: 'Conservation Biology',
112
+ url: 'https://conbio.onlinelibrary.wiley.com/hub/journal/15231739/homepage/forauthors.html',
113
+ requirements: {
114
+ wordLimit: { main: 7000, abstract: 300 },
115
+ references: { doiRequired: true },
116
+ figures: { max: 6 },
117
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
118
+ },
119
+ },
120
+ 'biological-conservation': {
121
+ name: 'Biological Conservation',
122
+ url: 'https://www.elsevier.com/journals/biological-conservation/0006-3207/guide-for-authors',
123
+ requirements: {
124
+ wordLimit: { main: 8000, abstract: 400 },
125
+ references: { doiRequired: true },
126
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
127
+ },
128
+ },
129
+ 'journal-of-ecology': {
130
+ name: 'Journal of Ecology',
131
+ url: 'https://besjournals.onlinelibrary.wiley.com/hub/journal/13652745/author-guidelines',
132
+ requirements: {
133
+ wordLimit: { main: 7000, abstract: 350 },
134
+ references: { doiRequired: true },
135
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
136
+ },
137
+ },
138
+ 'functional-ecology': {
139
+ name: 'Functional Ecology',
140
+ url: 'https://besjournals.onlinelibrary.wiley.com/hub/journal/13652435/author-guidelines',
141
+ requirements: {
142
+ wordLimit: { main: 7000, abstract: 350 },
143
+ references: { doiRequired: true },
144
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
145
+ },
146
+ },
147
+ 'global-change-biology': {
148
+ name: 'Global Change Biology',
149
+ url: 'https://onlinelibrary.wiley.com/page/journal/13652486/homepage/forauthors.html',
150
+ requirements: {
151
+ wordLimit: { main: 7000, abstract: 300 },
152
+ references: { doiRequired: true },
153
+ figures: { max: 8 },
154
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
155
+ },
156
+ },
157
+ 'oikos': {
158
+ name: 'Oikos',
159
+ url: 'https://nsojournals.onlinelibrary.wiley.com/hub/journal/16000706/author-guidelines',
160
+ requirements: {
161
+ wordLimit: { main: 8000, abstract: 350 },
162
+ references: { doiRequired: true },
163
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
164
+ },
165
+ },
166
+ 'oecologia': {
167
+ name: 'Oecologia',
168
+ url: 'https://www.springer.com/journal/442/submission-guidelines',
169
+ requirements: {
170
+ wordLimit: { main: 8000, abstract: 250 },
171
+ references: { doiRequired: true },
172
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
173
+ },
174
+ },
175
+ 'biological-invasions': {
176
+ name: 'Biological Invasions',
177
+ url: 'https://www.springer.com/journal/10530/submission-guidelines',
178
+ requirements: {
179
+ wordLimit: { abstract: 250 },
180
+ references: { doiRequired: true },
181
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
182
+ },
183
+ },
184
+ 'diversity-distributions': {
185
+ name: 'Diversity and Distributions',
186
+ url: 'https://onlinelibrary.wiley.com/page/journal/14724642/homepage/forauthors.html',
187
+ requirements: {
188
+ wordLimit: { main: 6000, abstract: 300 },
189
+ references: { doiRequired: true },
190
+ figures: { max: 6 },
191
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
192
+ },
193
+ },
194
+ 'neobiota': {
195
+ name: 'NeoBiota',
196
+ url: 'https://neobiota.pensoft.net/about#Author_Guidelines',
197
+ requirements: {
198
+ wordLimit: { abstract: 350 },
199
+ references: { doiRequired: true },
200
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
201
+ },
202
+ },
203
+ 'peerj': {
204
+ name: 'PeerJ',
205
+ url: 'https://peerj.com/about/author-instructions/',
206
+ requirements: {
207
+ wordLimit: { abstract: 500 },
208
+ references: { doiRequired: false },
209
+ sections: ['Abstract', 'Introduction', 'Methods', 'Results', 'Discussion'],
210
+ },
211
+ },
212
+ };
213
+ /**
214
+ * Get all profiles (built-in + custom)
215
+ * Custom profiles override built-in ones with the same ID
216
+ */
217
+ function getAllProfiles() {
218
+ const customProfiles = loadCustomProfiles();
219
+ return { ...JOURNAL_PROFILES, ...customProfiles };
220
+ }
221
+ /**
222
+ * List all available journal profiles
223
+ */
224
+ export function listJournals(options = {}) {
225
+ const { includeCustom = true, customOnly = false } = options;
226
+ const profiles = customOnly
227
+ ? loadCustomProfiles()
228
+ : includeCustom
229
+ ? getAllProfiles()
230
+ : JOURNAL_PROFILES;
231
+ return Object.entries(profiles).map(([id, profile]) => ({
232
+ id,
233
+ name: profile.name,
234
+ url: profile.url,
235
+ custom: profile.custom || false,
236
+ }));
237
+ }
238
+ /**
239
+ * Get a specific journal profile
240
+ */
241
+ export function getJournalProfile(journalId) {
242
+ const normalized = journalId.toLowerCase().replace(/\s+/g, '-');
243
+ const profiles = getAllProfiles();
244
+ return profiles[normalized] || null;
245
+ }
246
+ /**
247
+ * Extract abstract from markdown
248
+ */
249
+ function extractAbstract(text) {
250
+ // Try to find abstract section
251
+ const patterns = [
252
+ /^#+\s*Abstract\s*\n([\s\S]*?)(?=^#+|\Z)/mi,
253
+ /^Abstract[:\s]*\n([\s\S]*?)(?=^#+|\n\n)/mi,
254
+ ];
255
+ for (const pattern of patterns) {
256
+ const match = text.match(pattern);
257
+ if (match && match[1]) {
258
+ return match[1].trim();
259
+ }
260
+ }
261
+ return null;
262
+ }
263
+ /**
264
+ * Extract title from markdown
265
+ */
266
+ function extractTitle(text) {
267
+ // Try YAML frontmatter
268
+ const yamlMatch = text.match(/^---\n[\s\S]*?title:\s*["']?([^"'\n]+)["']?[\s\S]*?\n---/m);
269
+ if (yamlMatch && yamlMatch[1]) {
270
+ return yamlMatch[1].trim();
271
+ }
272
+ // Try first H1
273
+ const h1Match = text.match(/^#\s+(.+)$/m);
274
+ if (h1Match && h1Match[1]) {
275
+ return h1Match[1].trim();
276
+ }
277
+ return null;
278
+ }
279
+ /**
280
+ * Extract sections from markdown
281
+ */
282
+ function extractSections(text) {
283
+ const sections = [];
284
+ const headerPattern = /^#+\s+(.+)$/gm;
285
+ let match;
286
+ while ((match = headerPattern.exec(text)) !== null) {
287
+ if (match[1]) {
288
+ sections.push(match[1].trim());
289
+ }
290
+ }
291
+ return sections;
292
+ }
293
+ /**
294
+ * Count figures in markdown
295
+ */
296
+ function countFigures(text) {
297
+ // Count images with figure captions
298
+ const figurePattern = /!\[.*?\]\(.*?\)(\{#fig:[^}]+\})?/g;
299
+ const matches = text.match(figurePattern) || [];
300
+ return matches.length;
301
+ }
302
+ /**
303
+ * Count tables in markdown
304
+ */
305
+ function countTables(text) {
306
+ // Count tables (lines starting with |)
307
+ const tablePattern = /^\|[^|]+\|/gm;
308
+ const matches = text.match(tablePattern) || [];
309
+ // Divide by approximate rows per table
310
+ return Math.ceil(matches.length / 5);
311
+ }
312
+ /**
313
+ * Count references/citations in markdown
314
+ */
315
+ function countReferences(text) {
316
+ // Count unique citation keys
317
+ const citationPattern = /@(\w+)/g;
318
+ const citations = new Set();
319
+ let match;
320
+ while ((match = citationPattern.exec(text)) !== null) {
321
+ // Exclude cross-refs like @fig:label
322
+ if (match[1] && !match[0].includes(':')) {
323
+ citations.add(match[1]);
324
+ }
325
+ }
326
+ return citations.size;
327
+ }
328
+ /**
329
+ * Validate manuscript against journal requirements
330
+ */
331
+ export function validateManuscript(text, journalId) {
332
+ const profile = getJournalProfile(journalId);
333
+ if (!profile) {
334
+ return {
335
+ valid: false,
336
+ errors: [`Unknown journal: ${journalId}`],
337
+ warnings: [],
338
+ stats: null,
339
+ };
340
+ }
341
+ const req = profile.requirements;
342
+ const errors = [];
343
+ const warnings = [];
344
+ // Extract content
345
+ const abstract = extractAbstract(text);
346
+ const title = extractTitle(text);
347
+ const sections = extractSections(text);
348
+ const mainWordCount = countWords(text);
349
+ const figureCount = countFigures(text);
350
+ const tableCount = countTables(text);
351
+ const refCount = countReferences(text);
352
+ const stats = {
353
+ wordCount: mainWordCount,
354
+ abstractWords: abstract ? countWords(abstract) : 0,
355
+ titleChars: title ? title.length : 0,
356
+ figures: figureCount,
357
+ tables: tableCount,
358
+ references: refCount,
359
+ sections: sections.length,
360
+ };
361
+ // Word limits
362
+ if (req.wordLimit) {
363
+ if (req.wordLimit.main && mainWordCount > req.wordLimit.main) {
364
+ errors.push(`Main text exceeds ${req.wordLimit.main} words (current: ${mainWordCount})`);
365
+ }
366
+ if (req.wordLimit.abstract && abstract) {
367
+ const absWords = countWords(abstract);
368
+ if (absWords > req.wordLimit.abstract) {
369
+ errors.push(`Abstract exceeds ${req.wordLimit.abstract} words (current: ${absWords})`);
370
+ }
371
+ }
372
+ }
373
+ // References
374
+ if (req.references) {
375
+ if (req.references.max && refCount > req.references.max) {
376
+ errors.push(`References exceed ${req.references.max} (current: ${refCount})`);
377
+ }
378
+ if (req.references.doiRequired) {
379
+ warnings.push('DOI required for all references - run "rev doi check" to verify');
380
+ }
381
+ }
382
+ // Figures/tables
383
+ if (req.figures) {
384
+ if (req.figures.max && figureCount > req.figures.max) {
385
+ errors.push(`Figures exceed ${req.figures.max} (current: ${figureCount})`);
386
+ }
387
+ }
388
+ // Required sections
389
+ if (req.sections) {
390
+ for (const reqSection of req.sections) {
391
+ const found = sections.some(s => s.toLowerCase().includes(reqSection.toLowerCase()));
392
+ if (!found) {
393
+ warnings.push(`Missing required section: ${reqSection}`);
394
+ }
395
+ }
396
+ }
397
+ return {
398
+ valid: errors.length === 0,
399
+ errors,
400
+ warnings,
401
+ stats,
402
+ journal: profile.name,
403
+ url: profile.url,
404
+ };
405
+ }
406
+ /**
407
+ * Validate multiple files against journal requirements
408
+ */
409
+ export function validateProject(files, journalId) {
410
+ // Combine all file contents
411
+ const combined = files
412
+ .filter(f => fs.existsSync(f))
413
+ .map(f => fs.readFileSync(f, 'utf-8'))
414
+ .join('\n\n');
415
+ return validateManuscript(combined, journalId);
416
+ }
417
+ //# sourceMappingURL=journals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journals.js","sourceRoot":"","sources":["../../lib/journals.ts"],"names":[],"mappings":"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"}