glossarist 0.4.50 → 0.4.52

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 (709) 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 +25 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +38 -0
  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/utils/external-detection.d.ts +38 -0
  494. package/dist/utils/external-detection.d.ts.map +1 -0
  495. package/dist/utils/external-detection.js +55 -0
  496. package/dist/utils/external-detection.js.map +1 -0
  497. package/dist/uuid.d.ts +4 -0
  498. package/dist/uuid.d.ts.map +1 -0
  499. package/dist/uuid.js +23 -0
  500. package/dist/uuid.js.map +1 -0
  501. package/dist/v1-reader.d.ts +8 -0
  502. package/dist/v1-reader.d.ts.map +1 -0
  503. package/dist/v1-reader.js +56 -0
  504. package/dist/v1-reader.js.map +1 -0
  505. package/dist/validators/asset-index.d.ts +23 -0
  506. package/dist/validators/asset-index.d.ts.map +1 -0
  507. package/dist/validators/asset-index.js +58 -0
  508. package/dist/validators/asset-index.js.map +1 -0
  509. package/dist/validators/binary-has-part-redundancy-rule.d.ts +8 -0
  510. package/dist/validators/binary-has-part-redundancy-rule.d.ts.map +1 -0
  511. package/dist/validators/binary-has-part-redundancy-rule.js +57 -0
  512. package/dist/validators/binary-has-part-redundancy-rule.js.map +1 -0
  513. package/dist/validators/concept-validator.d.ts +21 -0
  514. package/dist/validators/concept-validator.d.ts.map +1 -0
  515. package/dist/validators/concept-validator.js +76 -0
  516. package/dist/validators/concept-validator.js.map +1 -0
  517. package/dist/validators/delimiting-coherence-rule.d.ts +8 -0
  518. package/dist/validators/delimiting-coherence-rule.d.ts.map +1 -0
  519. package/dist/validators/delimiting-coherence-rule.js +72 -0
  520. package/dist/validators/delimiting-coherence-rule.js.map +1 -0
  521. package/dist/validators/extensional-completeness.d.ts +18 -0
  522. package/dist/validators/extensional-completeness.d.ts.map +1 -0
  523. package/dist/validators/extensional-completeness.js +41 -0
  524. package/dist/validators/extensional-completeness.js.map +1 -0
  525. package/dist/validators/external-concept-shape-rule.d.ts +8 -0
  526. package/dist/validators/external-concept-shape-rule.d.ts.map +1 -0
  527. package/dist/validators/external-concept-shape-rule.js +48 -0
  528. package/dist/validators/external-concept-shape-rule.js.map +1 -0
  529. package/dist/validators/gcr-validator.d.ts +11 -0
  530. package/dist/validators/gcr-validator.d.ts.map +1 -0
  531. package/dist/validators/gcr-validator.js +76 -0
  532. package/dist/validators/gcr-validator.js.map +1 -0
  533. package/dist/validators/hyperedge-coherence-rule.d.ts +9 -0
  534. package/dist/validators/hyperedge-coherence-rule.d.ts.map +1 -0
  535. package/dist/validators/hyperedge-coherence-rule.js +78 -0
  536. package/dist/validators/hyperedge-coherence-rule.js.map +1 -0
  537. package/dist/validators/index.d.ts +21 -0
  538. package/dist/validators/index.d.ts.map +1 -0
  539. package/{src/validators/index.ts → dist/validators/index.js} +25 -51
  540. package/dist/validators/index.js.map +1 -0
  541. package/dist/validators/partitive-relation-coherence-rule.d.ts +2 -0
  542. package/dist/validators/partitive-relation-coherence-rule.d.ts.map +1 -0
  543. package/{src/validators/partitive-relation-coherence-rule.ts → dist/validators/partitive-relation-coherence-rule.js} +1 -1
  544. package/dist/validators/partitive-relation-coherence-rule.js.map +1 -0
  545. package/dist/validators/ref-keys.d.ts +8 -0
  546. package/dist/validators/ref-keys.d.ts.map +1 -0
  547. package/dist/validators/ref-keys.js +27 -0
  548. package/dist/validators/ref-keys.js.map +1 -0
  549. package/dist/validators/register-validator.d.ts +10 -0
  550. package/dist/validators/register-validator.d.ts.map +1 -0
  551. package/dist/validators/register-validator.js +18 -0
  552. package/dist/validators/register-validator.js.map +1 -0
  553. package/dist/validators/relationship-type-rule.d.ts +13 -0
  554. package/dist/validators/relationship-type-rule.d.ts.map +1 -0
  555. package/dist/validators/relationship-type-rule.js +34 -0
  556. package/dist/validators/relationship-type-rule.js.map +1 -0
  557. package/dist/validators/sourced-from-locality-rule.d.ts +8 -0
  558. package/dist/validators/sourced-from-locality-rule.d.ts.map +1 -0
  559. package/dist/validators/sourced-from-locality-rule.js +37 -0
  560. package/dist/validators/sourced-from-locality-rule.js.map +1 -0
  561. package/dist/validators/v3-rules.d.ts +60 -0
  562. package/dist/validators/v3-rules.d.ts.map +1 -0
  563. package/dist/validators/v3-rules.js +327 -0
  564. package/dist/validators/v3-rules.js.map +1 -0
  565. package/dist/validators/validation-error.d.ts +13 -0
  566. package/dist/validators/validation-error.d.ts.map +1 -0
  567. package/dist/validators/validation-error.js +17 -0
  568. package/dist/validators/validation-error.js.map +1 -0
  569. package/dist/validators/validation-result.d.ts +17 -0
  570. package/dist/validators/validation-result.d.ts.map +1 -0
  571. package/dist/validators/validation-result.js +47 -0
  572. package/dist/validators/validation-result.js.map +1 -0
  573. package/dist/validators/validation-rule.d.ts +10 -0
  574. package/dist/validators/validation-rule.d.ts.map +1 -0
  575. package/dist/validators/validation-rule.js +17 -0
  576. package/dist/validators/validation-rule.js.map +1 -0
  577. package/package.json +37 -42
  578. package/src/concept-collection.ts +0 -172
  579. package/src/concept-parser.ts +0 -235
  580. package/src/concept-reader.d.ts +0 -13
  581. package/src/concept-serializer.ts +0 -110
  582. package/src/concept-writer.d.ts +0 -7
  583. package/src/concept-writer.ts +0 -47
  584. package/src/diff/canonical-json.ts +0 -29
  585. package/src/diff/change.ts +0 -175
  586. package/src/diff/collection-diff.ts +0 -245
  587. package/src/diff/concept-diff.ts +0 -853
  588. package/src/diff/diff-patch.ts +0 -276
  589. package/src/diff/diff-renderer.ts +0 -348
  590. package/src/diff/identity.ts +0 -33
  591. package/src/diff/index.d.ts +0 -242
  592. package/src/diff/index.ts +0 -50
  593. package/src/diff/list-diff.ts +0 -231
  594. package/src/diff/similarity.ts +0 -20
  595. package/src/diff/text-diff.ts +0 -167
  596. package/src/entity-directory.ts +0 -43
  597. package/src/errors.d.ts +0 -11
  598. package/src/errors.ts +0 -24
  599. package/src/gcr-reader.d.ts +0 -65
  600. package/src/gcr-reader.ts +0 -512
  601. package/src/gcr-writer.d.ts +0 -22
  602. package/src/gcr-writer.ts +0 -99
  603. package/src/index.d.ts +0 -124
  604. package/src/index.ts +0 -92
  605. package/src/managed-concept-collection.ts +0 -130
  606. package/src/migration/hyperedge-migrator.ts +0 -104
  607. package/src/models/abstract-hyperedge.ts +0 -164
  608. package/src/models/base.ts +0 -110
  609. package/src/models/bibliography-data.ts +0 -64
  610. package/src/models/bibliography-entry.ts +0 -40
  611. package/src/models/citation.ts +0 -98
  612. package/src/models/concept-date.ts +0 -48
  613. package/src/models/concept-ref.ts +0 -64
  614. package/src/models/concept-reference.ts +0 -50
  615. package/src/models/concept-source.ts +0 -96
  616. package/src/models/concept-system-type.ts +0 -39
  617. package/src/models/concept-system.ts +0 -152
  618. package/src/models/concept.ts +0 -499
  619. package/src/models/dataset-color.ts +0 -88
  620. package/src/models/designation-relationship.ts +0 -39
  621. package/src/models/designation.ts +0 -297
  622. package/src/models/detailed-definition.ts +0 -92
  623. package/src/models/enum.ts +0 -60
  624. package/src/models/equivalence-degree.ts +0 -34
  625. package/src/models/figure.ts +0 -110
  626. package/src/models/formula.ts +0 -36
  627. package/src/models/gcr-metadata.ts +0 -118
  628. package/src/models/gcr-statistics.ts +0 -76
  629. package/src/models/generic-hyperedge.ts +0 -72
  630. package/src/models/generic-member.ts +0 -80
  631. package/src/models/grammar-info.ts +0 -78
  632. package/src/models/hyperedge-colors.ts +0 -87
  633. package/src/models/hyperedge-index.ts +0 -101
  634. package/src/models/hyperedge-member.ts +0 -121
  635. package/src/models/hyperedge-registry.ts +0 -145
  636. package/src/models/index.d.ts +0 -586
  637. package/src/models/locality.ts +0 -34
  638. package/src/models/localized-concept.ts +0 -284
  639. package/src/models/localized-string.ts +0 -32
  640. package/src/models/multiplicity.ts +0 -134
  641. package/src/models/non-verb-rep.ts +0 -48
  642. package/src/models/non-verbal-entity.ts +0 -65
  643. package/src/models/non-verbal-reference.ts +0 -73
  644. package/src/models/non-verbal-references.ts +0 -29
  645. package/src/models/partitive-enumeration.ts +0 -27
  646. package/src/models/partitive-hyperedge.ts +0 -90
  647. package/src/models/partitive-member.ts +0 -56
  648. package/src/models/plurality-marker.ts +0 -31
  649. package/src/models/pronunciation.ts +0 -40
  650. package/src/models/register.ts +0 -315
  651. package/src/models/registrable.ts +0 -48
  652. package/src/models/related-concept.ts +0 -117
  653. package/src/models/relation-categories.ts +0 -167
  654. package/src/models/relation-colors.ts +0 -90
  655. package/src/models/relation-loader.ts +0 -115
  656. package/src/models/section.ts +0 -61
  657. package/src/models/sequential-hyperedge.ts +0 -70
  658. package/src/models/shared-non-verbal-entity.ts +0 -36
  659. package/src/models/table.ts +0 -36
  660. package/src/rdf/agents-emitter.ts +0 -137
  661. package/src/rdf/bibliography-emitter.ts +0 -126
  662. package/src/rdf/bnode-id.ts +0 -55
  663. package/src/rdf/build-activity-emitter.ts +0 -129
  664. package/src/rdf/curie.ts +0 -46
  665. package/src/rdf/dataset-emitter.ts +0 -170
  666. package/src/rdf/deterministic-id.ts +0 -69
  667. package/src/rdf/document-writer.ts +0 -87
  668. package/src/rdf/gloss-concept.ts +0 -115
  669. package/src/rdf/gloss-designation.ts +0 -72
  670. package/src/rdf/gloss-detailed-definition.ts +0 -69
  671. package/src/rdf/gloss-localized-concept.ts +0 -79
  672. package/src/rdf/gloss-non-verbal-rep.ts +0 -202
  673. package/src/rdf/gloss-partitive-relation.ts +0 -89
  674. package/src/rdf/gloss-source.ts +0 -56
  675. package/src/rdf/group-emitter.ts +0 -133
  676. package/src/rdf/image-variant-emitter.ts +0 -80
  677. package/src/rdf/index.d.ts +0 -371
  678. package/src/rdf/predicates.d.ts +0 -527
  679. package/src/rdf/predicates.ts +0 -287
  680. package/src/rdf/provenance-emitter.ts +0 -87
  681. package/src/rdf/sections-builder.ts +0 -190
  682. package/src/rdf/shacl-entry.d.ts +0 -6
  683. package/src/rdf/version-emitter.ts +0 -97
  684. package/src/rdf/vocabulary-emitter.ts +0 -67
  685. package/src/rdf/write-turtle-sync.ts +0 -179
  686. package/src/reference-mention.ts +0 -114
  687. package/src/reference-resolver.ts +0 -361
  688. package/src/render-classification.ts +0 -85
  689. package/src/sort.ts +0 -22
  690. package/src/transforms/concept-to-gloss.transform.ts +0 -81
  691. package/src/transforms/index.d.ts +0 -26
  692. package/src/uuid.ts +0 -32
  693. package/src/v1-reader.ts +0 -66
  694. package/src/validators/asset-index.ts +0 -72
  695. package/src/validators/binary-has-part-redundancy-rule.ts +0 -67
  696. package/src/validators/concept-validator.ts +0 -93
  697. package/src/validators/delimiting-coherence-rule.ts +0 -105
  698. package/src/validators/external-concept-shape-rule.ts +0 -60
  699. package/src/validators/gcr-validator.ts +0 -76
  700. package/src/validators/hyperedge-coherence-rule.ts +0 -98
  701. package/src/validators/index.d.ts +0 -43
  702. package/src/validators/ref-keys.ts +0 -31
  703. package/src/validators/register-validator.ts +0 -18
  704. package/src/validators/relationship-type-rule.ts +0 -39
  705. package/src/validators/sourced-from-locality-rule.ts +0 -53
  706. package/src/validators/v3-rules.ts +0 -382
  707. package/src/validators/validation-error.ts +0 -19
  708. package/src/validators/validation-result.ts +0 -52
  709. package/src/validators/validation-rule.ts +0 -21
@@ -0,0 +1,135 @@
1
+ // Categorization SSOT for the 52 glossarist relationship types.
2
+ import { RELATIONSHIP_TYPES } from './related-concept.js';
3
+ /**
4
+ * Each type in RELATIONSHIP_TYPES belongs to exactly one category. The
5
+ * categories mirror the concept-model taxonomy. Adding a new type
6
+ * means adding a taxonomy entry — no code changes here.
7
+ */
8
+ export const RELATION_CATEGORIES = Object.freeze({
9
+ lifecycle: Object.freeze({
10
+ label: 'Lifecycle',
11
+ description: 'Concept lifecycle transitions: supersession, deprecation, replacement.',
12
+ types: Object.freeze([
13
+ 'deprecates', 'deprecated_by',
14
+ 'supersedes', 'superseded_by',
15
+ 'replaces', 'replaced_by',
16
+ 'invalidates', 'invalidated_by',
17
+ 'retires', 'retired_by',
18
+ ]),
19
+ }),
20
+ hierarchical: Object.freeze({
21
+ label: 'Hierarchical',
22
+ description: 'Broader/narrower relations, including SKOS and ISO 25964 generic/partitive/instantial.',
23
+ types: Object.freeze([
24
+ 'broader', 'narrower',
25
+ 'broader_generic', 'narrower_generic',
26
+ 'broader_partitive', 'narrower_partitive',
27
+ 'broader_instantial', 'narrower_instantial',
28
+ ]),
29
+ }),
30
+ associative: Object.freeze({
31
+ label: 'Associative',
32
+ description: 'Generic see-also references between concepts.',
33
+ types: Object.freeze([
34
+ 'see', 'related_concept',
35
+ 'related_concept_broader', 'related_concept_narrower',
36
+ 'references',
37
+ ]),
38
+ }),
39
+ comparative: Object.freeze({
40
+ label: 'Comparative',
41
+ description: 'Compare / contrast relations between concepts.',
42
+ types: Object.freeze(['compare', 'contrast']),
43
+ }),
44
+ spatiotemporal: Object.freeze({
45
+ label: 'Spatiotemporal',
46
+ description: 'Sequential, spatial, and temporal relations.',
47
+ types: Object.freeze([
48
+ 'sequentially_related_concept',
49
+ 'spatially_related_concept',
50
+ 'temporally_related_concept',
51
+ ]),
52
+ }),
53
+ lexical: Object.freeze({
54
+ label: 'Lexical',
55
+ description: 'Lexical relations between designations across languages.',
56
+ types: Object.freeze(['homograph', 'false_friend']),
57
+ }),
58
+ mapping: Object.freeze({
59
+ label: 'Mapping',
60
+ description: 'SKOS mapping properties for cross-vocabulary alignment.',
61
+ types: Object.freeze([
62
+ 'equivalent', 'close_match',
63
+ 'broad_match', 'narrow_match', 'related_match',
64
+ ]),
65
+ }),
66
+ definitional: Object.freeze({
67
+ label: 'Definitional',
68
+ description: 'ISO 19135 concept-to-concept relations: definition, part, instance, inheritance, versioning.',
69
+ types: Object.freeze([
70
+ 'has_concept', 'is_concept_of',
71
+ 'instance_of', 'has_instance',
72
+ 'has_definition', 'definition_of',
73
+ 'has_part', 'is_part_of',
74
+ 'inherits', 'inherited_by',
75
+ 'has_version', 'version_of',
76
+ 'current_version', 'current_version_of',
77
+ 'provides', 'provided_by',
78
+ ]),
79
+ }),
80
+ });
81
+ const _CATEGORY_BY_TYPE = (() => {
82
+ const map = new Map();
83
+ for (const [cat, def] of Object.entries(RELATION_CATEGORIES)) {
84
+ for (const t of def.types)
85
+ map.set(t, cat);
86
+ }
87
+ return map;
88
+ })();
89
+ const _CATEGORY_ALIASES = {
90
+ conceptInstance: 'definitional',
91
+ versioning: 'definitional',
92
+ };
93
+ /**
94
+ * Returns the category key for the given relationship type, or null
95
+ * when the type is not categorized.
96
+ */
97
+ export function categoryOf(type) {
98
+ return _CATEGORY_BY_TYPE.get(type) ?? null;
99
+ }
100
+ /**
101
+ * Returns the category definition for the given category key.
102
+ * Accepts both canonical names (definitional) and aliases from
103
+ * earlier glossarist-js versions.
104
+ */
105
+ export function categoryDefinition(categoryKey) {
106
+ const canonical = _CATEGORY_ALIASES[categoryKey] ?? categoryKey;
107
+ return RELATION_CATEGORIES[canonical] ?? null;
108
+ }
109
+ /**
110
+ * MECE sanity check. Returns the list of relationship types that are
111
+ * NOT categorized.
112
+ */
113
+ export function uncategorizedTypes() {
114
+ return RELATIONSHIP_TYPES.filter((t) => !_CATEGORY_BY_TYPE.has(t));
115
+ }
116
+ /**
117
+ * MECE sanity check. Returns a list of { type, count } entries for any
118
+ * type that appears in MORE than one category.
119
+ */
120
+ export function duplicatedTypes() {
121
+ const counts = new Map();
122
+ for (const def of Object.values(RELATION_CATEGORIES)) {
123
+ for (const t of def.types) {
124
+ counts.set(t, (counts.get(t) ?? 0) + 1);
125
+ }
126
+ }
127
+ const out = [];
128
+ for (const [type, count] of counts) {
129
+ if (count > 1)
130
+ out.push({ type, count });
131
+ }
132
+ return out;
133
+ }
134
+ export { RELATION_CATEGORIES as RELATION_CATEGORIES_READONLY, };
135
+ //# sourceMappingURL=relation-categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-categories.js","sourceRoot":"","sources":["../../src/models/relation-categories.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export interface ColorPair {
2
+ light: string;
3
+ dark: string;
4
+ }
5
+ export interface RelationColorPalette {
6
+ byCategory: Readonly<Record<string, ColorPair>>;
7
+ byType: Readonly<Record<string, ColorPair>>;
8
+ }
9
+ export interface ResolveRelationColorOptions {
10
+ overrides?: Partial<RelationColorPalette>;
11
+ mode?: 'light' | 'dark';
12
+ }
13
+ /**
14
+ * One { light, dark } pair per category. Keeping these in glossarist-js
15
+ * lets the defaults ship with the library; consumers only need to
16
+ * customize when they want to deviate.
17
+ */
18
+ export declare const RELATION_COLOR_DEFAULTS: RelationColorPalette;
19
+ /**
20
+ * Resolves the color for a relationship type. Resolution order:
21
+ * 1. overrides.byType[type]
22
+ * 2. RELATION_COLOR_DEFAULTS.byType[type]
23
+ * 3. overrides.byCategory[category]
24
+ * 4. RELATION_COLOR_DEFAULTS.byCategory[category]
25
+ * 5. null (uncategorized or unrecognized type)
26
+ */
27
+ export declare function resolveRelationColor(type: string, options?: ResolveRelationColorOptions): string | null;
28
+ /**
29
+ * Returns the { light, dark } pair for a category, merging overrides
30
+ * over defaults. Useful for UIs that want to render a legend.
31
+ */
32
+ export declare function categoryColorPair(categoryKey: string, overrides?: {
33
+ byCategory?: Record<string, Partial<ColorPair>>;
34
+ }): ColorPair | null;
35
+ //# sourceMappingURL=relation-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-colors.d.ts","sourceRoot":"","sources":["../../src/models/relation-colors.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,oBAYpC,CAAC;AAEH;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,2BAAgC,GACxC,MAAM,GAAG,IAAI,CAcf;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;CAAO,GAClE,SAAS,GAAG,IAAI,CAOlB"}
@@ -0,0 +1,68 @@
1
+ // Default color palette for relation categories and individual types.
2
+ //
3
+ // The defaults mirror concept-browser/data/colors.json. Per-deployment
4
+ // overrides pass through resolveRelationColor(type, { overrides, mode })
5
+ // and take precedence over category defaults.
6
+ import { categoryOf, categoryDefinition } from './relation-categories.js';
7
+ /**
8
+ * One { light, dark } pair per category. Keeping these in glossarist-js
9
+ * lets the defaults ship with the library; consumers only need to
10
+ * customize when they want to deviate.
11
+ */
12
+ export const RELATION_COLOR_DEFAULTS = Object.freeze({
13
+ byCategory: Object.freeze({
14
+ lifecycle: { light: '#B43A2E', dark: '#F87171' },
15
+ hierarchical: { light: '#1F6FEB', dark: '#6EA8FE' },
16
+ associative: { light: '#6B7280', dark: '#9CA3AF' },
17
+ comparative: { light: '#A855F7', dark: '#C4B5FD' },
18
+ spatiotemporal: { light: '#0D9488', dark: '#5EEAD4' },
19
+ lexical: { light: '#D97706', dark: '#FBBF24' },
20
+ mapping: { light: '#2563EB', dark: '#93BBFD' },
21
+ definitional: { light: '#65A30D', dark: '#A3E635' },
22
+ }),
23
+ byType: Object.freeze({}),
24
+ });
25
+ /**
26
+ * Resolves the color for a relationship type. Resolution order:
27
+ * 1. overrides.byType[type]
28
+ * 2. RELATION_COLOR_DEFAULTS.byType[type]
29
+ * 3. overrides.byCategory[category]
30
+ * 4. RELATION_COLOR_DEFAULTS.byCategory[category]
31
+ * 5. null (uncategorized or unrecognized type)
32
+ */
33
+ export function resolveRelationColor(type, options = {}) {
34
+ const mode = options.mode ?? 'light';
35
+ const overrides = options.overrides ?? {};
36
+ const typeOverride = overrides.byType?.[type] ?? RELATION_COLOR_DEFAULTS.byType[type];
37
+ if (typeOverride)
38
+ return pickMode(typeOverride, mode);
39
+ const category = categoryOf(type);
40
+ if (!category)
41
+ return null;
42
+ const categoryOverride = overrides.byCategory?.[category] ?? RELATION_COLOR_DEFAULTS.byCategory[category];
43
+ if (!categoryOverride)
44
+ return null;
45
+ return pickMode(categoryOverride, mode);
46
+ }
47
+ /**
48
+ * Returns the { light, dark } pair for a category, merging overrides
49
+ * over defaults. Useful for UIs that want to render a legend.
50
+ */
51
+ export function categoryColorPair(categoryKey, overrides = {}) {
52
+ const def = categoryDefinition(categoryKey);
53
+ if (!def)
54
+ return null;
55
+ const fromOverride = overrides.byCategory?.[categoryKey];
56
+ const fromDefault = RELATION_COLOR_DEFAULTS.byCategory[categoryKey];
57
+ if (!fromDefault && !fromOverride)
58
+ return null;
59
+ return { ...(fromDefault ?? { light: '', dark: '' }), ...(fromOverride ?? {}) };
60
+ }
61
+ function pickMode(pair, mode) {
62
+ if (pair == null)
63
+ return null;
64
+ if (typeof pair === 'string')
65
+ return pair;
66
+ return pair[mode] ?? pair.light ?? pair.dark ?? null;
67
+ }
68
+ //# sourceMappingURL=relation-colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-colors.js","sourceRoot":"","sources":["../../src/models/relation-colors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { AbstractHyperedge } from './abstract-hyperedge.js';
2
+ /**
3
+ * Backward-compat: snapshot of registered classes keyed by typeTag.
4
+ * Prefer HyperedgeRegistry.forTypeTag() for new code — this snapshot
5
+ * is frozen at module load and won't pick up runtime registrations
6
+ * from tests (the OCP test in Phase 11 registers a mock type after
7
+ * import).
8
+ */
9
+ export declare const TYPE_TO_CLASS: object;
10
+ /**
11
+ * Thrown by `loadAll` when a relation file has an unknown `type`,
12
+ * malformed structure, or a class that fails to instantiate.
13
+ */
14
+ export declare class RelationLoadError extends Error {
15
+ readonly path: string;
16
+ constructor(path: string, message: string);
17
+ }
18
+ /**
19
+ * Walk a `relations/` directory and load every relation file,
20
+ * returning a Map keyed by comprehensive-id.
21
+ *
22
+ * Returns an empty Map if `relationsDir` doesn't exist or is empty.
23
+ */
24
+ export declare function loadAll(relationsDir: string | null | undefined): Map<string, AbstractHyperedge[]>;
25
+ /**
26
+ * Namespace bundle for the loader — callers import it as
27
+ * `import { RelationLoader } from './relation-loader.js'` and call
28
+ * `RelationLoader.loadAll(dir)`. The individual functions are also
29
+ * exported directly for tree-shakeable single-call sites.
30
+ */
31
+ export declare const RelationLoader: Readonly<{
32
+ loadAll: typeof loadAll;
33
+ loadOne: typeof loadOne;
34
+ }>;
35
+ /**
36
+ * Load a single relation file. Returns null if the file is missing,
37
+ * unreadable, or doesn't have a recognized `type` field. Throws
38
+ * `RelationLoadError` on malformed content.
39
+ */
40
+ export declare function loadOne(path: string): AbstractHyperedge | null;
41
+ //# sourceMappingURL=relation-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-loader.d.ts","sourceRoot":"","sources":["../../src/models/relation-loader.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAWjE;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,QAazB,CAAC;AAEF;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CACrB,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAqBlC;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;EAAsC,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAa9D"}
@@ -0,0 +1,101 @@
1
+ // HyperedgeLoader — runtime loader for per-file hyperedge YAMLs.
2
+ //
3
+ // Walks a `relations/<comprehensive-id>/<slug>.yaml` directory and
4
+ // dispatches each file to the appropriate class (PartitiveHyperedge,
5
+ // GenericHyperedge, future leaves) based on its `type` field, via
6
+ // HyperedgeRegistry.
7
+ import { readdirSync, readFileSync, existsSync } from 'node:fs';
8
+ import * as yaml from 'js-yaml';
9
+ import { HyperedgeRegistry } from './hyperedge-registry.js';
10
+ /**
11
+ * Backward-compat: snapshot of registered classes keyed by typeTag.
12
+ * Prefer HyperedgeRegistry.forTypeTag() for new code — this snapshot
13
+ * is frozen at module load and won't pick up runtime registrations
14
+ * from tests (the OCP test in Phase 11 registers a mock type after
15
+ * import).
16
+ */
17
+ export const TYPE_TO_CLASS = new Proxy({}, {
18
+ get(_target, prop) {
19
+ return typeof prop === 'string' ? HyperedgeRegistry.forTypeTag(prop) : null;
20
+ },
21
+ ownKeys() {
22
+ return HyperedgeRegistry.allTypeTags();
23
+ },
24
+ getOwnPropertyDescriptor() {
25
+ return { enumerable: true, configurable: true };
26
+ },
27
+ });
28
+ /**
29
+ * Thrown by `loadAll` when a relation file has an unknown `type`,
30
+ * malformed structure, or a class that fails to instantiate.
31
+ */
32
+ export class RelationLoadError extends Error {
33
+ path;
34
+ constructor(path, message) {
35
+ super(`relation-loader: ${path}: ${message}`);
36
+ this.path = path;
37
+ }
38
+ }
39
+ /**
40
+ * Walk a `relations/` directory and load every relation file,
41
+ * returning a Map keyed by comprehensive-id.
42
+ *
43
+ * Returns an empty Map if `relationsDir` doesn't exist or is empty.
44
+ */
45
+ export function loadAll(relationsDir) {
46
+ const result = new Map();
47
+ if (!relationsDir)
48
+ return result;
49
+ if (!existsSync(relationsDir))
50
+ return result;
51
+ const entries = readdirSync(relationsDir, { withFileTypes: true });
52
+ for (const compEntry of entries) {
53
+ if (!compEntry.isDirectory())
54
+ continue;
55
+ const compId = compEntry.name;
56
+ const compDir = `${relationsDir}/${compId}`;
57
+ if (!result.has(compId))
58
+ result.set(compId, []);
59
+ const files = readdirSync(compDir)
60
+ .filter((f) => f.endsWith('.yaml') || f.endsWith('.yml'))
61
+ .sort();
62
+ for (const file of files) {
63
+ const path = `${compDir}/${file}`;
64
+ const rel = loadOne(path);
65
+ if (rel)
66
+ result.get(compId)?.push(rel);
67
+ }
68
+ }
69
+ return result;
70
+ }
71
+ /**
72
+ * Namespace bundle for the loader — callers import it as
73
+ * `import { RelationLoader } from './relation-loader.js'` and call
74
+ * `RelationLoader.loadAll(dir)`. The individual functions are also
75
+ * exported directly for tree-shakeable single-call sites.
76
+ */
77
+ export const RelationLoader = Object.freeze({ loadAll, loadOne });
78
+ /**
79
+ * Load a single relation file. Returns null if the file is missing,
80
+ * unreadable, or doesn't have a recognized `type` field. Throws
81
+ * `RelationLoadError` on malformed content.
82
+ */
83
+ export function loadOne(path) {
84
+ let doc;
85
+ try {
86
+ doc = yaml.load(readFileSync(path, 'utf8'));
87
+ }
88
+ catch (e) {
89
+ throw new RelationLoadError(path, `YAML parse failed: ${e.message}`);
90
+ }
91
+ if (!doc || typeof doc !== 'object')
92
+ return null;
93
+ const d = doc;
94
+ if (!d.type)
95
+ return null;
96
+ const Cls = HyperedgeRegistry.forTypeTag(d.type);
97
+ if (!Cls)
98
+ return null;
99
+ return Cls.fromJSON(d);
100
+ }
101
+ //# sourceMappingURL=relation-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-loader.js","sourceRoot":"","sources":["../../src/models/relation-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { GlossaristModel } from './base.js';
2
+ import type { LocalizedString } from './generic-member.js';
3
+ export declare const ORDERING_METHODS: ReadonlyArray<string>;
4
+ export type OrderingMethod = string;
5
+ export interface SectionJson {
6
+ id?: string | null;
7
+ names?: LocalizedString;
8
+ ordering?: OrderingMethod | null;
9
+ children?: ReadonlyArray<SectionJson | Section>;
10
+ }
11
+ export declare class Section extends GlossaristModel {
12
+ readonly id: string | null;
13
+ readonly names: LocalizedString;
14
+ readonly ordering: OrderingMethod | null;
15
+ readonly children: ReadonlyArray<Section>;
16
+ constructor(data?: SectionJson);
17
+ name(lang: string): string | null;
18
+ descendantById(id: string): Section | null;
19
+ toJSON(): SectionJson;
20
+ static fromJSON(data: SectionJson): Section;
21
+ }
22
+ //# sourceMappingURL=section.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section.d.ts","sourceRoot":"","sources":["../../src/models/section.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAIjD,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC;CACjD;AAED,qBAAa,OAAQ,SAAQ,eAAe;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBAE9B,IAAI,GAAE,WAAgB;IAUlC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIjC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IASjC,MAAM,IAAI,WAAW;WAUd,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;CAGrD"}
@@ -0,0 +1,47 @@
1
+ import { GlossaristModel } from './base.js';
2
+ export const ORDERING_METHODS = Object.freeze([
3
+ 'systematic',
4
+ 'mixed',
5
+ 'alphabetical',
6
+ ]);
7
+ export class Section extends GlossaristModel {
8
+ id;
9
+ names;
10
+ ordering;
11
+ children;
12
+ constructor(data = {}) {
13
+ super();
14
+ this.id = data.id ?? null;
15
+ this.names = data.names ?? {};
16
+ this.ordering = data.ordering ?? null;
17
+ this.children = (data.children ?? []).map((c) => c instanceof Section ? c : new Section(c));
18
+ }
19
+ name(lang) {
20
+ return this.names[lang] ?? this.names['eng'] ?? null;
21
+ }
22
+ descendantById(id) {
23
+ for (const child of this.children) {
24
+ if (child.id === id)
25
+ return child;
26
+ const found = child.descendantById(id);
27
+ if (found)
28
+ return found;
29
+ }
30
+ return null;
31
+ }
32
+ toJSON() {
33
+ const obj = { id: this.id };
34
+ if (Object.keys(this.names).length > 0)
35
+ obj.names = { ...this.names };
36
+ if (this.ordering != null)
37
+ obj.ordering = this.ordering;
38
+ if (this.children.length > 0) {
39
+ obj.children = this.children.map((c) => c.toJSON());
40
+ }
41
+ return obj;
42
+ }
43
+ static fromJSON(data) {
44
+ return new Section(data);
45
+ }
46
+ }
47
+ //# sourceMappingURL=section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section.js","sourceRoot":"","sources":["../../src/models/section.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,CAAC,MAAM,gBAAgB,GAA0B,MAAM,CAAC,MAAM,CAAC;IACnE,YAAY;IACZ,OAAO;IACP,cAAc;CACf,CAAC,CAAC;AAWH,MAAM,OAAO,OAAQ,SAAQ,eAAe;IACjC,EAAE,CAAgB;IAClB,KAAK,CAAkB;IACvB,QAAQ,CAAwB;IAChC,QAAQ,CAAyB;IAE1C,YAAY,OAAoB,EAAE;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAI,IAAI,CAAC,KAAyB,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAgB,CAAC,CACzD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;IACvD,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YAClC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,MAAM;QACb,MAAM,GAAG,GAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACtE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAU,QAAQ,CAAC,IAAiB;QACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,32 @@
1
+ import { AbstractHyperedge } from './abstract-hyperedge.js';
2
+ import type { AbstractHyperedgeJson } from './abstract-hyperedge.js';
3
+ import { SequentialMember } from './sequential-member.js';
4
+ import type { SequentialMemberJson } from './sequential-member.js';
5
+ export interface SequentialHyperedgeJson extends AbstractHyperedgeJson {
6
+ members: ReadonlyArray<SequentialMemberJson | SequentialMember>;
7
+ }
8
+ export declare class SequentialHyperedge extends AbstractHyperedge {
9
+ static wireKey: "sequential_relations";
10
+ static typeTag: "sequential_relation";
11
+ static rdfType: "gloss:SequentialRelation";
12
+ static memberClass: typeof SequentialMember;
13
+ static v1WireKeys: ReadonlyArray<string>;
14
+ static kindLabel: string;
15
+ readonly members: ReadonlyArray<SequentialMember>;
16
+ constructor(data?: Partial<SequentialHyperedgeJson>);
17
+ static identityOf(value: {
18
+ comprehensive?: {
19
+ source?: string | null;
20
+ id?: string | null;
21
+ } | null;
22
+ members?: ReadonlyArray<{
23
+ ref?: {
24
+ source?: string | null;
25
+ id?: string | null;
26
+ } | null;
27
+ } | null>;
28
+ } | null | undefined): string;
29
+ static fromJSON(data: SequentialHyperedgeJson): SequentialHyperedge;
30
+ }
31
+ export default SequentialHyperedge;
32
+ //# sourceMappingURL=sequential-hyperedge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequential-hyperedge.d.ts","sourceRoot":"","sources":["../../src/models/sequential-hyperedge.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGnE,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,OAAO,EAAE,aAAa,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;CACjE;AAED,qBAAa,mBAAoB,SAAQ,iBAAiB;IAExD,MAAM,CAAC,OAAO,EAAG,sBAAsB,CAAU;IACjD,MAAM,CAAC,OAAO,EAAG,qBAAqB,CAAU;IAChD,MAAM,CAAC,OAAO,EAAG,0BAA0B,CAAU;IACrD,MAAM,CAAC,WAAW,0BAAoB;IACtC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAM;IAC9C,MAAM,CAAC,SAAS,SAAS;IAEzB,SAAiB,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;gBAE9C,IAAI,GAAE,OAAO,CAAC,uBAAuB,CAAM;IAevD,MAAM,CAAC,UAAU,CACf,KAAK,EAAE;QACL,aAAa,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;QACtE,OAAO,CAAC,EAAE,aAAa,CAAC;YAAE,GAAG,CAAC,EAAE;gBAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;gBAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;aAAE,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC,CAAC;KACjG,GAAG,IAAI,GAAG,SAAS,GACnB,MAAM;WAWO,QAAQ,CAAC,IAAI,EAAE,uBAAuB,GAAG,mBAAmB;CAG7E;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,49 @@
1
+ // SequentialHyperedge — an ISO 12620 A.6.3 / ISO 704:2022 §5.5.5
2
+ // sequential relation connecting a comprehensive concept to two or
3
+ // more subordinate concepts in an ORDERED sequence (temporal,
4
+ // spatial, causal, developmental).
5
+ //
6
+ // Mirror of PartitiveHyperedge and GenericHyperedge. Member array
7
+ // order IS significant — reversing the array reverses the sequence.
8
+ // Use cases: manufacturing process steps, biological life cycles,
9
+ // software release lifecycles, supply chain stages, geological eras.
10
+ import { AbstractHyperedge } from './abstract-hyperedge.js';
11
+ import { SequentialMember } from './sequential-member.js';
12
+ import { HyperedgeRegistry } from './hyperedge-registry.js';
13
+ export class SequentialHyperedge extends AbstractHyperedge {
14
+ // Per-class metadata block — the OCP contract.
15
+ static wireKey = 'sequential_relations';
16
+ static typeTag = 'sequential_relation';
17
+ static rdfType = 'gloss:SequentialRelation';
18
+ static memberClass = SequentialMember;
19
+ static v1WireKeys = [];
20
+ static kindLabel = 'SEQ';
21
+ constructor(data = {}) {
22
+ super({
23
+ comprehensive: data.comprehensive ?? {},
24
+ members: data.members ?? [],
25
+ completeness: data.completeness ?? 'complete',
26
+ criterion: data.criterion,
27
+ sources: data.sources,
28
+ notes: data.notes,
29
+ status: data.status,
30
+ });
31
+ this.members = (Array.isArray(data.members) ? data.members : []).map((m) => m instanceof SequentialMember ? m : new SequentialMember(m));
32
+ }
33
+ static identityOf(value) {
34
+ const v = value ?? {};
35
+ const c = v.comprehensive ?? {};
36
+ // For sequential, member order IS significant — do NOT sort.
37
+ const memberKeys = (v.members ?? []).map((m) => {
38
+ const r = m?.ref ?? m ?? {};
39
+ return `${r.source ?? ''}:${r.id ?? ''}`;
40
+ });
41
+ return `${c.source ?? ''}:${c.id ?? ''}|${memberKeys.join('|')}`;
42
+ }
43
+ static fromJSON(data) {
44
+ return new SequentialHyperedge(data);
45
+ }
46
+ }
47
+ export default SequentialHyperedge;
48
+ HyperedgeRegistry.register(SequentialHyperedge);
49
+ //# sourceMappingURL=sequential-hyperedge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequential-hyperedge.js","sourceRoot":"","sources":["../../src/models/sequential-hyperedge.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,mEAAmE;AACnE,8DAA8D;AAC9D,mCAAmC;AACnC,EAAE;AACF,kEAAkE;AAClE,oEAAoE;AACpE,kEAAkE;AAClE,qEAAqE;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,MAAM,OAAO,mBAAoB,SAAQ,iBAAiB;IACxD,+CAA+C;IAC/C,MAAM,CAAC,OAAO,GAAG,sBAA+B,CAAC;IACjD,MAAM,CAAC,OAAO,GAAG,qBAA8B,CAAC;IAChD,MAAM,CAAC,OAAO,GAAG,0BAAmC,CAAC;IACrD,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC;IACtC,MAAM,CAAC,UAAU,GAA0B,EAAE,CAAC;IAC9C,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IAIzB,YAAY,OAAyC,EAAE;QACrD,KAAK,CAAC;YACJ,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE;YACvC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,UAAU;YAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzE,CAAC,YAAY,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAyB,CAAC,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CACf,KAGoB;QAEpB,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC;QAChC,6DAA6D;QAC7D,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,IAAK,CAA6C,IAAI,EAAE,CAAC;YACzE,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,MAAM,CAAU,QAAQ,CAAC,IAA6B;QACpD,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AAGH,eAAe,mBAAmB,CAAC;AAEnC,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { HyperedgeMember } from './hyperedge-member.js';
2
+ import type { HyperedgeMemberJson } from './hyperedge-member.js';
3
+ export type SequentialMemberJson = HyperedgeMemberJson;
4
+ export declare class SequentialMember extends HyperedgeMember {
5
+ static fromJSON(data: SequentialMemberJson): SequentialMember;
6
+ }
7
+ export default SequentialMember;
8
+ //# sourceMappingURL=sequential-member.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequential-member.d.ts","sourceRoot":"","sources":["../../src/models/sequential-member.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEvD,qBAAa,gBAAiB,SAAQ,eAAe;WACnC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB;CAGvE;AAED,eAAe,gBAAgB,CAAC"}
@@ -1,16 +1,11 @@
1
1
  // SequentialMember — one member of a SequentialHyperedge. Inherits
2
2
  // the MECE shape from HyperedgeMember. Distinct leaf class for type
3
3
  // safety. Member array order IS significant for sequential hyperedges.
4
-
5
4
  import { HyperedgeMember } from './hyperedge-member.js';
6
- import type { HyperedgeMemberJson } from './hyperedge-member.js';
7
-
8
- export type SequentialMemberJson = HyperedgeMemberJson;
9
-
10
5
  export class SequentialMember extends HyperedgeMember {
11
- static override fromJSON(data: SequentialMemberJson): SequentialMember {
12
- return new SequentialMember(data);
13
- }
6
+ static fromJSON(data) {
7
+ return new SequentialMember(data);
8
+ }
14
9
  }
15
-
16
10
  export default SequentialMember;
11
+ //# sourceMappingURL=sequential-member.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequential-member.js","sourceRoot":"","sources":["../../src/models/sequential-member.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,oEAAoE;AACpE,uEAAuE;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IACnD,MAAM,CAAU,QAAQ,CAAC,IAA0B;QACjD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { NonVerbalEntity } from './non-verbal-entity.js';
2
+ import type { NonVerbalEntityJson } from './non-verbal-entity.js';
3
+ export interface SharedNonVerbalEntityJson extends NonVerbalEntityJson {
4
+ id?: string | null;
5
+ identifier?: string | null;
6
+ }
7
+ export declare class SharedNonVerbalEntity extends NonVerbalEntity {
8
+ readonly id: string | null;
9
+ readonly identifier: string | null;
10
+ constructor(data?: SharedNonVerbalEntityJson);
11
+ findById(targetId: string): this | null;
12
+ allIds(): string[];
13
+ toJSON(): SharedNonVerbalEntityJson;
14
+ static fromJSON(data: SharedNonVerbalEntityJson): SharedNonVerbalEntity;
15
+ }
16
+ //# sourceMappingURL=shared-non-verbal-entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-non-verbal-entity.d.ts","sourceRoot":"","sources":["../../src/models/shared-non-verbal-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEvB,IAAI,GAAE,yBAA8B;IAMvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAGvC,MAAM,IAAI,MAAM,EAAE;IAIlB,MAAM,IAAI,yBAAyB;WAO5B,QAAQ,CAAC,IAAI,EAAE,yBAAyB,GAAG,qBAAqB;CAGjF"}