@proposit/proposit-core 0.8.9

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 (429) hide show
  1. package/README.md +1032 -0
  2. package/dist/cli/commands/analysis.d.ts +3 -0
  3. package/dist/cli/commands/analysis.d.ts.map +1 -0
  4. package/dist/cli/commands/analysis.js +504 -0
  5. package/dist/cli/commands/analysis.js.map +1 -0
  6. package/dist/cli/commands/arguments.d.ts +3 -0
  7. package/dist/cli/commands/arguments.d.ts.map +1 -0
  8. package/dist/cli/commands/arguments.js +187 -0
  9. package/dist/cli/commands/arguments.js.map +1 -0
  10. package/dist/cli/commands/claims.d.ts +3 -0
  11. package/dist/cli/commands/claims.d.ts.map +1 -0
  12. package/dist/cli/commands/claims.js +120 -0
  13. package/dist/cli/commands/claims.js.map +1 -0
  14. package/dist/cli/commands/diff.d.ts +3 -0
  15. package/dist/cli/commands/diff.d.ts.map +1 -0
  16. package/dist/cli/commands/diff.js +61 -0
  17. package/dist/cli/commands/diff.js.map +1 -0
  18. package/dist/cli/commands/expressions.d.ts +3 -0
  19. package/dist/cli/commands/expressions.d.ts.map +1 -0
  20. package/dist/cli/commands/expressions.js +344 -0
  21. package/dist/cli/commands/expressions.js.map +1 -0
  22. package/dist/cli/commands/graph.d.ts +13 -0
  23. package/dist/cli/commands/graph.d.ts.map +1 -0
  24. package/dist/cli/commands/graph.js +382 -0
  25. package/dist/cli/commands/graph.js.map +1 -0
  26. package/dist/cli/commands/meta.d.ts +3 -0
  27. package/dist/cli/commands/meta.d.ts.map +1 -0
  28. package/dist/cli/commands/meta.js +14 -0
  29. package/dist/cli/commands/meta.js.map +1 -0
  30. package/dist/cli/commands/parse.d.ts +3 -0
  31. package/dist/cli/commands/parse.d.ts.map +1 -0
  32. package/dist/cli/commands/parse.js +171 -0
  33. package/dist/cli/commands/parse.js.map +1 -0
  34. package/dist/cli/commands/premises.d.ts +3 -0
  35. package/dist/cli/commands/premises.d.ts.map +1 -0
  36. package/dist/cli/commands/premises.js +261 -0
  37. package/dist/cli/commands/premises.js.map +1 -0
  38. package/dist/cli/commands/render.d.ts +3 -0
  39. package/dist/cli/commands/render.d.ts.map +1 -0
  40. package/dist/cli/commands/render.js +109 -0
  41. package/dist/cli/commands/render.js.map +1 -0
  42. package/dist/cli/commands/repair.d.ts +3 -0
  43. package/dist/cli/commands/repair.d.ts.map +1 -0
  44. package/dist/cli/commands/repair.js +53 -0
  45. package/dist/cli/commands/repair.js.map +1 -0
  46. package/dist/cli/commands/roles.d.ts +3 -0
  47. package/dist/cli/commands/roles.d.ts.map +1 -0
  48. package/dist/cli/commands/roles.js +64 -0
  49. package/dist/cli/commands/roles.js.map +1 -0
  50. package/dist/cli/commands/sources.d.ts +3 -0
  51. package/dist/cli/commands/sources.d.ts.map +1 -0
  52. package/dist/cli/commands/sources.js +103 -0
  53. package/dist/cli/commands/sources.js.map +1 -0
  54. package/dist/cli/commands/validate.d.ts +3 -0
  55. package/dist/cli/commands/validate.d.ts.map +1 -0
  56. package/dist/cli/commands/validate.js +27 -0
  57. package/dist/cli/commands/validate.js.map +1 -0
  58. package/dist/cli/commands/variables.d.ts +3 -0
  59. package/dist/cli/commands/variables.d.ts.map +1 -0
  60. package/dist/cli/commands/variables.js +206 -0
  61. package/dist/cli/commands/variables.js.map +1 -0
  62. package/dist/cli/commands/version-show.d.ts +3 -0
  63. package/dist/cli/commands/version-show.d.ts.map +1 -0
  64. package/dist/cli/commands/version-show.js +31 -0
  65. package/dist/cli/commands/version-show.js.map +1 -0
  66. package/dist/cli/config.d.ts +8 -0
  67. package/dist/cli/config.d.ts.map +1 -0
  68. package/dist/cli/config.js +24 -0
  69. package/dist/cli/config.js.map +1 -0
  70. package/dist/cli/engine.d.ts +19 -0
  71. package/dist/cli/engine.d.ts.map +1 -0
  72. package/dist/cli/engine.js +173 -0
  73. package/dist/cli/engine.js.map +1 -0
  74. package/dist/cli/import.d.ts +22 -0
  75. package/dist/cli/import.d.ts.map +1 -0
  76. package/dist/cli/import.js +242 -0
  77. package/dist/cli/import.js.map +1 -0
  78. package/dist/cli/llm/index.d.ts +6 -0
  79. package/dist/cli/llm/index.d.ts.map +1 -0
  80. package/dist/cli/llm/index.js +26 -0
  81. package/dist/cli/llm/index.js.map +1 -0
  82. package/dist/cli/llm/openai.d.ts +4 -0
  83. package/dist/cli/llm/openai.d.ts.map +1 -0
  84. package/dist/cli/llm/openai.js +44 -0
  85. package/dist/cli/llm/openai.js.map +1 -0
  86. package/dist/cli/llm/types.d.ts +14 -0
  87. package/dist/cli/llm/types.d.ts.map +1 -0
  88. package/dist/cli/llm/types.js +2 -0
  89. package/dist/cli/llm/types.js.map +1 -0
  90. package/dist/cli/logging.d.ts +8 -0
  91. package/dist/cli/logging.d.ts.map +1 -0
  92. package/dist/cli/logging.js +23 -0
  93. package/dist/cli/logging.js.map +1 -0
  94. package/dist/cli/output/diff-renderer.d.ts +4 -0
  95. package/dist/cli/output/diff-renderer.d.ts.map +1 -0
  96. package/dist/cli/output/diff-renderer.js +89 -0
  97. package/dist/cli/output/diff-renderer.js.map +1 -0
  98. package/dist/cli/output.d.ts +6 -0
  99. package/dist/cli/output.d.ts.map +1 -0
  100. package/dist/cli/output.js +41 -0
  101. package/dist/cli/output.js.map +1 -0
  102. package/dist/cli/router.d.ts +14 -0
  103. package/dist/cli/router.d.ts.map +1 -0
  104. package/dist/cli/router.js +59 -0
  105. package/dist/cli/router.js.map +1 -0
  106. package/dist/cli/schemata.d.ts +74 -0
  107. package/dist/cli/schemata.d.ts.map +1 -0
  108. package/dist/cli/schemata.js +89 -0
  109. package/dist/cli/schemata.js.map +1 -0
  110. package/dist/cli/storage/analysis.d.ts +9 -0
  111. package/dist/cli/storage/analysis.d.ts.map +1 -0
  112. package/dist/cli/storage/analysis.js +108 -0
  113. package/dist/cli/storage/analysis.js.map +1 -0
  114. package/dist/cli/storage/arguments.d.ts +12 -0
  115. package/dist/cli/storage/arguments.d.ts.map +1 -0
  116. package/dist/cli/storage/arguments.js +80 -0
  117. package/dist/cli/storage/arguments.js.map +1 -0
  118. package/dist/cli/storage/libraries.d.ts +14 -0
  119. package/dist/cli/storage/libraries.d.ts.map +1 -0
  120. package/dist/cli/storage/libraries.js +80 -0
  121. package/dist/cli/storage/libraries.js.map +1 -0
  122. package/dist/cli/storage/premises.d.ts +9 -0
  123. package/dist/cli/storage/premises.d.ts.map +1 -0
  124. package/dist/cli/storage/premises.js +67 -0
  125. package/dist/cli/storage/premises.js.map +1 -0
  126. package/dist/cli/storage/roles.d.ts +4 -0
  127. package/dist/cli/storage/roles.d.ts.map +1 -0
  128. package/dist/cli/storage/roles.js +26 -0
  129. package/dist/cli/storage/roles.js.map +1 -0
  130. package/dist/cli/storage/variables.d.ts +4 -0
  131. package/dist/cli/storage/variables.d.ts.map +1 -0
  132. package/dist/cli/storage/variables.js +36 -0
  133. package/dist/cli/storage/variables.js.map +1 -0
  134. package/dist/cli.d.ts +3 -0
  135. package/dist/cli.d.ts.map +1 -0
  136. package/dist/cli.js +65 -0
  137. package/dist/cli.js.map +1 -0
  138. package/dist/extensions/basics/argument-parser.d.ts +12 -0
  139. package/dist/extensions/basics/argument-parser.d.ts.map +1 -0
  140. package/dist/extensions/basics/argument-parser.js +27 -0
  141. package/dist/extensions/basics/argument-parser.js.map +1 -0
  142. package/dist/extensions/basics/index.d.ts +4 -0
  143. package/dist/extensions/basics/index.d.ts.map +1 -0
  144. package/dist/extensions/basics/index.js +3 -0
  145. package/dist/extensions/basics/index.js.map +1 -0
  146. package/dist/extensions/basics/schemata.d.ts +35 -0
  147. package/dist/extensions/basics/schemata.d.ts.map +1 -0
  148. package/dist/extensions/basics/schemata.js +55 -0
  149. package/dist/extensions/basics/schemata.js.map +1 -0
  150. package/dist/extensions/ieee/formatting.d.ts +18 -0
  151. package/dist/extensions/ieee/formatting.d.ts.map +1 -0
  152. package/dist/extensions/ieee/formatting.js +57 -0
  153. package/dist/extensions/ieee/formatting.js.map +1 -0
  154. package/dist/extensions/ieee/index.d.ts +6 -0
  155. package/dist/extensions/ieee/index.d.ts.map +1 -0
  156. package/dist/extensions/ieee/index.js +6 -0
  157. package/dist/extensions/ieee/index.js.map +1 -0
  158. package/dist/extensions/ieee/references.d.ts +1379 -0
  159. package/dist/extensions/ieee/references.d.ts.map +1 -0
  160. package/dist/extensions/ieee/references.js +929 -0
  161. package/dist/extensions/ieee/references.js.map +1 -0
  162. package/dist/extensions/ieee/relaxed.d.ts +1371 -0
  163. package/dist/extensions/ieee/relaxed.d.ts.map +1 -0
  164. package/dist/extensions/ieee/relaxed.js +160 -0
  165. package/dist/extensions/ieee/relaxed.js.map +1 -0
  166. package/dist/extensions/ieee/segment-builder.d.ts +9 -0
  167. package/dist/extensions/ieee/segment-builder.d.ts.map +1 -0
  168. package/dist/extensions/ieee/segment-builder.js +98 -0
  169. package/dist/extensions/ieee/segment-builder.js.map +1 -0
  170. package/dist/extensions/ieee/segment-templates.d.ts +58 -0
  171. package/dist/extensions/ieee/segment-templates.d.ts.map +1 -0
  172. package/dist/extensions/ieee/segment-templates.js +1618 -0
  173. package/dist/extensions/ieee/segment-templates.js.map +1 -0
  174. package/dist/extensions/ieee/source.d.ts +434 -0
  175. package/dist/extensions/ieee/source.d.ts.map +1 -0
  176. package/dist/extensions/ieee/source.js +12 -0
  177. package/dist/extensions/ieee/source.js.map +1 -0
  178. package/dist/index.d.ts +10 -0
  179. package/dist/index.d.ts.map +1 -0
  180. package/dist/index.js +10 -0
  181. package/dist/index.js.map +1 -0
  182. package/dist/lib/consts.d.ts +21 -0
  183. package/dist/lib/consts.d.ts.map +1 -0
  184. package/dist/lib/consts.js +117 -0
  185. package/dist/lib/consts.js.map +1 -0
  186. package/dist/lib/core/argument-engine.d.ts +181 -0
  187. package/dist/lib/core/argument-engine.d.ts.map +1 -0
  188. package/dist/lib/core/argument-engine.js +1294 -0
  189. package/dist/lib/core/argument-engine.js.map +1 -0
  190. package/dist/lib/core/argument-library.d.ts +84 -0
  191. package/dist/lib/core/argument-library.d.ts.map +1 -0
  192. package/dist/lib/core/argument-library.js +122 -0
  193. package/dist/lib/core/argument-library.js.map +1 -0
  194. package/dist/lib/core/argument-validation.d.ts +74 -0
  195. package/dist/lib/core/argument-validation.d.ts.map +1 -0
  196. package/dist/lib/core/argument-validation.js +315 -0
  197. package/dist/lib/core/argument-validation.js.map +1 -0
  198. package/dist/lib/core/change-collector.d.ts +24 -0
  199. package/dist/lib/core/change-collector.d.ts.map +1 -0
  200. package/dist/lib/core/change-collector.js +63 -0
  201. package/dist/lib/core/change-collector.js.map +1 -0
  202. package/dist/lib/core/checksum.d.ts +15 -0
  203. package/dist/lib/core/checksum.d.ts.map +1 -0
  204. package/dist/lib/core/checksum.js +43 -0
  205. package/dist/lib/core/checksum.js.map +1 -0
  206. package/dist/lib/core/claim-library.d.ts +23 -0
  207. package/dist/lib/core/claim-library.d.ts.map +1 -0
  208. package/dist/lib/core/claim-library.js +21 -0
  209. package/dist/lib/core/claim-library.js.map +1 -0
  210. package/dist/lib/core/claim-source-library.d.ts +32 -0
  211. package/dist/lib/core/claim-source-library.d.ts.map +1 -0
  212. package/dist/lib/core/claim-source-library.js +193 -0
  213. package/dist/lib/core/claim-source-library.js.map +1 -0
  214. package/dist/lib/core/diff.d.ts +20 -0
  215. package/dist/lib/core/diff.d.ts.map +1 -0
  216. package/dist/lib/core/diff.js +260 -0
  217. package/dist/lib/core/diff.js.map +1 -0
  218. package/dist/lib/core/evaluation/argument-evaluation.d.ts +53 -0
  219. package/dist/lib/core/evaluation/argument-evaluation.d.ts.map +1 -0
  220. package/dist/lib/core/evaluation/argument-evaluation.js +535 -0
  221. package/dist/lib/core/evaluation/argument-evaluation.js.map +1 -0
  222. package/dist/lib/core/evaluation/grading.d.ts +28 -0
  223. package/dist/lib/core/evaluation/grading.d.ts.map +1 -0
  224. package/dist/lib/core/evaluation/grading.js +44 -0
  225. package/dist/lib/core/evaluation/grading.js.map +1 -0
  226. package/dist/lib/core/evaluation/kleene.d.ts +12 -0
  227. package/dist/lib/core/evaluation/kleene.d.ts.map +1 -0
  228. package/dist/lib/core/evaluation/kleene.js +29 -0
  229. package/dist/lib/core/evaluation/kleene.js.map +1 -0
  230. package/dist/lib/core/evaluation/validation.d.ts +10 -0
  231. package/dist/lib/core/evaluation/validation.d.ts.map +1 -0
  232. package/dist/lib/core/evaluation/validation.js +28 -0
  233. package/dist/lib/core/evaluation/validation.js.map +1 -0
  234. package/dist/lib/core/expression-manager.d.ts +278 -0
  235. package/dist/lib/core/expression-manager.d.ts.map +1 -0
  236. package/dist/lib/core/expression-manager.js +1622 -0
  237. package/dist/lib/core/expression-manager.js.map +1 -0
  238. package/dist/lib/core/fork-library.d.ts +26 -0
  239. package/dist/lib/core/fork-library.d.ts.map +1 -0
  240. package/dist/lib/core/fork-library.js +71 -0
  241. package/dist/lib/core/fork-library.js.map +1 -0
  242. package/dist/lib/core/fork-namespace.d.ts +32 -0
  243. package/dist/lib/core/fork-namespace.d.ts.map +1 -0
  244. package/dist/lib/core/fork-namespace.js +99 -0
  245. package/dist/lib/core/fork-namespace.js.map +1 -0
  246. package/dist/lib/core/fork.d.ts +30 -0
  247. package/dist/lib/core/fork.d.ts.map +1 -0
  248. package/dist/lib/core/fork.js +125 -0
  249. package/dist/lib/core/fork.js.map +1 -0
  250. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +366 -0
  251. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -0
  252. package/dist/lib/core/interfaces/argument-engine.interfaces.js +2 -0
  253. package/dist/lib/core/interfaces/argument-engine.interfaces.js.map +1 -0
  254. package/dist/lib/core/interfaces/index.d.ts +5 -0
  255. package/dist/lib/core/interfaces/index.d.ts.map +1 -0
  256. package/dist/lib/core/interfaces/index.js +2 -0
  257. package/dist/lib/core/interfaces/index.js.map +1 -0
  258. package/dist/lib/core/interfaces/library.interfaces.d.ts +347 -0
  259. package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -0
  260. package/dist/lib/core/interfaces/library.interfaces.js +2 -0
  261. package/dist/lib/core/interfaces/library.interfaces.js.map +1 -0
  262. package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts +401 -0
  263. package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts.map +1 -0
  264. package/dist/lib/core/interfaces/premise-engine.interfaces.js +2 -0
  265. package/dist/lib/core/interfaces/premise-engine.interfaces.js.map +1 -0
  266. package/dist/lib/core/interfaces/shared.interfaces.d.ts +28 -0
  267. package/dist/lib/core/interfaces/shared.interfaces.d.ts.map +1 -0
  268. package/dist/lib/core/interfaces/shared.interfaces.js +2 -0
  269. package/dist/lib/core/interfaces/shared.interfaces.js.map +1 -0
  270. package/dist/lib/core/invariant-violation-error.d.ts +10 -0
  271. package/dist/lib/core/invariant-violation-error.d.ts.map +1 -0
  272. package/dist/lib/core/invariant-violation-error.js +16 -0
  273. package/dist/lib/core/invariant-violation-error.js.map +1 -0
  274. package/dist/lib/core/parser/formula-gen.js +923 -0
  275. package/dist/lib/core/parser/formula.d.ts +24 -0
  276. package/dist/lib/core/parser/formula.d.ts.map +1 -0
  277. package/dist/lib/core/parser/formula.js +8 -0
  278. package/dist/lib/core/parser/formula.js.map +1 -0
  279. package/dist/lib/core/premise-engine.d.ts +122 -0
  280. package/dist/lib/core/premise-engine.d.ts.map +1 -0
  281. package/dist/lib/core/premise-engine.js +1362 -0
  282. package/dist/lib/core/premise-engine.js.map +1 -0
  283. package/dist/lib/core/proposit-core.d.ts +111 -0
  284. package/dist/lib/core/proposit-core.d.ts.map +1 -0
  285. package/dist/lib/core/proposit-core.js +365 -0
  286. package/dist/lib/core/proposit-core.js.map +1 -0
  287. package/dist/lib/core/relationships.d.ts +15 -0
  288. package/dist/lib/core/relationships.d.ts.map +1 -0
  289. package/dist/lib/core/relationships.js +319 -0
  290. package/dist/lib/core/relationships.js.map +1 -0
  291. package/dist/lib/core/source-library.d.ts +23 -0
  292. package/dist/lib/core/source-library.d.ts.map +1 -0
  293. package/dist/lib/core/source-library.js +21 -0
  294. package/dist/lib/core/source-library.js.map +1 -0
  295. package/dist/lib/core/variable-manager.d.ts +68 -0
  296. package/dist/lib/core/variable-manager.d.ts.map +1 -0
  297. package/dist/lib/core/variable-manager.js +200 -0
  298. package/dist/lib/core/variable-manager.js.map +1 -0
  299. package/dist/lib/core/versioned-library.d.ts +52 -0
  300. package/dist/lib/core/versioned-library.d.ts.map +1 -0
  301. package/dist/lib/core/versioned-library.js +192 -0
  302. package/dist/lib/core/versioned-library.js.map +1 -0
  303. package/dist/lib/index.d.ts +54 -0
  304. package/dist/lib/index.d.ts.map +1 -0
  305. package/dist/lib/index.js +39 -0
  306. package/dist/lib/index.js.map +1 -0
  307. package/dist/lib/parsing/argument-parser.d.ts +49 -0
  308. package/dist/lib/parsing/argument-parser.d.ts.map +1 -0
  309. package/dist/lib/parsing/argument-parser.js +403 -0
  310. package/dist/lib/parsing/argument-parser.js.map +1 -0
  311. package/dist/lib/parsing/clamp-max-lengths.d.ts +11 -0
  312. package/dist/lib/parsing/clamp-max-lengths.d.ts.map +1 -0
  313. package/dist/lib/parsing/clamp-max-lengths.js +56 -0
  314. package/dist/lib/parsing/clamp-max-lengths.js.map +1 -0
  315. package/dist/lib/parsing/index.d.ts +7 -0
  316. package/dist/lib/parsing/index.d.ts.map +1 -0
  317. package/dist/lib/parsing/index.js +4 -0
  318. package/dist/lib/parsing/index.js.map +1 -0
  319. package/dist/lib/parsing/prompt-builder.d.ts +11 -0
  320. package/dist/lib/parsing/prompt-builder.d.ts.map +1 -0
  321. package/dist/lib/parsing/prompt-builder.js +229 -0
  322. package/dist/lib/parsing/prompt-builder.js.map +1 -0
  323. package/dist/lib/parsing/schemata.d.ts +79 -0
  324. package/dist/lib/parsing/schemata.d.ts.map +1 -0
  325. package/dist/lib/parsing/schemata.js +92 -0
  326. package/dist/lib/parsing/schemata.js.map +1 -0
  327. package/dist/lib/parsing/types.d.ts +24 -0
  328. package/dist/lib/parsing/types.d.ts.map +1 -0
  329. package/dist/lib/parsing/types.js +2 -0
  330. package/dist/lib/parsing/types.js.map +1 -0
  331. package/dist/lib/schemata/analysis.d.ts +9 -0
  332. package/dist/lib/schemata/analysis.d.ts.map +1 -0
  333. package/dist/lib/schemata/analysis.js +13 -0
  334. package/dist/lib/schemata/analysis.js.map +1 -0
  335. package/dist/lib/schemata/argument.d.ts +14 -0
  336. package/dist/lib/schemata/argument.d.ts.map +1 -0
  337. package/dist/lib/schemata/argument.js +24 -0
  338. package/dist/lib/schemata/argument.js.map +1 -0
  339. package/dist/lib/schemata/claim.d.ts +9 -0
  340. package/dist/lib/schemata/claim.d.ts.map +1 -0
  341. package/dist/lib/schemata/claim.js +18 -0
  342. package/dist/lib/schemata/claim.js.map +1 -0
  343. package/dist/lib/schemata/fork.d.ts +76 -0
  344. package/dist/lib/schemata/fork.d.ts.map +1 -0
  345. package/dist/lib/schemata/fork.js +55 -0
  346. package/dist/lib/schemata/fork.js.map +1 -0
  347. package/dist/lib/schemata/import.d.ts +33 -0
  348. package/dist/lib/schemata/import.d.ts.map +1 -0
  349. package/dist/lib/schemata/import.js +18 -0
  350. package/dist/lib/schemata/import.js.map +1 -0
  351. package/dist/lib/schemata/index.d.ts +8 -0
  352. package/dist/lib/schemata/index.d.ts.map +1 -0
  353. package/dist/lib/schemata/index.js +8 -0
  354. package/dist/lib/schemata/index.js.map +1 -0
  355. package/dist/lib/schemata/propositional.d.ts +142 -0
  356. package/dist/lib/schemata/propositional.d.ts.map +1 -0
  357. package/dist/lib/schemata/propositional.js +120 -0
  358. package/dist/lib/schemata/propositional.js.map +1 -0
  359. package/dist/lib/schemata/shared.d.ts +41 -0
  360. package/dist/lib/schemata/shared.d.ts.map +1 -0
  361. package/dist/lib/schemata/shared.js +66 -0
  362. package/dist/lib/schemata/shared.js.map +1 -0
  363. package/dist/lib/schemata/source.d.ts +18 -0
  364. package/dist/lib/schemata/source.d.ts.map +1 -0
  365. package/dist/lib/schemata/source.js +35 -0
  366. package/dist/lib/schemata/source.js.map +1 -0
  367. package/dist/lib/types/checksum.d.ts +20 -0
  368. package/dist/lib/types/checksum.d.ts.map +1 -0
  369. package/dist/lib/types/checksum.js +2 -0
  370. package/dist/lib/types/checksum.js.map +1 -0
  371. package/dist/lib/types/diff.d.ts +60 -0
  372. package/dist/lib/types/diff.d.ts.map +1 -0
  373. package/dist/lib/types/diff.js +2 -0
  374. package/dist/lib/types/diff.js.map +1 -0
  375. package/dist/lib/types/evaluation.d.ts +164 -0
  376. package/dist/lib/types/evaluation.d.ts.map +1 -0
  377. package/dist/lib/types/evaluation.js +2 -0
  378. package/dist/lib/types/evaluation.js.map +1 -0
  379. package/dist/lib/types/fork.d.ts +25 -0
  380. package/dist/lib/types/fork.d.ts.map +1 -0
  381. package/dist/lib/types/fork.js +2 -0
  382. package/dist/lib/types/fork.js.map +1 -0
  383. package/dist/lib/types/grammar.d.ts +38 -0
  384. package/dist/lib/types/grammar.d.ts.map +1 -0
  385. package/dist/lib/types/grammar.js +11 -0
  386. package/dist/lib/types/grammar.js.map +1 -0
  387. package/dist/lib/types/mutation.d.ts +31 -0
  388. package/dist/lib/types/mutation.d.ts.map +1 -0
  389. package/dist/lib/types/mutation.js +2 -0
  390. package/dist/lib/types/mutation.js.map +1 -0
  391. package/dist/lib/types/reactive.d.ts +14 -0
  392. package/dist/lib/types/reactive.d.ts.map +1 -0
  393. package/dist/lib/types/reactive.js +2 -0
  394. package/dist/lib/types/reactive.js.map +1 -0
  395. package/dist/lib/types/relationships.d.ts +36 -0
  396. package/dist/lib/types/relationships.d.ts.map +1 -0
  397. package/dist/lib/types/relationships.js +2 -0
  398. package/dist/lib/types/relationships.js.map +1 -0
  399. package/dist/lib/types/validation.d.ts +47 -0
  400. package/dist/lib/types/validation.d.ts.map +1 -0
  401. package/dist/lib/types/validation.js +43 -0
  402. package/dist/lib/types/validation.js.map +1 -0
  403. package/dist/lib/utils/changeset.d.ts +124 -0
  404. package/dist/lib/utils/changeset.d.ts.map +1 -0
  405. package/dist/lib/utils/changeset.js +221 -0
  406. package/dist/lib/utils/changeset.js.map +1 -0
  407. package/dist/lib/utils/collections.d.ts +12 -0
  408. package/dist/lib/utils/collections.d.ts.map +1 -0
  409. package/dist/lib/utils/collections.js +24 -0
  410. package/dist/lib/utils/collections.js.map +1 -0
  411. package/dist/lib/utils/default-map.d.ts +17 -0
  412. package/dist/lib/utils/default-map.d.ts.map +1 -0
  413. package/dist/lib/utils/default-map.js +33 -0
  414. package/dist/lib/utils/default-map.js.map +1 -0
  415. package/dist/lib/utils/lookup.d.ts +47 -0
  416. package/dist/lib/utils/lookup.d.ts.map +1 -0
  417. package/dist/lib/utils/lookup.js +62 -0
  418. package/dist/lib/utils/lookup.js.map +1 -0
  419. package/dist/lib/utils/position.d.ts +12 -0
  420. package/dist/lib/utils/position.d.ts.map +1 -0
  421. package/dist/lib/utils/position.js +13 -0
  422. package/dist/lib/utils/position.js.map +1 -0
  423. package/package.json +82 -0
  424. package/skills/proposit-core/SKILL.md +35 -0
  425. package/skills/proposit-core/docs/api-usage.md +442 -0
  426. package/skills/proposit-core/docs/architecture.md +256 -0
  427. package/skills/proposit-core/docs/cli.md +304 -0
  428. package/skills/proposit-core/docs/testing.md +281 -0
  429. package/skills/proposit-core/docs/types-schemas.md +648 -0
@@ -0,0 +1,929 @@
1
+ // IEEE Citation Reference Schemas
2
+ // https://journals.ieeeauthorcenter.ieee.org/wp-content/uploads/sites/7/IEEE_Reference_Guide.pdf
3
+ import Type, {} from "typebox";
4
+ import { EncodableDate } from "../../lib/schemata/shared.js";
5
+ // ---------------------------------------------------------------------------
6
+ // Reference type discriminator
7
+ // ---------------------------------------------------------------------------
8
+ export const ReferenceTypeSchema = Type.Union([
9
+ Type.Literal("Book"),
10
+ Type.Literal("Website"),
11
+ Type.Literal("BookChapter"),
12
+ Type.Literal("Handbook"),
13
+ Type.Literal("TechnicalReport"),
14
+ Type.Literal("Standard"),
15
+ Type.Literal("Thesis"),
16
+ Type.Literal("Patent"),
17
+ Type.Literal("Dictionary"),
18
+ Type.Literal("Encyclopedia"),
19
+ Type.Literal("JournalArticle"),
20
+ Type.Literal("MagazineArticle"),
21
+ Type.Literal("NewspaperArticle"),
22
+ Type.Literal("ConferencePaper"),
23
+ Type.Literal("ConferenceProceedings"),
24
+ Type.Literal("Dataset"),
25
+ Type.Literal("Software"),
26
+ Type.Literal("OnlineDocument"),
27
+ Type.Literal("Blog"),
28
+ Type.Literal("SocialMedia"),
29
+ Type.Literal("Preprint"),
30
+ Type.Literal("Video"),
31
+ Type.Literal("Podcast"),
32
+ Type.Literal("Course"),
33
+ Type.Literal("Presentation"),
34
+ Type.Literal("Interview"),
35
+ Type.Literal("PersonalCommunication"),
36
+ Type.Literal("Email"),
37
+ Type.Literal("Law"),
38
+ Type.Literal("CourtCase"),
39
+ Type.Literal("GovernmentPublication"),
40
+ Type.Literal("Datasheet"),
41
+ Type.Literal("ProductManual"),
42
+ ]);
43
+ // ---------------------------------------------------------------------------
44
+ // Base reference (shared by all types)
45
+ // ---------------------------------------------------------------------------
46
+ const BaseReferenceSchema = Type.Object({
47
+ type: ReferenceTypeSchema,
48
+ });
49
+ // ---------------------------------------------------------------------------
50
+ // Structured author name
51
+ // ---------------------------------------------------------------------------
52
+ export const AuthorSchema = Type.Object({
53
+ givenNames: Type.String({
54
+ minLength: 1,
55
+ description: "Full given/first names (e.g. Jane Marie)",
56
+ }),
57
+ familyName: Type.String({ minLength: 1, description: "Family/last name" }),
58
+ suffix: Type.Optional(Type.String({
59
+ minLength: 1,
60
+ description: "Name suffix (Jr., Sr., III, etc.)",
61
+ })),
62
+ });
63
+ // ---------------------------------------------------------------------------
64
+ // Textual sources
65
+ // ---------------------------------------------------------------------------
66
+ export const BookReferenceSchema = Type.Intersect([
67
+ BaseReferenceSchema,
68
+ Type.Object({
69
+ type: Type.Literal("Book"),
70
+ title: Type.String({ minLength: 1, description: "Book title" }),
71
+ year: Type.String({
72
+ pattern: "^\\d{4}$",
73
+ description: "Four-digit publication year",
74
+ }),
75
+ authors: Type.Array(AuthorSchema, {
76
+ minItems: 1,
77
+ description: "Author names",
78
+ }),
79
+ edition: Type.Optional(Type.String({ minLength: 1, description: "Edition identifier" })),
80
+ publisher: Type.String({
81
+ minLength: 1,
82
+ description: "Publisher name",
83
+ }),
84
+ location: Type.Optional(Type.String({
85
+ minLength: 1,
86
+ description: "Publication location",
87
+ })),
88
+ isbn: Type.Optional(Type.String({
89
+ pattern: "^(?:\\d{9}[\\dX]|\\d{13})$",
90
+ description: "ISBN-10 or ISBN-13 (digits only)",
91
+ })),
92
+ }),
93
+ ]);
94
+ export const WebsiteReferenceSchema = Type.Intersect([
95
+ BaseReferenceSchema,
96
+ Type.Object({
97
+ type: Type.Literal("Website"),
98
+ authors: Type.Array(AuthorSchema, {
99
+ minItems: 1,
100
+ description: "Author names",
101
+ }),
102
+ pageTitle: Type.String({
103
+ minLength: 1,
104
+ description: "Title of the web page",
105
+ }),
106
+ websiteTitle: Type.String({
107
+ minLength: 1,
108
+ description: "Title of the website",
109
+ }),
110
+ accessedDate: EncodableDate,
111
+ url: Type.String({
112
+ format: "uri",
113
+ minLength: 1,
114
+ description: "URL of the web page",
115
+ }),
116
+ }),
117
+ ]);
118
+ export const BookChapterReferenceSchema = Type.Intersect([
119
+ BaseReferenceSchema,
120
+ Type.Object({
121
+ type: Type.Literal("BookChapter"),
122
+ chapterTitle: Type.String({
123
+ minLength: 1,
124
+ description: "Chapter title",
125
+ }),
126
+ year: Type.String({
127
+ pattern: "^\\d{4}$",
128
+ description: "Four-digit publication year",
129
+ }),
130
+ authors: Type.Array(AuthorSchema, {
131
+ minItems: 1,
132
+ description: "Chapter author names",
133
+ }),
134
+ bookTitle: Type.String({
135
+ minLength: 1,
136
+ description: "Book title",
137
+ }),
138
+ editors: Type.Optional(Type.Array(AuthorSchema, {
139
+ description: "Editor names",
140
+ })),
141
+ publisher: Type.String({
142
+ minLength: 1,
143
+ description: "Publisher name",
144
+ }),
145
+ location: Type.String({
146
+ minLength: 1,
147
+ description: "Publication location",
148
+ }),
149
+ pages: Type.Optional(Type.String({ minLength: 1, description: "Page range" })),
150
+ isbn: Type.Optional(Type.String({
151
+ pattern: "^(?:\\d{9}[\\dX]|\\d{13})$",
152
+ description: "ISBN-10 or ISBN-13 (digits only)",
153
+ })),
154
+ }),
155
+ ]);
156
+ export const HandbookReferenceSchema = Type.Intersect([
157
+ BaseReferenceSchema,
158
+ Type.Object({
159
+ type: Type.Literal("Handbook"),
160
+ title: Type.String({
161
+ minLength: 1,
162
+ description: "Handbook title",
163
+ }),
164
+ year: Type.String({
165
+ pattern: "^\\d{4}$",
166
+ description: "Four-digit publication year",
167
+ }),
168
+ publisher: Type.String({
169
+ minLength: 1,
170
+ description: "Publisher name",
171
+ }),
172
+ edition: Type.Optional(Type.String({ minLength: 1, description: "Edition identifier" })),
173
+ location: Type.String({
174
+ minLength: 1,
175
+ description: "Publication location",
176
+ }),
177
+ isbn: Type.Optional(Type.String({
178
+ pattern: "^(?:\\d{9}[\\dX]|\\d{13})$",
179
+ description: "ISBN-10 or ISBN-13 (digits only)",
180
+ })),
181
+ }),
182
+ ]);
183
+ export const TechnicalReportReferenceSchema = Type.Intersect([
184
+ BaseReferenceSchema,
185
+ Type.Object({
186
+ type: Type.Literal("TechnicalReport"),
187
+ title: Type.String({
188
+ minLength: 1,
189
+ description: "Report title",
190
+ }),
191
+ year: Type.String({
192
+ pattern: "^\\d{4}$",
193
+ description: "Four-digit publication year",
194
+ }),
195
+ authors: Type.Array(AuthorSchema, {
196
+ minItems: 1,
197
+ description: "Author names",
198
+ }),
199
+ reportNumber: Type.String({
200
+ minLength: 1,
201
+ description: "Report number or identifier",
202
+ }),
203
+ institution: Type.String({
204
+ minLength: 1,
205
+ description: "Issuing institution",
206
+ }),
207
+ location: Type.String({
208
+ minLength: 1,
209
+ description: "Institution location",
210
+ }),
211
+ }),
212
+ ]);
213
+ export const StandardReferenceSchema = Type.Intersect([
214
+ BaseReferenceSchema,
215
+ Type.Object({
216
+ type: Type.Literal("Standard"),
217
+ organization: Type.String({
218
+ minLength: 1,
219
+ description: "Standards organization name",
220
+ }),
221
+ standardNumber: Type.String({
222
+ minLength: 1,
223
+ description: "Standard number or identifier",
224
+ }),
225
+ title: Type.String({
226
+ minLength: 1,
227
+ description: "Standard title",
228
+ }),
229
+ date: EncodableDate,
230
+ }),
231
+ ]);
232
+ export const ThesisReferenceSchema = Type.Intersect([
233
+ BaseReferenceSchema,
234
+ Type.Object({
235
+ type: Type.Literal("Thesis"),
236
+ title: Type.String({
237
+ minLength: 1,
238
+ description: "Thesis title",
239
+ }),
240
+ year: Type.String({
241
+ pattern: "^\\d{4}$",
242
+ description: "Four-digit publication year",
243
+ }),
244
+ authors: Type.Array(AuthorSchema, {
245
+ minItems: 1,
246
+ description: "Author names",
247
+ }),
248
+ degree: Type.String({
249
+ minLength: 1,
250
+ description: "Degree type (e.g. Ph.D., M.S.)",
251
+ }),
252
+ institution: Type.String({
253
+ minLength: 1,
254
+ description: "Granting institution",
255
+ }),
256
+ location: Type.String({
257
+ minLength: 1,
258
+ description: "Institution location",
259
+ }),
260
+ }),
261
+ ]);
262
+ export const PatentReferenceSchema = Type.Intersect([
263
+ BaseReferenceSchema,
264
+ Type.Object({
265
+ type: Type.Literal("Patent"),
266
+ title: Type.String({
267
+ minLength: 1,
268
+ description: "Patent title",
269
+ }),
270
+ inventors: Type.Array(AuthorSchema, {
271
+ minItems: 1,
272
+ description: "Inventor names",
273
+ }),
274
+ country: Type.String({
275
+ minLength: 1,
276
+ description: "Country of patent",
277
+ }),
278
+ patentNumber: Type.String({
279
+ minLength: 1,
280
+ description: "Patent number",
281
+ }),
282
+ date: EncodableDate,
283
+ }),
284
+ ]);
285
+ export const DictionaryReferenceSchema = Type.Intersect([
286
+ BaseReferenceSchema,
287
+ Type.Object({
288
+ type: Type.Literal("Dictionary"),
289
+ title: Type.String({
290
+ minLength: 1,
291
+ description: "Entry title",
292
+ }),
293
+ year: Type.String({
294
+ pattern: "^\\d{4}$",
295
+ description: "Four-digit publication year",
296
+ }),
297
+ publisher: Type.String({
298
+ minLength: 1,
299
+ description: "Publisher name",
300
+ }),
301
+ edition: Type.Optional(Type.String({ minLength: 1, description: "Edition identifier" })),
302
+ }),
303
+ ]);
304
+ export const EncyclopediaReferenceSchema = Type.Intersect([
305
+ BaseReferenceSchema,
306
+ Type.Object({
307
+ type: Type.Literal("Encyclopedia"),
308
+ title: Type.String({
309
+ minLength: 1,
310
+ description: "Entry title",
311
+ }),
312
+ year: Type.String({
313
+ pattern: "^\\d{4}$",
314
+ description: "Four-digit publication year",
315
+ }),
316
+ publisher: Type.String({
317
+ minLength: 1,
318
+ description: "Publisher name",
319
+ }),
320
+ edition: Type.Optional(Type.String({ minLength: 1, description: "Edition identifier" })),
321
+ }),
322
+ ]);
323
+ // ---------------------------------------------------------------------------
324
+ // Periodicals
325
+ // ---------------------------------------------------------------------------
326
+ export const JournalArticleReferenceSchema = Type.Intersect([
327
+ BaseReferenceSchema,
328
+ Type.Object({
329
+ type: Type.Literal("JournalArticle"),
330
+ title: Type.String({
331
+ minLength: 1,
332
+ description: "Article title",
333
+ }),
334
+ year: Type.String({
335
+ pattern: "^\\d{4}$",
336
+ description: "Four-digit publication year",
337
+ }),
338
+ authors: Type.Array(AuthorSchema, {
339
+ minItems: 1,
340
+ description: "Author names",
341
+ }),
342
+ journalTitle: Type.String({
343
+ minLength: 1,
344
+ description: "Journal title",
345
+ }),
346
+ volume: Type.Optional(Type.String({ minLength: 1, description: "Volume number" })),
347
+ issue: Type.Optional(Type.String({ minLength: 1, description: "Issue number" })),
348
+ pages: Type.Optional(Type.String({ minLength: 1, description: "Page range" })),
349
+ doi: Type.Optional(Type.String({
350
+ pattern: "^10\\..+/.+$",
351
+ description: "DOI identifier",
352
+ })),
353
+ }),
354
+ ]);
355
+ export const MagazineArticleReferenceSchema = Type.Intersect([
356
+ BaseReferenceSchema,
357
+ Type.Object({
358
+ type: Type.Literal("MagazineArticle"),
359
+ title: Type.String({
360
+ minLength: 1,
361
+ description: "Article title",
362
+ }),
363
+ year: Type.String({
364
+ pattern: "^\\d{4}$",
365
+ description: "Four-digit publication year",
366
+ }),
367
+ authors: Type.Array(AuthorSchema, {
368
+ minItems: 1,
369
+ description: "Author names",
370
+ }),
371
+ magazineTitle: Type.String({
372
+ minLength: 1,
373
+ description: "Magazine title",
374
+ }),
375
+ volume: Type.Optional(Type.String({ minLength: 1, description: "Volume number" })),
376
+ issue: Type.Optional(Type.String({ minLength: 1, description: "Issue number" })),
377
+ pages: Type.Optional(Type.String({ minLength: 1, description: "Page range" })),
378
+ }),
379
+ ]);
380
+ export const NewspaperArticleReferenceSchema = Type.Intersect([
381
+ BaseReferenceSchema,
382
+ Type.Object({
383
+ type: Type.Literal("NewspaperArticle"),
384
+ title: Type.String({
385
+ minLength: 1,
386
+ description: "Article title",
387
+ }),
388
+ authors: Type.Array(AuthorSchema, {
389
+ minItems: 1,
390
+ description: "Author names",
391
+ }),
392
+ newspaperTitle: Type.String({
393
+ minLength: 1,
394
+ description: "Newspaper title",
395
+ }),
396
+ date: EncodableDate,
397
+ pages: Type.Optional(Type.String({ minLength: 1, description: "Page range" })),
398
+ }),
399
+ ]);
400
+ // ---------------------------------------------------------------------------
401
+ // Conference
402
+ // ---------------------------------------------------------------------------
403
+ export const ConferencePaperReferenceSchema = Type.Intersect([
404
+ BaseReferenceSchema,
405
+ Type.Object({
406
+ type: Type.Literal("ConferencePaper"),
407
+ title: Type.String({
408
+ minLength: 1,
409
+ description: "Paper title",
410
+ }),
411
+ authors: Type.Array(AuthorSchema, {
412
+ minItems: 1,
413
+ description: "Author names",
414
+ }),
415
+ conferenceName: Type.String({
416
+ minLength: 1,
417
+ description: "Conference name",
418
+ }),
419
+ location: Type.String({
420
+ minLength: 1,
421
+ description: "Conference location",
422
+ }),
423
+ date: EncodableDate,
424
+ pages: Type.Optional(Type.String({ minLength: 1, description: "Page range" })),
425
+ doi: Type.Optional(Type.String({
426
+ pattern: "^10\\..+/.+$",
427
+ description: "DOI identifier",
428
+ })),
429
+ }),
430
+ ]);
431
+ export const ConferenceProceedingsReferenceSchema = Type.Intersect([
432
+ BaseReferenceSchema,
433
+ Type.Object({
434
+ type: Type.Literal("ConferenceProceedings"),
435
+ editors: Type.Optional(Type.Array(AuthorSchema, {
436
+ description: "Editor names",
437
+ })),
438
+ conferenceName: Type.String({
439
+ minLength: 1,
440
+ description: "Conference name",
441
+ }),
442
+ location: Type.String({
443
+ minLength: 1,
444
+ description: "Conference location",
445
+ }),
446
+ date: EncodableDate,
447
+ publisher: Type.String({
448
+ minLength: 1,
449
+ description: "Publisher name",
450
+ }),
451
+ isbn: Type.Optional(Type.String({
452
+ pattern: "^(?:\\d{9}[\\dX]|\\d{13})$",
453
+ description: "ISBN-10 or ISBN-13 (digits only)",
454
+ })),
455
+ }),
456
+ ]);
457
+ // ---------------------------------------------------------------------------
458
+ // Digital sources
459
+ // ---------------------------------------------------------------------------
460
+ export const DatasetReferenceSchema = Type.Intersect([
461
+ BaseReferenceSchema,
462
+ Type.Object({
463
+ type: Type.Literal("Dataset"),
464
+ title: Type.String({
465
+ minLength: 1,
466
+ description: "Dataset title",
467
+ }),
468
+ year: Type.String({
469
+ pattern: "^\\d{4}$",
470
+ description: "Four-digit publication year",
471
+ }),
472
+ authors: Type.Optional(Type.Array(AuthorSchema, {
473
+ description: "Author names",
474
+ })),
475
+ repository: Type.String({
476
+ minLength: 1,
477
+ description: "Repository name",
478
+ }),
479
+ version: Type.Optional(Type.String({ minLength: 1, description: "Dataset version" })),
480
+ doi: Type.Optional(Type.String({
481
+ pattern: "^10\\..+/.+$",
482
+ description: "DOI identifier",
483
+ })),
484
+ url: Type.String({
485
+ format: "uri",
486
+ minLength: 1,
487
+ description: "URL of the dataset",
488
+ }),
489
+ }),
490
+ ]);
491
+ export const SoftwareReferenceSchema = Type.Intersect([
492
+ BaseReferenceSchema,
493
+ Type.Object({
494
+ type: Type.Literal("Software"),
495
+ title: Type.String({
496
+ minLength: 1,
497
+ description: "Software title",
498
+ }),
499
+ year: Type.String({
500
+ pattern: "^\\d{4}$",
501
+ description: "Four-digit publication year",
502
+ }),
503
+ authors: Type.Optional(Type.Array(AuthorSchema, {
504
+ description: "Author names",
505
+ })),
506
+ version: Type.Optional(Type.String({ minLength: 1, description: "Software version" })),
507
+ publisher: Type.Optional(Type.String({ minLength: 1, description: "Publisher name" })),
508
+ doi: Type.Optional(Type.String({
509
+ pattern: "^10\\..+/.+$",
510
+ description: "DOI identifier",
511
+ })),
512
+ url: Type.String({
513
+ format: "uri",
514
+ minLength: 1,
515
+ description: "URL of the software",
516
+ }),
517
+ }),
518
+ ]);
519
+ export const OnlineDocumentReferenceSchema = Type.Intersect([
520
+ BaseReferenceSchema,
521
+ Type.Object({
522
+ type: Type.Literal("OnlineDocument"),
523
+ authors: Type.Optional(Type.Array(AuthorSchema, {
524
+ description: "Author names",
525
+ })),
526
+ title: Type.String({
527
+ minLength: 1,
528
+ description: "Document title",
529
+ }),
530
+ publisher: Type.Optional(Type.String({ minLength: 1, description: "Publisher name" })),
531
+ url: Type.String({
532
+ format: "uri",
533
+ minLength: 1,
534
+ description: "URL of the document",
535
+ }),
536
+ accessedDate: EncodableDate,
537
+ }),
538
+ ]);
539
+ export const BlogReferenceSchema = Type.Intersect([
540
+ BaseReferenceSchema,
541
+ Type.Object({
542
+ type: Type.Literal("Blog"),
543
+ author: AuthorSchema,
544
+ postTitle: Type.String({
545
+ minLength: 1,
546
+ description: "Blog post title",
547
+ }),
548
+ blogName: Type.String({
549
+ minLength: 1,
550
+ description: "Blog name",
551
+ }),
552
+ date: EncodableDate,
553
+ url: Type.String({
554
+ format: "uri",
555
+ minLength: 1,
556
+ description: "URL of the blog post",
557
+ }),
558
+ accessedDate: EncodableDate,
559
+ }),
560
+ ]);
561
+ export const SocialMediaReferenceSchema = Type.Intersect([
562
+ BaseReferenceSchema,
563
+ Type.Object({
564
+ type: Type.Literal("SocialMedia"),
565
+ author: AuthorSchema,
566
+ platform: Type.String({
567
+ minLength: 1,
568
+ description: "Social media platform name",
569
+ }),
570
+ postDate: EncodableDate,
571
+ url: Type.String({
572
+ format: "uri",
573
+ minLength: 1,
574
+ description: "URL of the post",
575
+ }),
576
+ }),
577
+ ]);
578
+ export const PreprintReferenceSchema = Type.Intersect([
579
+ BaseReferenceSchema,
580
+ Type.Object({
581
+ type: Type.Literal("Preprint"),
582
+ title: Type.String({
583
+ minLength: 1,
584
+ description: "Paper title",
585
+ }),
586
+ year: Type.String({
587
+ pattern: "^\\d{4}$",
588
+ description: "Four-digit publication year",
589
+ }),
590
+ authors: Type.Array(AuthorSchema, {
591
+ minItems: 1,
592
+ description: "Author names",
593
+ }),
594
+ server: Type.String({
595
+ minLength: 1,
596
+ description: "Preprint server name",
597
+ }),
598
+ doi: Type.Optional(Type.String({
599
+ pattern: "^10\\..+/.+$",
600
+ description: "DOI identifier",
601
+ })),
602
+ url: Type.String({
603
+ format: "uri",
604
+ minLength: 1,
605
+ description: "URL of the preprint",
606
+ }),
607
+ }),
608
+ ]);
609
+ // ---------------------------------------------------------------------------
610
+ // Multimedia
611
+ // ---------------------------------------------------------------------------
612
+ export const VideoReferenceSchema = Type.Intersect([
613
+ BaseReferenceSchema,
614
+ Type.Object({
615
+ type: Type.Literal("Video"),
616
+ title: Type.String({
617
+ minLength: 1,
618
+ description: "Video title",
619
+ }),
620
+ authors: Type.Optional(Type.Array(AuthorSchema, {
621
+ description: "Author or creator names",
622
+ })),
623
+ releaseDate: Type.Optional(EncodableDate),
624
+ platform: Type.String({
625
+ minLength: 1,
626
+ description: "Video hosting platform",
627
+ }),
628
+ url: Type.String({
629
+ format: "uri",
630
+ minLength: 1,
631
+ description: "URL of the video",
632
+ }),
633
+ accessedDate: EncodableDate,
634
+ }),
635
+ ]);
636
+ export const PodcastReferenceSchema = Type.Intersect([
637
+ BaseReferenceSchema,
638
+ Type.Object({
639
+ type: Type.Literal("Podcast"),
640
+ authors: Type.Optional(Type.Array(AuthorSchema, {
641
+ description: "Host or producer names",
642
+ })),
643
+ episodeTitle: Type.String({
644
+ minLength: 1,
645
+ description: "Episode title",
646
+ }),
647
+ seriesTitle: Type.String({
648
+ minLength: 1,
649
+ description: "Podcast series title",
650
+ }),
651
+ platform: Type.String({
652
+ minLength: 1,
653
+ description: "Podcast platform",
654
+ }),
655
+ url: Type.String({
656
+ format: "uri",
657
+ minLength: 1,
658
+ description: "URL of the episode",
659
+ }),
660
+ accessedDate: EncodableDate,
661
+ }),
662
+ ]);
663
+ export const CourseReferenceSchema = Type.Intersect([
664
+ BaseReferenceSchema,
665
+ Type.Object({
666
+ type: Type.Literal("Course"),
667
+ title: Type.String({
668
+ minLength: 1,
669
+ description: "Course title",
670
+ }),
671
+ year: Type.String({
672
+ pattern: "^\\d{4}$",
673
+ description: "Four-digit publication year",
674
+ }),
675
+ instructor: AuthorSchema,
676
+ institution: Type.String({
677
+ minLength: 1,
678
+ description: "Offering institution",
679
+ }),
680
+ courseCode: Type.Optional(Type.String({ minLength: 1, description: "Course code" })),
681
+ term: Type.String({
682
+ minLength: 1,
683
+ description: "Academic term",
684
+ }),
685
+ }),
686
+ ]);
687
+ export const PresentationReferenceSchema = Type.Intersect([
688
+ BaseReferenceSchema,
689
+ Type.Object({
690
+ type: Type.Literal("Presentation"),
691
+ title: Type.String({
692
+ minLength: 1,
693
+ description: "Presentation title",
694
+ }),
695
+ presenter: AuthorSchema,
696
+ eventTitle: Type.String({
697
+ minLength: 1,
698
+ description: "Event or conference title",
699
+ }),
700
+ location: Type.String({
701
+ minLength: 1,
702
+ description: "Event location",
703
+ }),
704
+ date: EncodableDate,
705
+ }),
706
+ ]);
707
+ // ---------------------------------------------------------------------------
708
+ // Personal / unpublished
709
+ // ---------------------------------------------------------------------------
710
+ export const InterviewReferenceSchema = Type.Intersect([
711
+ BaseReferenceSchema,
712
+ Type.Object({
713
+ type: Type.Literal("Interview"),
714
+ interviewee: AuthorSchema,
715
+ interviewer: Type.Optional(AuthorSchema),
716
+ date: EncodableDate,
717
+ }),
718
+ ]);
719
+ export const PersonalCommunicationReferenceSchema = Type.Intersect([
720
+ BaseReferenceSchema,
721
+ Type.Object({
722
+ type: Type.Literal("PersonalCommunication"),
723
+ person: AuthorSchema,
724
+ date: EncodableDate,
725
+ }),
726
+ ]);
727
+ export const EmailReferenceSchema = Type.Intersect([
728
+ BaseReferenceSchema,
729
+ Type.Object({
730
+ type: Type.Literal("Email"),
731
+ sender: AuthorSchema,
732
+ recipient: AuthorSchema,
733
+ date: EncodableDate,
734
+ }),
735
+ ]);
736
+ // ---------------------------------------------------------------------------
737
+ // Legal
738
+ // ---------------------------------------------------------------------------
739
+ export const LawReferenceSchema = Type.Intersect([
740
+ BaseReferenceSchema,
741
+ Type.Object({
742
+ type: Type.Literal("Law"),
743
+ title: Type.String({
744
+ minLength: 1,
745
+ description: "Law title",
746
+ }),
747
+ jurisdiction: Type.String({
748
+ minLength: 1,
749
+ description: "Jurisdiction",
750
+ }),
751
+ dateEnacted: EncodableDate,
752
+ }),
753
+ ]);
754
+ export const CourtCaseReferenceSchema = Type.Intersect([
755
+ BaseReferenceSchema,
756
+ Type.Object({
757
+ type: Type.Literal("CourtCase"),
758
+ caseName: Type.String({
759
+ minLength: 1,
760
+ description: "Case name",
761
+ }),
762
+ court: Type.String({
763
+ minLength: 1,
764
+ description: "Court name",
765
+ }),
766
+ date: EncodableDate,
767
+ reporter: Type.Optional(Type.String({ minLength: 1, description: "Reporter citation" })),
768
+ }),
769
+ ]);
770
+ export const GovernmentPublicationReferenceSchema = Type.Intersect([
771
+ BaseReferenceSchema,
772
+ Type.Object({
773
+ type: Type.Literal("GovernmentPublication"),
774
+ title: Type.String({
775
+ minLength: 1,
776
+ description: "Publication title",
777
+ }),
778
+ date: EncodableDate,
779
+ authors: Type.Optional(Type.Array(AuthorSchema, {
780
+ description: "Author names",
781
+ })),
782
+ agency: Type.String({
783
+ minLength: 1,
784
+ description: "Government agency",
785
+ }),
786
+ reportNumber: Type.Optional(Type.String({
787
+ minLength: 1,
788
+ description: "Report number",
789
+ })),
790
+ location: Type.String({
791
+ minLength: 1,
792
+ description: "Publication location",
793
+ }),
794
+ }),
795
+ ]);
796
+ // ---------------------------------------------------------------------------
797
+ // Technical documents
798
+ // ---------------------------------------------------------------------------
799
+ export const DatasheetReferenceSchema = Type.Intersect([
800
+ BaseReferenceSchema,
801
+ Type.Object({
802
+ type: Type.Literal("Datasheet"),
803
+ title: Type.String({
804
+ minLength: 1,
805
+ description: "Datasheet title",
806
+ }),
807
+ year: Type.String({
808
+ pattern: "^\\d{4}$",
809
+ description: "Four-digit publication year",
810
+ }),
811
+ manufacturer: Type.String({
812
+ minLength: 1,
813
+ description: "Manufacturer name",
814
+ }),
815
+ partNumber: Type.String({
816
+ minLength: 1,
817
+ description: "Part number",
818
+ }),
819
+ url: Type.String({
820
+ format: "uri",
821
+ minLength: 1,
822
+ description: "URL of the datasheet",
823
+ }),
824
+ }),
825
+ ]);
826
+ export const ProductManualReferenceSchema = Type.Intersect([
827
+ BaseReferenceSchema,
828
+ Type.Object({
829
+ type: Type.Literal("ProductManual"),
830
+ title: Type.String({
831
+ minLength: 1,
832
+ description: "Manual title",
833
+ }),
834
+ year: Type.String({
835
+ pattern: "^\\d{4}$",
836
+ description: "Four-digit publication year",
837
+ }),
838
+ manufacturer: Type.String({
839
+ minLength: 1,
840
+ description: "Manufacturer name",
841
+ }),
842
+ model: Type.String({
843
+ minLength: 1,
844
+ description: "Product model",
845
+ }),
846
+ url: Type.Optional(Type.String({
847
+ format: "uri",
848
+ minLength: 1,
849
+ description: "URL of the manual",
850
+ })),
851
+ }),
852
+ ]);
853
+ // ---------------------------------------------------------------------------
854
+ // Discriminated union of all reference types
855
+ // ---------------------------------------------------------------------------
856
+ export const IEEEReferenceSchema = Type.Union([
857
+ BookReferenceSchema,
858
+ WebsiteReferenceSchema,
859
+ BookChapterReferenceSchema,
860
+ HandbookReferenceSchema,
861
+ TechnicalReportReferenceSchema,
862
+ StandardReferenceSchema,
863
+ ThesisReferenceSchema,
864
+ PatentReferenceSchema,
865
+ DictionaryReferenceSchema,
866
+ EncyclopediaReferenceSchema,
867
+ JournalArticleReferenceSchema,
868
+ MagazineArticleReferenceSchema,
869
+ NewspaperArticleReferenceSchema,
870
+ ConferencePaperReferenceSchema,
871
+ ConferenceProceedingsReferenceSchema,
872
+ DatasetReferenceSchema,
873
+ SoftwareReferenceSchema,
874
+ OnlineDocumentReferenceSchema,
875
+ BlogReferenceSchema,
876
+ SocialMediaReferenceSchema,
877
+ PreprintReferenceSchema,
878
+ VideoReferenceSchema,
879
+ PodcastReferenceSchema,
880
+ CourseReferenceSchema,
881
+ PresentationReferenceSchema,
882
+ InterviewReferenceSchema,
883
+ PersonalCommunicationReferenceSchema,
884
+ EmailReferenceSchema,
885
+ LawReferenceSchema,
886
+ CourtCaseReferenceSchema,
887
+ GovernmentPublicationReferenceSchema,
888
+ DatasheetReferenceSchema,
889
+ ProductManualReferenceSchema,
890
+ ]);
891
+ // ---------------------------------------------------------------------------
892
+ // Schema map keyed by reference type
893
+ // ---------------------------------------------------------------------------
894
+ export const IEEEReferenceSchemaMap = {
895
+ Book: BookReferenceSchema,
896
+ Website: WebsiteReferenceSchema,
897
+ BookChapter: BookChapterReferenceSchema,
898
+ Handbook: HandbookReferenceSchema,
899
+ TechnicalReport: TechnicalReportReferenceSchema,
900
+ Standard: StandardReferenceSchema,
901
+ Thesis: ThesisReferenceSchema,
902
+ Patent: PatentReferenceSchema,
903
+ Dictionary: DictionaryReferenceSchema,
904
+ Encyclopedia: EncyclopediaReferenceSchema,
905
+ JournalArticle: JournalArticleReferenceSchema,
906
+ MagazineArticle: MagazineArticleReferenceSchema,
907
+ NewspaperArticle: NewspaperArticleReferenceSchema,
908
+ ConferencePaper: ConferencePaperReferenceSchema,
909
+ ConferenceProceedings: ConferenceProceedingsReferenceSchema,
910
+ Dataset: DatasetReferenceSchema,
911
+ Software: SoftwareReferenceSchema,
912
+ OnlineDocument: OnlineDocumentReferenceSchema,
913
+ Blog: BlogReferenceSchema,
914
+ SocialMedia: SocialMediaReferenceSchema,
915
+ Preprint: PreprintReferenceSchema,
916
+ Video: VideoReferenceSchema,
917
+ Podcast: PodcastReferenceSchema,
918
+ Course: CourseReferenceSchema,
919
+ Presentation: PresentationReferenceSchema,
920
+ Interview: InterviewReferenceSchema,
921
+ PersonalCommunication: PersonalCommunicationReferenceSchema,
922
+ Email: EmailReferenceSchema,
923
+ Law: LawReferenceSchema,
924
+ CourtCase: CourtCaseReferenceSchema,
925
+ GovernmentPublication: GovernmentPublicationReferenceSchema,
926
+ Datasheet: DatasheetReferenceSchema,
927
+ ProductManual: ProductManualReferenceSchema,
928
+ };
929
+ //# sourceMappingURL=references.js.map