glossarist 0.4.49 → 0.4.51

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 (700) hide show
  1. package/dist/compiled-format.d.ts +43 -0
  2. package/dist/compiled-format.d.ts.map +1 -0
  3. package/{src/compiled-format.ts → dist/compiled-format.js} +28 -46
  4. package/dist/compiled-format.js.map +1 -0
  5. package/dist/concept-collection.d.ts +39 -0
  6. package/dist/concept-collection.d.ts.map +1 -0
  7. package/dist/concept-collection.js +127 -0
  8. package/dist/concept-collection.js.map +1 -0
  9. package/dist/concept-diff.d.ts +14 -0
  10. package/dist/concept-diff.d.ts.map +1 -0
  11. package/{src/concept-diff.ts → dist/concept-diff.js} +2 -20
  12. package/dist/concept-diff.js.map +1 -0
  13. package/dist/concept-parser.d.ts +11 -0
  14. package/dist/concept-parser.d.ts.map +1 -0
  15. package/dist/concept-parser.js +209 -0
  16. package/dist/concept-parser.js.map +1 -0
  17. package/dist/concept-reader.d.ts +55 -0
  18. package/dist/concept-reader.d.ts.map +1 -0
  19. package/{src/concept-reader.ts → dist/concept-reader.js} +70 -76
  20. package/dist/concept-reader.js.map +1 -0
  21. package/dist/concept-serializer.d.ts +9 -0
  22. package/dist/concept-serializer.d.ts.map +1 -0
  23. package/dist/concept-serializer.js +87 -0
  24. package/dist/concept-serializer.js.map +1 -0
  25. package/dist/concept-writer.d.ts +10 -0
  26. package/dist/concept-writer.d.ts.map +1 -0
  27. package/dist/concept-writer.js +28 -0
  28. package/dist/concept-writer.js.map +1 -0
  29. package/dist/dataset-asset.d.ts +49 -0
  30. package/dist/dataset-asset.d.ts.map +1 -0
  31. package/{src/dataset-asset.ts → dist/dataset-asset.js} +16 -33
  32. package/dist/dataset-asset.js.map +1 -0
  33. package/dist/diff/canonical-json.d.ts +7 -0
  34. package/dist/diff/canonical-json.d.ts.map +1 -0
  35. package/dist/diff/canonical-json.js +28 -0
  36. package/dist/diff/canonical-json.js.map +1 -0
  37. package/dist/diff/change.d.ts +67 -0
  38. package/dist/diff/change.d.ts.map +1 -0
  39. package/dist/diff/change.js +131 -0
  40. package/dist/diff/change.js.map +1 -0
  41. package/dist/diff/collection-diff.d.ts +50 -0
  42. package/dist/diff/collection-diff.d.ts.map +1 -0
  43. package/dist/diff/collection-diff.js +182 -0
  44. package/dist/diff/collection-diff.js.map +1 -0
  45. package/dist/diff/concept-diff.d.ts +188 -0
  46. package/dist/diff/concept-diff.d.ts.map +1 -0
  47. package/dist/diff/concept-diff.js +624 -0
  48. package/dist/diff/concept-diff.js.map +1 -0
  49. package/dist/diff/diff-patch.d.ts +7 -0
  50. package/dist/diff/diff-patch.d.ts.map +1 -0
  51. package/dist/diff/diff-patch.js +225 -0
  52. package/dist/diff/diff-patch.js.map +1 -0
  53. package/dist/diff/diff-renderer.d.ts +44 -0
  54. package/dist/diff/diff-renderer.d.ts.map +1 -0
  55. package/dist/diff/diff-renderer.js +263 -0
  56. package/dist/diff/diff-renderer.js.map +1 -0
  57. package/dist/diff/identity.d.ts +2 -0
  58. package/dist/diff/identity.d.ts.map +1 -0
  59. package/dist/diff/identity.js +29 -0
  60. package/dist/diff/identity.js.map +1 -0
  61. package/dist/diff/index.d.ts +8 -0
  62. package/dist/diff/index.d.ts.map +1 -0
  63. package/dist/diff/index.js +8 -0
  64. package/dist/diff/index.js.map +1 -0
  65. package/dist/diff/list-diff.d.ts +36 -0
  66. package/dist/diff/list-diff.d.ts.map +1 -0
  67. package/dist/diff/list-diff.js +185 -0
  68. package/dist/diff/list-diff.js.map +1 -0
  69. package/dist/diff/similarity.d.ts +4 -0
  70. package/dist/diff/similarity.d.ts.map +1 -0
  71. package/dist/diff/similarity.js +20 -0
  72. package/dist/diff/similarity.js.map +1 -0
  73. package/dist/diff/text-diff.d.ts +42 -0
  74. package/dist/diff/text-diff.d.ts.map +1 -0
  75. package/dist/diff/text-diff.js +134 -0
  76. package/dist/diff/text-diff.js.map +1 -0
  77. package/dist/entity-directory.d.ts +13 -0
  78. package/dist/entity-directory.d.ts.map +1 -0
  79. package/dist/entity-directory.js +35 -0
  80. package/dist/entity-directory.js.map +1 -0
  81. package/dist/errors.d.ts +15 -0
  82. package/dist/errors.d.ts.map +1 -0
  83. package/dist/errors.js +23 -0
  84. package/dist/errors.js.map +1 -0
  85. package/dist/gcr-reader.d.ts +57 -0
  86. package/dist/gcr-reader.d.ts.map +1 -0
  87. package/dist/gcr-reader.js +264 -0
  88. package/dist/gcr-reader.js.map +1 -0
  89. package/dist/gcr-writer.d.ts +23 -0
  90. package/dist/gcr-writer.d.ts.map +1 -0
  91. package/dist/gcr-writer.js +84 -0
  92. package/dist/gcr-writer.js.map +1 -0
  93. package/dist/index.d.ts +21 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/{src/index.ts → dist/index.js} +6 -66
  96. package/dist/index.js.map +1 -0
  97. package/dist/managed-concept-collection.d.ts +31 -0
  98. package/dist/managed-concept-collection.d.ts.map +1 -0
  99. package/dist/managed-concept-collection.js +87 -0
  100. package/dist/managed-concept-collection.js.map +1 -0
  101. package/dist/migration/hyperedge-migrator.d.ts +33 -0
  102. package/dist/migration/hyperedge-migrator.d.ts.map +1 -0
  103. package/dist/migration/hyperedge-migrator.js +70 -0
  104. package/dist/migration/hyperedge-migrator.js.map +1 -0
  105. package/dist/models/abstract-hyperedge.d.ts +35 -0
  106. package/dist/models/abstract-hyperedge.d.ts.map +1 -0
  107. package/dist/models/abstract-hyperedge.js +112 -0
  108. package/dist/models/abstract-hyperedge.js.map +1 -0
  109. package/dist/models/base.d.ts +58 -0
  110. package/dist/models/base.d.ts.map +1 -0
  111. package/dist/models/base.js +77 -0
  112. package/dist/models/base.js.map +1 -0
  113. package/dist/models/bibliography-data.d.ts +20 -0
  114. package/dist/models/bibliography-data.d.ts.map +1 -0
  115. package/dist/models/bibliography-data.js +43 -0
  116. package/dist/models/bibliography-data.js.map +1 -0
  117. package/dist/models/bibliography-entry.d.ts +19 -0
  118. package/dist/models/bibliography-entry.d.ts.map +1 -0
  119. package/dist/models/bibliography-entry.js +34 -0
  120. package/dist/models/bibliography-entry.js.map +1 -0
  121. package/dist/models/citation.d.ts +40 -0
  122. package/dist/models/citation.d.ts.map +1 -0
  123. package/dist/models/citation.js +82 -0
  124. package/dist/models/citation.js.map +1 -0
  125. package/dist/models/completeness.d.ts +9 -0
  126. package/dist/models/completeness.d.ts.map +1 -0
  127. package/{src/models/completeness.ts → dist/models/completeness.js} +4 -9
  128. package/dist/models/completeness.js.map +1 -0
  129. package/dist/models/concept-date.d.ts +20 -0
  130. package/dist/models/concept-date.d.ts.map +1 -0
  131. package/dist/models/concept-date.js +36 -0
  132. package/dist/models/concept-date.js.map +1 -0
  133. package/dist/models/concept-ref.d.ts +32 -0
  134. package/dist/models/concept-ref.d.ts.map +1 -0
  135. package/dist/models/concept-ref.js +53 -0
  136. package/dist/models/concept-ref.js.map +1 -0
  137. package/dist/models/concept-reference.d.ts +22 -0
  138. package/dist/models/concept-reference.d.ts.map +1 -0
  139. package/dist/models/concept-reference.js +39 -0
  140. package/dist/models/concept-reference.js.map +1 -0
  141. package/dist/models/concept-source.d.ts +53 -0
  142. package/dist/models/concept-source.d.ts.map +1 -0
  143. package/dist/models/concept-source.js +66 -0
  144. package/dist/models/concept-source.js.map +1 -0
  145. package/dist/models/concept-system-type.d.ts +6 -0
  146. package/dist/models/concept-system-type.d.ts.map +1 -0
  147. package/dist/models/concept-system-type.js +22 -0
  148. package/dist/models/concept-system-type.js.map +1 -0
  149. package/dist/models/concept-system.d.ts +44 -0
  150. package/dist/models/concept-system.d.ts.map +1 -0
  151. package/dist/models/concept-system.js +115 -0
  152. package/dist/models/concept-system.js.map +1 -0
  153. package/dist/models/concept-type.d.ts +7 -0
  154. package/dist/models/concept-type.d.ts.map +1 -0
  155. package/{src/models/concept-type.ts → dist/models/concept-type.js} +8 -19
  156. package/dist/models/concept-type.js.map +1 -0
  157. package/dist/models/concept.d.ts +94 -0
  158. package/dist/models/concept.d.ts.map +1 -0
  159. package/dist/models/concept.js +368 -0
  160. package/dist/models/concept.js.map +1 -0
  161. package/dist/models/dataset-color.d.ts +28 -0
  162. package/dist/models/dataset-color.d.ts.map +1 -0
  163. package/dist/models/dataset-color.js +74 -0
  164. package/dist/models/dataset-color.js.map +1 -0
  165. package/dist/models/definition-type.d.ts +9 -0
  166. package/dist/models/definition-type.d.ts.map +1 -0
  167. package/{src/models/definition-type.ts → dist/models/definition-type.js} +6 -15
  168. package/dist/models/definition-type.js.map +1 -0
  169. package/dist/models/designation-relationship.d.ts +17 -0
  170. package/dist/models/designation-relationship.d.ts.map +1 -0
  171. package/dist/models/designation-relationship.js +30 -0
  172. package/dist/models/designation-relationship.js.map +1 -0
  173. package/dist/models/designation.d.ts +110 -0
  174. package/dist/models/designation.d.ts.map +1 -0
  175. package/dist/models/designation.js +224 -0
  176. package/dist/models/designation.js.map +1 -0
  177. package/dist/models/detailed-definition.d.ts +34 -0
  178. package/dist/models/detailed-definition.d.ts.map +1 -0
  179. package/dist/models/detailed-definition.js +63 -0
  180. package/dist/models/detailed-definition.js.map +1 -0
  181. package/dist/models/enum.d.ts +21 -0
  182. package/dist/models/enum.d.ts.map +1 -0
  183. package/dist/models/enum.js +39 -0
  184. package/dist/models/enum.js.map +1 -0
  185. package/dist/models/equivalence-degree.d.ts +7 -0
  186. package/dist/models/equivalence-degree.d.ts.map +1 -0
  187. package/dist/models/equivalence-degree.js +20 -0
  188. package/dist/models/equivalence-degree.js.map +1 -0
  189. package/dist/models/figure.d.ts +40 -0
  190. package/dist/models/figure.d.ts.map +1 -0
  191. package/dist/models/figure.js +82 -0
  192. package/dist/models/figure.js.map +1 -0
  193. package/dist/models/formula.d.ts +15 -0
  194. package/dist/models/formula.d.ts.map +1 -0
  195. package/dist/models/formula.js +27 -0
  196. package/dist/models/formula.js.map +1 -0
  197. package/dist/models/gcr-metadata.d.ts +62 -0
  198. package/dist/models/gcr-metadata.d.ts.map +1 -0
  199. package/dist/models/gcr-metadata.js +102 -0
  200. package/dist/models/gcr-metadata.js.map +1 -0
  201. package/dist/models/gcr-statistics.d.ts +30 -0
  202. package/dist/models/gcr-statistics.d.ts.map +1 -0
  203. package/dist/models/gcr-statistics.js +53 -0
  204. package/dist/models/gcr-statistics.js.map +1 -0
  205. package/dist/models/generic-hyperedge.d.ts +32 -0
  206. package/dist/models/generic-hyperedge.d.ts.map +1 -0
  207. package/dist/models/generic-hyperedge.js +51 -0
  208. package/dist/models/generic-hyperedge.js.map +1 -0
  209. package/dist/models/generic-member.d.ts +14 -0
  210. package/dist/models/generic-member.d.ts.map +1 -0
  211. package/dist/models/generic-member.js +51 -0
  212. package/dist/models/generic-member.js.map +1 -0
  213. package/dist/models/grammar-info.d.ts +34 -0
  214. package/dist/models/grammar-info.d.ts.map +1 -0
  215. package/dist/models/grammar-info.js +59 -0
  216. package/dist/models/grammar-info.js.map +1 -0
  217. package/dist/models/hyperedge-colors.d.ts +19 -0
  218. package/dist/models/hyperedge-colors.d.ts.map +1 -0
  219. package/dist/models/hyperedge-colors.js +61 -0
  220. package/dist/models/hyperedge-colors.js.map +1 -0
  221. package/dist/models/hyperedge-index.d.ts +34 -0
  222. package/dist/models/hyperedge-index.d.ts.map +1 -0
  223. package/dist/models/hyperedge-index.js +85 -0
  224. package/dist/models/hyperedge-index.js.map +1 -0
  225. package/dist/models/hyperedge-member.d.ts +28 -0
  226. package/dist/models/hyperedge-member.d.ts.map +1 -0
  227. package/dist/models/hyperedge-member.js +92 -0
  228. package/dist/models/hyperedge-member.js.map +1 -0
  229. package/dist/models/hyperedge-registry.d.ts +47 -0
  230. package/dist/models/hyperedge-registry.d.ts.map +1 -0
  231. package/dist/models/hyperedge-registry.js +118 -0
  232. package/dist/models/hyperedge-registry.js.map +1 -0
  233. package/dist/models/index.d.ts +53 -0
  234. package/dist/models/index.d.ts.map +1 -0
  235. package/{src/models/index.ts → dist/models/index.js} +11 -63
  236. package/dist/models/index.js.map +1 -0
  237. package/dist/models/locality.d.ts +17 -0
  238. package/dist/models/locality.d.ts.map +1 -0
  239. package/dist/models/locality.js +26 -0
  240. package/dist/models/locality.js.map +1 -0
  241. package/dist/models/localized-concept.d.ts +102 -0
  242. package/dist/models/localized-concept.d.ts.map +1 -0
  243. package/dist/models/localized-concept.js +195 -0
  244. package/dist/models/localized-concept.js.map +1 -0
  245. package/dist/models/localized-string.d.ts +5 -0
  246. package/dist/models/localized-string.d.ts.map +1 -0
  247. package/dist/models/localized-string.js +20 -0
  248. package/dist/models/localized-string.js.map +1 -0
  249. package/dist/models/multiplicity.d.ts +42 -0
  250. package/dist/models/multiplicity.d.ts.map +1 -0
  251. package/dist/models/multiplicity.js +84 -0
  252. package/dist/models/multiplicity.js.map +1 -0
  253. package/dist/models/non-verb-rep.d.ts +20 -0
  254. package/dist/models/non-verb-rep.d.ts.map +1 -0
  255. package/dist/models/non-verb-rep.js +32 -0
  256. package/dist/models/non-verb-rep.js.map +1 -0
  257. package/dist/models/non-verbal-entity.d.ts +30 -0
  258. package/dist/models/non-verbal-entity.d.ts.map +1 -0
  259. package/dist/models/non-verbal-entity.js +48 -0
  260. package/dist/models/non-verbal-entity.js.map +1 -0
  261. package/dist/models/non-verbal-reference.d.ts +23 -0
  262. package/dist/models/non-verbal-reference.d.ts.map +1 -0
  263. package/dist/models/non-verbal-reference.js +44 -0
  264. package/dist/models/non-verbal-reference.js.map +1 -0
  265. package/dist/models/non-verbal-references.d.ts +12 -0
  266. package/dist/models/non-verbal-references.d.ts.map +1 -0
  267. package/dist/models/non-verbal-references.js +20 -0
  268. package/dist/models/non-verbal-references.js.map +1 -0
  269. package/dist/models/partitive-count.d.ts +10 -0
  270. package/dist/models/partitive-count.d.ts.map +1 -0
  271. package/{src/models/partitive-count.ts → dist/models/partitive-count.js} +5 -9
  272. package/dist/models/partitive-count.js.map +1 -0
  273. package/dist/models/partitive-enumeration.d.ts +5 -0
  274. package/dist/models/partitive-enumeration.d.ts.map +1 -0
  275. package/dist/models/partitive-enumeration.js +16 -0
  276. package/dist/models/partitive-enumeration.js.map +1 -0
  277. package/dist/models/partitive-hyperedge.d.ts +43 -0
  278. package/dist/models/partitive-hyperedge.d.ts.map +1 -0
  279. package/dist/models/partitive-hyperedge.js +63 -0
  280. package/dist/models/partitive-hyperedge.js.map +1 -0
  281. package/dist/models/partitive-member.d.ts +14 -0
  282. package/dist/models/partitive-member.d.ts.map +1 -0
  283. package/dist/models/partitive-member.js +44 -0
  284. package/dist/models/partitive-member.js.map +1 -0
  285. package/dist/models/partitive-presence.d.ts +9 -0
  286. package/dist/models/partitive-presence.d.ts.map +1 -0
  287. package/{src/models/partitive-presence.ts → dist/models/partitive-presence.js} +4 -8
  288. package/dist/models/partitive-presence.js.map +1 -0
  289. package/dist/models/plurality-marker.d.ts +5 -0
  290. package/dist/models/plurality-marker.d.ts.map +1 -0
  291. package/dist/models/plurality-marker.js +20 -0
  292. package/dist/models/plurality-marker.js.map +1 -0
  293. package/dist/models/pronunciation.d.ts +19 -0
  294. package/dist/models/pronunciation.d.ts.map +1 -0
  295. package/dist/models/pronunciation.js +34 -0
  296. package/dist/models/pronunciation.js.map +1 -0
  297. package/dist/models/register.d.ts +104 -0
  298. package/dist/models/register.d.ts.map +1 -0
  299. package/dist/models/register.js +297 -0
  300. package/dist/models/register.js.map +1 -0
  301. package/dist/models/registrable.d.ts +25 -0
  302. package/dist/models/registrable.d.ts.map +1 -0
  303. package/dist/models/registrable.js +23 -0
  304. package/dist/models/registrable.js.map +1 -0
  305. package/dist/models/related-concept.d.ts +33 -0
  306. package/dist/models/related-concept.d.ts.map +1 -0
  307. package/dist/models/related-concept.js +95 -0
  308. package/dist/models/related-concept.js.map +1 -0
  309. package/dist/models/relation-categories.d.ts +38 -0
  310. package/dist/models/relation-categories.d.ts.map +1 -0
  311. package/dist/models/relation-categories.js +135 -0
  312. package/dist/models/relation-categories.js.map +1 -0
  313. package/dist/models/relation-colors.d.ts +35 -0
  314. package/dist/models/relation-colors.d.ts.map +1 -0
  315. package/dist/models/relation-colors.js +68 -0
  316. package/dist/models/relation-colors.js.map +1 -0
  317. package/dist/models/relation-loader.d.ts +41 -0
  318. package/dist/models/relation-loader.d.ts.map +1 -0
  319. package/dist/models/relation-loader.js +101 -0
  320. package/dist/models/relation-loader.js.map +1 -0
  321. package/dist/models/section.d.ts +22 -0
  322. package/dist/models/section.d.ts.map +1 -0
  323. package/dist/models/section.js +47 -0
  324. package/dist/models/section.js.map +1 -0
  325. package/dist/models/sequential-hyperedge.d.ts +32 -0
  326. package/dist/models/sequential-hyperedge.d.ts.map +1 -0
  327. package/dist/models/sequential-hyperedge.js +49 -0
  328. package/dist/models/sequential-hyperedge.js.map +1 -0
  329. package/dist/models/sequential-member.d.ts +8 -0
  330. package/dist/models/sequential-member.d.ts.map +1 -0
  331. package/{src/models/sequential-member.ts → dist/models/sequential-member.js} +4 -9
  332. package/dist/models/sequential-member.js.map +1 -0
  333. package/dist/models/shared-non-verbal-entity.d.ts +16 -0
  334. package/dist/models/shared-non-verbal-entity.d.ts.map +1 -0
  335. package/dist/models/shared-non-verbal-entity.js +28 -0
  336. package/dist/models/shared-non-verbal-entity.js.map +1 -0
  337. package/dist/models/table.d.ts +15 -0
  338. package/dist/models/table.d.ts.map +1 -0
  339. package/dist/models/table.js +27 -0
  340. package/dist/models/table.js.map +1 -0
  341. package/dist/rdf/agents-emitter.d.ts +37 -0
  342. package/dist/rdf/agents-emitter.d.ts.map +1 -0
  343. package/dist/rdf/agents-emitter.js +107 -0
  344. package/dist/rdf/agents-emitter.js.map +1 -0
  345. package/dist/rdf/bibliography-emitter.d.ts +16 -0
  346. package/dist/rdf/bibliography-emitter.d.ts.map +1 -0
  347. package/dist/rdf/bibliography-emitter.js +84 -0
  348. package/dist/rdf/bibliography-emitter.js.map +1 -0
  349. package/dist/rdf/bnode-id.d.ts +2 -0
  350. package/dist/rdf/bnode-id.d.ts.map +1 -0
  351. package/dist/rdf/bnode-id.js +57 -0
  352. package/dist/rdf/bnode-id.js.map +1 -0
  353. package/dist/rdf/build-activity-emitter.d.ts +42 -0
  354. package/dist/rdf/build-activity-emitter.d.ts.map +1 -0
  355. package/dist/rdf/build-activity-emitter.js +103 -0
  356. package/dist/rdf/build-activity-emitter.js.map +1 -0
  357. package/dist/rdf/curie.d.ts +7 -0
  358. package/dist/rdf/curie.d.ts.map +1 -0
  359. package/dist/rdf/curie.js +45 -0
  360. package/dist/rdf/curie.js.map +1 -0
  361. package/dist/rdf/dataset-emitter.d.ts +37 -0
  362. package/dist/rdf/dataset-emitter.d.ts.map +1 -0
  363. package/dist/rdf/dataset-emitter.js +126 -0
  364. package/dist/rdf/dataset-emitter.js.map +1 -0
  365. package/dist/rdf/deterministic-id.d.ts +3 -0
  366. package/dist/rdf/deterministic-id.d.ts.map +1 -0
  367. package/dist/rdf/deterministic-id.js +68 -0
  368. package/dist/rdf/deterministic-id.js.map +1 -0
  369. package/dist/rdf/document-writer.d.ts +11 -0
  370. package/dist/rdf/document-writer.d.ts.map +1 -0
  371. package/dist/rdf/document-writer.js +77 -0
  372. package/dist/rdf/document-writer.js.map +1 -0
  373. package/dist/rdf/gloss-concept.d.ts +27 -0
  374. package/dist/rdf/gloss-concept.d.ts.map +1 -0
  375. package/dist/rdf/gloss-concept.js +95 -0
  376. package/dist/rdf/gloss-concept.js.map +1 -0
  377. package/dist/rdf/gloss-designation.d.ts +17 -0
  378. package/dist/rdf/gloss-designation.d.ts.map +1 -0
  379. package/dist/rdf/gloss-designation.js +46 -0
  380. package/dist/rdf/gloss-designation.js.map +1 -0
  381. package/dist/rdf/gloss-detailed-definition.d.ts +14 -0
  382. package/dist/rdf/gloss-detailed-definition.d.ts.map +1 -0
  383. package/dist/rdf/gloss-detailed-definition.js +53 -0
  384. package/dist/rdf/gloss-detailed-definition.js.map +1 -0
  385. package/dist/rdf/gloss-generic-hyperedge.d.ts +27 -0
  386. package/dist/rdf/gloss-generic-hyperedge.d.ts.map +1 -0
  387. package/{src/rdf/gloss-generic-hyperedge.ts → dist/rdf/gloss-generic-hyperedge.js} +36 -50
  388. package/dist/rdf/gloss-generic-hyperedge.js.map +1 -0
  389. package/dist/rdf/gloss-localized-concept.d.ts +24 -0
  390. package/dist/rdf/gloss-localized-concept.d.ts.map +1 -0
  391. package/dist/rdf/gloss-localized-concept.js +71 -0
  392. package/dist/rdf/gloss-localized-concept.js.map +1 -0
  393. package/dist/rdf/gloss-non-verbal-rep.d.ts +33 -0
  394. package/dist/rdf/gloss-non-verbal-rep.d.ts.map +1 -0
  395. package/dist/rdf/gloss-non-verbal-rep.js +163 -0
  396. package/dist/rdf/gloss-non-verbal-rep.js.map +1 -0
  397. package/dist/rdf/gloss-partitive-member.d.ts +8 -0
  398. package/dist/rdf/gloss-partitive-member.d.ts.map +1 -0
  399. package/{src/rdf/gloss-partitive-member.ts → dist/rdf/gloss-partitive-member.js} +23 -41
  400. package/dist/rdf/gloss-partitive-member.js.map +1 -0
  401. package/dist/rdf/gloss-partitive-relation.d.ts +26 -0
  402. package/dist/rdf/gloss-partitive-relation.d.ts.map +1 -0
  403. package/dist/rdf/gloss-partitive-relation.js +73 -0
  404. package/dist/rdf/gloss-partitive-relation.js.map +1 -0
  405. package/dist/rdf/gloss-source.d.ts +23 -0
  406. package/dist/rdf/gloss-source.d.ts.map +1 -0
  407. package/dist/rdf/gloss-source.js +52 -0
  408. package/dist/rdf/gloss-source.js.map +1 -0
  409. package/dist/rdf/group-emitter.d.ts +46 -0
  410. package/dist/rdf/group-emitter.d.ts.map +1 -0
  411. package/dist/rdf/group-emitter.js +107 -0
  412. package/dist/rdf/group-emitter.js.map +1 -0
  413. package/dist/rdf/image-variant-emitter.d.ts +12 -0
  414. package/dist/rdf/image-variant-emitter.d.ts.map +1 -0
  415. package/dist/rdf/image-variant-emitter.js +55 -0
  416. package/dist/rdf/image-variant-emitter.js.map +1 -0
  417. package/dist/rdf/index.d.ts +26 -0
  418. package/dist/rdf/index.d.ts.map +1 -0
  419. package/{src/rdf/index.ts → dist/rdf/index.js} +8 -37
  420. package/dist/rdf/index.js.map +1 -0
  421. package/dist/rdf/normalize-enum.d.ts +3 -0
  422. package/dist/rdf/normalize-enum.d.ts.map +1 -0
  423. package/{src/rdf/normalize-enum.ts → dist/rdf/normalize-enum.js} +11 -10
  424. package/dist/rdf/normalize-enum.js.map +1 -0
  425. package/dist/rdf/predicates.d.ts +277 -0
  426. package/dist/rdf/predicates.d.ts.map +1 -0
  427. package/dist/rdf/predicates.js +279 -0
  428. package/dist/rdf/predicates.js.map +1 -0
  429. package/dist/rdf/prefixes.d.ts +16 -0
  430. package/dist/rdf/prefixes.d.ts.map +1 -0
  431. package/{src/rdf/prefixes.ts → dist/rdf/prefixes.js} +10 -12
  432. package/dist/rdf/prefixes.js.map +1 -0
  433. package/dist/rdf/provenance-emitter.d.ts +28 -0
  434. package/dist/rdf/provenance-emitter.d.ts.map +1 -0
  435. package/dist/rdf/provenance-emitter.js +74 -0
  436. package/dist/rdf/provenance-emitter.js.map +1 -0
  437. package/dist/rdf/sections-builder.d.ts +17 -0
  438. package/dist/rdf/sections-builder.d.ts.map +1 -0
  439. package/dist/rdf/sections-builder.js +137 -0
  440. package/dist/rdf/sections-builder.js.map +1 -0
  441. package/dist/rdf/shacl-entry.d.ts +2 -0
  442. package/dist/rdf/shacl-entry.d.ts.map +1 -0
  443. package/{src/rdf/shacl-entry.ts → dist/rdf/shacl-entry.js} +1 -1
  444. package/dist/rdf/shacl-entry.js.map +1 -0
  445. package/dist/rdf/shacl.d.ts +10 -0
  446. package/dist/rdf/shacl.d.ts.map +1 -0
  447. package/{src/rdf/shacl.ts → dist/rdf/shacl.js} +38 -56
  448. package/dist/rdf/shacl.js.map +1 -0
  449. package/dist/rdf/terms.d.ts +10 -0
  450. package/dist/rdf/terms.d.ts.map +1 -0
  451. package/{src/rdf/terms.ts → dist/rdf/terms.js} +6 -3
  452. package/dist/rdf/terms.js.map +1 -0
  453. package/dist/rdf/version-emitter.d.ts +57 -0
  454. package/dist/rdf/version-emitter.d.ts.map +1 -0
  455. package/dist/rdf/version-emitter.js +68 -0
  456. package/dist/rdf/version-emitter.js.map +1 -0
  457. package/dist/rdf/vocabulary-emitter.d.ts +32 -0
  458. package/dist/rdf/vocabulary-emitter.d.ts.map +1 -0
  459. package/dist/rdf/vocabulary-emitter.js +46 -0
  460. package/dist/rdf/vocabulary-emitter.js.map +1 -0
  461. package/dist/rdf/write-turtle-sync.d.ts +7 -0
  462. package/dist/rdf/write-turtle-sync.d.ts.map +1 -0
  463. package/dist/rdf/write-turtle-sync.js +130 -0
  464. package/dist/rdf/write-turtle-sync.js.map +1 -0
  465. package/dist/reference-mention.d.ts +49 -0
  466. package/dist/reference-mention.d.ts.map +1 -0
  467. package/dist/reference-mention.js +98 -0
  468. package/dist/reference-mention.js.map +1 -0
  469. package/dist/reference-resolver.d.ts +52 -0
  470. package/dist/reference-resolver.d.ts.map +1 -0
  471. package/dist/reference-resolver.js +311 -0
  472. package/dist/reference-resolver.js.map +1 -0
  473. package/dist/render-classification.d.ts +19 -0
  474. package/dist/render-classification.d.ts.map +1 -0
  475. package/dist/render-classification.js +82 -0
  476. package/dist/render-classification.js.map +1 -0
  477. package/dist/sort.d.ts +5 -0
  478. package/dist/sort.d.ts.map +1 -0
  479. package/dist/sort.js +25 -0
  480. package/dist/sort.js.map +1 -0
  481. package/dist/transforms/concept-to-gloss.transform.d.ts +32 -0
  482. package/dist/transforms/concept-to-gloss.transform.d.ts.map +1 -0
  483. package/dist/transforms/concept-to-gloss.transform.js +60 -0
  484. package/dist/transforms/concept-to-gloss.transform.js.map +1 -0
  485. package/dist/transforms/index.d.ts +2 -0
  486. package/dist/transforms/index.d.ts.map +1 -0
  487. package/{src/transforms/index.ts → dist/transforms/index.js} +1 -0
  488. package/dist/transforms/index.js.map +1 -0
  489. package/dist/utils/assertions.d.ts +4 -0
  490. package/dist/utils/assertions.d.ts.map +1 -0
  491. package/dist/utils/assertions.js +17 -0
  492. package/dist/utils/assertions.js.map +1 -0
  493. package/dist/uuid.d.ts +4 -0
  494. package/dist/uuid.d.ts.map +1 -0
  495. package/dist/uuid.js +23 -0
  496. package/dist/uuid.js.map +1 -0
  497. package/dist/v1-reader.d.ts +8 -0
  498. package/dist/v1-reader.d.ts.map +1 -0
  499. package/dist/v1-reader.js +56 -0
  500. package/dist/v1-reader.js.map +1 -0
  501. package/dist/validators/asset-index.d.ts +23 -0
  502. package/dist/validators/asset-index.d.ts.map +1 -0
  503. package/dist/validators/asset-index.js +58 -0
  504. package/dist/validators/asset-index.js.map +1 -0
  505. package/dist/validators/binary-has-part-redundancy-rule.d.ts +8 -0
  506. package/dist/validators/binary-has-part-redundancy-rule.d.ts.map +1 -0
  507. package/dist/validators/binary-has-part-redundancy-rule.js +57 -0
  508. package/dist/validators/binary-has-part-redundancy-rule.js.map +1 -0
  509. package/dist/validators/concept-validator.d.ts +21 -0
  510. package/dist/validators/concept-validator.d.ts.map +1 -0
  511. package/dist/validators/concept-validator.js +76 -0
  512. package/dist/validators/concept-validator.js.map +1 -0
  513. package/dist/validators/delimiting-coherence-rule.d.ts +8 -0
  514. package/dist/validators/delimiting-coherence-rule.d.ts.map +1 -0
  515. package/dist/validators/delimiting-coherence-rule.js +72 -0
  516. package/dist/validators/delimiting-coherence-rule.js.map +1 -0
  517. package/dist/validators/external-concept-shape-rule.d.ts +8 -0
  518. package/dist/validators/external-concept-shape-rule.d.ts.map +1 -0
  519. package/dist/validators/external-concept-shape-rule.js +48 -0
  520. package/dist/validators/external-concept-shape-rule.js.map +1 -0
  521. package/dist/validators/gcr-validator.d.ts +11 -0
  522. package/dist/validators/gcr-validator.d.ts.map +1 -0
  523. package/dist/validators/gcr-validator.js +76 -0
  524. package/dist/validators/gcr-validator.js.map +1 -0
  525. package/dist/validators/hyperedge-coherence-rule.d.ts +9 -0
  526. package/dist/validators/hyperedge-coherence-rule.d.ts.map +1 -0
  527. package/dist/validators/hyperedge-coherence-rule.js +78 -0
  528. package/dist/validators/hyperedge-coherence-rule.js.map +1 -0
  529. package/dist/validators/index.d.ts +21 -0
  530. package/dist/validators/index.d.ts.map +1 -0
  531. package/{src/validators/index.ts → dist/validators/index.js} +25 -51
  532. package/dist/validators/index.js.map +1 -0
  533. package/dist/validators/partitive-relation-coherence-rule.d.ts +2 -0
  534. package/dist/validators/partitive-relation-coherence-rule.d.ts.map +1 -0
  535. package/{src/validators/partitive-relation-coherence-rule.ts → dist/validators/partitive-relation-coherence-rule.js} +1 -1
  536. package/dist/validators/partitive-relation-coherence-rule.js.map +1 -0
  537. package/dist/validators/ref-keys.d.ts +8 -0
  538. package/dist/validators/ref-keys.d.ts.map +1 -0
  539. package/dist/validators/ref-keys.js +27 -0
  540. package/dist/validators/ref-keys.js.map +1 -0
  541. package/dist/validators/register-validator.d.ts +10 -0
  542. package/dist/validators/register-validator.d.ts.map +1 -0
  543. package/dist/validators/register-validator.js +18 -0
  544. package/dist/validators/register-validator.js.map +1 -0
  545. package/dist/validators/relationship-type-rule.d.ts +13 -0
  546. package/dist/validators/relationship-type-rule.d.ts.map +1 -0
  547. package/dist/validators/relationship-type-rule.js +34 -0
  548. package/dist/validators/relationship-type-rule.js.map +1 -0
  549. package/dist/validators/sourced-from-locality-rule.d.ts +8 -0
  550. package/dist/validators/sourced-from-locality-rule.d.ts.map +1 -0
  551. package/dist/validators/sourced-from-locality-rule.js +37 -0
  552. package/dist/validators/sourced-from-locality-rule.js.map +1 -0
  553. package/dist/validators/v3-rules.d.ts +60 -0
  554. package/dist/validators/v3-rules.d.ts.map +1 -0
  555. package/dist/validators/v3-rules.js +327 -0
  556. package/dist/validators/v3-rules.js.map +1 -0
  557. package/dist/validators/validation-error.d.ts +13 -0
  558. package/dist/validators/validation-error.d.ts.map +1 -0
  559. package/dist/validators/validation-error.js +17 -0
  560. package/dist/validators/validation-error.js.map +1 -0
  561. package/dist/validators/validation-result.d.ts +17 -0
  562. package/dist/validators/validation-result.d.ts.map +1 -0
  563. package/dist/validators/validation-result.js +47 -0
  564. package/dist/validators/validation-result.js.map +1 -0
  565. package/dist/validators/validation-rule.d.ts +10 -0
  566. package/dist/validators/validation-rule.d.ts.map +1 -0
  567. package/dist/validators/validation-rule.js +17 -0
  568. package/dist/validators/validation-rule.js.map +1 -0
  569. package/package.json +37 -42
  570. package/src/concept-collection.ts +0 -166
  571. package/src/concept-parser.ts +0 -229
  572. package/src/concept-reader.d.ts +0 -13
  573. package/src/concept-serializer.ts +0 -99
  574. package/src/concept-writer.d.ts +0 -7
  575. package/src/concept-writer.ts +0 -43
  576. package/src/diff/canonical-json.ts +0 -29
  577. package/src/diff/change.ts +0 -175
  578. package/src/diff/collection-diff.ts +0 -197
  579. package/src/diff/concept-diff.ts +0 -702
  580. package/src/diff/diff-patch.ts +0 -260
  581. package/src/diff/diff-renderer.ts +0 -293
  582. package/src/diff/identity.ts +0 -33
  583. package/src/diff/index.d.ts +0 -242
  584. package/src/diff/index.ts +0 -50
  585. package/src/diff/list-diff.ts +0 -231
  586. package/src/diff/similarity.ts +0 -20
  587. package/src/diff/text-diff.ts +0 -167
  588. package/src/entity-directory.ts +0 -43
  589. package/src/errors.d.ts +0 -11
  590. package/src/errors.ts +0 -24
  591. package/src/gcr-reader.d.ts +0 -65
  592. package/src/gcr-reader.ts +0 -487
  593. package/src/gcr-writer.d.ts +0 -22
  594. package/src/gcr-writer.ts +0 -97
  595. package/src/index.d.ts +0 -124
  596. package/src/managed-concept-collection.ts +0 -95
  597. package/src/migration/hyperedge-migrator.ts +0 -104
  598. package/src/models/abstract-hyperedge.ts +0 -164
  599. package/src/models/base.ts +0 -110
  600. package/src/models/bibliography-data.ts +0 -64
  601. package/src/models/bibliography-entry.ts +0 -40
  602. package/src/models/citation.ts +0 -98
  603. package/src/models/concept-date.ts +0 -48
  604. package/src/models/concept-ref.ts +0 -64
  605. package/src/models/concept-reference.ts +0 -50
  606. package/src/models/concept-source.ts +0 -96
  607. package/src/models/concept-system-type.ts +0 -39
  608. package/src/models/concept-system.ts +0 -152
  609. package/src/models/concept.ts +0 -499
  610. package/src/models/dataset-color.ts +0 -88
  611. package/src/models/designation-relationship.ts +0 -39
  612. package/src/models/designation.ts +0 -297
  613. package/src/models/detailed-definition.ts +0 -92
  614. package/src/models/enum.ts +0 -60
  615. package/src/models/equivalence-degree.ts +0 -34
  616. package/src/models/figure.ts +0 -110
  617. package/src/models/formula.ts +0 -36
  618. package/src/models/gcr-metadata.ts +0 -118
  619. package/src/models/gcr-statistics.ts +0 -76
  620. package/src/models/generic-hyperedge.ts +0 -72
  621. package/src/models/generic-member.ts +0 -80
  622. package/src/models/grammar-info.ts +0 -78
  623. package/src/models/hyperedge-colors.ts +0 -87
  624. package/src/models/hyperedge-index.ts +0 -101
  625. package/src/models/hyperedge-member.ts +0 -121
  626. package/src/models/hyperedge-registry.ts +0 -145
  627. package/src/models/index.d.ts +0 -586
  628. package/src/models/locality.ts +0 -34
  629. package/src/models/localized-concept.ts +0 -284
  630. package/src/models/localized-string.ts +0 -32
  631. package/src/models/multiplicity.ts +0 -134
  632. package/src/models/non-verb-rep.ts +0 -48
  633. package/src/models/non-verbal-entity.ts +0 -65
  634. package/src/models/non-verbal-reference.ts +0 -73
  635. package/src/models/non-verbal-references.ts +0 -29
  636. package/src/models/partitive-enumeration.ts +0 -27
  637. package/src/models/partitive-hyperedge.ts +0 -90
  638. package/src/models/partitive-member.ts +0 -56
  639. package/src/models/plurality-marker.ts +0 -31
  640. package/src/models/pronunciation.ts +0 -40
  641. package/src/models/register.ts +0 -315
  642. package/src/models/registrable.ts +0 -48
  643. package/src/models/related-concept.ts +0 -117
  644. package/src/models/relation-categories.ts +0 -167
  645. package/src/models/relation-colors.ts +0 -90
  646. package/src/models/relation-loader.ts +0 -115
  647. package/src/models/section.ts +0 -61
  648. package/src/models/sequential-hyperedge.ts +0 -70
  649. package/src/models/shared-non-verbal-entity.ts +0 -36
  650. package/src/models/table.ts +0 -36
  651. package/src/rdf/agents-emitter.ts +0 -134
  652. package/src/rdf/bibliography-emitter.ts +0 -126
  653. package/src/rdf/bnode-id.ts +0 -55
  654. package/src/rdf/build-activity-emitter.ts +0 -129
  655. package/src/rdf/curie.ts +0 -47
  656. package/src/rdf/dataset-emitter.ts +0 -170
  657. package/src/rdf/deterministic-id.ts +0 -69
  658. package/src/rdf/document-writer.ts +0 -87
  659. package/src/rdf/gloss-concept.ts +0 -115
  660. package/src/rdf/gloss-designation.ts +0 -72
  661. package/src/rdf/gloss-detailed-definition.ts +0 -69
  662. package/src/rdf/gloss-localized-concept.ts +0 -79
  663. package/src/rdf/gloss-non-verbal-rep.ts +0 -192
  664. package/src/rdf/gloss-partitive-relation.ts +0 -89
  665. package/src/rdf/gloss-source.ts +0 -56
  666. package/src/rdf/group-emitter.ts +0 -133
  667. package/src/rdf/image-variant-emitter.ts +0 -80
  668. package/src/rdf/index.d.ts +0 -371
  669. package/src/rdf/predicates.d.ts +0 -527
  670. package/src/rdf/predicates.ts +0 -287
  671. package/src/rdf/provenance-emitter.ts +0 -87
  672. package/src/rdf/sections-builder.ts +0 -178
  673. package/src/rdf/shacl-entry.d.ts +0 -6
  674. package/src/rdf/version-emitter.ts +0 -97
  675. package/src/rdf/vocabulary-emitter.ts +0 -67
  676. package/src/rdf/write-turtle-sync.ts +0 -167
  677. package/src/reference-mention.ts +0 -114
  678. package/src/reference-resolver.ts +0 -331
  679. package/src/render-classification.ts +0 -76
  680. package/src/sort.ts +0 -22
  681. package/src/transforms/concept-to-gloss.transform.ts +0 -81
  682. package/src/transforms/index.d.ts +0 -26
  683. package/src/uuid.ts +0 -32
  684. package/src/v1-reader.ts +0 -64
  685. package/src/validators/asset-index.ts +0 -67
  686. package/src/validators/binary-has-part-redundancy-rule.ts +0 -67
  687. package/src/validators/concept-validator.ts +0 -93
  688. package/src/validators/delimiting-coherence-rule.ts +0 -105
  689. package/src/validators/external-concept-shape-rule.ts +0 -60
  690. package/src/validators/gcr-validator.ts +0 -75
  691. package/src/validators/hyperedge-coherence-rule.ts +0 -98
  692. package/src/validators/index.d.ts +0 -43
  693. package/src/validators/ref-keys.ts +0 -31
  694. package/src/validators/register-validator.ts +0 -18
  695. package/src/validators/relationship-type-rule.ts +0 -39
  696. package/src/validators/sourced-from-locality-rule.ts +0 -53
  697. package/src/validators/v3-rules.ts +0 -378
  698. package/src/validators/validation-error.ts +0 -19
  699. package/src/validators/validation-result.ts +0 -52
  700. package/src/validators/validation-rule.ts +0 -21
@@ -1,13 +0,0 @@
1
- import type { Concept, Register } from './models/index';
2
-
3
- /** Read all concept YAML files from a directory. */
4
- export function readConcepts(dir: string): Concept[];
5
-
6
- /** Read a single concept by ID from a directory. */
7
- export function readConcept(dir: string, id: string): Concept | null;
8
-
9
- /** List all concept IDs in a directory, optionally filtered by prefix. */
10
- export function listConceptIds(dir: string, prefix?: string): string[];
11
-
12
- /** Read register.yaml from a dataset directory (if present). */
13
- export function readRegister(dir: string): Register | null;
@@ -1,99 +0,0 @@
1
- // @ts-nocheck — TEMPORARY during TS migration. TODO(Phase 2e): remove and type fully.
2
- import * as yaml from 'js-yaml';
3
- import { PartitiveHyperedge } from './models/partitive-hyperedge.js';
4
- import { GenericHyperedge } from './models/generic-hyperedge.js';
5
-
6
- const DUMP_OPTS = { lineWidth: -1, noRefs: true, sortKeys: false, skipInvalid: true };
7
-
8
- // Partition the unified relations array by concrete type and emit
9
- // each type under its own wire key. Concept.relations holds mixed
10
- // types; the wire format stays split for backward compat with
11
- // existing consumers and the JSON Schema in concept-model.
12
- function _emitTypedRelations(concept) {
13
- const partitiveRels = concept.relations.filter(r => r instanceof PartitiveHyperedge);
14
- const genericRels = concept.relations.filter(r => r instanceof GenericHyperedge);
15
- return {
16
- partitive: partitiveRels.map(r => r.toJSON()),
17
- generic: genericRels.map(r => r.toJSON()),
18
- };
19
- }
20
-
21
- export class ConceptSerializer {
22
- toCanonicalYaml(concept) {
23
- const doc = { termid: concept.id };
24
- if (concept.term) doc.term = concept.term;
25
-
26
- const { partitive, generic } = _emitTypedRelations(concept);
27
- if (partitive.length > 0) doc.partitive_relations = partitive;
28
- if (generic.length > 0) doc.generic_relations = generic;
29
-
30
- for (const lang of concept.languages) {
31
- const lc = concept.localization(lang);
32
- if (lc) {
33
- const lcObj = lc.toJSON();
34
- delete lcObj.language_code;
35
- doc[lang] = lcObj;
36
- }
37
- }
38
-
39
- return yaml.dump(doc, DUMP_OPTS);
40
- }
41
-
42
- toManagedYaml(concept, uuidFn) {
43
- const genId = uuidFn ?? (() => crypto.randomUUID());
44
- const localizedConcepts = {};
45
- const langDocs = [];
46
-
47
- for (const lang of concept.languages) {
48
- const lc = concept.localization(lang);
49
- if (!lc) continue;
50
- const lcId = genId();
51
- localizedConcepts[lang] = lcId;
52
-
53
- const lcObj = lc.toJSON();
54
- langDocs.push({ data: lcObj, id: lcId });
55
- }
56
-
57
- const mainDoc = {
58
- data: { identifier: concept.id, localized_concepts: localizedConcepts },
59
- id: genId(),
60
- };
61
-
62
- if (concept.domains.length > 0) {
63
- mainDoc.data.domains = concept.domains.map(d => d.toJSON());
64
- }
65
-
66
- if (concept.relatedConcepts.length > 0) {
67
- mainDoc.related = concept.relatedConcepts.map(rc => rc.toJSON());
68
- }
69
- const { partitive, generic } = _emitTypedRelations(concept);
70
- if (partitive.length > 0) mainDoc.partitive_relations = partitive;
71
- if (generic.length > 0) mainDoc.generic_relations = generic;
72
- if (concept.sources.length > 0) {
73
- mainDoc.sources = concept.sources.map(s => s.toJSON());
74
- }
75
- if (concept.dates.length > 0) {
76
- mainDoc.dates = concept.dates.map(d => d.toJSON());
77
- }
78
- if (concept.status) mainDoc.status = concept.status;
79
- if (concept.schemaVersion) mainDoc.schema_version = concept.schemaVersion;
80
-
81
- const parts = [
82
- '---\n' + yaml.dump(mainDoc, DUMP_OPTS),
83
- ...langDocs.map(d => '---\n' + yaml.dump(d, DUMP_OPTS)),
84
- ];
85
- return parts.join('');
86
- }
87
-
88
- toYaml(concept, uuidFn) {
89
- return concept.term
90
- ? this.toCanonicalYaml(concept)
91
- : this.toManagedYaml(concept, uuidFn);
92
- }
93
-
94
- toRegisterYaml(data) {
95
- return yaml.dump(data, DUMP_OPTS);
96
- }
97
- }
98
-
99
- export const conceptSerializer = new ConceptSerializer();
@@ -1,7 +0,0 @@
1
- import { Concept } from './models/index';
2
-
3
- export function writeConcept(dir: string, concept: Concept, format?: 'canonical' | 'managed' | 'auto'): void;
4
- export function writeConcepts(dir: string, concepts: Concept[], options?: {
5
- register?: Record<string, unknown>;
6
- format?: 'canonical' | 'managed' | 'auto';
7
- }): void;
@@ -1,43 +0,0 @@
1
- // @ts-nocheck — TEMPORARY during TS migration. TODO(Phase 2e): remove and type fully.
2
- import fs from 'fs';
3
- import path from 'path';
4
- import { conceptSerializer } from './concept-serializer.js';
5
- import { InvalidInputError } from './errors.js';
6
-
7
- function assertDir(dir, fnName) {
8
- if (typeof dir !== 'string' || dir.trim() === '') {
9
- throw new InvalidInputError(`${fnName} requires a directory path`, 'non-empty string');
10
- }
11
- }
12
-
13
- export function writeConcept(dir, concept, format = 'auto') {
14
- assertDir(dir, 'writeConcept');
15
- if (!concept?.id) {
16
- throw new InvalidInputError('writeConcept requires a Concept with an id', 'Concept');
17
- }
18
-
19
- const y = format === 'canonical'
20
- ? conceptSerializer.toCanonicalYaml(concept)
21
- : format === 'managed'
22
- ? conceptSerializer.toManagedYaml(concept)
23
- : conceptSerializer.toYaml(concept);
24
-
25
- fs.writeFileSync(path.join(dir, `${concept.id}.yaml`), y, 'utf8');
26
- }
27
-
28
- export function writeConcepts(dir, concepts, options = {}) {
29
- assertDir(dir, 'writeConcepts');
30
- fs.mkdirSync(dir, { recursive: true });
31
-
32
- for (const concept of concepts) {
33
- writeConcept(dir, concept, options.format);
34
- }
35
-
36
- if (options.register) {
37
- fs.writeFileSync(
38
- path.join(dir, 'register.yaml'),
39
- conceptSerializer.toRegisterYaml(options.register),
40
- 'utf8',
41
- );
42
- }
43
- }
@@ -1,29 +0,0 @@
1
- // Canonical JSON for equality comparison.
2
- //
3
- // Sorts object keys recursively so two semantically-equal values produce
4
- // identical strings regardless of insertion order. Arrays preserve order
5
- // (they're ordered in domain semantics). Undefined values are dropped.
6
-
7
- type JsonInput = null | undefined | string | number | boolean | JsonInput[] | { [k: string]: JsonInput };
8
-
9
- export function canonicalJson(value: JsonInput | unknown): string {
10
- return JSON.stringify(toCanonical(value as JsonInput));
11
- }
12
-
13
- export function deepEqualCanonical(a: JsonInput | unknown, b: JsonInput | unknown): boolean {
14
- return canonicalJson(a) === canonicalJson(b);
15
- }
16
-
17
- function toCanonical(value: JsonInput): unknown {
18
- if (value == null) return null;
19
- if (Array.isArray(value)) return value.map(toCanonical);
20
- if (typeof value === 'object') {
21
- const out: Record<string, unknown> = {};
22
- for (const k of Object.keys(value).sort()) {
23
- const v = toCanonical((value as Record<string, JsonInput>)[k] as JsonInput);
24
- if (v !== undefined) out[k] = v;
25
- }
26
- return out;
27
- }
28
- return value;
29
- }
@@ -1,175 +0,0 @@
1
- import { GlossaristModel } from '../models/base.js';
2
- import { TextDiff } from './text-diff.js';
3
- import type { TextDiffJson } from './text-diff.js';
4
-
5
- export const CHANGE_ADDED = 'added';
6
- export const CHANGE_REMOVED = 'removed';
7
- export const CHANGE_CHANGED = 'changed';
8
- export const CHANGE_MATCHED = 'matched';
9
-
10
- export type ChangeType = 'added' | 'removed' | 'changed' | 'matched';
11
-
12
- export interface ChangeJson {
13
- type: ChangeType;
14
- path?: string | null;
15
- value?: unknown;
16
- old_value?: unknown;
17
- oldValue?: unknown;
18
- new_value?: unknown;
19
- newValue?: unknown;
20
- text_diff?: TextDiffJson;
21
- textDiff?: TextDiffJson;
22
- }
23
-
24
- function serializeValue(v: unknown): unknown {
25
- if (v == null) return null;
26
- if (v instanceof GlossaristModel) return v.toJSON();
27
- if (Array.isArray(v)) return v.map(serializeValue);
28
- if (typeof v === 'object') {
29
- const out: Record<string, unknown> = {};
30
- for (const [k, val] of Object.entries(v as Record<string, unknown>)) {
31
- out[k] = serializeValue(val);
32
- }
33
- return out;
34
- }
35
- return v;
36
- }
37
-
38
- export class Change extends GlossaristModel {
39
- readonly path: string | null;
40
-
41
- constructor(data: Pick<ChangeJson, 'path'> = {}) {
42
- super();
43
- this.path = data.path ?? null;
44
- }
45
-
46
- get type(): ChangeType {
47
- throw new Error(`${this.constructor.name} must override type getter`);
48
- }
49
-
50
- static override fromJSON(data: ChangeJson): Change {
51
- return deserializeChange(data);
52
- }
53
- }
54
-
55
- export class Added extends Change {
56
- readonly value: unknown;
57
-
58
- constructor(data: Pick<ChangeJson, 'path' | 'value'> = {}) {
59
- super(data);
60
- this.value = data.value ?? null;
61
- }
62
-
63
- override get type(): ChangeType { return CHANGE_ADDED; }
64
-
65
- override toJSON(): ChangeJson {
66
- const obj: ChangeJson = { type: CHANGE_ADDED };
67
- if (this.path != null) obj.path = this.path;
68
- obj.value = serializeValue(this.value);
69
- return obj;
70
- }
71
-
72
- static override fromJSON(data: ChangeJson): Added {
73
- return new Added(data as Pick<ChangeJson, 'path' | 'value'>);
74
- }
75
- }
76
-
77
- export class Removed extends Change {
78
- readonly value: unknown;
79
-
80
- constructor(data: Pick<ChangeJson, 'path' | 'value'> = {}) {
81
- super(data);
82
- this.value = data.value ?? null;
83
- }
84
-
85
- override get type(): ChangeType { return CHANGE_REMOVED; }
86
-
87
- override toJSON(): ChangeJson {
88
- const obj: ChangeJson = { type: CHANGE_REMOVED };
89
- if (this.path != null) obj.path = this.path;
90
- obj.value = serializeValue(this.value);
91
- return obj;
92
- }
93
-
94
- static override fromJSON(data: ChangeJson): Removed {
95
- return new Removed(data as Pick<ChangeJson, 'path' | 'value'>);
96
- }
97
- }
98
-
99
- export interface ChangedConstructorData {
100
- path?: string | null;
101
- oldValue?: unknown;
102
- old_value?: unknown;
103
- newValue?: unknown;
104
- new_value?: unknown;
105
- textDiff?: TextDiff | TextDiffJson;
106
- text_diff?: TextDiffJson;
107
- }
108
-
109
- export class Changed extends Change {
110
- readonly oldValue: unknown;
111
- readonly newValue: unknown;
112
- private readonly _textDiff: TextDiff | null;
113
-
114
- constructor(data: ChangedConstructorData = {}) {
115
- super(data as Pick<ChangeJson, 'path'>);
116
- this.oldValue = data.oldValue ?? data.old_value ?? null;
117
- this.newValue = data.newValue ?? data.new_value ?? null;
118
- const td = data.textDiff ?? data.text_diff;
119
- this._textDiff = td instanceof TextDiff ? td : td ? TextDiff.fromJSON(td) : null;
120
- }
121
-
122
- override get type(): ChangeType { return CHANGE_CHANGED; }
123
-
124
- get textDiff(): TextDiff | null {
125
- return this._textDiff;
126
- }
127
-
128
- override toJSON(): ChangeJson {
129
- const obj: ChangeJson = { type: CHANGE_CHANGED };
130
- if (this.path != null) obj.path = this.path;
131
- obj.old_value = serializeValue(this.oldValue);
132
- obj.new_value = serializeValue(this.newValue);
133
- if (this._textDiff) obj.text_diff = this._textDiff.toJSON() as TextDiffJson;
134
- return obj;
135
- }
136
-
137
- static override fromJSON(data: ChangeJson): Changed {
138
- return new Changed(data as Required<Pick<ChangeJson, never>>);
139
- }
140
- }
141
-
142
- // Matched is for set-membership records that exist in both sides of a
143
- // comparison but have no directionality — used by ConceptCollectionDiff.
144
- export class Matched extends Change {
145
- readonly value: unknown;
146
-
147
- constructor(data: Pick<ChangeJson, 'path' | 'value'> = {}) {
148
- super(data);
149
- this.value = data.value ?? null;
150
- }
151
-
152
- override get type(): ChangeType { return CHANGE_MATCHED; }
153
-
154
- override toJSON(): ChangeJson {
155
- const obj: ChangeJson = { type: CHANGE_MATCHED };
156
- if (this.path != null) obj.path = this.path;
157
- obj.value = serializeValue(this.value);
158
- return obj;
159
- }
160
-
161
- static override fromJSON(data: ChangeJson): Matched {
162
- return new Matched(data as Pick<ChangeJson, 'path' | 'value'>);
163
- }
164
- }
165
-
166
- export function deserializeChange(data: ChangeJson): Change {
167
- switch (data?.type) {
168
- case CHANGE_ADDED: return Added.fromJSON(data);
169
- case CHANGE_REMOVED: return Removed.fromJSON(data);
170
- case CHANGE_CHANGED: return Changed.fromJSON(data);
171
- case CHANGE_MATCHED: return Matched.fromJSON(data);
172
- default:
173
- throw new Error(`Unknown change type: ${(data as { type?: string })?.type}`);
174
- }
175
- }
@@ -1,197 +0,0 @@
1
- // @ts-nocheck — TEMPORARY during TS migration. TODO(Phase 2e): remove and type fully.
2
- import { GlossaristModel } from '../models/base.js';
3
- import { Added, Removed, Matched, deserializeChange } from './change.js';
4
- import { ConceptDiff, DiffStats, diffConcepts } from './concept-diff.js';
5
- import { averageSimilarity } from './similarity.js';
6
-
7
- export class ConceptCollectionDiff extends GlossaristModel {
8
- constructor(data: Record<string, unknown> = {}) {
9
- super();
10
- this.oldCount = data.oldCount ?? data.old_count ?? 0;
11
- this.newCount = data.newCount ?? data.new_count ?? 0;
12
-
13
- this._matched = wrapIdList(data.matched, Matched);
14
- this._added = wrapIdList(data.added, Added);
15
- this._removed = wrapIdList(data.removed, Removed);
16
-
17
- this._conceptDiffs = {};
18
- const raw = data.conceptDiffs ?? data.concept_diffs ?? {};
19
- for (const [id, diff] of Object.entries(raw)) {
20
- this._conceptDiffs[id] = diff instanceof ConceptDiff
21
- ? diff
22
- : ConceptDiff.fromJSON(diff);
23
- }
24
- this._statsCache = undefined;
25
- this._similarityCache = undefined;
26
- }
27
-
28
- get matched() { return this._matched; }
29
- get added() { return this._added; }
30
- get removed() { return this._removed; }
31
- get conceptDiffs() { return this._conceptDiffs; }
32
-
33
- get changedIds() {
34
- return Object.keys(this._conceptDiffs);
35
- }
36
-
37
- get hasChanges() {
38
- return this._added.length > 0
39
- || this._removed.length > 0
40
- || Object.values(this._conceptDiffs).some(d => d.hasChanges);
41
- }
42
-
43
- conceptDiff(id) {
44
- return this._conceptDiffs[id] ?? null;
45
- }
46
-
47
- get stats() {
48
- if (this._statsCache === undefined) {
49
- let added = this._added.length;
50
- let removed = this._removed.length;
51
- let changed = 0;
52
- for (const diff of Object.values(this._conceptDiffs)) {
53
- const s = diff.stats;
54
- added += s.added;
55
- removed += s.removed;
56
- changed += s.changed;
57
- }
58
- this._statsCache = new DiffStats({ added, removed, changed });
59
- }
60
- return this._statsCache;
61
- }
62
-
63
- get similarity() {
64
- if (this._similarityCache === undefined) {
65
- if (this._matched.length === 0) {
66
- this._similarityCache = 0;
67
- } else {
68
- const values = this._matched.map(entry => {
69
- const id = entry.value;
70
- const diff = this._conceptDiffs[id];
71
- return diff ? diff.similarity : 1.0;
72
- });
73
- this._similarityCache = averageSimilarity(values);
74
- }
75
- }
76
- return this._similarityCache;
77
- }
78
-
79
- *walk() {
80
- for (let i = 0; i < this._added.length; i++) {
81
- yield { path: `added[${i}]`, change: this._added[i] };
82
- }
83
- for (let i = 0; i < this._removed.length; i++) {
84
- yield { path: `removed[${i}]`, change: this._removed[i] };
85
- }
86
- for (const [id, diff] of Object.entries(this._conceptDiffs)) {
87
- for (const entry of diff.walk()) {
88
- yield { path: `concepts.${id}.${entry.path}`, change: entry.change, conceptId: id, language: entry.language };
89
- }
90
- }
91
- }
92
-
93
- toJSON() {
94
- const obj = {
95
- old_count: this.oldCount,
96
- new_count: this.newCount,
97
- matched: this._matched.map(c => c.toJSON()),
98
- added: this._added.map(c => c.toJSON()),
99
- removed: this._removed.map(c => c.toJSON()),
100
- concept_diffs: {},
101
- };
102
- for (const [id, diff] of Object.entries(this._conceptDiffs)) {
103
- obj.concept_diffs[id] = diff.toJSON();
104
- }
105
- return obj;
106
- }
107
-
108
- static fromJSON(data) {
109
- return new ConceptCollectionDiff(data);
110
- }
111
- }
112
-
113
- export function diffConceptCollections(oldCollection, newCollection, options = {}) {
114
- const language = options.language ?? 'eng';
115
-
116
- const oldConcepts = extractConcepts(oldCollection);
117
- const newConcepts = extractConcepts(newCollection);
118
-
119
- const oldMap = new Map(oldConcepts.map(c => [c.id, c]));
120
- const newMap = new Map(newConcepts.map(c => [c.id, c]));
121
-
122
- const oldIds = new Set(oldMap.keys());
123
- const newIds = new Set(newMap.keys());
124
-
125
- const matchedIds = [...newIds].filter(id => oldIds.has(id)).sort();
126
- const addedIds = [...newIds].filter(id => !oldIds.has(id)).sort();
127
- const removedIds = [...oldIds].filter(id => !newIds.has(id)).sort();
128
-
129
- const conceptDiffs = {};
130
- for (const id of matchedIds) {
131
- const oldConcept = oldMap.get(id);
132
- const newConcept = newMap.get(id);
133
-
134
- if (options.skipUnchanged && conceptsEqual(oldConcept, newConcept)) {
135
- continue;
136
- }
137
-
138
- const diff = diffConcepts(oldConcept, newConcept, language);
139
- if (diff.hasChanges || !options.skipUnchanged) {
140
- conceptDiffs[id] = diff;
141
- }
142
- }
143
-
144
- return new ConceptCollectionDiff({
145
- oldCount: oldConcepts.length,
146
- newCount: newConcepts.length,
147
- matched: matchedIds.map(id => new Matched({ value: id })),
148
- added: addedIds.map(id => new Added({ value: id })),
149
- removed: removedIds.map(id => new Removed({ value: id })),
150
- conceptDiffs,
151
- });
152
- }
153
-
154
- function extractConcepts(collection) {
155
- if (collection == null) return [];
156
- if (Array.isArray(collection)) return collection;
157
- if (typeof collection.toArray === 'function') return collection.toArray();
158
- if (Symbol.iterator in Object(collection)) return [...collection];
159
- return [];
160
- }
161
-
162
- function conceptsEqual(a, b) {
163
- if (a === b) return true;
164
- if (!a || !b) return false;
165
- if (typeof a.equals === 'function' && typeof b.equals === 'function') {
166
- return a.equals(b);
167
- }
168
- return JSON.stringify(a?.toJSON?.()) === JSON.stringify(b?.toJSON?.());
169
- }
170
-
171
- // `wrapIdList` deserializes each entry via deserializeChange, which
172
- // dispatches on `type`. The `expectedClass` parameter is a defensive
173
- // check: if the entry's deserialized type doesn't match the slot it's
174
- // being loaded into, throw. Prevents the round-1 bug where removed
175
- // entries silently became Added after a JSON round-trip.
176
- function wrapIdList(data, expectedClass) {
177
- if (!data) return [];
178
- return data.map(c => {
179
- if (c instanceof Added || c instanceof Removed || c instanceof Matched) {
180
- if (!(c instanceof expectedClass)) {
181
- throw new Error(
182
- `ConceptCollectionDiff: entry type ${c.constructor.name} ` +
183
- `does not match slot ${expectedClass.name}`,
184
- );
185
- }
186
- return c;
187
- }
188
- const deserialized = deserializeChange(c);
189
- if (!(deserialized instanceof expectedClass)) {
190
- throw new Error(
191
- `ConceptCollectionDiff: deserialized entry type ` +
192
- `${deserialized.constructor.name} does not match slot ${expectedClass.name}`,
193
- );
194
- }
195
- return deserialized;
196
- });
197
- }