glossarist 0.4.50 → 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 -57
  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 -172
  571. package/src/concept-parser.ts +0 -235
  572. package/src/concept-reader.d.ts +0 -13
  573. package/src/concept-serializer.ts +0 -110
  574. package/src/concept-writer.d.ts +0 -7
  575. package/src/concept-writer.ts +0 -47
  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 -245
  579. package/src/diff/concept-diff.ts +0 -853
  580. package/src/diff/diff-patch.ts +0 -276
  581. package/src/diff/diff-renderer.ts +0 -348
  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 -512
  593. package/src/gcr-writer.d.ts +0 -22
  594. package/src/gcr-writer.ts +0 -99
  595. package/src/index.d.ts +0 -124
  596. package/src/managed-concept-collection.ts +0 -130
  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 -137
  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 -46
  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 -202
  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 -190
  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 -179
  677. package/src/reference-mention.ts +0 -114
  678. package/src/reference-resolver.ts +0 -361
  679. package/src/render-classification.ts +0 -85
  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 -66
  685. package/src/validators/asset-index.ts +0 -72
  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 -76
  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 -382
  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,110 +0,0 @@
1
- import * as yaml from 'js-yaml';
2
- import { PartitiveHyperedge } from './models/partitive-hyperedge.js';
3
- import { GenericHyperedge } from './models/generic-hyperedge.js';
4
-
5
- const DUMP_OPTS = { lineWidth: -1, noRefs: true, sortKeys: false, skipInvalid: true };
6
-
7
- // Partition the unified relations array by concrete type and emit
8
- // each type under its own wire key. Concept.relations holds mixed
9
- // types; the wire format stays split for backward compat with
10
- // existing consumers and the JSON Schema in concept-model.
11
- function _emitTypedRelations(concept) {
12
- const partitiveRels = concept.relations.filter(r => r instanceof PartitiveHyperedge);
13
- const genericRels = concept.relations.filter(r => r instanceof GenericHyperedge);
14
- return {
15
- partitive: partitiveRels.map(r => r.toJSON()),
16
- generic: genericRels.map(r => r.toJSON()),
17
- };
18
- }
19
-
20
- export class ConceptSerializer {
21
- toCanonicalYaml(concept) {
22
- const doc = { termid: concept.id };
23
- // @ts-expect-error TODO(Phase 2e): type this fully
24
- if (concept.term) doc.term = concept.term;
25
-
26
- const { partitive, generic } = _emitTypedRelations(concept);
27
- // @ts-expect-error TODO(Phase 2e): type this fully
28
- if (partitive.length > 0) doc.partitive_relations = partitive;
29
- // @ts-expect-error TODO(Phase 2e): type this fully
30
- if (generic.length > 0) doc.generic_relations = generic;
31
-
32
- for (const lang of concept.languages) {
33
- const lc = concept.localization(lang);
34
- if (lc) {
35
- const lcObj = lc.toJSON();
36
- delete lcObj.language_code;
37
- doc[lang] = lcObj;
38
- }
39
- }
40
-
41
- return yaml.dump(doc, DUMP_OPTS);
42
- }
43
-
44
- toManagedYaml(concept, uuidFn) {
45
- const genId = uuidFn ?? (() => crypto.randomUUID());
46
- const localizedConcepts = {};
47
- const langDocs = [];
48
-
49
- for (const lang of concept.languages) {
50
- const lc = concept.localization(lang);
51
- if (!lc) continue;
52
- const lcId = genId();
53
- localizedConcepts[lang] = lcId;
54
-
55
- const lcObj = lc.toJSON();
56
- // @ts-expect-error TODO(Phase 2e): type this fully
57
- langDocs.push({ data: lcObj, id: lcId });
58
- }
59
-
60
- const mainDoc = {
61
- data: { identifier: concept.id, localized_concepts: localizedConcepts },
62
- id: genId(),
63
- };
64
-
65
- if (concept.domains.length > 0) {
66
- // @ts-expect-error TODO(Phase 2e): type this fully
67
- mainDoc.data.domains = concept.domains.map(d => d.toJSON());
68
- }
69
-
70
- if (concept.relatedConcepts.length > 0) {
71
- // @ts-expect-error TODO(Phase 2e): type this fully
72
- mainDoc.related = concept.relatedConcepts.map(rc => rc.toJSON());
73
- }
74
- const { partitive, generic } = _emitTypedRelations(concept);
75
- // @ts-expect-error TODO(Phase 2e): type this fully
76
- if (partitive.length > 0) mainDoc.partitive_relations = partitive;
77
- // @ts-expect-error TODO(Phase 2e): type this fully
78
- if (generic.length > 0) mainDoc.generic_relations = generic;
79
- if (concept.sources.length > 0) {
80
- // @ts-expect-error TODO(Phase 2e): type this fully
81
- mainDoc.sources = concept.sources.map(s => s.toJSON());
82
- }
83
- if (concept.dates.length > 0) {
84
- // @ts-expect-error TODO(Phase 2e): type this fully
85
- mainDoc.dates = concept.dates.map(d => d.toJSON());
86
- }
87
- // @ts-expect-error TODO(Phase 2e): type this fully
88
- if (concept.status) mainDoc.status = concept.status;
89
- // @ts-expect-error TODO(Phase 2e): type this fully
90
- if (concept.schemaVersion) mainDoc.schema_version = concept.schemaVersion;
91
-
92
- const parts = [
93
- '---\n' + yaml.dump(mainDoc, DUMP_OPTS),
94
- ...langDocs.map(d => '---\n' + yaml.dump(d, DUMP_OPTS)),
95
- ];
96
- return parts.join('');
97
- }
98
-
99
- toYaml(concept, uuidFn) {
100
- return concept.term
101
- ? this.toCanonicalYaml(concept)
102
- : this.toManagedYaml(concept, uuidFn);
103
- }
104
-
105
- toRegisterYaml(data) {
106
- return yaml.dump(data, DUMP_OPTS);
107
- }
108
- }
109
-
110
- 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,47 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { conceptSerializer } from './concept-serializer.js';
4
- import { InvalidInputError } from './errors.js';
5
-
6
- function assertDir(dir, fnName) {
7
- if (typeof dir !== 'string' || dir.trim() === '') {
8
- throw new InvalidInputError(`${fnName} requires a directory path`, 'non-empty string');
9
- }
10
- }
11
-
12
- export function writeConcept(dir, concept, format = 'auto') {
13
- assertDir(dir, 'writeConcept');
14
- if (!concept?.id) {
15
- throw new InvalidInputError('writeConcept requires a Concept with an id', 'Concept');
16
- }
17
-
18
- const y = format === 'canonical'
19
- ? conceptSerializer.toCanonicalYaml(concept)
20
- : format === 'managed'
21
- // @ts-expect-error TODO(Phase 2e): type this fully
22
- ? conceptSerializer.toManagedYaml(concept)
23
- // @ts-expect-error TODO(Phase 2e): type this fully
24
- : conceptSerializer.toYaml(concept);
25
-
26
- fs.writeFileSync(path.join(dir, `${concept.id}.yaml`), y, 'utf8');
27
- }
28
-
29
- export function writeConcepts(dir, concepts, options = {}) {
30
- assertDir(dir, 'writeConcepts');
31
- fs.mkdirSync(dir, { recursive: true });
32
-
33
- for (const concept of concepts) {
34
- // @ts-expect-error TODO(Phase 2e): type this fully
35
- writeConcept(dir, concept, options.format);
36
- }
37
-
38
- // @ts-expect-error TODO(Phase 2e): type this fully
39
- if (options.register) {
40
- fs.writeFileSync(
41
- path.join(dir, 'register.yaml'),
42
- // @ts-expect-error TODO(Phase 2e): type this fully
43
- conceptSerializer.toRegisterYaml(options.register),
44
- 'utf8',
45
- );
46
- }
47
- }
@@ -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,245 +0,0 @@
1
- import { GlossaristModel } from '../models/base.js';
2
- import { Added, Removed, Matched, deserializeChange } from './change.js';
3
- import { ConceptDiff, DiffStats, diffConcepts } from './concept-diff.js';
4
- import { averageSimilarity } from './similarity.js';
5
-
6
- export class ConceptCollectionDiff extends GlossaristModel {
7
- constructor(data: Record<string, unknown> = {}) {
8
- super();
9
- // @ts-expect-error TODO(Phase 2e): type this fully
10
- this.oldCount = data.oldCount ?? data.old_count ?? 0;
11
- // @ts-expect-error TODO(Phase 2e): type this fully
12
- this.newCount = data.newCount ?? data.new_count ?? 0;
13
-
14
- // @ts-expect-error TODO(Phase 2e): type this fully
15
- this._matched = wrapIdList(data.matched, Matched);
16
- // @ts-expect-error TODO(Phase 2e): type this fully
17
- this._added = wrapIdList(data.added, Added);
18
- // @ts-expect-error TODO(Phase 2e): type this fully
19
- this._removed = wrapIdList(data.removed, Removed);
20
-
21
- // @ts-expect-error TODO(Phase 2e): type this fully
22
- this._conceptDiffs = {};
23
- const raw = data.conceptDiffs ?? data.concept_diffs ?? {};
24
- for (const [id, diff] of Object.entries(raw)) {
25
- // @ts-expect-error TODO(Phase 2e): type this fully
26
- this._conceptDiffs[id] = diff instanceof ConceptDiff
27
- ? diff
28
- : ConceptDiff.fromJSON(diff);
29
- }
30
- // @ts-expect-error TODO(Phase 2e): type this fully
31
- this._statsCache = undefined;
32
- // @ts-expect-error TODO(Phase 2e): type this fully
33
- this._similarityCache = undefined;
34
- }
35
-
36
- // @ts-expect-error TODO(Phase 2e): type this fully
37
- get matched() { return this._matched; }
38
- // @ts-expect-error TODO(Phase 2e): type this fully
39
- get added() { return this._added; }
40
- // @ts-expect-error TODO(Phase 2e): type this fully
41
- get removed() { return this._removed; }
42
- // @ts-expect-error TODO(Phase 2e): type this fully
43
- get conceptDiffs() { return this._conceptDiffs; }
44
-
45
- get changedIds() {
46
- // @ts-expect-error TODO(Phase 2e): type this fully
47
- return Object.keys(this._conceptDiffs);
48
- }
49
-
50
- get hasChanges() {
51
- // @ts-expect-error TODO(Phase 2e): type this fully
52
- return this._added.length > 0
53
- // @ts-expect-error TODO(Phase 2e): type this fully
54
- || this._removed.length > 0
55
- // @ts-expect-error TODO(Phase 2e): type this fully
56
- || Object.values(this._conceptDiffs).some(d => d.hasChanges);
57
- }
58
-
59
- conceptDiff(id) {
60
- // @ts-expect-error TODO(Phase 2e): type this fully
61
- return this._conceptDiffs[id] ?? null;
62
- }
63
-
64
- get stats() {
65
- // @ts-expect-error TODO(Phase 2e): type this fully
66
- if (this._statsCache === undefined) {
67
- // @ts-expect-error TODO(Phase 2e): type this fully
68
- let added = this._added.length;
69
- // @ts-expect-error TODO(Phase 2e): type this fully
70
- let removed = this._removed.length;
71
- let changed = 0;
72
- // @ts-expect-error TODO(Phase 2e): type this fully
73
- for (const diff of Object.values(this._conceptDiffs)) {
74
- // @ts-expect-error TODO(Phase 2e): type this fully
75
- const s = diff.stats;
76
- added += s.added;
77
- removed += s.removed;
78
- changed += s.changed;
79
- }
80
- // @ts-expect-error TODO(Phase 2e): type this fully
81
- this._statsCache = new DiffStats({ added, removed, changed });
82
- }
83
- // @ts-expect-error TODO(Phase 2e): type this fully
84
- return this._statsCache;
85
- }
86
-
87
- get similarity() {
88
- // @ts-expect-error TODO(Phase 2e): type this fully
89
- if (this._similarityCache === undefined) {
90
- // @ts-expect-error TODO(Phase 2e): type this fully
91
- if (this._matched.length === 0) {
92
- // @ts-expect-error TODO(Phase 2e): type this fully
93
- this._similarityCache = 0;
94
- } else {
95
- // @ts-expect-error TODO(Phase 2e): type this fully
96
- const values = this._matched.map(entry => {
97
- const id = entry.value;
98
- // @ts-expect-error TODO(Phase 2e): type this fully
99
- const diff = this._conceptDiffs[id];
100
- return diff ? diff.similarity : 1.0;
101
- });
102
- // @ts-expect-error TODO(Phase 2e): type this fully
103
- this._similarityCache = averageSimilarity(values);
104
- }
105
- }
106
- // @ts-expect-error TODO(Phase 2e): type this fully
107
- return this._similarityCache;
108
- }
109
-
110
- *walk() {
111
- // @ts-expect-error TODO(Phase 2e): type this fully
112
- for (let i = 0; i < this._added.length; i++) {
113
- // @ts-expect-error TODO(Phase 2e): type this fully
114
- yield { path: `added[${i}]`, change: this._added[i] };
115
- }
116
- // @ts-expect-error TODO(Phase 2e): type this fully
117
- for (let i = 0; i < this._removed.length; i++) {
118
- // @ts-expect-error TODO(Phase 2e): type this fully
119
- yield { path: `removed[${i}]`, change: this._removed[i] };
120
- }
121
- // @ts-expect-error TODO(Phase 2e): type this fully
122
- for (const [id, diff] of Object.entries(this._conceptDiffs)) {
123
- // @ts-expect-error TODO(Phase 2e): type this fully
124
- for (const entry of diff.walk()) {
125
- yield { path: `concepts.${id}.${entry.path}`, change: entry.change, conceptId: id, language: entry.language };
126
- }
127
- }
128
- }
129
-
130
- toJSON() {
131
- const obj = {
132
- // @ts-expect-error TODO(Phase 2e): type this fully
133
- old_count: this.oldCount,
134
- // @ts-expect-error TODO(Phase 2e): type this fully
135
- new_count: this.newCount,
136
- // @ts-expect-error TODO(Phase 2e): type this fully
137
- matched: this._matched.map(c => c.toJSON()),
138
- // @ts-expect-error TODO(Phase 2e): type this fully
139
- added: this._added.map(c => c.toJSON()),
140
- // @ts-expect-error TODO(Phase 2e): type this fully
141
- removed: this._removed.map(c => c.toJSON()),
142
- concept_diffs: {},
143
- };
144
- // @ts-expect-error TODO(Phase 2e): type this fully
145
- for (const [id, diff] of Object.entries(this._conceptDiffs)) {
146
- // @ts-expect-error TODO(Phase 2e): type this fully
147
- obj.concept_diffs[id] = diff.toJSON();
148
- }
149
- return obj;
150
- }
151
-
152
- static fromJSON(data) {
153
- return new ConceptCollectionDiff(data);
154
- }
155
- }
156
-
157
- export function diffConceptCollections(oldCollection, newCollection, options = {}) {
158
- // @ts-expect-error TODO(Phase 2e): type this fully
159
- const language = options.language ?? 'eng';
160
-
161
- const oldConcepts = extractConcepts(oldCollection);
162
- const newConcepts = extractConcepts(newCollection);
163
-
164
- const oldMap = new Map(oldConcepts.map(c => [c.id, c]));
165
- const newMap = new Map(newConcepts.map(c => [c.id, c]));
166
-
167
- const oldIds = new Set(oldMap.keys());
168
- const newIds = new Set(newMap.keys());
169
-
170
- const matchedIds = [...newIds].filter(id => oldIds.has(id)).sort();
171
- const addedIds = [...newIds].filter(id => !oldIds.has(id)).sort();
172
- const removedIds = [...oldIds].filter(id => !newIds.has(id)).sort();
173
-
174
- const conceptDiffs = {};
175
- for (const id of matchedIds) {
176
- const oldConcept = oldMap.get(id);
177
- const newConcept = newMap.get(id);
178
-
179
- // @ts-expect-error TODO(Phase 2e): type this fully
180
- if (options.skipUnchanged && conceptsEqual(oldConcept, newConcept)) {
181
- continue;
182
- }
183
-
184
- const diff = diffConcepts(oldConcept, newConcept, language);
185
- // @ts-expect-error TODO(Phase 2e): type this fully
186
- if (diff.hasChanges || !options.skipUnchanged) {
187
- // @ts-expect-error TODO(Phase 2e): type this fully
188
- conceptDiffs[id] = diff;
189
- }
190
- }
191
-
192
- return new ConceptCollectionDiff({
193
- oldCount: oldConcepts.length,
194
- newCount: newConcepts.length,
195
- matched: matchedIds.map(id => new Matched({ value: id })),
196
- added: addedIds.map(id => new Added({ value: id })),
197
- removed: removedIds.map(id => new Removed({ value: id })),
198
- conceptDiffs,
199
- });
200
- }
201
-
202
- function extractConcepts(collection) {
203
- if (collection == null) return [];
204
- if (Array.isArray(collection)) return collection;
205
- if (typeof collection.toArray === 'function') return collection.toArray();
206
- if (Symbol.iterator in Object(collection)) return [...collection];
207
- return [];
208
- }
209
-
210
- function conceptsEqual(a, b) {
211
- if (a === b) return true;
212
- if (!a || !b) return false;
213
- if (typeof a.equals === 'function' && typeof b.equals === 'function') {
214
- return a.equals(b);
215
- }
216
- return JSON.stringify(a?.toJSON?.()) === JSON.stringify(b?.toJSON?.());
217
- }
218
-
219
- // `wrapIdList` deserializes each entry via deserializeChange, which
220
- // dispatches on `type`. The `expectedClass` parameter is a defensive
221
- // check: if the entry's deserialized type doesn't match the slot it's
222
- // being loaded into, throw. Prevents the round-1 bug where removed
223
- // entries silently became Added after a JSON round-trip.
224
- function wrapIdList(data, expectedClass) {
225
- if (!data) return [];
226
- return data.map(c => {
227
- if (c instanceof Added || c instanceof Removed || c instanceof Matched) {
228
- if (!(c instanceof expectedClass)) {
229
- throw new Error(
230
- `ConceptCollectionDiff: entry type ${c.constructor.name} ` +
231
- `does not match slot ${expectedClass.name}`,
232
- );
233
- }
234
- return c;
235
- }
236
- const deserialized = deserializeChange(c);
237
- if (!(deserialized instanceof expectedClass)) {
238
- throw new Error(
239
- `ConceptCollectionDiff: deserialized entry type ` +
240
- `${deserialized.constructor.name} does not match slot ${expectedClass.name}`,
241
- );
242
- }
243
- return deserialized;
244
- });
245
- }