@fgv/ts-res 5.0.0-3 → 5.0.0-31

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 (379) hide show
  1. package/README.md +794 -137
  2. package/dist/ts-res.d.ts +2671 -355
  3. package/dist/tsdoc-metadata.json +1 -1
  4. package/eslint.config.js +16 -0
  5. package/lib/index.d.ts +11 -2
  6. package/lib/index.js +25 -2
  7. package/lib/packlets/bundle/bundleBuilder.d.ts +41 -0
  8. package/lib/packlets/bundle/bundleBuilder.js +134 -0
  9. package/lib/packlets/bundle/bundleLoader.d.ts +72 -0
  10. package/lib/packlets/bundle/bundleLoader.js +105 -0
  11. package/lib/packlets/bundle/bundleNormalizer.d.ts +73 -0
  12. package/lib/packlets/bundle/bundleNormalizer.js +142 -0
  13. package/lib/packlets/bundle/bundleUtils.d.ts +70 -0
  14. package/lib/packlets/bundle/bundleUtils.js +117 -0
  15. package/lib/packlets/bundle/convert.d.ts +33 -0
  16. package/lib/packlets/bundle/convert.js +78 -0
  17. package/lib/packlets/bundle/index.d.ts +21 -0
  18. package/lib/packlets/bundle/index.js +83 -0
  19. package/lib/packlets/bundle/model.d.ts +100 -0
  20. package/lib/packlets/bundle/model.js +24 -0
  21. package/lib/packlets/common/convert.d.ts +15 -0
  22. package/lib/packlets/common/convert.js +16 -1
  23. package/lib/packlets/common/helpers/context.js +1 -0
  24. package/lib/packlets/common/helpers/resources.d.ts +7 -0
  25. package/lib/packlets/common/helpers/resources.js +13 -0
  26. package/lib/packlets/common/resources.d.ts +48 -1
  27. package/lib/packlets/common/validate/conditions.d.ts +17 -1
  28. package/lib/packlets/common/validate/conditions.js +32 -6
  29. package/lib/packlets/common/validate/regularExpressions.d.ts +4 -0
  30. package/lib/packlets/common/validate/regularExpressions.js +5 -1
  31. package/lib/packlets/common/validate/resources.d.ts +35 -1
  32. package/lib/packlets/common/validate/resources.js +55 -0
  33. package/lib/packlets/conditions/condition.js +1 -0
  34. package/lib/packlets/conditions/conditionSet.d.ts +9 -0
  35. package/lib/packlets/conditions/conditionSet.js +75 -1
  36. package/lib/packlets/config/configInitFactory.d.ts +217 -0
  37. package/lib/packlets/config/configInitFactory.js +302 -0
  38. package/lib/packlets/config/convert.d.ts +9 -0
  39. package/lib/packlets/config/convert.js +12 -1
  40. package/lib/packlets/config/index.d.ts +1 -0
  41. package/lib/packlets/config/index.js +1 -0
  42. package/lib/packlets/config/json.d.ts +1 -1
  43. package/lib/packlets/config/systemConfiguration.d.ts +16 -3
  44. package/lib/packlets/config/systemConfiguration.js +19 -40
  45. package/lib/packlets/import/fsItem.d.ts +2 -1
  46. package/lib/packlets/import/fsItem.js +9 -13
  47. package/lib/packlets/import/importManager.d.ts +2 -1
  48. package/lib/packlets/import/importers/jsonImporter.js +1 -0
  49. package/lib/packlets/import/importers/pathImporter.d.ts +2 -1
  50. package/lib/packlets/import/importers/pathImporter.js +2 -1
  51. package/lib/packlets/qualifier-types/config/convert.d.ts +22 -1
  52. package/lib/packlets/qualifier-types/config/convert.js +67 -2
  53. package/lib/packlets/qualifier-types/config/json.d.ts +24 -2
  54. package/lib/packlets/qualifier-types/config/json.js +11 -0
  55. package/lib/packlets/qualifier-types/convert.d.ts +1 -1
  56. package/lib/packlets/qualifier-types/helpers.d.ts +14 -5
  57. package/lib/packlets/qualifier-types/helpers.js +2 -2
  58. package/lib/packlets/qualifier-types/languageQualifierType.d.ts +28 -2
  59. package/lib/packlets/qualifier-types/languageQualifierType.js +73 -0
  60. package/lib/packlets/qualifier-types/literalQualifierType.d.ts +31 -5
  61. package/lib/packlets/qualifier-types/literalQualifierType.js +75 -0
  62. package/lib/packlets/qualifier-types/literalValueHierarchy.d.ts +7 -11
  63. package/lib/packlets/qualifier-types/literalValueHierarchy.js +12 -1
  64. package/lib/packlets/qualifier-types/qualifierType.d.ts +31 -2
  65. package/lib/packlets/qualifier-types/territoryQualifierType.d.ts +31 -5
  66. package/lib/packlets/qualifier-types/territoryQualifierType.js +80 -0
  67. package/lib/packlets/qualifiers/qualifierCollector.js +1 -2
  68. package/lib/packlets/resource-json/compiled/convert.js +2 -1
  69. package/lib/packlets/resource-json/compiled/json.d.ts +6 -2
  70. package/lib/packlets/resource-types/config/convert.d.ts +1 -1
  71. package/lib/packlets/resource-types/config/convert.js +3 -1
  72. package/lib/packlets/resource-types/config/json.d.ts +3 -1
  73. package/lib/packlets/resource-types/jsonResourceType.d.ts +14 -5
  74. package/lib/packlets/resource-types/jsonResourceType.js +8 -4
  75. package/lib/packlets/resource-types/resourceType.d.ts +115 -14
  76. package/lib/packlets/resource-types/resourceType.js +39 -3
  77. package/lib/packlets/resources/candidateReducer.js +3 -0
  78. package/lib/packlets/resources/candidateValue.d.ts +92 -0
  79. package/lib/packlets/resources/candidateValue.js +128 -0
  80. package/lib/packlets/resources/candidateValueCollector.d.ts +55 -0
  81. package/lib/packlets/resources/candidateValueCollector.js +96 -0
  82. package/lib/packlets/resources/common.d.ts +26 -0
  83. package/lib/packlets/resources/index.d.ts +2 -0
  84. package/lib/packlets/resources/index.js +2 -0
  85. package/lib/packlets/resources/resource.d.ts +6 -6
  86. package/lib/packlets/resources/resource.js +5 -10
  87. package/lib/packlets/resources/resourceBuilder.d.ts +6 -0
  88. package/lib/packlets/resources/resourceBuilder.js +4 -1
  89. package/lib/packlets/resources/resourceCandidate.d.ts +15 -2
  90. package/lib/packlets/resources/resourceCandidate.js +17 -5
  91. package/lib/packlets/resources/resourceManagerBuilder.d.ts +189 -11
  92. package/lib/packlets/resources/resourceManagerBuilder.js +481 -17
  93. package/lib/packlets/runtime/cacheListener.d.ts +9 -0
  94. package/lib/packlets/runtime/cacheListener.js +6 -0
  95. package/lib/packlets/runtime/cacheMetrics.d.ts +6 -0
  96. package/lib/packlets/runtime/cacheMetrics.js +11 -0
  97. package/lib/packlets/runtime/compiledResourceCollection.d.ts +23 -11
  98. package/lib/packlets/runtime/compiledResourceCollection.js +65 -28
  99. package/lib/packlets/runtime/conditionSetResolutionResult.js +3 -0
  100. package/lib/packlets/runtime/context/contextQualifierProvider.d.ts +53 -3
  101. package/lib/packlets/runtime/context/contextQualifierProviderValidator.d.ts +82 -37
  102. package/lib/packlets/runtime/context/contextQualifierProviderValidator.js +49 -77
  103. package/lib/packlets/runtime/context/simpleContextQualifierProvider.d.ts +23 -2
  104. package/lib/packlets/runtime/context/simpleContextQualifierProvider.js +53 -31
  105. package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.d.ts +4 -4
  106. package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.js +2 -2
  107. package/lib/packlets/runtime/iResourceManager.d.ts +13 -5
  108. package/lib/packlets/runtime/index.d.ts +1 -0
  109. package/lib/packlets/runtime/index.js +1 -0
  110. package/lib/packlets/runtime/resource-tree/common.d.ts +1 -1
  111. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.d.ts +7 -7
  112. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.js +5 -5
  113. package/lib/packlets/runtime/resourceResolver.d.ts +60 -1
  114. package/lib/packlets/runtime/resourceResolver.js +89 -45
  115. package/lib/packlets/runtime/resourceTreeResolver.d.ts +152 -0
  116. package/lib/packlets/runtime/resourceTreeResolver.js +222 -0
  117. package/lib/packlets/runtime/validate.js +1 -0
  118. package/lib/packlets/zip-archive/convert.d.ts +52 -0
  119. package/lib/packlets/zip-archive/convert.js +103 -0
  120. package/lib/packlets/zip-archive/index.d.ts +23 -0
  121. package/lib/packlets/zip-archive/index.js +95 -0
  122. package/lib/packlets/zip-archive/json.d.ts +64 -0
  123. package/lib/packlets/zip-archive/json.js +24 -0
  124. package/lib/packlets/zip-archive/types.d.ts +98 -0
  125. package/lib/packlets/zip-archive/types.js +39 -0
  126. package/lib/packlets/zip-archive/zipArchiveCreator.d.ts +35 -0
  127. package/lib/packlets/zip-archive/zipArchiveCreator.js +195 -0
  128. package/lib/packlets/zip-archive/zipArchiveFormat.d.ts +70 -0
  129. package/lib/packlets/zip-archive/zipArchiveFormat.js +184 -0
  130. package/lib/packlets/zip-archive/zipArchiveLoader.d.ts +70 -0
  131. package/lib/packlets/zip-archive/zipArchiveLoader.js +285 -0
  132. package/package.json +26 -32
  133. package/CLAUDE.md +0 -186
  134. package/EXAMPLE_INIT_PARAMS.md +0 -88
  135. package/PROGRESS_SUMMARY.md +0 -48
  136. package/lib/index.d.ts.map +0 -1
  137. package/lib/index.js.map +0 -1
  138. package/lib/packlets/common/conditions.d.ts.map +0 -1
  139. package/lib/packlets/common/conditions.js.map +0 -1
  140. package/lib/packlets/common/convert.d.ts.map +0 -1
  141. package/lib/packlets/common/convert.js.map +0 -1
  142. package/lib/packlets/common/helpers/conditions.d.ts.map +0 -1
  143. package/lib/packlets/common/helpers/conditions.js.map +0 -1
  144. package/lib/packlets/common/helpers/context.d.ts.map +0 -1
  145. package/lib/packlets/common/helpers/context.js.map +0 -1
  146. package/lib/packlets/common/helpers/index.d.ts.map +0 -1
  147. package/lib/packlets/common/helpers/index.js.map +0 -1
  148. package/lib/packlets/common/helpers/qualifierDefaultValues.d.ts.map +0 -1
  149. package/lib/packlets/common/helpers/qualifierDefaultValues.js.map +0 -1
  150. package/lib/packlets/common/helpers/resources.d.ts.map +0 -1
  151. package/lib/packlets/common/helpers/resources.js.map +0 -1
  152. package/lib/packlets/common/index.d.ts.map +0 -1
  153. package/lib/packlets/common/index.js.map +0 -1
  154. package/lib/packlets/common/resources.d.ts.map +0 -1
  155. package/lib/packlets/common/resources.js.map +0 -1
  156. package/lib/packlets/common/validate/conditions.d.ts.map +0 -1
  157. package/lib/packlets/common/validate/conditions.js.map +0 -1
  158. package/lib/packlets/common/validate/index.d.ts.map +0 -1
  159. package/lib/packlets/common/validate/index.js.map +0 -1
  160. package/lib/packlets/common/validate/regularExpressions.d.ts.map +0 -1
  161. package/lib/packlets/common/validate/regularExpressions.js.map +0 -1
  162. package/lib/packlets/common/validate/resources.d.ts.map +0 -1
  163. package/lib/packlets/common/validate/resources.js.map +0 -1
  164. package/lib/packlets/conditions/condition.d.ts.map +0 -1
  165. package/lib/packlets/conditions/condition.js.map +0 -1
  166. package/lib/packlets/conditions/conditionCollector.d.ts.map +0 -1
  167. package/lib/packlets/conditions/conditionCollector.js.map +0 -1
  168. package/lib/packlets/conditions/conditionDecls.d.ts.map +0 -1
  169. package/lib/packlets/conditions/conditionDecls.js.map +0 -1
  170. package/lib/packlets/conditions/conditionSet.d.ts.map +0 -1
  171. package/lib/packlets/conditions/conditionSet.js.map +0 -1
  172. package/lib/packlets/conditions/conditionSetCollector.d.ts.map +0 -1
  173. package/lib/packlets/conditions/conditionSetCollector.js.map +0 -1
  174. package/lib/packlets/conditions/conditionSetDecls.d.ts.map +0 -1
  175. package/lib/packlets/conditions/conditionSetDecls.js.map +0 -1
  176. package/lib/packlets/conditions/conditionToken.d.ts.map +0 -1
  177. package/lib/packlets/conditions/conditionToken.js.map +0 -1
  178. package/lib/packlets/conditions/convert/conditionSetDecls.d.ts.map +0 -1
  179. package/lib/packlets/conditions/convert/conditionSetDecls.js.map +0 -1
  180. package/lib/packlets/conditions/convert/decls.d.ts.map +0 -1
  181. package/lib/packlets/conditions/convert/decls.js.map +0 -1
  182. package/lib/packlets/conditions/convert/index.d.ts.map +0 -1
  183. package/lib/packlets/conditions/convert/index.js.map +0 -1
  184. package/lib/packlets/conditions/index.d.ts.map +0 -1
  185. package/lib/packlets/conditions/index.js.map +0 -1
  186. package/lib/packlets/config/common.d.ts.map +0 -1
  187. package/lib/packlets/config/common.js.map +0 -1
  188. package/lib/packlets/config/convert.d.ts.map +0 -1
  189. package/lib/packlets/config/convert.js.map +0 -1
  190. package/lib/packlets/config/index.d.ts.map +0 -1
  191. package/lib/packlets/config/index.js.map +0 -1
  192. package/lib/packlets/config/json.d.ts.map +0 -1
  193. package/lib/packlets/config/json.js.map +0 -1
  194. package/lib/packlets/config/predefined/default.d.ts.map +0 -1
  195. package/lib/packlets/config/predefined/default.js.map +0 -1
  196. package/lib/packlets/config/predefined/extended.d.ts.map +0 -1
  197. package/lib/packlets/config/predefined/extended.js.map +0 -1
  198. package/lib/packlets/config/predefined/index.d.ts.map +0 -1
  199. package/lib/packlets/config/predefined/index.js.map +0 -1
  200. package/lib/packlets/config/systemConfiguration.d.ts.map +0 -1
  201. package/lib/packlets/config/systemConfiguration.js.map +0 -1
  202. package/lib/packlets/context/contextDecls.d.ts.map +0 -1
  203. package/lib/packlets/context/contextDecls.js.map +0 -1
  204. package/lib/packlets/context/contextToken.d.ts.map +0 -1
  205. package/lib/packlets/context/contextToken.js.map +0 -1
  206. package/lib/packlets/context/convert/decls.d.ts.map +0 -1
  207. package/lib/packlets/context/convert/decls.js.map +0 -1
  208. package/lib/packlets/context/convert/index.d.ts.map +0 -1
  209. package/lib/packlets/context/convert/index.js.map +0 -1
  210. package/lib/packlets/context/index.d.ts.map +0 -1
  211. package/lib/packlets/context/index.js.map +0 -1
  212. package/lib/packlets/decisions/abstractDecision.d.ts.map +0 -1
  213. package/lib/packlets/decisions/abstractDecision.js.map +0 -1
  214. package/lib/packlets/decisions/abstractDecisionCollector.d.ts.map +0 -1
  215. package/lib/packlets/decisions/abstractDecisionCollector.js.map +0 -1
  216. package/lib/packlets/decisions/candidate.d.ts.map +0 -1
  217. package/lib/packlets/decisions/candidate.js.map +0 -1
  218. package/lib/packlets/decisions/common.d.ts.map +0 -1
  219. package/lib/packlets/decisions/common.js.map +0 -1
  220. package/lib/packlets/decisions/concreteDecision.d.ts.map +0 -1
  221. package/lib/packlets/decisions/concreteDecision.js.map +0 -1
  222. package/lib/packlets/decisions/decision.d.ts.map +0 -1
  223. package/lib/packlets/decisions/decision.js.map +0 -1
  224. package/lib/packlets/decisions/index.d.ts.map +0 -1
  225. package/lib/packlets/decisions/index.js.map +0 -1
  226. package/lib/packlets/import/fsItem.d.ts.map +0 -1
  227. package/lib/packlets/import/fsItem.js.map +0 -1
  228. package/lib/packlets/import/importContext.d.ts.map +0 -1
  229. package/lib/packlets/import/importContext.js.map +0 -1
  230. package/lib/packlets/import/importManager.d.ts.map +0 -1
  231. package/lib/packlets/import/importManager.js.map +0 -1
  232. package/lib/packlets/import/importable.d.ts.map +0 -1
  233. package/lib/packlets/import/importable.js.map +0 -1
  234. package/lib/packlets/import/importers/collectionImporter.d.ts.map +0 -1
  235. package/lib/packlets/import/importers/collectionImporter.js.map +0 -1
  236. package/lib/packlets/import/importers/fsItemImporter.d.ts.map +0 -1
  237. package/lib/packlets/import/importers/fsItemImporter.js.map +0 -1
  238. package/lib/packlets/import/importers/importer.d.ts.map +0 -1
  239. package/lib/packlets/import/importers/importer.js.map +0 -1
  240. package/lib/packlets/import/importers/index.d.ts.map +0 -1
  241. package/lib/packlets/import/importers/index.js.map +0 -1
  242. package/lib/packlets/import/importers/jsonImporter.d.ts.map +0 -1
  243. package/lib/packlets/import/importers/jsonImporter.js.map +0 -1
  244. package/lib/packlets/import/importers/pathImporter.d.ts.map +0 -1
  245. package/lib/packlets/import/importers/pathImporter.js.map +0 -1
  246. package/lib/packlets/import/index.d.ts.map +0 -1
  247. package/lib/packlets/import/index.js.map +0 -1
  248. package/lib/packlets/qualifier-types/config/convert.d.ts.map +0 -1
  249. package/lib/packlets/qualifier-types/config/convert.js.map +0 -1
  250. package/lib/packlets/qualifier-types/config/index.d.ts.map +0 -1
  251. package/lib/packlets/qualifier-types/config/index.js.map +0 -1
  252. package/lib/packlets/qualifier-types/config/json.d.ts.map +0 -1
  253. package/lib/packlets/qualifier-types/config/json.js.map +0 -1
  254. package/lib/packlets/qualifier-types/convert.d.ts.map +0 -1
  255. package/lib/packlets/qualifier-types/convert.js.map +0 -1
  256. package/lib/packlets/qualifier-types/helpers.d.ts.map +0 -1
  257. package/lib/packlets/qualifier-types/helpers.js.map +0 -1
  258. package/lib/packlets/qualifier-types/index.d.ts.map +0 -1
  259. package/lib/packlets/qualifier-types/index.js.map +0 -1
  260. package/lib/packlets/qualifier-types/languageQualifierType.d.ts.map +0 -1
  261. package/lib/packlets/qualifier-types/languageQualifierType.js.map +0 -1
  262. package/lib/packlets/qualifier-types/literalQualifierType.d.ts.map +0 -1
  263. package/lib/packlets/qualifier-types/literalQualifierType.js.map +0 -1
  264. package/lib/packlets/qualifier-types/literalValueHierarchy.d.ts.map +0 -1
  265. package/lib/packlets/qualifier-types/literalValueHierarchy.js.map +0 -1
  266. package/lib/packlets/qualifier-types/qualifierType.d.ts.map +0 -1
  267. package/lib/packlets/qualifier-types/qualifierType.js.map +0 -1
  268. package/lib/packlets/qualifier-types/qualifierTypeCollector.d.ts.map +0 -1
  269. package/lib/packlets/qualifier-types/qualifierTypeCollector.js.map +0 -1
  270. package/lib/packlets/qualifier-types/territoryQualifierType.d.ts.map +0 -1
  271. package/lib/packlets/qualifier-types/territoryQualifierType.js.map +0 -1
  272. package/lib/packlets/qualifiers/convert/decls.d.ts.map +0 -1
  273. package/lib/packlets/qualifiers/convert/decls.js.map +0 -1
  274. package/lib/packlets/qualifiers/convert/index.d.ts.map +0 -1
  275. package/lib/packlets/qualifiers/convert/index.js.map +0 -1
  276. package/lib/packlets/qualifiers/convert/qualifier.d.ts.map +0 -1
  277. package/lib/packlets/qualifiers/convert/qualifier.js.map +0 -1
  278. package/lib/packlets/qualifiers/index.d.ts.map +0 -1
  279. package/lib/packlets/qualifiers/index.js.map +0 -1
  280. package/lib/packlets/qualifiers/qualifier.d.ts.map +0 -1
  281. package/lib/packlets/qualifiers/qualifier.js.map +0 -1
  282. package/lib/packlets/qualifiers/qualifierCollector.d.ts.map +0 -1
  283. package/lib/packlets/qualifiers/qualifierCollector.js.map +0 -1
  284. package/lib/packlets/qualifiers/qualifierDecl.d.ts.map +0 -1
  285. package/lib/packlets/qualifiers/qualifierDecl.js.map +0 -1
  286. package/lib/packlets/qualifiers/qualifierDefaultValueDecls.d.ts.map +0 -1
  287. package/lib/packlets/qualifiers/qualifierDefaultValueDecls.js.map +0 -1
  288. package/lib/packlets/qualifiers/qualifierDefaultValueToken.d.ts.map +0 -1
  289. package/lib/packlets/qualifiers/qualifierDefaultValueToken.js.map +0 -1
  290. package/lib/packlets/resource-json/compiled/common.d.ts.map +0 -1
  291. package/lib/packlets/resource-json/compiled/common.js.map +0 -1
  292. package/lib/packlets/resource-json/compiled/convert.d.ts.map +0 -1
  293. package/lib/packlets/resource-json/compiled/convert.js.map +0 -1
  294. package/lib/packlets/resource-json/compiled/index.d.ts.map +0 -1
  295. package/lib/packlets/resource-json/compiled/index.js.map +0 -1
  296. package/lib/packlets/resource-json/compiled/json.d.ts.map +0 -1
  297. package/lib/packlets/resource-json/compiled/json.js.map +0 -1
  298. package/lib/packlets/resource-json/convert.d.ts.map +0 -1
  299. package/lib/packlets/resource-json/convert.js.map +0 -1
  300. package/lib/packlets/resource-json/helpers.d.ts.map +0 -1
  301. package/lib/packlets/resource-json/helpers.js.map +0 -1
  302. package/lib/packlets/resource-json/index.d.ts.map +0 -1
  303. package/lib/packlets/resource-json/index.js.map +0 -1
  304. package/lib/packlets/resource-json/json.d.ts.map +0 -1
  305. package/lib/packlets/resource-json/json.js.map +0 -1
  306. package/lib/packlets/resource-json/normalized.d.ts.map +0 -1
  307. package/lib/packlets/resource-json/normalized.js.map +0 -1
  308. package/lib/packlets/resource-json/resourceDeclCollection.d.ts.map +0 -1
  309. package/lib/packlets/resource-json/resourceDeclCollection.js.map +0 -1
  310. package/lib/packlets/resource-json/resourceDeclContainer.d.ts.map +0 -1
  311. package/lib/packlets/resource-json/resourceDeclContainer.js.map +0 -1
  312. package/lib/packlets/resource-json/resourceDeclTree.d.ts.map +0 -1
  313. package/lib/packlets/resource-json/resourceDeclTree.js.map +0 -1
  314. package/lib/packlets/resource-types/config/convert.d.ts.map +0 -1
  315. package/lib/packlets/resource-types/config/convert.js.map +0 -1
  316. package/lib/packlets/resource-types/config/index.d.ts.map +0 -1
  317. package/lib/packlets/resource-types/config/index.js.map +0 -1
  318. package/lib/packlets/resource-types/config/json.d.ts.map +0 -1
  319. package/lib/packlets/resource-types/config/json.js.map +0 -1
  320. package/lib/packlets/resource-types/helpers.d.ts.map +0 -1
  321. package/lib/packlets/resource-types/helpers.js.map +0 -1
  322. package/lib/packlets/resource-types/index.d.ts.map +0 -1
  323. package/lib/packlets/resource-types/index.js.map +0 -1
  324. package/lib/packlets/resource-types/jsonResourceType.d.ts.map +0 -1
  325. package/lib/packlets/resource-types/jsonResourceType.js.map +0 -1
  326. package/lib/packlets/resource-types/resourceType.d.ts.map +0 -1
  327. package/lib/packlets/resource-types/resourceType.js.map +0 -1
  328. package/lib/packlets/resource-types/resourceTypeCollector.d.ts.map +0 -1
  329. package/lib/packlets/resource-types/resourceTypeCollector.js.map +0 -1
  330. package/lib/packlets/resources/candidateReducer.d.ts.map +0 -1
  331. package/lib/packlets/resources/candidateReducer.js.map +0 -1
  332. package/lib/packlets/resources/common.d.ts.map +0 -1
  333. package/lib/packlets/resources/common.js.map +0 -1
  334. package/lib/packlets/resources/index.d.ts.map +0 -1
  335. package/lib/packlets/resources/index.js.map +0 -1
  336. package/lib/packlets/resources/resource.d.ts.map +0 -1
  337. package/lib/packlets/resources/resource.js.map +0 -1
  338. package/lib/packlets/resources/resourceBuilder.d.ts.map +0 -1
  339. package/lib/packlets/resources/resourceBuilder.js.map +0 -1
  340. package/lib/packlets/resources/resourceCandidate.d.ts.map +0 -1
  341. package/lib/packlets/resources/resourceCandidate.js.map +0 -1
  342. package/lib/packlets/resources/resourceManagerBuilder.d.ts.map +0 -1
  343. package/lib/packlets/resources/resourceManagerBuilder.js.map +0 -1
  344. package/lib/packlets/runtime/cacheListener.d.ts.map +0 -1
  345. package/lib/packlets/runtime/cacheListener.js.map +0 -1
  346. package/lib/packlets/runtime/cacheMetrics.d.ts.map +0 -1
  347. package/lib/packlets/runtime/cacheMetrics.js.map +0 -1
  348. package/lib/packlets/runtime/compiledResourceCollection.d.ts.map +0 -1
  349. package/lib/packlets/runtime/compiledResourceCollection.js.map +0 -1
  350. package/lib/packlets/runtime/conditionSetResolutionResult.d.ts.map +0 -1
  351. package/lib/packlets/runtime/conditionSetResolutionResult.js.map +0 -1
  352. package/lib/packlets/runtime/context/contextQualifierProvider.d.ts.map +0 -1
  353. package/lib/packlets/runtime/context/contextQualifierProvider.js.map +0 -1
  354. package/lib/packlets/runtime/context/contextQualifierProviderValidator.d.ts.map +0 -1
  355. package/lib/packlets/runtime/context/contextQualifierProviderValidator.js.map +0 -1
  356. package/lib/packlets/runtime/context/index.d.ts.map +0 -1
  357. package/lib/packlets/runtime/context/index.js.map +0 -1
  358. package/lib/packlets/runtime/context/simpleContextQualifierProvider.d.ts.map +0 -1
  359. package/lib/packlets/runtime/context/simpleContextQualifierProvider.js.map +0 -1
  360. package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.d.ts.map +0 -1
  361. package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.js.map +0 -1
  362. package/lib/packlets/runtime/iResourceManager.d.ts.map +0 -1
  363. package/lib/packlets/runtime/iResourceManager.js.map +0 -1
  364. package/lib/packlets/runtime/index.d.ts.map +0 -1
  365. package/lib/packlets/runtime/index.js.map +0 -1
  366. package/lib/packlets/runtime/resource-tree/common.d.ts.map +0 -1
  367. package/lib/packlets/runtime/resource-tree/common.js.map +0 -1
  368. package/lib/packlets/runtime/resource-tree/index.d.ts.map +0 -1
  369. package/lib/packlets/runtime/resource-tree/index.js.map +0 -1
  370. package/lib/packlets/runtime/resource-tree/readOnlyResourceTree.d.ts.map +0 -1
  371. package/lib/packlets/runtime/resource-tree/readOnlyResourceTree.js.map +0 -1
  372. package/lib/packlets/runtime/resource-tree/resourceTreeChildren.d.ts.map +0 -1
  373. package/lib/packlets/runtime/resource-tree/resourceTreeChildren.js.map +0 -1
  374. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.d.ts.map +0 -1
  375. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.js.map +0 -1
  376. package/lib/packlets/runtime/resourceResolver.d.ts.map +0 -1
  377. package/lib/packlets/runtime/resourceResolver.js.map +0 -1
  378. package/lib/packlets/runtime/validate.d.ts.map +0 -1
  379. package/lib/packlets/runtime/validate.js.map +0 -1
@@ -21,28 +21,20 @@
21
21
  * SOFTWARE.
22
22
  */
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.ContextQualifierProviderValidator = void 0;
24
+ exports.MutableContextQualifierProviderValidator = exports.ReadOnlyContextQualifierProviderValidator = void 0;
25
25
  const ts_utils_1 = require("@fgv/ts-utils");
26
+ const common_1 = require("../../common");
26
27
  /**
27
- * A wrapper for {@link Runtime.Context.IContextQualifierProvider | IContextQualifierProvider} that accepts
28
- * string inputs and converts them to strongly-typed values before calling the wrapped provider.
29
- * This eliminates the need for type casting in consumer code while maintaining type safety.
30
- * @public
28
+ * Base implementation class containing shared validation logic for both read-only and mutable validators.
29
+ * @internal
31
30
  */
32
- class ContextQualifierProviderValidator {
31
+ class BaseContextQualifierProviderValidator {
33
32
  /**
34
33
  * The readonly qualifier collector that defines and validates the qualifiers for this context.
35
34
  */
36
35
  get qualifiers() {
37
36
  return this.provider.qualifiers;
38
37
  }
39
- /**
40
- * Constructs a new {@link Runtime.Context.ContextQualifierProviderValidator | ContextQualifierProviderValidator}.
41
- * @param params - Required parameters for constructing the validator.
42
- */
43
- constructor(params) {
44
- this.provider = params.provider;
45
- }
46
38
  /**
47
39
  * Gets a qualifier value by its string name, converting to strongly-typed QualifierName.
48
40
  * @param name - The string name to convert and look up.
@@ -50,7 +42,7 @@ class ContextQualifierProviderValidator {
50
42
  * or `Failure` with an error message if not found or an error occurs.
51
43
  */
52
44
  get(name) {
53
- return this._validateQualifierName(name).onSuccess((qualifierName) => {
45
+ return common_1.Convert.qualifierName.convert(name).onSuccess((qualifierName) => {
54
46
  return this.provider.get(qualifierName);
55
47
  });
56
48
  }
@@ -61,7 +53,7 @@ class ContextQualifierProviderValidator {
61
53
  * or `Failure` with an error message if not found or an error occurs.
62
54
  */
63
55
  getByIndex(index) {
64
- return this._validateQualifierIndex(index).onSuccess((qualifierIndex) => {
56
+ return common_1.Convert.qualifierIndex.convert(index).onSuccess((qualifierIndex) => {
65
57
  return this.provider.get(qualifierIndex);
66
58
  });
67
59
  }
@@ -72,7 +64,7 @@ class ContextQualifierProviderValidator {
72
64
  * or `Failure` with an error message if not found, invalid, or an error occurs.
73
65
  */
74
66
  getValidated(name) {
75
- return this._validateQualifierName(name).onSuccess((qualifierName) => {
67
+ return common_1.Convert.qualifierName.convert(name).onSuccess((qualifierName) => {
76
68
  return this.provider.getValidated(qualifierName);
77
69
  });
78
70
  }
@@ -83,7 +75,7 @@ class ContextQualifierProviderValidator {
83
75
  * or `Failure` with an error message if not found, invalid, or an error occurs.
84
76
  */
85
77
  getValidatedByIndex(index) {
86
- return this._validateQualifierIndex(index).onSuccess((qualifierIndex) => {
78
+ return common_1.Convert.qualifierIndex.convert(index).onSuccess((qualifierIndex) => {
87
79
  return this.provider.getValidated(qualifierIndex);
88
80
  });
89
81
  }
@@ -94,10 +86,43 @@ class ContextQualifierProviderValidator {
94
86
  * or `Failure` with an error message if an error occurs during the check.
95
87
  */
96
88
  has(name) {
97
- return this._validateQualifierName(name).onSuccess((qualifierName) => {
89
+ return common_1.Convert.qualifierName.convert(name).onSuccess((qualifierName) => {
98
90
  return this.provider.has(qualifierName);
99
91
  });
100
92
  }
93
+ }
94
+ /**
95
+ * A validator for read-only context qualifier providers that accepts string inputs
96
+ * and converts them to strongly-typed values before calling the wrapped provider.
97
+ * Only provides read operations for compile-time type safety.
98
+ * @public
99
+ */
100
+ class ReadOnlyContextQualifierProviderValidator extends BaseContextQualifierProviderValidator {
101
+ /**
102
+ * Constructs a new {@link Runtime.Context.ReadOnlyContextQualifierProviderValidator | ReadOnlyContextQualifierProviderValidator}.
103
+ * @param params - Required parameters for constructing the validator.
104
+ */
105
+ constructor(params) {
106
+ super();
107
+ this.provider = params.provider;
108
+ }
109
+ }
110
+ exports.ReadOnlyContextQualifierProviderValidator = ReadOnlyContextQualifierProviderValidator;
111
+ /**
112
+ * A validator for mutable context qualifier providers that accepts string inputs
113
+ * and converts them to strongly-typed values before calling the wrapped provider.
114
+ * Provides both read and mutation operations.
115
+ * @public
116
+ */
117
+ class MutableContextQualifierProviderValidator extends BaseContextQualifierProviderValidator {
118
+ /**
119
+ * Constructs a new {@link Runtime.Context.MutableContextQualifierProviderValidator | MutableContextQualifierProviderValidator}.
120
+ * @param params - Required parameters for constructing the validator.
121
+ */
122
+ constructor(params) {
123
+ super();
124
+ this.provider = params.provider;
125
+ }
101
126
  /**
102
127
  * Sets a qualifier value using string inputs, converting to strongly-typed values.
103
128
  * @param name - The string name to convert.
@@ -106,20 +131,9 @@ class ContextQualifierProviderValidator {
106
131
  * or `Failure` with an error message if an error occurs.
107
132
  */
108
133
  set(name, value) {
109
- return this._validateQualifierName(name)
110
- .onSuccess((qualifierName) => this._validateQualifierContextValue(value))
111
- .onSuccess((qualifierValue) => {
112
- // Check if the provider has a set method (only available on mutable providers)
113
- if ('set' in this.provider && typeof this.provider.set === 'function') {
114
- try {
115
- return this.provider.set(name, qualifierValue);
116
- }
117
- catch (_a) {
118
- return (0, ts_utils_1.fail)(`Provider does not support setting values`);
119
- }
120
- }
121
- return (0, ts_utils_1.fail)(`Provider does not support setting values`);
122
- });
134
+ return common_1.Convert.qualifierName.convert(name).onSuccess((qualifierName) => this.provider.qualifiers.validating.get(name).asResult.onSuccess((qualifier) => ts_utils_1.Converters.string.convert(value).onSuccess((stringValue) => qualifier.validateContextValue(stringValue).onSuccess((qualifierValue) => {
135
+ return (0, ts_utils_1.captureResult)(() => this.provider.set(qualifierName, qualifierValue)).onSuccess((result) => result);
136
+ }))));
123
137
  }
124
138
  /**
125
139
  * Removes a qualifier value using string input, converting to strongly-typed QualifierName.
@@ -128,52 +142,10 @@ class ContextQualifierProviderValidator {
128
142
  * or `Failure` with an error message if an error occurs.
129
143
  */
130
144
  remove(name) {
131
- return this._validateQualifierName(name).onSuccess((qualifierName) => {
132
- // Check if the provider has a remove method (only available on mutable providers)
133
- if ('remove' in this.provider && typeof this.provider.remove === 'function') {
134
- try {
135
- return this.provider.remove(qualifierName);
136
- }
137
- catch (_a) {
138
- return (0, ts_utils_1.fail)(`Provider does not support removing values`);
139
- }
140
- }
141
- return (0, ts_utils_1.fail)(`Provider does not support removing values`);
145
+ return common_1.Convert.qualifierName.convert(name).onSuccess((qualifierName) => {
146
+ return (0, ts_utils_1.captureResult)(() => this.provider.remove(qualifierName)).onSuccess((result) => result);
142
147
  });
143
148
  }
144
- /**
145
- * Validates a string as a QualifierName.
146
- * @param name - The string to validate.
147
- * @returns `Success` with the strongly-typed QualifierName, or `Failure` if invalid.
148
- */
149
- _validateQualifierName(name) {
150
- if (typeof name !== 'string' || name.length === 0) {
151
- return (0, ts_utils_1.fail)(`Invalid qualifier name: "${name}"`);
152
- }
153
- return (0, ts_utils_1.succeed)(name);
154
- }
155
- /**
156
- * Validates a number as a QualifierIndex.
157
- * @param index - The number to validate.
158
- * @returns `Success` with the strongly-typed QualifierIndex, or `Failure` if invalid.
159
- */
160
- _validateQualifierIndex(index) {
161
- if (typeof index !== 'number' || !Number.isInteger(index) || index < 0) {
162
- return (0, ts_utils_1.fail)(`Invalid qualifier index: ${index}`);
163
- }
164
- return (0, ts_utils_1.succeed)(index);
165
- }
166
- /**
167
- * Validates a string as a QualifierContextValue.
168
- * @param value - The string to validate.
169
- * @returns `Success` with the strongly-typed QualifierContextValue, or `Failure` if invalid.
170
- */
171
- _validateQualifierContextValue(value) {
172
- if (typeof value !== 'string') {
173
- return (0, ts_utils_1.fail)(`Invalid qualifier context value: "${value}"`);
174
- }
175
- return (0, ts_utils_1.succeed)(value);
176
- }
177
149
  }
178
- exports.ContextQualifierProviderValidator = ContextQualifierProviderValidator;
150
+ exports.MutableContextQualifierProviderValidator = MutableContextQualifierProviderValidator;
179
151
  //# sourceMappingURL=contextQualifierProviderValidator.js.map
@@ -1,7 +1,7 @@
1
1
  import { Result } from '@fgv/ts-utils';
2
2
  import { QualifierName, QualifierContextValue, QualifierIndex } from '../../common';
3
3
  import { IReadOnlyQualifierCollector, Qualifier } from '../../qualifiers';
4
- import { ContextQualifierProvider } from './contextQualifierProvider';
4
+ import { ContextQualifierProvider, IMutableContextQualifierProvider } from './contextQualifierProvider';
5
5
  /**
6
6
  * Parameters for creating a {@link Runtime.SimpleContextQualifierProvider | SimpleContextQualifierProvider}.
7
7
  * @public
@@ -21,7 +21,12 @@ export interface ISimpleContextQualifierProviderCreateParams {
21
21
  * using a `ResultMap` for qualifier value storage.
22
22
  * @public
23
23
  */
24
- export declare class SimpleContextQualifierProvider extends ContextQualifierProvider {
24
+ export declare class SimpleContextQualifierProvider extends ContextQualifierProvider implements IMutableContextQualifierProvider {
25
+ /**
26
+ * Explicit mutability marker for compile-time type discrimination.
27
+ * Always `true` for mutable providers.
28
+ */
29
+ readonly mutable: true;
25
30
  /**
26
31
  * The readonly qualifier collector that defines and validates the qualifiers for this context.
27
32
  */
@@ -99,6 +104,14 @@ export declare class SimpleContextQualifierProvider extends ContextQualifierProv
99
104
  * @public
100
105
  */
101
106
  clear(): void;
107
+ /**
108
+ * Resolves a qualifier from a name, index, or qualifier object.
109
+ * @param nameOrIndexOrQualifier - The input to resolve.
110
+ * @returns `Success` with the {@link Qualifier | qualifier} if successful,
111
+ * or `Failure` with an error message if not found or invalid.
112
+ * @internal
113
+ */
114
+ private _resolveQualifier;
102
115
  /**
103
116
  * Resolves a qualifier name from a name, index, or qualifier object.
104
117
  * @param nameOrIndexOrQualifier - The input to resolve.
@@ -107,5 +120,13 @@ export declare class SimpleContextQualifierProvider extends ContextQualifierProv
107
120
  * @internal
108
121
  */
109
122
  private _resolveQualifierName;
123
+ /**
124
+ * Resolves a qualifier name from a qualifier-like object.
125
+ * @param nameOrIndexOrQualifier - The input to resolve.
126
+ * @returns `Success` with the {@link QualifierName | qualifier name} if successful,
127
+ * or `Failure` with an error message if not found or invalid.
128
+ * @internal
129
+ */
130
+ private static _qualifierNameFromQualifierLike;
110
131
  }
111
132
  //# sourceMappingURL=simpleContextQualifierProvider.d.ts.map
@@ -24,6 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.SimpleContextQualifierProvider = void 0;
25
25
  const ts_utils_1 = require("@fgv/ts-utils");
26
26
  const common_1 = require("../../common");
27
+ const qualifiers_1 = require("../../qualifiers");
27
28
  const contextQualifierProvider_1 = require("./contextQualifierProvider");
28
29
  /**
29
30
  * Simple concrete implementation of {@link Runtime.Context.IContextQualifierProvider | IContextQualifierProvider}
@@ -37,6 +38,11 @@ class SimpleContextQualifierProvider extends contextQualifierProvider_1.ContextQ
37
38
  */
38
39
  constructor(params) {
39
40
  super();
41
+ /**
42
+ * Explicit mutability marker for compile-time type discrimination.
43
+ * Always `true` for mutable providers.
44
+ */
45
+ this.mutable = true;
40
46
  this.qualifiers = params.qualifiers;
41
47
  this._qualifierValues = new ts_utils_1.ResultMap();
42
48
  if (params.qualifierValues) {
@@ -63,12 +69,9 @@ class SimpleContextQualifierProvider extends contextQualifierProvider_1.ContextQ
63
69
  * or `Failure` with an error message if not found or an error occurs.
64
70
  */
65
71
  get(nameOrIndexOrQualifier) {
66
- const qualifierName = this._resolveQualifierName(nameOrIndexOrQualifier);
67
- /* c8 ignore next 3 - functional code path tested but coverage intermittently missed */
68
- if (qualifierName.isFailure()) {
69
- return (0, ts_utils_1.fail)(qualifierName.message);
70
- }
71
- return this._qualifierValues.get(qualifierName.value);
72
+ return this._resolveQualifierName(nameOrIndexOrQualifier).onSuccess((qualifierName) => {
73
+ return this._qualifierValues.get(qualifierName);
74
+ });
72
75
  }
73
76
  /**
74
77
  * Gets a validated qualifier context value by its name, index, or qualifier object.
@@ -78,12 +81,11 @@ class SimpleContextQualifierProvider extends contextQualifierProvider_1.ContextQ
78
81
  * or `Failure` with an error message if not found, invalid, or an error occurs.
79
82
  */
80
83
  getValidated(nameOrIndexOrQualifier) {
81
- const qualifierName = this._resolveQualifierName(nameOrIndexOrQualifier);
82
- if (qualifierName.isFailure()) {
83
- return (0, ts_utils_1.fail)(qualifierName.message);
84
- }
85
- // TODO: Implement validation logic
86
- return (0, ts_utils_1.fail)(`getValidated not yet implemented for qualifier "${qualifierName.value}"`);
84
+ return this._resolveQualifier(nameOrIndexOrQualifier).onSuccess((qualifier) => {
85
+ return this._qualifierValues.get(qualifier.name).asResult.onSuccess((value) => {
86
+ return qualifier.validateContextValue(value);
87
+ });
88
+ });
87
89
  }
88
90
  /**
89
91
  * Checks if a qualifier value exists with the given name.
@@ -143,34 +145,54 @@ class SimpleContextQualifierProvider extends contextQualifierProvider_1.ContextQ
143
145
  this._qualifierValues.clear();
144
146
  }
145
147
  /**
146
- * Resolves a qualifier name from a name, index, or qualifier object.
148
+ * Resolves a qualifier from a name, index, or qualifier object.
147
149
  * @param nameOrIndexOrQualifier - The input to resolve.
148
- * @returns `Success` with the {@link QualifierName | qualifier name} if successful,
150
+ * @returns `Success` with the {@link Qualifier | qualifier} if successful,
149
151
  * or `Failure` with an error message if not found or invalid.
150
152
  * @internal
151
153
  */
152
- _resolveQualifierName(nameOrIndexOrQualifier) {
153
- // If it's already a QualifierName (string type with brand)
154
- if (typeof nameOrIndexOrQualifier === 'string') {
155
- /* c8 ignore next 1 - functional code path tested but coverage intermittently missed */
154
+ _resolveQualifier(nameOrIndexOrQualifier) {
155
+ if (nameOrIndexOrQualifier instanceof qualifiers_1.Qualifier) {
156
156
  return (0, ts_utils_1.succeed)(nameOrIndexOrQualifier);
157
157
  }
158
- // If it's a Qualifier object
159
- if (typeof nameOrIndexOrQualifier === 'object' &&
160
- nameOrIndexOrQualifier !== null &&
161
- 'name' in nameOrIndexOrQualifier) {
162
- return (0, ts_utils_1.succeed)(nameOrIndexOrQualifier.name);
158
+ if (typeof nameOrIndexOrQualifier === 'string') {
159
+ return this.qualifiers.validating
160
+ .get(nameOrIndexOrQualifier)
161
+ .withErrorFormat((error) => `${nameOrIndexOrQualifier}: Not a valid qualifier name.`);
163
162
  }
164
- // If it's a QualifierIndex (number type with brand)
165
- /* c8 ignore next 8 - functional code path tested but coverage intermittently missed */
166
163
  if (typeof nameOrIndexOrQualifier === 'number') {
167
- const qualifier = this.qualifiers.getAt(nameOrIndexOrQualifier);
168
- if (qualifier.isSuccess()) {
169
- return (0, ts_utils_1.succeed)(qualifier.value.name);
170
- }
171
- return (0, ts_utils_1.fail)(`Qualifier not found at index ${nameOrIndexOrQualifier}`);
164
+ return this.qualifiers
165
+ .getAt(nameOrIndexOrQualifier)
166
+ .withErrorFormat((error) => `${nameOrIndexOrQualifier}: Not a valid qualifier index.`);
172
167
  }
173
- return (0, ts_utils_1.fail)(`Invalid qualifier parameter: ${nameOrIndexOrQualifier}`);
168
+ return SimpleContextQualifierProvider._qualifierNameFromQualifierLike(nameOrIndexOrQualifier)
169
+ .onSuccess((qualifierName) => this.qualifiers.validating.get(qualifierName))
170
+ .withErrorFormat((error) => `${nameOrIndexOrQualifier}: Not a valid Qualifier, name or index.`);
171
+ }
172
+ /**
173
+ * Resolves a qualifier name from a name, index, or qualifier object.
174
+ * @param nameOrIndexOrQualifier - The input to resolve.
175
+ * @returns `Success` with the {@link QualifierName | qualifier name} if successful,
176
+ * or `Failure` with an error message if not found or invalid.
177
+ * @internal
178
+ */
179
+ _resolveQualifierName(nameOrIndexOrQualifier) {
180
+ return this._resolveQualifier(nameOrIndexOrQualifier).onSuccess((qualifier) => (0, ts_utils_1.succeed)(qualifier.name));
181
+ }
182
+ /**
183
+ * Resolves a qualifier name from a qualifier-like object.
184
+ * @param nameOrIndexOrQualifier - The input to resolve.
185
+ * @returns `Success` with the {@link QualifierName | qualifier name} if successful,
186
+ * or `Failure` with an error message if not found or invalid.
187
+ * @internal
188
+ */
189
+ static _qualifierNameFromQualifierLike(nameOrIndexOrQualifier) {
190
+ return ts_utils_1.Converters.isA('Qualifier-like object', (v) => typeof v === 'object' &&
191
+ v !== null &&
192
+ 'name' in v &&
193
+ typeof v.name === 'string')
194
+ .map((v) => common_1.Convert.qualifierName.convert(v.name))
195
+ .convert(nameOrIndexOrQualifier);
174
196
  }
175
197
  }
176
198
  exports.SimpleContextQualifierProvider = SimpleContextQualifierProvider;
@@ -1,7 +1,7 @@
1
1
  import { Result } from '@fgv/ts-utils';
2
2
  import { IReadOnlyQualifierCollector } from '../../qualifiers';
3
3
  import { SimpleContextQualifierProvider } from './simpleContextQualifierProvider';
4
- import { IReadOnlyContextQualifierProviderValidator } from './contextQualifierProviderValidator';
4
+ import { IMutableContextQualifierProviderValidator } from './contextQualifierProviderValidator';
5
5
  /**
6
6
  * Parameters for creating a {@link Runtime.ValidatingSimpleContextQualifierProvider | ValidatingSimpleContextQualifierProvider}.
7
7
  * @public
@@ -19,17 +19,17 @@ export interface IValidatingSimpleContextQualifierProviderCreateParams {
19
19
  }
20
20
  /**
21
21
  * A {@link Runtime.SimpleContextQualifierProvider | SimpleContextQualifierProvider} with a
22
- * {@link Runtime.Context.ContextQualifierProviderValidator | validator} property that enables
22
+ * {@link Runtime.Context.MutableContextQualifierProviderValidator | validator} property that enables
23
23
  * validated use of the underlying provider with string keys and values.
24
24
  * This eliminates the need for type casting in consumer code.
25
25
  * @public
26
26
  */
27
27
  export declare class ValidatingSimpleContextQualifierProvider extends SimpleContextQualifierProvider {
28
28
  /**
29
- * A {@link Runtime.Context.ContextQualifierProviderValidator | ContextQualifierProviderValidator} which validates
29
+ * A {@link Runtime.Context.MutableContextQualifierProviderValidator | MutableContextQualifierProviderValidator} which validates
30
30
  * string inputs before passing them to this provider.
31
31
  */
32
- readonly validating: IReadOnlyContextQualifierProviderValidator;
32
+ readonly validating: IMutableContextQualifierProviderValidator;
33
33
  /**
34
34
  * Constructor for a {@link Runtime.ValidatingSimpleContextQualifierProvider | ValidatingSimpleContextQualifierProvider} object.
35
35
  * @param params - {@link Runtime.IValidatingSimpleContextQualifierProviderCreateParams | Parameters} used to create the provider.
@@ -27,7 +27,7 @@ const simpleContextQualifierProvider_1 = require("./simpleContextQualifierProvid
27
27
  const contextQualifierProviderValidator_1 = require("./contextQualifierProviderValidator");
28
28
  /**
29
29
  * A {@link Runtime.SimpleContextQualifierProvider | SimpleContextQualifierProvider} with a
30
- * {@link Runtime.Context.ContextQualifierProviderValidator | validator} property that enables
30
+ * {@link Runtime.Context.MutableContextQualifierProviderValidator | validator} property that enables
31
31
  * validated use of the underlying provider with string keys and values.
32
32
  * This eliminates the need for type casting in consumer code.
33
33
  * @public
@@ -47,7 +47,7 @@ class ValidatingSimpleContextQualifierProvider extends simpleContextQualifierPro
47
47
  qualifiers: params.qualifiers,
48
48
  qualifierValues: convertedValues
49
49
  });
50
- this.validating = new contextQualifierProviderValidator_1.ContextQualifierProviderValidator({ provider: this });
50
+ this.validating = new contextQualifierProviderValidator_1.MutableContextQualifierProviderValidator({ provider: this });
51
51
  }
52
52
  /**
53
53
  * Creates a new {@link Runtime.ValidatingSimpleContextQualifierProvider | ValidatingSimpleContextQualifierProvider} object.
@@ -3,8 +3,9 @@ import { JsonObject } from '@fgv/ts-json-base';
3
3
  import { ReadOnlyConditionCollector, ReadOnlyConditionSetCollector } from '../conditions';
4
4
  import { ReadOnlyAbstractDecisionCollector, ConcreteDecision } from '../decisions';
5
5
  import { ResourceId, ResourceValueMergeMethod } from '../common';
6
- import { ResourceType } from '../resource-types';
6
+ import { IResourceType } from '../resource-types';
7
7
  import { IContextDecl, IValidatedContextDecl } from '../context';
8
+ import { IReadOnlyResourceTreeRoot } from './resource-tree';
8
9
  /**
9
10
  * Runtime representation of a resource candidate with the minimal data needed for resolution.
10
11
  * @public
@@ -30,8 +31,10 @@ export interface IResourceCandidate {
30
31
  export interface IResource {
31
32
  /** The resource identifier */
32
33
  readonly id: string;
34
+ /** The resource name */
35
+ readonly name: string;
33
36
  /** The resource type */
34
- readonly resourceType: ResourceType;
37
+ readonly resourceType: IResourceType;
35
38
  /** The decision used to select candidates */
36
39
  readonly decision: ConcreteDecision;
37
40
  /** The available candidates for this resource */
@@ -43,7 +46,7 @@ export interface IResource {
43
46
  * implementations without requiring the full ResourceManagerBuilder build mechanics.
44
47
  * @public
45
48
  */
46
- export interface IResourceManager {
49
+ export interface IResourceManager<TR extends IResource = IResource> {
47
50
  /**
48
51
  * A {@link Conditions.ReadOnlyConditionCollector | ReadOnlyConditionCollector} which
49
52
  * contains the {@link Conditions.Condition | conditions} used by resource candidates.
@@ -64,12 +67,17 @@ export interface IResourceManager {
64
67
  * @param id - The resource identifier
65
68
  * @returns Success with the runtime resource if found, Failure otherwise
66
69
  */
67
- getBuiltResource(id: string): Result<IResource>;
70
+ getBuiltResource(id: string): Result<TR>;
71
+ /**
72
+ * Gets a resource tree built from the resources in this resource manager.
73
+ * @returns Result containing the resource tree root, or failure if tree construction fails
74
+ */
75
+ getBuiltResourceTree(): Result<IReadOnlyResourceTreeRoot<TR>>;
68
76
  /**
69
77
  * A read-only result map of all built resources, keyed by resource ID.
70
78
  * Resources are built on-demand when accessed and returns Results for error handling.
71
79
  */
72
- readonly builtResources: Collections.IReadOnlyValidatingResultMap<ResourceId, IResource>;
80
+ readonly builtResources: Collections.IReadOnlyValidatingResultMap<ResourceId, TR>;
73
81
  /**
74
82
  * The number of resources in this resource manager.
75
83
  */
@@ -3,6 +3,7 @@ export * from './iResourceManager';
3
3
  export * from './context/simpleContextQualifierProvider';
4
4
  export * from './context/validatingSimpleContextQualifierProvider';
5
5
  export * from './resourceResolver';
6
+ export * from './resourceTreeResolver';
6
7
  export * from './conditionSetResolutionResult';
7
8
  export * from './cacheListener';
8
9
  export * from './cacheMetrics';
@@ -63,6 +63,7 @@ __exportStar(require("./iResourceManager"), exports);
63
63
  __exportStar(require("./context/simpleContextQualifierProvider"), exports);
64
64
  __exportStar(require("./context/validatingSimpleContextQualifierProvider"), exports);
65
65
  __exportStar(require("./resourceResolver"), exports);
66
+ __exportStar(require("./resourceTreeResolver"), exports);
66
67
  __exportStar(require("./conditionSetResolutionResult"), exports);
67
68
  __exportStar(require("./cacheListener"), exports);
68
69
  __exportStar(require("./cacheMetrics"), exports);
@@ -49,7 +49,7 @@ export type IReadOnlyResourceTreeNode<T> = IReadOnlyResourceTreeLeaf<T> | IReadO
49
49
  * Interface for a read-only result-based resource tree with navigation methods.
50
50
  * @public
51
51
  */
52
- export interface IReadOnlyResourceTreeChildren<T, TID extends string = ResourceId, TNAME extends string = ResourceName> extends IReadOnlyResultMap<ResourceName, IReadOnlyResourceTreeNode<T>> {
52
+ export interface IReadOnlyResourceTreeChildren<T, TID extends string = ResourceId, TNAME extends string = ResourceName> extends IReadOnlyResultMap<TNAME, IReadOnlyResourceTreeNode<T>> {
53
53
  /**
54
54
  * Gets a tree node by its full ResourceId path.
55
55
  * @param id - The ResourceId path to look up
@@ -14,7 +14,7 @@ import { IReadOnlyResourceTreeBranch, IReadOnlyResourceTreeChildren, IReadOnlyRe
14
14
  * strongly-typed internal tree operations, ensuring type safety and consistent
15
15
  * error handling throughout the resource tree navigation.
16
16
  *
17
- * @internal
17
+ * @public
18
18
  */
19
19
  export declare class ResourceTreeChildrenValidator<T> implements IReadOnlyResourceTreeChildren<T, string, string> {
20
20
  private readonly _inner;
@@ -69,17 +69,17 @@ export declare class ResourceTreeChildrenValidator<T> implements IReadOnlyResour
69
69
  */
70
70
  forEach(cb: (value: unknown, key: string, map: IReadOnlyResultMap<string, unknown>, thisArg?: unknown) => void, arg?: unknown): void;
71
71
  /**
72
- * Gets a child node by its ResourceName key with detailed error information.
73
- * @param key - The ResourceName key to look up
72
+ * Gets a child node by its string key with detailed error information.
73
+ * @param key - The string key to look up
74
74
  * @returns DetailedResult containing the node if found, or failure with details
75
75
  */
76
- get(key: ResourceName): DetailedResult<IReadOnlyResourceTreeNode<T>, Collections.ResultMapResultDetail>;
76
+ get(key: string): DetailedResult<IReadOnlyResourceTreeNode<T>, Collections.ResultMapResultDetail>;
77
77
  /**
78
- * Checks if a child node exists at the given ResourceName key.
79
- * @param key - The ResourceName key to check
78
+ * Checks if a child node exists at the given string key.
79
+ * @param key - The string key to check
80
80
  * @returns True if a child node exists at the key, false otherwise
81
81
  */
82
- has(key: ResourceName): boolean;
82
+ has(key: string): boolean;
83
83
  /**
84
84
  * Returns an iterator of ResourceName keys for all child nodes.
85
85
  * @returns Map iterator for all child node keys
@@ -37,7 +37,7 @@ const ts_utils_1 = require("@fgv/ts-utils");
37
37
  * strongly-typed internal tree operations, ensuring type safety and consistent
38
38
  * error handling throughout the resource tree navigation.
39
39
  *
40
- * @internal
40
+ * @public
41
41
  */
42
42
  class ResourceTreeChildrenValidator {
43
43
  /**
@@ -121,8 +121,8 @@ class ResourceTreeChildrenValidator {
121
121
  }
122
122
  }
123
123
  /**
124
- * Gets a child node by its ResourceName key with detailed error information.
125
- * @param key - The ResourceName key to look up
124
+ * Gets a child node by its string key with detailed error information.
125
+ * @param key - The string key to look up
126
126
  * @returns DetailedResult containing the node if found, or failure with details
127
127
  */
128
128
  get(key) {
@@ -132,8 +132,8 @@ class ResourceTreeChildrenValidator {
132
132
  return (0, ts_utils_1.failWithDetail)(`${key}: invalid resource name.`, 'invalid-key');
133
133
  }
134
134
  /**
135
- * Checks if a child node exists at the given ResourceName key.
136
- * @param key - The ResourceName key to check
135
+ * Checks if a child node exists at the given string key.
136
+ * @param key - The string key to check
137
137
  * @returns True if a child node exists at the key, false otherwise
138
138
  */
139
139
  has(key) {