@fgv/ts-res 5.0.0-9 → 5.0.1-1

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 (384) hide show
  1. package/CHANGELOG.json +21 -0
  2. package/CHANGELOG.md +14 -1
  3. package/README.md +794 -137
  4. package/dist/ts-res.d.ts +2257 -268
  5. package/dist/tsdoc-metadata.json +1 -1
  6. package/eslint.config.js +16 -0
  7. package/lib/index.d.ts +2 -1
  8. package/lib/index.js +3 -1
  9. package/lib/packlets/bundle/bundleBuilder.js +7 -4
  10. package/lib/packlets/bundle/bundleLoader.js +1 -0
  11. package/lib/packlets/bundle/bundleUtils.js +14 -16
  12. package/lib/packlets/bundle/index.d.ts +3 -1
  13. package/lib/packlets/bundle/index.js +14 -3
  14. package/lib/packlets/common/convert.d.ts +15 -0
  15. package/lib/packlets/common/convert.js +16 -1
  16. package/lib/packlets/common/helpers/context.js +1 -0
  17. package/lib/packlets/common/helpers/resources.d.ts +7 -0
  18. package/lib/packlets/common/helpers/resources.js +13 -0
  19. package/lib/packlets/common/resources.d.ts +44 -1
  20. package/lib/packlets/common/validate/conditions.d.ts +17 -1
  21. package/lib/packlets/common/validate/conditions.js +32 -6
  22. package/lib/packlets/common/validate/regularExpressions.d.ts +4 -0
  23. package/lib/packlets/common/validate/regularExpressions.js +5 -1
  24. package/lib/packlets/common/validate/resources.d.ts +35 -1
  25. package/lib/packlets/common/validate/resources.js +55 -0
  26. package/lib/packlets/conditions/condition.js +1 -0
  27. package/lib/packlets/conditions/conditionSet.d.ts +9 -0
  28. package/lib/packlets/conditions/conditionSet.js +75 -1
  29. package/lib/packlets/config/configInitFactory.d.ts +217 -0
  30. package/lib/packlets/config/configInitFactory.js +302 -0
  31. package/lib/packlets/config/convert.d.ts +9 -0
  32. package/lib/packlets/config/convert.js +12 -1
  33. package/lib/packlets/config/index.d.ts +1 -0
  34. package/lib/packlets/config/index.js +1 -0
  35. package/lib/packlets/config/json.d.ts +1 -1
  36. package/lib/packlets/config/systemConfiguration.d.ts +16 -3
  37. package/lib/packlets/config/systemConfiguration.js +19 -40
  38. package/lib/packlets/import/fsItem.d.ts +2 -1
  39. package/lib/packlets/import/fsItem.js +9 -13
  40. package/lib/packlets/import/importManager.d.ts +2 -1
  41. package/lib/packlets/import/importers/jsonImporter.js +1 -0
  42. package/lib/packlets/import/importers/pathImporter.d.ts +2 -1
  43. package/lib/packlets/import/importers/pathImporter.js +2 -1
  44. package/lib/packlets/qualifier-types/config/convert.d.ts +22 -1
  45. package/lib/packlets/qualifier-types/config/convert.js +67 -2
  46. package/lib/packlets/qualifier-types/config/json.d.ts +24 -2
  47. package/lib/packlets/qualifier-types/config/json.js +11 -0
  48. package/lib/packlets/qualifier-types/convert.d.ts +1 -1
  49. package/lib/packlets/qualifier-types/helpers.d.ts +14 -5
  50. package/lib/packlets/qualifier-types/helpers.js +2 -2
  51. package/lib/packlets/qualifier-types/languageQualifierType.d.ts +28 -2
  52. package/lib/packlets/qualifier-types/languageQualifierType.js +73 -0
  53. package/lib/packlets/qualifier-types/literalQualifierType.d.ts +31 -5
  54. package/lib/packlets/qualifier-types/literalQualifierType.js +75 -0
  55. package/lib/packlets/qualifier-types/literalValueHierarchy.d.ts +7 -11
  56. package/lib/packlets/qualifier-types/literalValueHierarchy.js +12 -1
  57. package/lib/packlets/qualifier-types/qualifierType.d.ts +31 -2
  58. package/lib/packlets/qualifier-types/territoryQualifierType.d.ts +31 -5
  59. package/lib/packlets/qualifier-types/territoryQualifierType.js +80 -0
  60. package/lib/packlets/qualifiers/qualifierCollector.js +1 -2
  61. package/lib/packlets/resource-json/compiled/convert.js +2 -1
  62. package/lib/packlets/resource-json/compiled/json.d.ts +6 -2
  63. package/lib/packlets/resource-types/config/convert.d.ts +1 -1
  64. package/lib/packlets/resource-types/config/convert.js +3 -1
  65. package/lib/packlets/resource-types/config/json.d.ts +3 -1
  66. package/lib/packlets/resource-types/jsonResourceType.d.ts +10 -1
  67. package/lib/packlets/resource-types/jsonResourceType.js +7 -3
  68. package/lib/packlets/resource-types/resourceType.d.ts +100 -8
  69. package/lib/packlets/resource-types/resourceType.js +39 -3
  70. package/lib/packlets/resources/candidateReducer.js +3 -0
  71. package/lib/packlets/resources/candidateValue.d.ts +92 -0
  72. package/lib/packlets/resources/candidateValue.js +128 -0
  73. package/lib/packlets/resources/candidateValueCollector.d.ts +55 -0
  74. package/lib/packlets/resources/candidateValueCollector.js +96 -0
  75. package/lib/packlets/resources/common.d.ts +14 -0
  76. package/lib/packlets/resources/deltaGenerator.d.ts +189 -0
  77. package/lib/packlets/resources/deltaGenerator.js +344 -0
  78. package/lib/packlets/resources/index.d.ts +3 -0
  79. package/lib/packlets/resources/index.js +3 -0
  80. package/lib/packlets/resources/resource.d.ts +6 -6
  81. package/lib/packlets/resources/resource.js +5 -10
  82. package/lib/packlets/resources/resourceBuilder.d.ts +6 -0
  83. package/lib/packlets/resources/resourceBuilder.js +4 -1
  84. package/lib/packlets/resources/resourceCandidate.d.ts +15 -2
  85. package/lib/packlets/resources/resourceCandidate.js +17 -5
  86. package/lib/packlets/resources/resourceManagerBuilder.d.ts +131 -10
  87. package/lib/packlets/resources/resourceManagerBuilder.js +289 -45
  88. package/lib/packlets/runtime/compiledResourceCollection.d.ts +27 -11
  89. package/lib/packlets/runtime/compiledResourceCollection.js +71 -28
  90. package/lib/packlets/runtime/conditionSetResolutionResult.js +3 -0
  91. package/lib/packlets/runtime/context/contextQualifierProvider.d.ts +53 -3
  92. package/lib/packlets/runtime/context/contextQualifierProviderValidator.d.ts +82 -37
  93. package/lib/packlets/runtime/context/contextQualifierProviderValidator.js +49 -77
  94. package/lib/packlets/runtime/context/simpleContextQualifierProvider.d.ts +23 -2
  95. package/lib/packlets/runtime/context/simpleContextQualifierProvider.js +53 -31
  96. package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.d.ts +4 -4
  97. package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.js +2 -2
  98. package/lib/packlets/runtime/iResourceManager.d.ts +17 -5
  99. package/lib/packlets/runtime/index.d.ts +1 -0
  100. package/lib/packlets/runtime/index.js +1 -0
  101. package/lib/packlets/runtime/resource-tree/common.d.ts +1 -1
  102. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.d.ts +7 -7
  103. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.js +5 -5
  104. package/lib/packlets/runtime/resourceResolver.d.ts +43 -1
  105. package/lib/packlets/runtime/resourceResolver.js +56 -28
  106. package/lib/packlets/runtime/resourceTreeResolver.d.ts +152 -0
  107. package/lib/packlets/runtime/resourceTreeResolver.js +222 -0
  108. package/lib/packlets/runtime/validate.js +1 -0
  109. package/lib/packlets/zip-archive/convert.d.ts +52 -0
  110. package/lib/packlets/zip-archive/convert.js +103 -0
  111. package/lib/packlets/zip-archive/index.d.ts +23 -0
  112. package/lib/packlets/zip-archive/index.js +95 -0
  113. package/lib/packlets/zip-archive/json.d.ts +64 -0
  114. package/lib/packlets/zip-archive/json.js +24 -0
  115. package/lib/packlets/zip-archive/types.d.ts +98 -0
  116. package/lib/packlets/zip-archive/types.js +39 -0
  117. package/lib/packlets/zip-archive/zipArchiveCreator.d.ts +35 -0
  118. package/lib/packlets/zip-archive/zipArchiveCreator.js +195 -0
  119. package/lib/packlets/zip-archive/zipArchiveFormat.d.ts +70 -0
  120. package/lib/packlets/zip-archive/zipArchiveFormat.js +184 -0
  121. package/lib/packlets/zip-archive/zipArchiveLoader.d.ts +70 -0
  122. package/lib/packlets/zip-archive/zipArchiveLoader.js +286 -0
  123. package/package.json +26 -32
  124. package/CLAUDE.md +0 -186
  125. package/EXAMPLE_INIT_PARAMS.md +0 -88
  126. package/PROGRESS_SUMMARY.md +0 -48
  127. package/lib/index.d.ts.map +0 -1
  128. package/lib/index.js.map +0 -1
  129. package/lib/packlets/bundle/bundleBuilder.d.ts.map +0 -1
  130. package/lib/packlets/bundle/bundleBuilder.js.map +0 -1
  131. package/lib/packlets/bundle/bundleLoader.d.ts.map +0 -1
  132. package/lib/packlets/bundle/bundleLoader.js.map +0 -1
  133. package/lib/packlets/bundle/bundleNormalizer.d.ts.map +0 -1
  134. package/lib/packlets/bundle/bundleNormalizer.js.map +0 -1
  135. package/lib/packlets/bundle/bundleUtils.d.ts.map +0 -1
  136. package/lib/packlets/bundle/bundleUtils.js.map +0 -1
  137. package/lib/packlets/bundle/convert.d.ts.map +0 -1
  138. package/lib/packlets/bundle/convert.js.map +0 -1
  139. package/lib/packlets/bundle/index.d.ts.map +0 -1
  140. package/lib/packlets/bundle/index.js.map +0 -1
  141. package/lib/packlets/bundle/model.d.ts.map +0 -1
  142. package/lib/packlets/bundle/model.js.map +0 -1
  143. package/lib/packlets/common/conditions.d.ts.map +0 -1
  144. package/lib/packlets/common/conditions.js.map +0 -1
  145. package/lib/packlets/common/convert.d.ts.map +0 -1
  146. package/lib/packlets/common/convert.js.map +0 -1
  147. package/lib/packlets/common/helpers/conditions.d.ts.map +0 -1
  148. package/lib/packlets/common/helpers/conditions.js.map +0 -1
  149. package/lib/packlets/common/helpers/context.d.ts.map +0 -1
  150. package/lib/packlets/common/helpers/context.js.map +0 -1
  151. package/lib/packlets/common/helpers/index.d.ts.map +0 -1
  152. package/lib/packlets/common/helpers/index.js.map +0 -1
  153. package/lib/packlets/common/helpers/qualifierDefaultValues.d.ts.map +0 -1
  154. package/lib/packlets/common/helpers/qualifierDefaultValues.js.map +0 -1
  155. package/lib/packlets/common/helpers/resources.d.ts.map +0 -1
  156. package/lib/packlets/common/helpers/resources.js.map +0 -1
  157. package/lib/packlets/common/index.d.ts.map +0 -1
  158. package/lib/packlets/common/index.js.map +0 -1
  159. package/lib/packlets/common/resources.d.ts.map +0 -1
  160. package/lib/packlets/common/resources.js.map +0 -1
  161. package/lib/packlets/common/validate/conditions.d.ts.map +0 -1
  162. package/lib/packlets/common/validate/conditions.js.map +0 -1
  163. package/lib/packlets/common/validate/index.d.ts.map +0 -1
  164. package/lib/packlets/common/validate/index.js.map +0 -1
  165. package/lib/packlets/common/validate/regularExpressions.d.ts.map +0 -1
  166. package/lib/packlets/common/validate/regularExpressions.js.map +0 -1
  167. package/lib/packlets/common/validate/resources.d.ts.map +0 -1
  168. package/lib/packlets/common/validate/resources.js.map +0 -1
  169. package/lib/packlets/conditions/condition.d.ts.map +0 -1
  170. package/lib/packlets/conditions/condition.js.map +0 -1
  171. package/lib/packlets/conditions/conditionCollector.d.ts.map +0 -1
  172. package/lib/packlets/conditions/conditionCollector.js.map +0 -1
  173. package/lib/packlets/conditions/conditionDecls.d.ts.map +0 -1
  174. package/lib/packlets/conditions/conditionDecls.js.map +0 -1
  175. package/lib/packlets/conditions/conditionSet.d.ts.map +0 -1
  176. package/lib/packlets/conditions/conditionSet.js.map +0 -1
  177. package/lib/packlets/conditions/conditionSetCollector.d.ts.map +0 -1
  178. package/lib/packlets/conditions/conditionSetCollector.js.map +0 -1
  179. package/lib/packlets/conditions/conditionSetDecls.d.ts.map +0 -1
  180. package/lib/packlets/conditions/conditionSetDecls.js.map +0 -1
  181. package/lib/packlets/conditions/conditionToken.d.ts.map +0 -1
  182. package/lib/packlets/conditions/conditionToken.js.map +0 -1
  183. package/lib/packlets/conditions/convert/conditionSetDecls.d.ts.map +0 -1
  184. package/lib/packlets/conditions/convert/conditionSetDecls.js.map +0 -1
  185. package/lib/packlets/conditions/convert/decls.d.ts.map +0 -1
  186. package/lib/packlets/conditions/convert/decls.js.map +0 -1
  187. package/lib/packlets/conditions/convert/index.d.ts.map +0 -1
  188. package/lib/packlets/conditions/convert/index.js.map +0 -1
  189. package/lib/packlets/conditions/index.d.ts.map +0 -1
  190. package/lib/packlets/conditions/index.js.map +0 -1
  191. package/lib/packlets/config/common.d.ts.map +0 -1
  192. package/lib/packlets/config/common.js.map +0 -1
  193. package/lib/packlets/config/convert.d.ts.map +0 -1
  194. package/lib/packlets/config/convert.js.map +0 -1
  195. package/lib/packlets/config/index.d.ts.map +0 -1
  196. package/lib/packlets/config/index.js.map +0 -1
  197. package/lib/packlets/config/json.d.ts.map +0 -1
  198. package/lib/packlets/config/json.js.map +0 -1
  199. package/lib/packlets/config/predefined/default.d.ts.map +0 -1
  200. package/lib/packlets/config/predefined/default.js.map +0 -1
  201. package/lib/packlets/config/predefined/extended.d.ts.map +0 -1
  202. package/lib/packlets/config/predefined/extended.js.map +0 -1
  203. package/lib/packlets/config/predefined/index.d.ts.map +0 -1
  204. package/lib/packlets/config/predefined/index.js.map +0 -1
  205. package/lib/packlets/config/systemConfiguration.d.ts.map +0 -1
  206. package/lib/packlets/config/systemConfiguration.js.map +0 -1
  207. package/lib/packlets/context/contextDecls.d.ts.map +0 -1
  208. package/lib/packlets/context/contextDecls.js.map +0 -1
  209. package/lib/packlets/context/contextToken.d.ts.map +0 -1
  210. package/lib/packlets/context/contextToken.js.map +0 -1
  211. package/lib/packlets/context/convert/decls.d.ts.map +0 -1
  212. package/lib/packlets/context/convert/decls.js.map +0 -1
  213. package/lib/packlets/context/convert/index.d.ts.map +0 -1
  214. package/lib/packlets/context/convert/index.js.map +0 -1
  215. package/lib/packlets/context/index.d.ts.map +0 -1
  216. package/lib/packlets/context/index.js.map +0 -1
  217. package/lib/packlets/decisions/abstractDecision.d.ts.map +0 -1
  218. package/lib/packlets/decisions/abstractDecision.js.map +0 -1
  219. package/lib/packlets/decisions/abstractDecisionCollector.d.ts.map +0 -1
  220. package/lib/packlets/decisions/abstractDecisionCollector.js.map +0 -1
  221. package/lib/packlets/decisions/candidate.d.ts.map +0 -1
  222. package/lib/packlets/decisions/candidate.js.map +0 -1
  223. package/lib/packlets/decisions/common.d.ts.map +0 -1
  224. package/lib/packlets/decisions/common.js.map +0 -1
  225. package/lib/packlets/decisions/concreteDecision.d.ts.map +0 -1
  226. package/lib/packlets/decisions/concreteDecision.js.map +0 -1
  227. package/lib/packlets/decisions/decision.d.ts.map +0 -1
  228. package/lib/packlets/decisions/decision.js.map +0 -1
  229. package/lib/packlets/decisions/index.d.ts.map +0 -1
  230. package/lib/packlets/decisions/index.js.map +0 -1
  231. package/lib/packlets/import/fsItem.d.ts.map +0 -1
  232. package/lib/packlets/import/fsItem.js.map +0 -1
  233. package/lib/packlets/import/importContext.d.ts.map +0 -1
  234. package/lib/packlets/import/importContext.js.map +0 -1
  235. package/lib/packlets/import/importManager.d.ts.map +0 -1
  236. package/lib/packlets/import/importManager.js.map +0 -1
  237. package/lib/packlets/import/importable.d.ts.map +0 -1
  238. package/lib/packlets/import/importable.js.map +0 -1
  239. package/lib/packlets/import/importers/collectionImporter.d.ts.map +0 -1
  240. package/lib/packlets/import/importers/collectionImporter.js.map +0 -1
  241. package/lib/packlets/import/importers/fsItemImporter.d.ts.map +0 -1
  242. package/lib/packlets/import/importers/fsItemImporter.js.map +0 -1
  243. package/lib/packlets/import/importers/importer.d.ts.map +0 -1
  244. package/lib/packlets/import/importers/importer.js.map +0 -1
  245. package/lib/packlets/import/importers/index.d.ts.map +0 -1
  246. package/lib/packlets/import/importers/index.js.map +0 -1
  247. package/lib/packlets/import/importers/jsonImporter.d.ts.map +0 -1
  248. package/lib/packlets/import/importers/jsonImporter.js.map +0 -1
  249. package/lib/packlets/import/importers/pathImporter.d.ts.map +0 -1
  250. package/lib/packlets/import/importers/pathImporter.js.map +0 -1
  251. package/lib/packlets/import/index.d.ts.map +0 -1
  252. package/lib/packlets/import/index.js.map +0 -1
  253. package/lib/packlets/qualifier-types/config/convert.d.ts.map +0 -1
  254. package/lib/packlets/qualifier-types/config/convert.js.map +0 -1
  255. package/lib/packlets/qualifier-types/config/index.d.ts.map +0 -1
  256. package/lib/packlets/qualifier-types/config/index.js.map +0 -1
  257. package/lib/packlets/qualifier-types/config/json.d.ts.map +0 -1
  258. package/lib/packlets/qualifier-types/config/json.js.map +0 -1
  259. package/lib/packlets/qualifier-types/convert.d.ts.map +0 -1
  260. package/lib/packlets/qualifier-types/convert.js.map +0 -1
  261. package/lib/packlets/qualifier-types/helpers.d.ts.map +0 -1
  262. package/lib/packlets/qualifier-types/helpers.js.map +0 -1
  263. package/lib/packlets/qualifier-types/index.d.ts.map +0 -1
  264. package/lib/packlets/qualifier-types/index.js.map +0 -1
  265. package/lib/packlets/qualifier-types/languageQualifierType.d.ts.map +0 -1
  266. package/lib/packlets/qualifier-types/languageQualifierType.js.map +0 -1
  267. package/lib/packlets/qualifier-types/literalQualifierType.d.ts.map +0 -1
  268. package/lib/packlets/qualifier-types/literalQualifierType.js.map +0 -1
  269. package/lib/packlets/qualifier-types/literalValueHierarchy.d.ts.map +0 -1
  270. package/lib/packlets/qualifier-types/literalValueHierarchy.js.map +0 -1
  271. package/lib/packlets/qualifier-types/qualifierType.d.ts.map +0 -1
  272. package/lib/packlets/qualifier-types/qualifierType.js.map +0 -1
  273. package/lib/packlets/qualifier-types/qualifierTypeCollector.d.ts.map +0 -1
  274. package/lib/packlets/qualifier-types/qualifierTypeCollector.js.map +0 -1
  275. package/lib/packlets/qualifier-types/territoryQualifierType.d.ts.map +0 -1
  276. package/lib/packlets/qualifier-types/territoryQualifierType.js.map +0 -1
  277. package/lib/packlets/qualifiers/convert/decls.d.ts.map +0 -1
  278. package/lib/packlets/qualifiers/convert/decls.js.map +0 -1
  279. package/lib/packlets/qualifiers/convert/index.d.ts.map +0 -1
  280. package/lib/packlets/qualifiers/convert/index.js.map +0 -1
  281. package/lib/packlets/qualifiers/convert/qualifier.d.ts.map +0 -1
  282. package/lib/packlets/qualifiers/convert/qualifier.js.map +0 -1
  283. package/lib/packlets/qualifiers/index.d.ts.map +0 -1
  284. package/lib/packlets/qualifiers/index.js.map +0 -1
  285. package/lib/packlets/qualifiers/qualifier.d.ts.map +0 -1
  286. package/lib/packlets/qualifiers/qualifier.js.map +0 -1
  287. package/lib/packlets/qualifiers/qualifierCollector.d.ts.map +0 -1
  288. package/lib/packlets/qualifiers/qualifierCollector.js.map +0 -1
  289. package/lib/packlets/qualifiers/qualifierDecl.d.ts.map +0 -1
  290. package/lib/packlets/qualifiers/qualifierDecl.js.map +0 -1
  291. package/lib/packlets/qualifiers/qualifierDefaultValueDecls.d.ts.map +0 -1
  292. package/lib/packlets/qualifiers/qualifierDefaultValueDecls.js.map +0 -1
  293. package/lib/packlets/qualifiers/qualifierDefaultValueToken.d.ts.map +0 -1
  294. package/lib/packlets/qualifiers/qualifierDefaultValueToken.js.map +0 -1
  295. package/lib/packlets/resource-json/compiled/common.d.ts.map +0 -1
  296. package/lib/packlets/resource-json/compiled/common.js.map +0 -1
  297. package/lib/packlets/resource-json/compiled/convert.d.ts.map +0 -1
  298. package/lib/packlets/resource-json/compiled/convert.js.map +0 -1
  299. package/lib/packlets/resource-json/compiled/index.d.ts.map +0 -1
  300. package/lib/packlets/resource-json/compiled/index.js.map +0 -1
  301. package/lib/packlets/resource-json/compiled/json.d.ts.map +0 -1
  302. package/lib/packlets/resource-json/compiled/json.js.map +0 -1
  303. package/lib/packlets/resource-json/convert.d.ts.map +0 -1
  304. package/lib/packlets/resource-json/convert.js.map +0 -1
  305. package/lib/packlets/resource-json/helpers.d.ts.map +0 -1
  306. package/lib/packlets/resource-json/helpers.js.map +0 -1
  307. package/lib/packlets/resource-json/index.d.ts.map +0 -1
  308. package/lib/packlets/resource-json/index.js.map +0 -1
  309. package/lib/packlets/resource-json/json.d.ts.map +0 -1
  310. package/lib/packlets/resource-json/json.js.map +0 -1
  311. package/lib/packlets/resource-json/normalized.d.ts.map +0 -1
  312. package/lib/packlets/resource-json/normalized.js.map +0 -1
  313. package/lib/packlets/resource-json/resourceDeclCollection.d.ts.map +0 -1
  314. package/lib/packlets/resource-json/resourceDeclCollection.js.map +0 -1
  315. package/lib/packlets/resource-json/resourceDeclContainer.d.ts.map +0 -1
  316. package/lib/packlets/resource-json/resourceDeclContainer.js.map +0 -1
  317. package/lib/packlets/resource-json/resourceDeclTree.d.ts.map +0 -1
  318. package/lib/packlets/resource-json/resourceDeclTree.js.map +0 -1
  319. package/lib/packlets/resource-types/config/convert.d.ts.map +0 -1
  320. package/lib/packlets/resource-types/config/convert.js.map +0 -1
  321. package/lib/packlets/resource-types/config/index.d.ts.map +0 -1
  322. package/lib/packlets/resource-types/config/index.js.map +0 -1
  323. package/lib/packlets/resource-types/config/json.d.ts.map +0 -1
  324. package/lib/packlets/resource-types/config/json.js.map +0 -1
  325. package/lib/packlets/resource-types/helpers.d.ts.map +0 -1
  326. package/lib/packlets/resource-types/helpers.js.map +0 -1
  327. package/lib/packlets/resource-types/index.d.ts.map +0 -1
  328. package/lib/packlets/resource-types/index.js.map +0 -1
  329. package/lib/packlets/resource-types/jsonResourceType.d.ts.map +0 -1
  330. package/lib/packlets/resource-types/jsonResourceType.js.map +0 -1
  331. package/lib/packlets/resource-types/resourceType.d.ts.map +0 -1
  332. package/lib/packlets/resource-types/resourceType.js.map +0 -1
  333. package/lib/packlets/resource-types/resourceTypeCollector.d.ts.map +0 -1
  334. package/lib/packlets/resource-types/resourceTypeCollector.js.map +0 -1
  335. package/lib/packlets/resources/candidateReducer.d.ts.map +0 -1
  336. package/lib/packlets/resources/candidateReducer.js.map +0 -1
  337. package/lib/packlets/resources/common.d.ts.map +0 -1
  338. package/lib/packlets/resources/common.js.map +0 -1
  339. package/lib/packlets/resources/index.d.ts.map +0 -1
  340. package/lib/packlets/resources/index.js.map +0 -1
  341. package/lib/packlets/resources/resource.d.ts.map +0 -1
  342. package/lib/packlets/resources/resource.js.map +0 -1
  343. package/lib/packlets/resources/resourceBuilder.d.ts.map +0 -1
  344. package/lib/packlets/resources/resourceBuilder.js.map +0 -1
  345. package/lib/packlets/resources/resourceCandidate.d.ts.map +0 -1
  346. package/lib/packlets/resources/resourceCandidate.js.map +0 -1
  347. package/lib/packlets/resources/resourceManagerBuilder.d.ts.map +0 -1
  348. package/lib/packlets/resources/resourceManagerBuilder.js.map +0 -1
  349. package/lib/packlets/runtime/cacheListener.d.ts.map +0 -1
  350. package/lib/packlets/runtime/cacheListener.js.map +0 -1
  351. package/lib/packlets/runtime/cacheMetrics.d.ts.map +0 -1
  352. package/lib/packlets/runtime/cacheMetrics.js.map +0 -1
  353. package/lib/packlets/runtime/compiledResourceCollection.d.ts.map +0 -1
  354. package/lib/packlets/runtime/compiledResourceCollection.js.map +0 -1
  355. package/lib/packlets/runtime/conditionSetResolutionResult.d.ts.map +0 -1
  356. package/lib/packlets/runtime/conditionSetResolutionResult.js.map +0 -1
  357. package/lib/packlets/runtime/context/contextQualifierProvider.d.ts.map +0 -1
  358. package/lib/packlets/runtime/context/contextQualifierProvider.js.map +0 -1
  359. package/lib/packlets/runtime/context/contextQualifierProviderValidator.d.ts.map +0 -1
  360. package/lib/packlets/runtime/context/contextQualifierProviderValidator.js.map +0 -1
  361. package/lib/packlets/runtime/context/index.d.ts.map +0 -1
  362. package/lib/packlets/runtime/context/index.js.map +0 -1
  363. package/lib/packlets/runtime/context/simpleContextQualifierProvider.d.ts.map +0 -1
  364. package/lib/packlets/runtime/context/simpleContextQualifierProvider.js.map +0 -1
  365. package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.d.ts.map +0 -1
  366. package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.js.map +0 -1
  367. package/lib/packlets/runtime/iResourceManager.d.ts.map +0 -1
  368. package/lib/packlets/runtime/iResourceManager.js.map +0 -1
  369. package/lib/packlets/runtime/index.d.ts.map +0 -1
  370. package/lib/packlets/runtime/index.js.map +0 -1
  371. package/lib/packlets/runtime/resource-tree/common.d.ts.map +0 -1
  372. package/lib/packlets/runtime/resource-tree/common.js.map +0 -1
  373. package/lib/packlets/runtime/resource-tree/index.d.ts.map +0 -1
  374. package/lib/packlets/runtime/resource-tree/index.js.map +0 -1
  375. package/lib/packlets/runtime/resource-tree/readOnlyResourceTree.d.ts.map +0 -1
  376. package/lib/packlets/runtime/resource-tree/readOnlyResourceTree.js.map +0 -1
  377. package/lib/packlets/runtime/resource-tree/resourceTreeChildren.d.ts.map +0 -1
  378. package/lib/packlets/runtime/resource-tree/resourceTreeChildren.js.map +0 -1
  379. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.d.ts.map +0 -1
  380. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.js.map +0 -1
  381. package/lib/packlets/runtime/resourceResolver.d.ts.map +0 -1
  382. package/lib/packlets/runtime/resourceResolver.js.map +0 -1
  383. package/lib/packlets/runtime/validate.d.ts.map +0 -1
  384. package/lib/packlets/runtime/validate.js.map +0 -1
@@ -20,10 +20,46 @@
20
20
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  * SOFTWARE.
22
22
  */
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
35
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
36
+ }) : function(o, v) {
37
+ o["default"] = v;
38
+ });
39
+ var __importStar = (this && this.__importStar) || (function () {
40
+ var ownKeys = function(o) {
41
+ ownKeys = Object.getOwnPropertyNames || function (o) {
42
+ var ar = [];
43
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
44
+ return ar;
45
+ };
46
+ return ownKeys(o);
47
+ };
48
+ return function (mod) {
49
+ if (mod && mod.__esModule) return mod;
50
+ var result = {};
51
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
52
+ __setModuleDefault(result, mod);
53
+ return result;
54
+ };
55
+ })();
23
56
  Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.systemQualifierTypeConfig = exports.systemLiteralQualifierTypeConfig = exports.systemTerritoryQualifierTypeConfig = exports.systemLanguageQualifierTypeConfig = exports.literalQualifierTypeConfig = exports.territoryQualifierTypeConfig = exports.languageQualifierTypeConfig = void 0;
57
+ exports.anyQualifierTypeConfig = exports.jsonQualifierTypeConfig = exports.systemQualifierTypeConfig = exports.systemLiteralQualifierTypeConfig = exports.systemTerritoryQualifierTypeConfig = exports.systemLanguageQualifierTypeConfig = exports.literalQualifierTypeConfig = exports.territoryQualifierTypeConfig = exports.languageQualifierTypeConfig = void 0;
58
+ exports.qualifierTypeConfig = qualifierTypeConfig;
25
59
  /* eslint-disable @rushstack/typedef-var */
26
60
  const ts_utils_1 = require("@fgv/ts-utils");
61
+ const Common = __importStar(require("../../common"));
62
+ const ts_json_base_1 = require("@fgv/ts-json-base");
27
63
  /**
28
64
  * A `Converter` for {@link QualifierTypes.Config.ILanguageQualifierTypeConfig | LanguageQualifierTypeConfig} objects.
29
65
  * @returns A `Converter` for {@link QualifierTypes.Config.ILanguageQualifierTypeConfig | LanguageQualifierTypeConfig} objects.
@@ -40,7 +76,8 @@ exports.languageQualifierTypeConfig = ts_utils_1.Converters.strictObject({
40
76
  exports.territoryQualifierTypeConfig = ts_utils_1.Converters.strictObject({
41
77
  allowContextList: ts_utils_1.Converters.boolean,
42
78
  acceptLowercase: ts_utils_1.Converters.boolean.optional(),
43
- allowedTerritories: ts_utils_1.Converters.arrayOf(ts_utils_1.Converters.string).optional()
79
+ allowedTerritories: ts_utils_1.Converters.arrayOf(ts_utils_1.Converters.string).optional(),
80
+ hierarchy: ts_utils_1.Converters.recordOf(ts_utils_1.Converters.string).optional()
44
81
  });
45
82
  /**
46
83
  * A `Converter` for {@link QualifierTypes.Config.ILiteralQualifierTypeConfig | LiteralQualifierTypeConfig} objects.
@@ -93,4 +130,32 @@ exports.systemQualifierTypeConfig = ts_utils_1.Converters.discriminatedObject('s
93
130
  territory: exports.systemTerritoryQualifierTypeConfig,
94
131
  literal: exports.systemLiteralQualifierTypeConfig
95
132
  });
133
+ /**
134
+ * A `Converter` for {@link QualifierTypes.Config.IQualifierTypeConfig | QualifierTypeConfig} objects.
135
+ * @returns A `Converter` for {@link QualifierTypes.Config.IQualifierTypeConfig | QualifierTypeConfig} objects.
136
+ * @param config - A `Converter` for the configuration object.
137
+ * @public
138
+ */
139
+ function qualifierTypeConfig(config) {
140
+ return ts_utils_1.Converters.strictObject({
141
+ name: Common.Convert.qualifierTypeName,
142
+ systemType: Common.Convert.qualifierTypeName,
143
+ configuration: config.optional()
144
+ });
145
+ }
146
+ /**
147
+ * A `Converter` for {@link QualifierTypes.Config.IQualifierTypeConfig | QualifierTypeConfig} objects.
148
+ * @returns A `Converter` for {@link QualifierTypes.Config.IQualifierTypeConfig | QualifierTypeConfig} objects.
149
+ * @public
150
+ */
151
+ exports.jsonQualifierTypeConfig = qualifierTypeConfig(ts_json_base_1.Converters.jsonObject);
152
+ /**
153
+ * A `Converter` for {@link QualifierTypes.Config.IAnyQualifierTypeConfig | AnyQualifierTypeConfig} objects.
154
+ * @returns A `Converter` for {@link QualifierTypes.Config.IAnyQualifierTypeConfig | AnyQualifierTypeConfig} objects.
155
+ * @public
156
+ */
157
+ exports.anyQualifierTypeConfig = ts_utils_1.Converters.oneOf([
158
+ exports.jsonQualifierTypeConfig,
159
+ exports.systemQualifierTypeConfig
160
+ ]);
96
161
  //# sourceMappingURL=convert.js.map
@@ -1,5 +1,4 @@
1
1
  import { JsonObject } from '@fgv/ts-json-base';
2
- import { LiteralValueHierarchyDecl } from '../literalValueHierarchy';
3
2
  /**
4
3
  * Templated configuration for {@link QualifierTypes.QualifierType | qualifier type} configuration.
5
4
  * @public
@@ -16,6 +15,16 @@ export interface IQualifierTypeConfig<T = JsonObject> {
16
15
  export interface ILanguageQualifierTypeConfig {
17
16
  allowContextList?: boolean;
18
17
  }
18
+ /**
19
+ * Declares a hierarchy of literal values. The keys are the names of the values, and the
20
+ * values are the names of their parents.
21
+ * @remarks
22
+ * The hierarchy is defined as a tree, where each value can have multiple children but
23
+ * only one parent. The root of the tree has no parent. The hierarchy is used to
24
+ * determine the relationship between values when matching conditions and contexts.
25
+ * @public
26
+ */
27
+ export type LiteralValueHierarchyDecl<T extends string> = Record<T, T>;
19
28
  /**
20
29
  * Configuration for {@link QualifierTypes.TerritoryQualifierType | territory qualifier type} configuration.
21
30
  * @public
@@ -25,7 +34,7 @@ export interface ITerritoryQualifierTypeConfig {
25
34
  acceptLowercase?: boolean;
26
35
  allowedTerritories?: string[];
27
36
  /**
28
- * Optional {@link QualifierTypes.LiteralValueHierarchyDecl | hierarchy declaration}
37
+ * Optional {@link QualifierTypes.Config.LiteralValueHierarchyDecl | hierarchy declaration}
29
38
  * of territory values to use for matching. If not provided, no hierarchy will be used.
30
39
  */
31
40
  hierarchy?: LiteralValueHierarchyDecl<string>;
@@ -66,4 +75,17 @@ export interface ISystemLiteralQualifierTypeConfig extends IQualifierTypeConfig<
66
75
  * @public
67
76
  */
68
77
  export type ISystemQualifierTypeConfig = ISystemLanguageQualifierTypeConfig | ISystemTerritoryQualifierTypeConfig | ISystemLiteralQualifierTypeConfig;
78
+ /**
79
+ * A union of all qualifier type configurations.
80
+ * @public
81
+ */
82
+ export type IAnyQualifierTypeConfig = IQualifierTypeConfig | ISystemQualifierTypeConfig;
83
+ /**
84
+ * Checks if a {@link QualifierTypes.Config.IAnyQualifierTypeConfig | qualifier type configuration} is a
85
+ * {@link QualifierTypes.Config.ISystemQualifierTypeConfig | system qualifier type configuration}.
86
+ * @param config - The {@link QualifierTypes.Config.IAnyQualifierTypeConfig | qualifier type configuration} to check.
87
+ * @returns `true` if the configuration is a system qualifier type configuration, `false` otherwise.
88
+ * @public
89
+ */
90
+ export declare function isSystemQualifierTypeConfig(config: IAnyQualifierTypeConfig): config is ISystemQualifierTypeConfig;
69
91
  //# sourceMappingURL=json.d.ts.map
@@ -21,4 +21,15 @@
21
21
  * SOFTWARE.
22
22
  */
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.isSystemQualifierTypeConfig = isSystemQualifierTypeConfig;
25
+ /**
26
+ * Checks if a {@link QualifierTypes.Config.IAnyQualifierTypeConfig | qualifier type configuration} is a
27
+ * {@link QualifierTypes.Config.ISystemQualifierTypeConfig | system qualifier type configuration}.
28
+ * @param config - The {@link QualifierTypes.Config.IAnyQualifierTypeConfig | qualifier type configuration} to check.
29
+ * @returns `true` if the configuration is a system qualifier type configuration, `false` otherwise.
30
+ * @public
31
+ */
32
+ function isSystemQualifierTypeConfig(config) {
33
+ return (config.systemType === 'language' || config.systemType === 'territory' || config.systemType === 'literal');
34
+ }
24
35
  //# sourceMappingURL=json.js.map
@@ -16,7 +16,7 @@ export interface IQualifierTypeConvertContext {
16
16
  * index from a supplied {@link QualifierTypes.Convert.IQualifierTypeConvertContext | conversion context}.
17
17
  * @public
18
18
  */
19
- export declare const qualifierType: Converter<QualifierType, IQualifierTypeConvertContext>;
19
+ export declare const qualifierType: Converter<QualifierType<import("@fgv/ts-json-base").JsonObject>, IQualifierTypeConvertContext>;
20
20
  /**
21
21
  * Gets a converter for {@link QualifierTypes.ILiteralValueHierarchyCreateParams | ILiteralValueHierarchyCreateParams}
22
22
  * objects with values validated by a supplied value converter.
@@ -1,7 +1,16 @@
1
1
  import { Result } from '@fgv/ts-utils';
2
2
  import * as Config from './config';
3
3
  import { QualifierType } from './qualifierType';
4
- import { JsonObject } from '@fgv/ts-json-base';
4
+ import { LanguageQualifierType } from './languageQualifierType';
5
+ import { TerritoryQualifierType } from './territoryQualifierType';
6
+ import { LiteralQualifierType } from './literalQualifierType';
7
+ /**
8
+ * A discriminated union of all system qualifier types.
9
+ * This allows TypeScript to properly discriminate between specific qualifier type implementations
10
+ * and access their specific methods like getConfiguration().
11
+ * @public
12
+ */
13
+ export type SystemQualifierType = LanguageQualifierType | TerritoryQualifierType | LiteralQualifierType;
5
14
  /**
6
15
  * Creates a {@link QualifierTypes.QualifierType | QualifierType} from a configuration object.
7
16
  * This factory function determines the appropriate qualifier type based on the systemType
@@ -12,16 +21,16 @@ import { JsonObject } from '@fgv/ts-json-base';
12
21
  * if successful, `Failure` with an error message otherwise.
13
22
  * @public
14
23
  */
15
- export declare function createQualifierTypeFromConfig(typeConfig: Config.IQualifierTypeConfig<JsonObject>): Result<QualifierType>;
24
+ export declare function createQualifierTypeFromConfig(typeConfig: Config.IAnyQualifierTypeConfig): Result<QualifierType>;
16
25
  /**
17
- * Creates a {@link QualifierTypes.QualifierType | QualifierType} from a system configuration object.
26
+ * Creates a {@link QualifierTypes.SystemQualifierType | SystemQualifierType} from a system configuration object.
18
27
  * This factory function determines the appropriate qualifier type based on the systemType
19
28
  * and delegates to the appropriate type-specific createFromConfig method.
20
29
  * @param typeConfig - The {@link QualifierTypes.Config.ISystemQualifierTypeConfig | configuration object}
21
30
  * containing the name, systemType, and optional type-specific configuration.
22
- * @returns `Success` with the new {@link QualifierTypes.QualifierType | QualifierType}
31
+ * @returns `Success` with the new {@link QualifierTypes.SystemQualifierType | SystemQualifierType}
23
32
  * if successful, `Failure` with an error message otherwise.
24
33
  * @public
25
34
  */
26
- export declare function createQualifierTypeFromSystemConfig(typeConfig: Config.ISystemQualifierTypeConfig): Result<QualifierType>;
35
+ export declare function createQualifierTypeFromSystemConfig(typeConfig: Config.ISystemQualifierTypeConfig): Result<SystemQualifierType>;
27
36
  //# sourceMappingURL=helpers.d.ts.map
@@ -93,12 +93,12 @@ function createQualifierTypeFromConfig(typeConfig) {
93
93
  }
94
94
  }
95
95
  /**
96
- * Creates a {@link QualifierTypes.QualifierType | QualifierType} from a system configuration object.
96
+ * Creates a {@link QualifierTypes.SystemQualifierType | SystemQualifierType} from a system configuration object.
97
97
  * This factory function determines the appropriate qualifier type based on the systemType
98
98
  * and delegates to the appropriate type-specific createFromConfig method.
99
99
  * @param typeConfig - The {@link QualifierTypes.Config.ISystemQualifierTypeConfig | configuration object}
100
100
  * containing the name, systemType, and optional type-specific configuration.
101
- * @returns `Success` with the new {@link QualifierTypes.QualifierType | QualifierType}
101
+ * @returns `Success` with the new {@link QualifierTypes.SystemQualifierType | SystemQualifierType}
102
102
  * if successful, `Failure` with an error message otherwise.
103
103
  * @public
104
104
  */
@@ -1,7 +1,8 @@
1
1
  import { Result } from '@fgv/ts-utils';
2
- import { ConditionOperator, QualifierConditionValue, QualifierContextValue, QualifierMatchScore } from '../common';
2
+ import { ConditionOperator, QualifierConditionValue, QualifierContextValue, QualifierMatchScore, QualifierTypeName } from '../common';
3
3
  import { IQualifierTypeCreateParams, QualifierType } from './qualifierType';
4
4
  import * as Config from './config';
5
+ import { JsonCompatible } from '@fgv/ts-json-base';
5
6
  /**
6
7
  * Interface defining the parameters that can be used to create a new
7
8
  * {@link QualifierTypes.LanguageQualifierType | LanguageQualifierType}.
@@ -24,7 +25,11 @@ export interface ILanguageQualifierTypeCreateParams extends Partial<IQualifierTy
24
25
  * Accepts a list of language tags in the context by default.
25
26
  * @public
26
27
  */
27
- export declare class LanguageQualifierType extends QualifierType {
28
+ export declare class LanguageQualifierType extends QualifierType<JsonCompatible<Config.ILanguageQualifierTypeConfig>> {
29
+ /**
30
+ * {@inheritdoc QualifierTypes.IQualifierType.systemTypeName}
31
+ */
32
+ readonly systemTypeName: QualifierTypeName;
28
33
  /**
29
34
  * Creates a new instance of a {@link QualifierTypes.LanguageQualifierType | language qualifier type}.
30
35
  * @param name - Optional name for the qualifier type. Defaults to 'language'.
@@ -54,6 +59,27 @@ export declare class LanguageQualifierType extends QualifierType {
54
59
  * {@inheritdoc QualifierTypes.IQualifierType.isValidConditionValue}
55
60
  */
56
61
  isValidConditionValue(value: string): value is QualifierConditionValue;
62
+ /**
63
+ * Gets a {@link QualifierTypes.Config.ISystemLanguageQualifierTypeConfig | strongly typed configuration object}
64
+ * for this qualifier type.
65
+ * @returns `Success` with the configuration if successful, `Failure` with an error message otherwise.
66
+ */
67
+ getConfiguration(): Result<Config.ISystemLanguageQualifierTypeConfig>;
68
+ /**
69
+ * {@inheritdoc QualifierTypes.IQualifierType.getConfigurationJson}
70
+ */
71
+ getConfigurationJson(): Result<JsonCompatible<Config.ISystemLanguageQualifierTypeConfig>>;
72
+ /**
73
+ * {@inheritdoc QualifierTypes.IQualifierType.validateConfigurationJson}
74
+ */
75
+ validateConfigurationJson(from: unknown): Result<JsonCompatible<Config.ISystemLanguageQualifierTypeConfig>>;
76
+ /**
77
+ * Validates a {@link QualifierTypes.Config.ISystemLanguageQualifierTypeConfig | strongly typed configuration object}
78
+ * for this qualifier type.
79
+ * @param from - The unknown data to validate as a configuration object.
80
+ * @returns `Success` with the validated configuration if successful, `Failure` with an error message otherwise.
81
+ */
82
+ validateConfiguration(from: unknown): Result<Config.ISystemLanguageQualifierTypeConfig>;
57
83
  /**
58
84
  * Matches a single language condition against a single language context value using
59
85
  * {@link https://github.com/ErikFortune/fgv/tree/main/libraries/ts-bcp47#tag-matching | similarity matching}.
@@ -20,12 +20,46 @@
20
20
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  * SOFTWARE.
22
22
  */
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
35
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
36
+ }) : function(o, v) {
37
+ o["default"] = v;
38
+ });
39
+ var __importStar = (this && this.__importStar) || (function () {
40
+ var ownKeys = function(o) {
41
+ ownKeys = Object.getOwnPropertyNames || function (o) {
42
+ var ar = [];
43
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
44
+ return ar;
45
+ };
46
+ return ownKeys(o);
47
+ };
48
+ return function (mod) {
49
+ if (mod && mod.__esModule) return mod;
50
+ var result = {};
51
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
52
+ __setModuleDefault(result, mod);
53
+ return result;
54
+ };
55
+ })();
23
56
  Object.defineProperty(exports, "__esModule", { value: true });
24
57
  exports.LanguageQualifierType = void 0;
25
58
  const ts_utils_1 = require("@fgv/ts-utils");
26
59
  const ts_bcp47_1 = require("@fgv/ts-bcp47");
27
60
  const common_1 = require("../common");
28
61
  const qualifierType_1 = require("./qualifierType");
62
+ const Config = __importStar(require("./config"));
29
63
  const ts_json_base_1 = require("@fgv/ts-json-base");
30
64
  /**
31
65
  * {@link QualifierTypes.QualifierType | Qualifier type} which matches BCP-47 language tags
@@ -48,6 +82,10 @@ class LanguageQualifierType extends qualifierType_1.QualifierType {
48
82
  const validated = index ? { index: common_1.Convert.qualifierTypeIndex.convert(index).orThrow() } : {};
49
83
  super(Object.assign({ name,
50
84
  allowContextList }, validated));
85
+ /**
86
+ * {@inheritdoc QualifierTypes.IQualifierType.systemTypeName}
87
+ */
88
+ this.systemTypeName = common_1.Convert.qualifierTypeName.convert('language').orThrow();
51
89
  }
52
90
  /**
53
91
  * Creates a new instance of a {@link QualifierTypes.LanguageQualifierType | language qualifier type}.
@@ -84,6 +122,41 @@ class LanguageQualifierType extends qualifierType_1.QualifierType {
84
122
  .onSuccess((tag) => (0, ts_utils_1.succeed)(tag.isValid))
85
123
  .orDefault(false);
86
124
  }
125
+ /**
126
+ * Gets a {@link QualifierTypes.Config.ISystemLanguageQualifierTypeConfig | strongly typed configuration object}
127
+ * for this qualifier type.
128
+ * @returns `Success` with the configuration if successful, `Failure` with an error message otherwise.
129
+ */
130
+ getConfiguration() {
131
+ return this.getConfigurationJson().onSuccess((json) => Config.Convert.systemLanguageQualifierTypeConfig.convert(json));
132
+ }
133
+ /**
134
+ * {@inheritdoc QualifierTypes.IQualifierType.getConfigurationJson}
135
+ */
136
+ getConfigurationJson() {
137
+ return (0, ts_utils_1.succeed)({
138
+ name: this.name,
139
+ systemType: 'language',
140
+ configuration: {
141
+ allowContextList: this.allowContextList
142
+ }
143
+ });
144
+ }
145
+ /**
146
+ * {@inheritdoc QualifierTypes.IQualifierType.validateConfigurationJson}
147
+ */
148
+ validateConfigurationJson(from) {
149
+ return Config.Convert.systemLanguageQualifierTypeConfig.convert(from);
150
+ }
151
+ /**
152
+ * Validates a {@link QualifierTypes.Config.ISystemLanguageQualifierTypeConfig | strongly typed configuration object}
153
+ * for this qualifier type.
154
+ * @param from - The unknown data to validate as a configuration object.
155
+ * @returns `Success` with the validated configuration if successful, `Failure` with an error message otherwise.
156
+ */
157
+ validateConfiguration(from) {
158
+ return Config.Convert.systemLanguageQualifierTypeConfig.convert(from);
159
+ }
87
160
  /**
88
161
  * Matches a single language condition against a single language context value using
89
162
  * {@link https://github.com/ErikFortune/fgv/tree/main/libraries/ts-bcp47#tag-matching | similarity matching}.
@@ -1,8 +1,9 @@
1
1
  import { Result } from '@fgv/ts-utils';
2
- import { ConditionOperator, QualifierConditionValue, QualifierContextValue, QualifierMatchScore } from '../common';
2
+ import { ConditionOperator, QualifierConditionValue, QualifierContextValue, QualifierMatchScore, QualifierTypeName } from '../common';
3
3
  import { QualifierType } from './qualifierType';
4
- import { LiteralValueHierarchy, LiteralValueHierarchyDecl } from './literalValueHierarchy';
4
+ import { LiteralValueHierarchy } from './literalValueHierarchy';
5
5
  import * as Config from './config';
6
+ import { JsonCompatible } from '@fgv/ts-json-base';
6
7
  /**
7
8
  * Interface defining the parameters that can be used to create a new
8
9
  * {@link QualifierTypes.LiteralQualifierType | LiteralQualifierType}.
@@ -29,10 +30,10 @@ export interface ILiteralQualifierTypeCreateParams {
29
30
  */
30
31
  enumeratedValues?: ReadonlyArray<string>;
31
32
  /**
32
- * Optional {@link QualifierTypes.LiteralValueHierarchyDecl | hierarchy declaration}
33
+ * Optional {@link QualifierTypes.Config.LiteralValueHierarchyDecl | hierarchy declaration}
33
34
  * of literal values to use for matching. If not provided, no hierarchy will be used.
34
35
  */
35
- hierarchy?: LiteralValueHierarchyDecl<string>;
36
+ hierarchy?: Config.LiteralValueHierarchyDecl<string>;
36
37
  /**
37
38
  * Global index for this qualifier type.
38
39
  */
@@ -43,7 +44,11 @@ export interface ILiteralQualifierTypeCreateParams {
43
44
  * optionally case-sensitive or matching against an ordered list of values at runtime.
44
45
  * @public
45
46
  */
46
- export declare class LiteralQualifierType extends QualifierType {
47
+ export declare class LiteralQualifierType extends QualifierType<JsonCompatible<Config.ILiteralQualifierTypeConfig>> {
48
+ /**
49
+ * {@inheritdoc QualifierTypes.IQualifierType.systemTypeName}
50
+ */
51
+ readonly systemTypeName: QualifierTypeName;
47
52
  /**
48
53
  * Indicates whether the qualifier match is case-sensitive.
49
54
  */
@@ -79,6 +84,27 @@ export declare class LiteralQualifierType extends QualifierType {
79
84
  * {@inheritdoc QualifierTypes.IQualifierType.isPotentialMatch}
80
85
  */
81
86
  isPotentialMatch(conditionValue: string, contextValue: string): boolean;
87
+ /**
88
+ * Gets a {@link QualifierTypes.Config.ISystemLiteralQualifierTypeConfig | strongly typed configuration object}
89
+ * for this qualifier type.
90
+ * @returns `Success` with the configuration if successful, `Failure` with an error message otherwise.
91
+ */
92
+ getConfiguration(): Result<Config.ISystemLiteralQualifierTypeConfig>;
93
+ /**
94
+ * {@inheritdoc QualifierTypes.IQualifierType.getConfigurationJson}
95
+ */
96
+ getConfigurationJson(): Result<JsonCompatible<Config.ISystemLiteralQualifierTypeConfig>>;
97
+ /**
98
+ * {@inheritdoc QualifierTypes.IQualifierType.validateConfigurationJson}
99
+ */
100
+ validateConfigurationJson(from: unknown): Result<JsonCompatible<Config.ISystemLiteralQualifierTypeConfig>>;
101
+ /**
102
+ * Validates a {@link QualifierTypes.Config.ISystemLiteralQualifierTypeConfig | strongly typed configuration object}
103
+ * for this qualifier type.
104
+ * @param from - The unknown data to validate as a configuration object.
105
+ * @returns `Success` with the validated configuration if successful, `Failure` with an error message otherwise.
106
+ */
107
+ validateConfiguration(from: unknown): Result<Config.ISystemLiteralQualifierTypeConfig>;
82
108
  /**
83
109
  * {@inheritdoc QualifierTypes.QualifierType._matchOne}
84
110
  */
@@ -20,12 +20,46 @@
20
20
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  * SOFTWARE.
22
22
  */
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
35
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
36
+ }) : function(o, v) {
37
+ o["default"] = v;
38
+ });
39
+ var __importStar = (this && this.__importStar) || (function () {
40
+ var ownKeys = function(o) {
41
+ ownKeys = Object.getOwnPropertyNames || function (o) {
42
+ var ar = [];
43
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
44
+ return ar;
45
+ };
46
+ return ownKeys(o);
47
+ };
48
+ return function (mod) {
49
+ if (mod && mod.__esModule) return mod;
50
+ var result = {};
51
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
52
+ __setModuleDefault(result, mod);
53
+ return result;
54
+ };
55
+ })();
23
56
  Object.defineProperty(exports, "__esModule", { value: true });
24
57
  exports.LiteralQualifierType = void 0;
25
58
  const ts_utils_1 = require("@fgv/ts-utils");
26
59
  const common_1 = require("../common");
27
60
  const qualifierType_1 = require("./qualifierType");
28
61
  const literalValueHierarchy_1 = require("./literalValueHierarchy");
62
+ const Config = __importStar(require("./config"));
29
63
  const ts_json_base_1 = require("@fgv/ts-json-base");
30
64
  /**
31
65
  * A {@link QualifierTypes.QualifierType | qualifier} that matches a literal value,
@@ -49,6 +83,10 @@ class LiteralQualifierType extends qualifierType_1.QualifierType {
49
83
  allowContextList,
50
84
  index: index !== undefined ? common_1.Convert.qualifierTypeIndex.convert(index).orThrow() : undefined
51
85
  });
86
+ /**
87
+ * {@inheritdoc QualifierTypes.IQualifierType.systemTypeName}
88
+ */
89
+ this.systemTypeName = common_1.Convert.qualifierTypeName.convert('literal').orThrow();
52
90
  this.caseSensitive = caseSensitive === true;
53
91
  this.enumeratedValues = enumeratedValues
54
92
  ? (0, ts_utils_1.mapResults)(Array.from(enumeratedValues).map(LiteralQualifierType.toLiteralConditionValue)).orThrow()
@@ -91,6 +129,43 @@ class LiteralQualifierType extends qualifierType_1.QualifierType {
91
129
  }
92
130
  return false;
93
131
  }
132
+ /**
133
+ * Gets a {@link QualifierTypes.Config.ISystemLiteralQualifierTypeConfig | strongly typed configuration object}
134
+ * for this qualifier type.
135
+ * @returns `Success` with the configuration if successful, `Failure` with an error message otherwise.
136
+ */
137
+ getConfiguration() {
138
+ return this.getConfigurationJson().onSuccess((json) => Config.Convert.systemLiteralQualifierTypeConfig.convert(json));
139
+ }
140
+ /**
141
+ * {@inheritdoc QualifierTypes.IQualifierType.getConfigurationJson}
142
+ */
143
+ getConfigurationJson() {
144
+ const hierarchy = this.hierarchy ? { hierarchy: this.hierarchy.asRecord() } : {};
145
+ const enumeratedValues = this.enumeratedValues
146
+ ? { enumeratedValues: [...this.enumeratedValues] }
147
+ : {};
148
+ return (0, ts_utils_1.succeed)({
149
+ name: this.name,
150
+ systemType: 'literal',
151
+ configuration: Object.assign(Object.assign({ allowContextList: this.allowContextList, caseSensitive: this.caseSensitive }, enumeratedValues), hierarchy)
152
+ });
153
+ }
154
+ /**
155
+ * {@inheritdoc QualifierTypes.IQualifierType.validateConfigurationJson}
156
+ */
157
+ validateConfigurationJson(from) {
158
+ return Config.Convert.systemLiteralQualifierTypeConfig.convert(from);
159
+ }
160
+ /**
161
+ * Validates a {@link QualifierTypes.Config.ISystemLiteralQualifierTypeConfig | strongly typed configuration object}
162
+ * for this qualifier type.
163
+ * @param from - The unknown data to validate as a configuration object.
164
+ * @returns `Success` with the validated configuration if successful, `Failure` with an error message otherwise.
165
+ */
166
+ validateConfiguration(from) {
167
+ return Config.Convert.systemLiteralQualifierTypeConfig.convert(from);
168
+ }
94
169
  /**
95
170
  * {@inheritdoc QualifierTypes.QualifierType._matchOne}
96
171
  */
@@ -1,15 +1,6 @@
1
1
  import { Result } from '@fgv/ts-utils';
2
2
  import { ConditionOperator, QualifierConditionValue, QualifierContextValue, QualifierMatchScore } from '../common';
3
- /**
4
- * Declares a hierarchy of literal values. The keys are the names of the values, and the
5
- * values are the names of their parents.
6
- * @remarks
7
- * The hierarchy is defined as a tree, where each value can have multiple children but
8
- * only one parent. The root of the tree has no parent. The hierarchy is used to
9
- * determine the relationship between values when matching conditions and contexts.
10
- * @public
11
- */
12
- export type LiteralValueHierarchyDecl<T extends string> = Partial<Record<T, T>>;
3
+ import { LiteralValueHierarchyDecl } from './config';
13
4
  /**
14
5
  * Describes a single valid literal value including optional parent and child values.
15
6
  * @public
@@ -26,7 +17,7 @@ export interface ILiteralValue<T extends string> {
26
17
  */
27
18
  export interface ILiteralValueHierarchyCreateParams<T extends string = string> {
28
19
  values: ReadonlyArray<T>;
29
- hierarchy?: LiteralValueHierarchyDecl<T>;
20
+ hierarchy?: Partial<LiteralValueHierarchyDecl<T>>;
30
21
  }
31
22
  /**
32
23
  * A class that implements a hierarchy of literal values. The hierarchy is defined as a
@@ -110,5 +101,10 @@ export declare class LiteralValueHierarchy<T extends string = string> {
110
101
  */
111
102
  match(condition: QualifierConditionValue, context: QualifierContextValue, __operator?: ConditionOperator): QualifierMatchScore;
112
103
  protected static _buildValuesFromHierarchy<T extends string>(params: ILiteralValueHierarchyCreateParams<T>): Result<ReadonlyMap<T, ILiteralValue<T>>>;
104
+ /**
105
+ * Converts the hierarchy to a record of parent-child relationships.
106
+ * @returns A record of parent-child relationships.
107
+ */
108
+ asRecord(): Record<string, string>;
113
109
  }
114
110
  //# sourceMappingURL=literalValueHierarchy.d.ts.map
@@ -79,7 +79,7 @@ class LiteralValueHierarchy {
79
79
  */
80
80
  getAncestors(value) {
81
81
  const current = this.values.get(value);
82
- /* c8 ignore next 2 - functional error case tested but coverage intermittently missed */
82
+ /* c8 ignore next 3 - functional error case tested but coverage intermittently missed */
83
83
  if (!current) {
84
84
  return (0, ts_utils_1.fail)(`${value}: not found in hierarchy`);
85
85
  }
@@ -102,6 +102,7 @@ class LiteralValueHierarchy {
102
102
  if (ancestors.isSuccess()) {
103
103
  return ancestors.value.includes(possibleAncestor);
104
104
  }
105
+ /* c8 ignore next 1 - edge case: ancestor validation fallback */
105
106
  return false;
106
107
  }
107
108
  /**
@@ -223,6 +224,16 @@ class LiteralValueHierarchy {
223
224
  }
224
225
  return errors.returnOrReport((0, ts_utils_1.succeed)(valueMap));
225
226
  }
227
+ /**
228
+ * Converts the hierarchy to a record of parent-child relationships.
229
+ * @returns A record of parent-child relationships.
230
+ */
231
+ asRecord() {
232
+ const entries = Array.from(this.values.values())
233
+ .filter((v) => v.parent !== undefined)
234
+ .map((v) => [v.name, v.parent.name]);
235
+ return Object.fromEntries(entries);
236
+ }
226
237
  }
227
238
  exports.LiteralValueHierarchy = LiteralValueHierarchy;
228
239
  //# sourceMappingURL=literalValueHierarchy.js.map