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
@@ -0,0 +1,7 @@
1
+ import { Concept } from '../models/concept.js';
2
+ import { ListDiff } from './list-diff.js';
3
+ import { ConceptDiff } from './concept-diff.js';
4
+ export declare function applyDiff(oldConcept: Concept, diff: ConceptDiff): Concept;
5
+ export declare function reverseDiff(diff: ConceptDiff): ConceptDiff;
6
+ export declare function partitionListDiff(listDiff: ListDiff | null | undefined, Cls: new (...args: never[]) => unknown): ListDiff;
7
+ //# sourceMappingURL=diff-patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-patch.d.ts","sourceRoot":"","sources":["../../src/diff/diff-patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAQ/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EACL,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAmC3B,wBAAgB,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAWzE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAsC1D;AA6ID,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAAG,QAAQ,CASzH"}
@@ -0,0 +1,225 @@
1
+ import { Concept } from '../models/concept.js';
2
+ import { ConceptSource } from '../models/concept-source.js';
3
+ import { ConceptDate } from '../models/concept-date.js';
4
+ import { RelatedConcept } from '../models/related-concept.js';
5
+ import { Designation } from '../models/designation.js';
6
+ import { DetailedDefinition } from '../models/detailed-definition.js';
7
+ import { HyperedgeRegistry } from '../models/hyperedge-registry.js';
8
+ import { Added, Removed, Changed } from './change.js';
9
+ import { ListDiff } from './list-diff.js';
10
+ import { TextDiff, TextHunk } from './text-diff.js';
11
+ import { identityOf } from './identity.js';
12
+ import { ConceptDiff, ConceptLevelDiff, LocalizedConceptDiff, MetadataDiff, } from './concept-diff.js';
13
+ // Wire-name (camelCase JS field → snake_case JSON key) for metadata
14
+ // fields patched onto Concept and LocalizedConcept.
15
+ //
16
+ // These mirror `Concept.wireNameFor` / `LocalizedConcept.wireNameFor`.
17
+ // The duplication is intentional: diff-patch.js cannot import those
18
+ // models lazily without making applyDiff async (a breaking API change),
19
+ // and the field set is small and stable. A spec
20
+ // (test/diff/field-sync.test.js) asserts the two stay in sync.
21
+ const CONCEPT_METADATA_JSON_KEYS = Object.freeze({
22
+ status: 'status',
23
+ term: 'term',
24
+ uri: 'uri',
25
+ schemaVersion: 'schema_version',
26
+ });
27
+ const LOC_METADATA_JSON_KEYS = Object.freeze({
28
+ entryStatus: 'entry_status',
29
+ classification: 'classification',
30
+ reviewType: 'review_type',
31
+ domain: 'domain',
32
+ release: 'release',
33
+ lineageSourceSimilarity: 'lineage_source_similarity',
34
+ script: 'script',
35
+ system: 'system',
36
+ reviewDate: 'review_date',
37
+ reviewDecisionDate: 'review_decision_date',
38
+ reviewDecisionEvent: 'review_decision_event',
39
+ reviewStatus: 'review_status',
40
+ reviewDecision: 'review_decision',
41
+ reviewDecisionNotes: 'review_decision_notes',
42
+ });
43
+ export function applyDiff(oldConcept, diff) {
44
+ const json = oldConcept.toJSON();
45
+ applyConceptLevelPatch(json, diff.concept);
46
+ applyLanguagePatch(json, diff);
47
+ for (const [lang, lcDiff] of Object.entries(diff.localizations)) {
48
+ applyLocalizedPatch(json, lang, lcDiff);
49
+ }
50
+ return Concept.fromJSON(json);
51
+ }
52
+ export function reverseDiff(diff) {
53
+ const concept = new ConceptLevelDiff({
54
+ sources: reverseListDiff(diff.concept.sources),
55
+ dates: reverseListDiff(diff.concept.dates),
56
+ relatedConcepts: reverseListDiff(diff.concept.relatedConcepts),
57
+ relations: reverseListDiff(diff.concept.relations),
58
+ groups: reverseListDiff(diff.concept.groups),
59
+ sections: reverseListDiff(diff.concept.sections),
60
+ tags: reverseListDiff(diff.concept.tags),
61
+ metadata: reverseMetadataDiff(diff.concept.metadata),
62
+ });
63
+ const languages = reverseListDiff(diff.languages);
64
+ const localizations = {};
65
+ for (const [lang, lcDiff] of Object.entries(diff.localizations)) {
66
+ localizations[lang] = new LocalizedConceptDiff({
67
+ languageCode: lcDiff.languageCode,
68
+ designations: reverseListDiff(lcDiff.designations),
69
+ definitions: reverseListDiff(lcDiff.definitions),
70
+ notes: reverseListDiff(lcDiff.notes),
71
+ examples: reverseListDiff(lcDiff.examples),
72
+ sources: reverseListDiff(lcDiff.sources),
73
+ dates: reverseListDiff(lcDiff.dates),
74
+ related: reverseListDiff(lcDiff.related),
75
+ metadata: reverseMetadataDiff(lcDiff.metadata),
76
+ totalItems: lcDiff.totalItems,
77
+ });
78
+ }
79
+ return new ConceptDiff({
80
+ oldId: diff.newId,
81
+ newId: diff.oldId,
82
+ concept,
83
+ languages,
84
+ localizations,
85
+ totalItems: diff.totalItems,
86
+ });
87
+ }
88
+ function applyConceptLevelPatch(json, conceptDiff) {
89
+ json.sources = applyListPatch(json.sources ?? [], conceptDiff.sources, (v) => ConceptSource.identityOf(v));
90
+ json.dates = applyListPatch(json.dates ?? [], conceptDiff.dates, (v) => ConceptDate.identityOf(v));
91
+ json.related = applyListPatch(json.related ?? [], conceptDiff.relatedConcepts, (v) => RelatedConcept.identityOf(v));
92
+ for (const cls of HyperedgeRegistry.allClasses()) {
93
+ const partition = partitionListDiff(conceptDiff.relations, cls);
94
+ if (!partition.hasChanges)
95
+ continue;
96
+ const wireKey = cls.wireKey;
97
+ const v1ReadKeys = cls.v1WireKeys ?? [];
98
+ const existing = v1ReadKeys
99
+ .map(k => json[k])
100
+ .find(arr => Array.isArray(arr)) ?? json[wireKey] ?? [];
101
+ const classIdentityOf = cls.identityOf;
102
+ json[wireKey] = applyListPatch(existing, partition, classIdentityOf ?? identityOf);
103
+ for (const k of v1ReadKeys) {
104
+ if (json[k] != null && json[wireKey] != null)
105
+ delete json[k];
106
+ }
107
+ }
108
+ json.tags = applyListPatch(json.tags ?? [], conceptDiff.tags, identityOf);
109
+ applyMetadataPatch(json, conceptDiff.metadata, CONCEPT_METADATA_JSON_KEYS);
110
+ }
111
+ function applyLanguagePatch(json, conceptDiff) {
112
+ const localizations = (json.localizations ?? {});
113
+ json.localizations = localizations;
114
+ for (const entry of conceptDiff.languages.added) {
115
+ const val = String(entry.value);
116
+ if (!(val in localizations)) {
117
+ localizations[val] = {};
118
+ }
119
+ }
120
+ for (const entry of conceptDiff.languages.removed) {
121
+ delete localizations[String(entry.value)];
122
+ }
123
+ }
124
+ function applyLocalizedPatch(json, lang, lcDiff) {
125
+ const localizations = (json.localizations ?? {});
126
+ json.localizations = localizations;
127
+ if (!(lang in localizations)) {
128
+ localizations[lang] = {};
129
+ }
130
+ const loc = localizations[lang];
131
+ loc.terms = applyListPatch(loc.terms ?? [], lcDiff.designations, (v) => Designation.identityOf(v));
132
+ loc.definition = applyListPatch(loc.definition ?? [], lcDiff.definitions, (v) => DetailedDefinition.identityOf(v));
133
+ loc.notes = applyListPatch(loc.notes ?? [], lcDiff.notes, (v) => DetailedDefinition.identityOf(v));
134
+ loc.examples = applyListPatch(loc.examples ?? [], lcDiff.examples, (v) => DetailedDefinition.identityOf(v));
135
+ loc.sources = applyListPatch(loc.sources ?? [], lcDiff.sources, (v) => ConceptSource.identityOf(v));
136
+ loc.dates = applyListPatch(loc.dates ?? [], lcDiff.dates, (v) => ConceptDate.identityOf(v));
137
+ loc.related = applyListPatch(loc.related ?? [], lcDiff.related, (v) => RelatedConcept.identityOf(v));
138
+ applyMetadataPatch(loc, lcDiff.metadata, LOC_METADATA_JSON_KEYS);
139
+ }
140
+ function applyListPatch(existingItems, listDiff, identityFn) {
141
+ const fn = identityFn ?? identityOf;
142
+ let result = [...existingItems];
143
+ for (const entry of listDiff.added) {
144
+ result.push(toJsonValue(entry.value));
145
+ }
146
+ for (const entry of listDiff.removed) {
147
+ const targetKey = fn(entry.value);
148
+ result = result.filter(item => fn(item) !== targetKey);
149
+ }
150
+ for (const entry of listDiff.changed) {
151
+ const oldKey = fn(entry.oldValue);
152
+ result = result.map(item => fn(item) === oldKey ? toJsonValue(entry.newValue) : item);
153
+ }
154
+ return result;
155
+ }
156
+ function applyMetadataPatch(target, metadataDiff, keyMap) {
157
+ for (const [field, change] of Object.entries(metadataDiff.changes)) {
158
+ const jsonKey = keyMap[field];
159
+ if (!jsonKey)
160
+ continue;
161
+ if (change.newValue == null) {
162
+ delete target[jsonKey];
163
+ }
164
+ else {
165
+ target[jsonKey] = change.newValue;
166
+ }
167
+ }
168
+ }
169
+ function reverseListDiff(listDiff) {
170
+ const added = listDiff.removed.map(r => new Added({ value: r.value, path: r.path }));
171
+ const removed = listDiff.added.map(a => new Removed({ value: a.value, path: a.path }));
172
+ const changed = listDiff.changed.map(c => new Changed({
173
+ oldValue: c.newValue,
174
+ newValue: c.oldValue,
175
+ textDiff: c.textDiff ? reverseTextDiff(c.textDiff) : undefined,
176
+ path: c.path,
177
+ }));
178
+ return new ListDiff({ added, removed, changed });
179
+ }
180
+ function reverseMetadataDiff(metadataDiff) {
181
+ const changes = {};
182
+ for (const [field, change] of Object.entries(metadataDiff.changes)) {
183
+ changes[field] = new Changed({
184
+ oldValue: change.newValue,
185
+ newValue: change.oldValue,
186
+ });
187
+ }
188
+ return new MetadataDiff({ changes });
189
+ }
190
+ function reverseTextDiff(textDiff) {
191
+ const hunks = textDiff.hunks.map(h => {
192
+ if (h.type === 'added')
193
+ return new TextHunk({ type: 'removed', text: h.text });
194
+ if (h.type === 'removed')
195
+ return new TextHunk({ type: 'added', text: h.text });
196
+ return new TextHunk({ type: 'equal', text: h.text });
197
+ });
198
+ return new TextDiff({
199
+ oldText: textDiff.newText,
200
+ newText: textDiff.oldText,
201
+ hunks,
202
+ });
203
+ }
204
+ function toJsonValue(value) {
205
+ if (value == null)
206
+ return null;
207
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
208
+ return value;
209
+ }
210
+ const v = value;
211
+ if (typeof v.toJSON === 'function')
212
+ return v.toJSON();
213
+ return value;
214
+ }
215
+ export function partitionListDiff(listDiff, Cls) {
216
+ if (!listDiff)
217
+ return new ListDiff({ added: [], removed: [], changed: [] });
218
+ return new ListDiff({
219
+ added: listDiff.added.filter(e => e.value instanceof Cls),
220
+ removed: listDiff.removed.filter(e => e.value instanceof Cls),
221
+ changed: listDiff.changed.filter(e => (e.oldValue == null || e.oldValue instanceof Cls) &&
222
+ (e.newValue == null || e.newValue instanceof Cls)),
223
+ });
224
+ }
225
+ //# sourceMappingURL=diff-patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-patch.js","sourceRoot":"","sources":["../../src/diff/diff-patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,oEAAoE;AACpE,oDAAoD;AACpD,EAAE;AACF,uEAAuE;AACvE,oEAAoE;AACpE,wEAAwE;AACxE,gDAAgD;AAChD,+DAA+D;AAE/D,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,aAAa,EAAE,gBAAgB;CAChC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,cAAc;IAC3B,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,uBAAuB,EAAE,2BAA2B;IACpD,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,aAAa;IACzB,kBAAkB,EAAE,sBAAsB;IAC1C,mBAAmB,EAAE,uBAAuB;IAC5C,YAAY,EAAE,eAAe;IAC7B,cAAc,EAAE,iBAAiB;IACjC,mBAAmB,EAAE,uBAAuB;CAC7C,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS,CAAC,UAAmB,EAAE,IAAiB;IAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAA6B,CAAC;IAE5D,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE/B,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;QACnC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1C,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QAC9D,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAClD,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5C,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChD,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACxC,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;KACrD,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAElD,MAAM,aAAa,GAAyC,EAAE,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,oBAAoB,CAAC;YAC7C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC;YAClD,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC;YAChD,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC;YACpC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1C,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;YACxC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC;YACpC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;YACxC,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC9C,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,WAAW,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO;QACP,SAAS;QACT,aAAa;QACb,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA6B,EAAE,WAA6B;IAC1F,IAAI,CAAC,OAAO,GAAG,cAAc,CAAE,IAAI,CAAC,OAA8B,IAAI,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAkB,CAAC,CAAC,CAAC;IAC7J,IAAI,CAAC,KAAK,GAAG,cAAc,CAAE,IAAI,CAAC,KAA4B,IAAI,EAAE,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAgB,CAAC,CAAC,CAAC;IACnJ,IAAI,CAAC,OAAO,GAAG,cAAc,CAAE,IAAI,CAAC,OAA8B,IAAI,EAAE,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAmB,CAAC,CAAC,CAAC;IAEvK,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,GAAmD,CAAC,CAAC;QAChH,IAAI,CAAC,SAAS,CAAC,UAAU;YAAE,SAAS;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,UAAU;aACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,eAAe,GAAI,GAA0D,CAAC,UAAU,CAAC;QAC/F,IAAI,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,QAA8B,EAAE,SAAS,EAAE,eAAe,IAAI,UAAU,CAAC,CAAC;QACzG,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,GAAG,cAAc,CAAE,IAAI,CAAC,IAA2B,IAAI,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAElG,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA6B,EAAE,WAAwB;IACjF,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAA4B,CAAC;IAC5E,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC;YAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAClD,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA6B,EAAE,IAAY,EAAE,MAA4B;IACpG,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAA4C,CAAC;IAC5F,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACnC,IAAI,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,EAAE,CAAC;QAC7B,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAE,CAAC;IAEjC,GAAG,CAAC,KAAK,GAAG,cAAc,CAAE,GAAG,CAAC,KAA4B,IAAI,EAAE,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAgB,CAAC,CAAC,CAAC;IACnJ,GAAG,CAAC,UAAU,GAAG,cAAc,CAAE,GAAG,CAAC,UAAiC,IAAI,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAuB,CAAC,CAAC,CAAC;IAC1K,GAAG,CAAC,KAAK,GAAG,cAAc,CAAE,GAAG,CAAC,KAA4B,IAAI,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAuB,CAAC,CAAC,CAAC;IAC1J,GAAG,CAAC,QAAQ,GAAG,cAAc,CAAE,GAAG,CAAC,QAA+B,IAAI,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAuB,CAAC,CAAC,CAAC;IACnK,GAAG,CAAC,OAAO,GAAG,cAAc,CAAE,GAAG,CAAC,OAA8B,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAkB,CAAC,CAAC,CAAC;IACtJ,GAAG,CAAC,KAAK,GAAG,cAAc,CAAE,GAAG,CAAC,KAA4B,IAAI,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAgB,CAAC,CAAC,CAAC;IAC5I,GAAG,CAAC,OAAO,GAAG,cAAc,CAAE,GAAG,CAAC,OAA8B,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAmB,CAAC,CAAC,CAAC;IAExJ,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,aAAiC,EAAE,QAAkB,EAAE,UAAmC;IAChH,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,CAAC;IACpC,IAAI,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACzB,EAAE,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CACzD,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA+B,EAAE,YAA0B,EAAE,MAA8B;IACrH,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,QAAkB;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC;QACpD,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9D,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;IACJ,OAAO,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,mBAAmB,CAAC,YAA0B;IACrD,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,QAAkB;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACnC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,OAAO,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,QAAQ,CAAC;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,GAAG,KAAmC,CAAC;IAC9C,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAqC,EAAE,GAAsC;IAC7G,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5E,OAAO,IAAI,QAAQ,CAAC;QAClB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC;QACzD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC;QAC7D,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACnC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,YAAY,GAAG,CAAC;YACjD,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,YAAY,GAAG,CAAC,CAAC;KACrD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { TextDiff } from './text-diff.js';
2
+ import type { ConceptDiff } from './concept-diff.js';
3
+ import type { ConceptCollectionDiff } from './collection-diff.js';
4
+ import type { PartitivePresence } from '../models/partitive-presence.js';
5
+ import type { PartitiveCount } from '../models/partitive-count.js';
6
+ interface RenderOptions {
7
+ colors?: boolean;
8
+ showUnchanged?: boolean;
9
+ }
10
+ export declare function renderConceptDiff(diff: ConceptDiff, options?: RenderOptions): string;
11
+ export declare function renderCollectionDiff(diff: ConceptCollectionDiff, options?: RenderOptions): string;
12
+ export declare function renderTextDiff(textDiff: TextDiff | Record<string, unknown>, options?: RenderOptions): string;
13
+ interface MemberRef {
14
+ id?: string;
15
+ source?: string;
16
+ text?: string;
17
+ }
18
+ interface MemberLike {
19
+ ref?: MemberRef | null;
20
+ presence?: PartitivePresence;
21
+ count?: PartitiveCount;
22
+ is_delimiting?: boolean;
23
+ delimitingCharacteristic?: Record<string, unknown> | null;
24
+ multiplicity?: string;
25
+ }
26
+ interface RelationLike {
27
+ comprehensive?: MemberRef | null;
28
+ partitives?: ReadonlyArray<MemberLike>;
29
+ members?: ReadonlyArray<MemberLike>;
30
+ completeness?: string | null;
31
+ criterion?: Record<string, unknown> | null;
32
+ constructor?: {
33
+ kindLabel?: string;
34
+ };
35
+ }
36
+ export declare function multiplicityStats(relations: ReadonlyArray<RelationLike> | null | undefined): {
37
+ total: number;
38
+ byMultiplicity: Record<string, number>;
39
+ byPresence: Record<string, number>;
40
+ byCount: Record<string, number>;
41
+ delimiting: number;
42
+ };
43
+ export {};
44
+ //# sourceMappingURL=diff-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-renderer.d.ts","sourceRoot":"","sources":["../../src/diff/diff-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAwD,MAAM,mBAAmB,CAAC;AAC3G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAWnE,UAAU,aAAa;IAAG,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE;AAErE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAyCxF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CA2CrG;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAmBhH;AAyED,UAAU,SAAS;IAAG,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AAMnE,UAAU,UAAU;IAClB,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD,UAAU,YAAY;IACpB,aAAa,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtC;AA4CD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB,CAmBA"}
@@ -0,0 +1,263 @@
1
+ import { TextDiff } from './text-diff.js';
2
+ import { resolveMultiplicity } from '../models/multiplicity.js';
3
+ const COLORS = {
4
+ red: (s) => `\x1b[31m${s}\x1b[0m`,
5
+ green: (s) => `\x1b[32m${s}\x1b[0m`,
6
+ yellow: (s) => `\x1b[33m${s}\x1b[0m`,
7
+ cyan: (s) => `\x1b[36m${s}\x1b[0m`,
8
+ dim: (s) => `\x1b[2m${s}\x1b[0m`,
9
+ bold: (s) => `\x1b[1m${s}\x1b[0m`,
10
+ };
11
+ export function renderConceptDiff(diff, options = {}) {
12
+ const colors = options.colors ?? false;
13
+ const showUnchanged = options.showUnchanged ?? false;
14
+ const lines = [];
15
+ const pct = Math.round(diff.similarity * 100);
16
+ const idPart = diff.oldId && diff.newId && diff.oldId !== diff.newId
17
+ ? `${diff.oldId} → ${diff.newId}`
18
+ : (diff.newId ?? diff.oldId ?? '?');
19
+ const similarityStr = colors ? colorizeSimilarity(pct) : `${pct}%`;
20
+ lines.push(`Concept "${idPart}" — ${similarityStr} similar`);
21
+ if (!diff.hasChanges && !showUnchanged) {
22
+ lines.push(' (no changes)');
23
+ return lines.join('\n');
24
+ }
25
+ if (diff.concept.hasChanges || showUnchanged) {
26
+ lines.push('');
27
+ lines.push('Concept-level:');
28
+ lines.push(renderConceptLevel(diff.concept, colors));
29
+ }
30
+ if (diff.languages.hasChanges || showUnchanged) {
31
+ lines.push('');
32
+ lines.push('Languages:');
33
+ lines.push(renderLanguageSet(diff.languages, colors));
34
+ }
35
+ for (const lang of diff.localizationLanguages) {
36
+ const lcDiff = diff.localization(lang);
37
+ if (!lcDiff)
38
+ continue;
39
+ if (lcDiff.hasChanges || showUnchanged) {
40
+ lines.push('');
41
+ lines.push(`Localization (${lang}):`);
42
+ lines.push(renderLocalized(lcDiff, colors));
43
+ }
44
+ }
45
+ return lines.join('\n');
46
+ }
47
+ export function renderCollectionDiff(diff, options = {}) {
48
+ const colors = options.colors ?? false;
49
+ const lines = [];
50
+ const pct = Math.round(diff.similarity * 100);
51
+ const similarityStr = colors ? colorizeSimilarity(pct) : `${pct}%`;
52
+ lines.push(`Collection comparison — ${similarityStr} similar overall`);
53
+ lines.push(` Old: ${diff.oldCount} concepts`);
54
+ lines.push(` New: ${diff.newCount} concepts`);
55
+ lines.push(` Matched: ${diff.matched.length}`);
56
+ lines.push(` Added: ${diff.added.length}`);
57
+ lines.push(` Removed: ${diff.removed.length}`);
58
+ if (diff.added.length > 0) {
59
+ lines.push('');
60
+ lines.push(colors ? COLORS.green('Added concepts:') : 'Added concepts:');
61
+ for (const entry of diff.added) {
62
+ lines.push(` + ${entry.value}`);
63
+ }
64
+ }
65
+ if (diff.removed.length > 0) {
66
+ lines.push('');
67
+ lines.push(colors ? COLORS.red('Removed concepts:') : 'Removed concepts:');
68
+ for (const entry of diff.removed) {
69
+ lines.push(` - ${entry.value}`);
70
+ }
71
+ }
72
+ const changedDiffs = Object.entries(diff.conceptDiffs)
73
+ .filter(([, d]) => d.hasChanges)
74
+ .sort(([, a], [, b]) => a.similarity - b.similarity);
75
+ if (changedDiffs.length > 0) {
76
+ lines.push('');
77
+ lines.push('Changed concepts:');
78
+ for (const [id, conceptDiff] of changedDiffs) {
79
+ const conceptPct = Math.round(conceptDiff.similarity * 100);
80
+ const pctStr = colors ? colorizeSimilarity(conceptPct) : `${conceptPct}%`;
81
+ lines.push(` ${id}: ${pctStr}`);
82
+ }
83
+ }
84
+ return lines.join('\n');
85
+ }
86
+ export function renderTextDiff(textDiff, options = {}) {
87
+ let td = textDiff;
88
+ if (!(td instanceof TextDiff)) {
89
+ td = TextDiff.fromJSON(td);
90
+ }
91
+ const colors = options.colors ?? false;
92
+ const lines = [];
93
+ for (const hunk of td.hunks) {
94
+ if (hunk.type === 'equal') {
95
+ lines.push(` ${hunk.text}`);
96
+ }
97
+ else if (hunk.type === 'added') {
98
+ lines.push(colors ? `+ ${COLORS.green(hunk.text)}` : `+ ${hunk.text}`);
99
+ }
100
+ else if (hunk.type === 'removed') {
101
+ lines.push(colors ? `- ${COLORS.red(hunk.text)}` : `- ${hunk.text}`);
102
+ }
103
+ }
104
+ return lines.join('\n');
105
+ }
106
+ function renderConceptLevel(diff, colors) {
107
+ const lines = [];
108
+ lines.push(...renderListDiff('Sources', diff.sources, colors, itemLabel));
109
+ lines.push(...renderListDiff('Dates', diff.dates, colors, itemLabel));
110
+ lines.push(...renderListDiff('Related', diff.relatedConcepts, colors, itemLabel));
111
+ lines.push(...renderListDiff('Hyperedges', diff.relations, colors, relationLabel));
112
+ lines.push(...renderListDiff('Groups', diff.groups, colors, itemLabel));
113
+ lines.push(...renderListDiff('Sections', diff.sections, colors, itemLabel));
114
+ lines.push(...renderListDiff('Tags', diff.tags, colors, itemLabel));
115
+ lines.push(renderMetadataDiff(diff.metadata));
116
+ return lines.filter(Boolean).join('\n');
117
+ }
118
+ function renderLanguageSet(diff, colors) {
119
+ const lines = [];
120
+ for (const entry of diff.added) {
121
+ lines.push(colors ? ` + ${COLORS.green(String(entry.value))}` : ` + ${entry.value}`);
122
+ }
123
+ for (const entry of diff.removed) {
124
+ lines.push(colors ? ` - ${COLORS.red(String(entry.value))}` : ` - ${entry.value}`);
125
+ }
126
+ return lines.join('\n');
127
+ }
128
+ function renderLocalized(diff, colors) {
129
+ const lines = [];
130
+ lines.push(...renderListDiff('Designations', diff.designations, colors, designationLabel));
131
+ lines.push(...renderListDiff('Definitions', diff.definitions, colors, definitionLabel));
132
+ lines.push(...renderListDiff('Notes', diff.notes, colors, definitionLabel));
133
+ lines.push(...renderListDiff('Examples', diff.examples, colors, definitionLabel));
134
+ lines.push(...renderListDiff('Sources', diff.sources, colors, itemLabel));
135
+ lines.push(...renderListDiff('Dates', diff.dates, colors, itemLabel));
136
+ lines.push(...renderListDiff('Related', diff.related, colors, itemLabel));
137
+ lines.push(renderMetadataDiff(diff.metadata));
138
+ return lines.filter(Boolean).join('\n');
139
+ }
140
+ function renderListDiff(label, listDiff, colors, labelFn) {
141
+ if (!listDiff.hasChanges)
142
+ return [];
143
+ const lines = [` ${label}:`];
144
+ for (const entry of listDiff.added) {
145
+ const text = ` + ${labelFn(entry.value)}`;
146
+ lines.push(colors ? COLORS.green(text) : text);
147
+ }
148
+ for (const entry of listDiff.removed) {
149
+ const text = ` - ${labelFn(entry.value)}`;
150
+ lines.push(colors ? COLORS.red(text) : text);
151
+ }
152
+ for (const entry of listDiff.changed) {
153
+ const oldLabel = labelFn(entry.oldValue);
154
+ const newLabel = labelFn(entry.newValue);
155
+ lines.push(` ~ ${oldLabel} → ${newLabel}`);
156
+ }
157
+ return lines;
158
+ }
159
+ function renderMetadataDiff(metadataDiff) {
160
+ if (!metadataDiff.hasChanges)
161
+ return '';
162
+ const lines = [` Metadata:`];
163
+ for (const [field, change] of Object.entries(metadataDiff.changes)) {
164
+ const oldVal = formatScalar(change.oldValue);
165
+ const newVal = formatScalar(change.newValue);
166
+ lines.push(` ~ ${field}: ${oldVal} → ${newVal}`);
167
+ }
168
+ return lines.join('\n');
169
+ }
170
+ function designationLabel(d) {
171
+ if (!d)
172
+ return '?';
173
+ const dx = d;
174
+ const text = dx.designation ?? '?';
175
+ const status = dx.normativeStatus ? ` (${dx.normativeStatus})` : '';
176
+ return `${text}${status}`;
177
+ }
178
+ function definitionLabel(d) {
179
+ if (!d)
180
+ return '?';
181
+ return d.content ?? '?';
182
+ }
183
+ function relationLabel(r) {
184
+ if (!r)
185
+ return '?';
186
+ const rx = r;
187
+ const c = rx.comprehensive;
188
+ const head = c?.id ?? c?.source ?? c?.text ?? '?';
189
+ const members = Array.isArray(rx.partitives) ? rx.partitives : rx.members;
190
+ const memberText = Array.isArray(members)
191
+ ? members.map(m => {
192
+ const ref = (m?.ref ?? m ?? {});
193
+ let tail = '';
194
+ const mult = resolveMultiplicity(m);
195
+ if (mult && mult !== 'compulsory')
196
+ tail += ` (${mult})`;
197
+ if (m?.is_delimiting === true)
198
+ tail += ' ⊘';
199
+ if (m?.delimitingCharacteristic) {
200
+ const cv = Object.values(m.delimitingCharacteristic)[0];
201
+ if (typeof cv === 'string' && cv.length > 0)
202
+ tail += ` ⟨${cv}⟩`;
203
+ }
204
+ return `${ref.id ?? ref.source ?? ref.text ?? '?'}${tail}`;
205
+ }).join(', ')
206
+ : '';
207
+ const completeness = rx.completeness ? ` (${rx.completeness})` : '';
208
+ const criterion = rx.criterion
209
+ ? ` / ${Object.values(rx.criterion)[0] ?? ''}`
210
+ : '';
211
+ const kindLabel = rx?.constructor?.kindLabel ?? '';
212
+ const typeTag = kindLabel ? `${kindLabel} ` : '';
213
+ return `${typeTag}${head} → {${memberText}}${completeness}${criterion}`;
214
+ }
215
+ export function multiplicityStats(relations) {
216
+ const byMultiplicity = {};
217
+ const byPresence = {};
218
+ const byCount = {};
219
+ let delimitingCount = 0;
220
+ let total = 0;
221
+ for (const rel of relations ?? []) {
222
+ for (const m of rel?.partitives ?? []) {
223
+ total += 1;
224
+ const mult = resolveMultiplicity(m);
225
+ byMultiplicity[mult] = (byMultiplicity[mult] ?? 0) + 1;
226
+ const p = (m?.presence ?? 'required');
227
+ const c = (m?.count ?? 'exactly_one');
228
+ byPresence[p] = (byPresence[p] ?? 0) + 1;
229
+ byCount[c] = (byCount[c] ?? 0) + 1;
230
+ if (m?.is_delimiting === true)
231
+ delimitingCount += 1;
232
+ }
233
+ }
234
+ return { total, byMultiplicity, byPresence, byCount, delimiting: delimitingCount };
235
+ }
236
+ function itemLabel(item) {
237
+ if (item == null)
238
+ return '?';
239
+ if (typeof item === 'string')
240
+ return item;
241
+ if (typeof item === 'number')
242
+ return String(item);
243
+ const ix = item;
244
+ if (typeof ix.toJSON === 'function') {
245
+ return JSON.stringify(ix.toJSON());
246
+ }
247
+ return String(item);
248
+ }
249
+ function formatScalar(val) {
250
+ if (val == null)
251
+ return '∅';
252
+ if (typeof val === 'string')
253
+ return val;
254
+ return String(val);
255
+ }
256
+ function colorizeSimilarity(pct) {
257
+ if (pct >= 95)
258
+ return COLORS.green(`${pct}%`);
259
+ if (pct >= 80)
260
+ return COLORS.yellow(`${pct}%`);
261
+ return COLORS.red(`${pct}%`);
262
+ }
263
+ //# sourceMappingURL=diff-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-renderer.js","sourceRoot":"","sources":["../../src/diff/diff-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function identityOf(item: unknown): string;
2
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/diff/identity.ts"],"names":[],"mappings":"AAwBA,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAQhD"}
@@ -0,0 +1,29 @@
1
+ // Shared identity helper for the diff layer.
2
+ //
3
+ // Per invariant N1, identity is a model concern. Models expose
4
+ // `identity()` returning a stable string. This helper dispatches: if
5
+ // the value is a model with `identity()`, call it; otherwise fall
6
+ // back to canonical JSON of `toJSON()`.
7
+ import { canonicalJson } from './canonical-json.js';
8
+ function hasIdentity(v) {
9
+ return v != null && typeof v === 'object' && typeof v.identity === 'function';
10
+ }
11
+ function hasToJSON(v) {
12
+ return v != null && typeof v === 'object' && typeof v.toJSON === 'function';
13
+ }
14
+ export function identityOf(item) {
15
+ if (item == null)
16
+ return '';
17
+ if (hasIdentity(item))
18
+ return item.identity();
19
+ if (typeof item === 'string')
20
+ return item;
21
+ if (typeof item === 'number')
22
+ return String(item);
23
+ if (typeof item === 'boolean')
24
+ return String(item);
25
+ if (hasToJSON(item))
26
+ return canonicalJson(item.toJSON());
27
+ return canonicalJson(item);
28
+ }
29
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/diff/identity.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,+DAA+D;AAC/D,qEAAqE;AACrE,kEAAkE;AAClE,wCAAwC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,SAAS,WAAW,CAAC,CAAU;IAC7B,OAAO,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAQ,CAA4B,CAAC,QAAQ,KAAK,UAAU,CAAC;AAC5G,CAAC;AAED,SAAS,SAAS,CAAC,CAAU;IAC3B,OAAO,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAQ,CAA0B,CAAC,MAAM,KAAK,UAAU,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC5B,IAAI,WAAW,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { TextHunk, TextDiff, diffText, } from './text-diff.js';
2
+ export { Change, Added, Removed, Changed, Matched, CHANGE_ADDED, CHANGE_REMOVED, CHANGE_CHANGED, CHANGE_MATCHED, deserializeChange, } from './change.js';
3
+ export { ListDiff, diffList, diffSet, } from './list-diff.js';
4
+ export { DiffStats, MetadataDiff, ConceptLevelDiff, LocalizedConceptDiff, ConceptDiff, diffConcepts, diffLocalizedConcepts, } from './concept-diff.js';
5
+ export { ConceptCollectionDiff, diffConceptCollections, } from './collection-diff.js';
6
+ export { renderConceptDiff, renderCollectionDiff, renderTextDiff, } from './diff-renderer.js';
7
+ export { applyDiff, reverseDiff, } from './diff-patch.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diff/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,SAAS,EACT,WAAW,GACZ,MAAM,iBAAiB,CAAC"}