@fgv/ts-res 5.0.0-2 → 5.0.0-21

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 (557) hide show
  1. package/.vscode/4.json +3 -0
  2. package/.vscode/launch.json +16 -0
  3. package/.vscode/settings.json +3 -0
  4. package/config/api-extractor.json +343 -0
  5. package/config/rig.json +16 -0
  6. package/dist/ts-res.d.ts +1528 -161
  7. package/dist/tsdoc-metadata.json +1 -1
  8. package/lib/index.d.ts +11 -2
  9. package/lib/index.js +25 -2
  10. package/lib/packlets/bundle/bundleBuilder.d.ts +41 -0
  11. package/lib/packlets/bundle/bundleBuilder.js +134 -0
  12. package/lib/packlets/bundle/bundleLoader.d.ts +72 -0
  13. package/lib/packlets/bundle/bundleLoader.js +105 -0
  14. package/lib/packlets/bundle/bundleNormalizer.d.ts +73 -0
  15. package/lib/packlets/bundle/bundleNormalizer.js +142 -0
  16. package/lib/packlets/bundle/bundleUtils.d.ts +70 -0
  17. package/lib/packlets/bundle/bundleUtils.js +117 -0
  18. package/lib/packlets/bundle/convert.d.ts +33 -0
  19. package/lib/packlets/bundle/convert.js +78 -0
  20. package/lib/packlets/bundle/index.d.ts +21 -0
  21. package/lib/packlets/bundle/index.js +83 -0
  22. package/lib/packlets/bundle/model.d.ts +100 -0
  23. package/lib/packlets/bundle/model.js +24 -0
  24. package/lib/packlets/common/helpers/resources.d.ts +7 -0
  25. package/lib/packlets/common/helpers/resources.js +12 -0
  26. package/lib/packlets/common/resources.d.ts +8 -0
  27. package/lib/packlets/conditions/conditionSet.d.ts +9 -0
  28. package/lib/packlets/conditions/conditionSet.js +74 -1
  29. package/lib/packlets/config/configInitFactory.d.ts +78 -0
  30. package/lib/packlets/config/configInitFactory.js +147 -0
  31. package/lib/packlets/config/convert.d.ts +9 -0
  32. package/lib/packlets/config/convert.js +11 -0
  33. package/lib/packlets/config/index.d.ts +1 -0
  34. package/lib/packlets/config/index.js +1 -0
  35. package/lib/packlets/config/systemConfiguration.d.ts +16 -3
  36. package/lib/packlets/config/systemConfiguration.js +19 -40
  37. package/lib/packlets/import/fsItem.js +8 -13
  38. package/lib/packlets/import/importers/jsonImporter.js +1 -0
  39. package/lib/packlets/qualifier-types/config/json.d.ts +13 -0
  40. package/lib/packlets/qualifier-types/config/json.js +11 -0
  41. package/lib/packlets/qualifier-types/literalValueHierarchy.js +1 -1
  42. package/lib/packlets/qualifiers/qualifierCollector.js +1 -2
  43. package/lib/packlets/resource-types/jsonResourceType.d.ts +9 -4
  44. package/lib/packlets/resource-types/jsonResourceType.js +8 -1
  45. package/lib/packlets/resource-types/resourceType.d.ts +102 -13
  46. package/lib/packlets/resource-types/resourceType.js +34 -2
  47. package/lib/packlets/resources/common.d.ts +26 -0
  48. package/lib/packlets/resources/resource.d.ts +6 -6
  49. package/lib/packlets/resources/resource.js +3 -8
  50. package/lib/packlets/resources/resourceCandidate.d.ts +5 -1
  51. package/lib/packlets/resources/resourceCandidate.js +6 -0
  52. package/lib/packlets/resources/resourceManagerBuilder.d.ts +182 -11
  53. package/lib/packlets/resources/resourceManagerBuilder.js +469 -15
  54. package/lib/packlets/runtime/cacheListener.d.ts +9 -0
  55. package/lib/packlets/runtime/cacheListener.js +6 -0
  56. package/lib/packlets/runtime/cacheMetrics.d.ts +6 -0
  57. package/lib/packlets/runtime/cacheMetrics.js +11 -0
  58. package/lib/packlets/runtime/compiledResourceCollection.d.ts +3 -3
  59. package/lib/packlets/runtime/compiledResourceCollection.js +7 -0
  60. package/lib/packlets/runtime/iResourceManager.d.ts +13 -5
  61. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.d.ts +7 -7
  62. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.js +5 -5
  63. package/lib/packlets/runtime/resourceResolver.d.ts +21 -0
  64. package/lib/packlets/runtime/resourceResolver.js +39 -17
  65. package/lib/packlets/runtime/validate.js +1 -0
  66. package/lib/packlets/zip-archive/convert.d.ts +52 -0
  67. package/lib/packlets/zip-archive/convert.js +104 -0
  68. package/lib/packlets/zip-archive/index.d.ts +23 -0
  69. package/lib/packlets/zip-archive/index.js +95 -0
  70. package/lib/packlets/zip-archive/json.d.ts +64 -0
  71. package/lib/packlets/zip-archive/json.js +24 -0
  72. package/lib/packlets/zip-archive/types.d.ts +98 -0
  73. package/lib/packlets/zip-archive/types.js +39 -0
  74. package/lib/packlets/zip-archive/zipArchiveCreator.d.ts +35 -0
  75. package/lib/packlets/zip-archive/zipArchiveCreator.js +194 -0
  76. package/lib/packlets/zip-archive/zipArchiveFormat.d.ts +70 -0
  77. package/lib/packlets/zip-archive/zipArchiveFormat.js +184 -0
  78. package/lib/packlets/zip-archive/zipArchiveLoader.d.ts +70 -0
  79. package/lib/packlets/zip-archive/zipArchiveLoader.js +285 -0
  80. package/lib/test/data/sample.json +32 -0
  81. package/lib/test/unit/bundle/bundleBuilder.test.d.ts +2 -0
  82. package/lib/test/unit/bundle/bundleLoader.test.d.ts +2 -0
  83. package/lib/test/unit/bundle/bundleUtils.test.d.ts +2 -0
  84. package/lib/test/unit/bundle/convert.test.d.ts +2 -0
  85. package/lib/test/unit/bundle/integration.test.d.ts +2 -0
  86. package/lib/test/unit/bundle/model.test.d.ts +2 -0
  87. package/lib/test/unit/bundle/normalization.test.d.ts +2 -0
  88. package/lib/test/unit/common/conditions.test.d.ts +2 -0
  89. package/lib/test/unit/common/helpers/conditions.test.d.ts +2 -0
  90. package/lib/test/unit/common/helpers/contexts.test.d.ts +2 -0
  91. package/lib/test/unit/common/helpers/qualifierDefaultValues.test.d.ts +2 -0
  92. package/lib/test/unit/common/resources.test.d.ts +2 -0
  93. package/lib/test/unit/conditions/condition.test.d.ts +2 -0
  94. package/lib/test/unit/conditions/conditionCollector.test.d.ts +2 -0
  95. package/lib/test/unit/conditions/conditionScoreAsDefault.test.d.ts +2 -0
  96. package/lib/test/unit/conditions/conditionSet.test.d.ts +2 -0
  97. package/lib/test/unit/conditions/conditionSetCollector.test.d.ts +2 -0
  98. package/lib/test/unit/conditions/conditionToken.test.d.ts +2 -0
  99. package/lib/test/unit/conditions/convert.test.d.ts +2 -0
  100. package/lib/test/unit/config/common.test.d.ts +2 -0
  101. package/lib/test/unit/config/convert.test.d.ts +2 -0
  102. package/lib/test/unit/config/predefined/default.test.d.ts +2 -0
  103. package/lib/test/unit/config/predefined/extended.test.d.ts +2 -0
  104. package/lib/test/unit/config/systemConfiguration.test.d.ts +2 -0
  105. package/lib/test/unit/config/systemConfigurationInitParams.test.d.ts +2 -0
  106. package/lib/test/unit/context/contextToken.test.d.ts +2 -0
  107. package/lib/test/unit/context/convert.test.d.ts +2 -0
  108. package/lib/test/unit/decisions/abstractDecision.test.d.ts +2 -0
  109. package/lib/test/unit/decisions/abstractDecisionCollector.test.d.ts +2 -0
  110. package/lib/test/unit/decisions/candidate.test.d.ts +2 -0
  111. package/lib/test/unit/decisions/concreteDecision.test.d.ts +2 -0
  112. package/lib/test/unit/decisions/decision.test.d.ts +2 -0
  113. package/lib/test/unit/import/collectionImporter.test.d.ts +2 -0
  114. package/lib/test/unit/import/fsItem.test.d.ts +2 -0
  115. package/lib/test/unit/import/fsItemImporter.test.d.ts +2 -0
  116. package/lib/test/unit/import/importContext.test.d.ts +2 -0
  117. package/lib/test/unit/import/importManager.test.d.ts +2 -0
  118. package/lib/test/unit/import/jsonImporter.test.d.ts +2 -0
  119. package/lib/test/unit/import/pathImporter.test.d.ts +2 -0
  120. package/lib/test/unit/qualifier-types/convert.test.d.ts +2 -0
  121. package/lib/test/unit/qualifier-types/helpers.test.d.ts +2 -0
  122. package/lib/test/unit/qualifier-types/languageQualifierType.test.d.ts +2 -0
  123. package/lib/test/unit/qualifier-types/literalQualifierType.test.d.ts +2 -0
  124. package/lib/test/unit/qualifier-types/literalValueHierarchy.test.d.ts +2 -0
  125. package/lib/test/unit/qualifier-types/qualifierType.test.d.ts +2 -0
  126. package/lib/test/unit/qualifier-types/qualifierTypeCollector.test.d.ts +2 -0
  127. package/lib/test/unit/qualifier-types/territoryQualifierType.test.d.ts +2 -0
  128. package/lib/test/unit/qualifier-types/testQualifierType.d.ts +15 -0
  129. package/lib/test/unit/qualifier-types/testQualifierType.js +89 -0
  130. package/lib/test/unit/qualifiers/convert.test.d.ts +2 -0
  131. package/lib/test/unit/qualifiers/qualifierCollector.test.d.ts +2 -0
  132. package/lib/test/unit/qualifiers/qualifierDefaultValue.test.d.ts +2 -0
  133. package/lib/test/unit/qualifiers/qualifierDefaultValueToken.test.d.ts +2 -0
  134. package/lib/test/unit/resource-json/convert.test.d.ts +2 -0
  135. package/lib/test/unit/resource-json/nameInheritance.test.d.ts +2 -0
  136. package/lib/test/unit/resource-json/resourceDeclCollection.test.d.ts +2 -0
  137. package/lib/test/unit/resource-json/resourceDeclTree.test.d.ts +2 -0
  138. package/lib/test/unit/resource-types/jsonResourceType.test.d.ts +2 -0
  139. package/lib/test/unit/resource-types/resourceTypeCollector.test.d.ts +2 -0
  140. package/lib/test/unit/resources/candidateReducer.integration.test.d.ts +2 -0
  141. package/lib/test/unit/resources/candidateReducer.test.d.ts +2 -0
  142. package/lib/test/unit/resources/reduceCandidates.test.d.ts +2 -0
  143. package/lib/test/unit/resources/reduceQualifiers.comprehensive.test.d.ts +2 -0
  144. package/lib/test/unit/resources/reduceQualifiers.test.d.ts +2 -0
  145. package/lib/test/unit/resources/resource.test.d.ts +2 -0
  146. package/lib/test/unit/resources/resourceBuilder.test.d.ts +2 -0
  147. package/lib/test/unit/resources/resourceCandidate.test.d.ts +2 -0
  148. package/lib/test/unit/resources/resourceManagerBuilder.clone.test.d.ts +2 -0
  149. package/lib/test/unit/resources/resourceManagerBuilder.getBuiltResourceTree.test.d.ts +2 -0
  150. package/lib/test/unit/resources/resourceManagerBuilder.test.d.ts +2 -0
  151. package/lib/test/unit/runtime/cacheListener.test.d.ts +2 -0
  152. package/lib/test/unit/runtime/cacheMetrics.test.d.ts +2 -0
  153. package/lib/test/unit/runtime/compiledResourceCollection.test.d.ts +2 -0
  154. package/lib/test/unit/runtime/conditionSetResolutionResult.comprehensive.test.d.ts +2 -0
  155. package/lib/test/unit/runtime/conditionSetResolutionResult.test.d.ts +2 -0
  156. package/lib/test/unit/runtime/context/contextQualifierProvider.test.d.ts +2 -0
  157. package/lib/test/unit/runtime/context/contextQualifierProviderValidator.test.d.ts +2 -0
  158. package/lib/test/unit/runtime/context/simpleContextQualifierProvider.test.d.ts +2 -0
  159. package/lib/test/unit/runtime/context/validatingSimpleContextQualifierProvider.test.d.ts +2 -0
  160. package/lib/test/unit/runtime/resource-tree/readOnlyResourceTree.test.d.ts +2 -0
  161. package/lib/test/unit/runtime/resource-tree/resourceTreeChildren.test.d.ts +2 -0
  162. package/lib/test/unit/runtime/resource-tree/resourceTreeChildrenValidator.test.d.ts +2 -0
  163. package/lib/test/unit/runtime/resourceResolver.defaultResolution.test.d.ts +2 -0
  164. package/lib/test/unit/runtime/resourceResolver.test.d.ts +2 -0
  165. package/lib/test/unit/runtime/validate.test.d.ts +2 -0
  166. package/lib/test/unit/zip-archive/convert.test.d.ts +2 -0
  167. package/lib/test/unit/zip-archive/json.test.d.ts +2 -0
  168. package/lib/test/unit/zip-archive/zipArchiveCreator.test.d.ts +2 -0
  169. package/lib/test/unit/zip-archive/zipArchiveFormat.test.d.ts +2 -0
  170. package/lib/test/unit/zip-archive/zipArchiveIdempotency.test.d.ts +2 -0
  171. package/lib/test/unit/zip-archive/zipArchiveLoader.test.d.ts +2 -0
  172. package/package.json +19 -25
  173. package/src/index.ts +75 -0
  174. package/src/packlets/bundle/bundleBuilder.ts +159 -0
  175. package/src/packlets/bundle/bundleLoader.ts +157 -0
  176. package/src/packlets/bundle/bundleNormalizer.ts +173 -0
  177. package/src/packlets/bundle/bundleUtils.ts +142 -0
  178. package/src/packlets/bundle/convert.ts +87 -0
  179. package/src/packlets/bundle/index.ts +52 -0
  180. package/src/packlets/bundle/model.ts +138 -0
  181. package/src/packlets/common/conditions.ts +226 -0
  182. package/src/packlets/common/convert.ts +184 -0
  183. package/src/packlets/common/helpers/conditions.ts +84 -0
  184. package/src/packlets/common/helpers/context.ts +88 -0
  185. package/src/packlets/common/helpers/index.ts +26 -0
  186. package/src/packlets/common/helpers/qualifierDefaultValues.ts +91 -0
  187. package/src/packlets/common/helpers/resources.ts +96 -0
  188. package/src/packlets/common/index.ts +30 -0
  189. package/src/packlets/common/resources.ts +78 -0
  190. package/src/packlets/common/validate/conditions.ts +595 -0
  191. package/src/packlets/common/validate/index.ts +27 -0
  192. package/src/packlets/common/validate/regularExpressions.ts +92 -0
  193. package/src/packlets/common/validate/resources.ts +170 -0
  194. package/src/packlets/conditions/condition.ts +351 -0
  195. package/src/packlets/conditions/conditionCollector.ts +103 -0
  196. package/src/packlets/conditions/conditionDecls.ts +50 -0
  197. package/src/packlets/conditions/conditionSet.ts +318 -0
  198. package/src/packlets/conditions/conditionSetCollector.ts +127 -0
  199. package/src/packlets/conditions/conditionSetDecls.ts +41 -0
  200. package/src/packlets/conditions/conditionToken.ts +180 -0
  201. package/src/packlets/conditions/convert/conditionSetDecls.ts +72 -0
  202. package/src/packlets/conditions/convert/decls.ts +95 -0
  203. package/src/packlets/conditions/convert/index.ts +24 -0
  204. package/src/packlets/conditions/index.ts +33 -0
  205. package/src/packlets/config/common.ts +107 -0
  206. package/src/packlets/config/configInitFactory.ts +142 -0
  207. package/src/packlets/config/convert.ts +61 -0
  208. package/src/packlets/config/index.ts +30 -0
  209. package/src/packlets/config/json.ts +43 -0
  210. package/src/packlets/config/predefined/default.ts +150 -0
  211. package/src/packlets/config/predefined/extended.ts +198 -0
  212. package/src/packlets/config/predefined/index.ts +26 -0
  213. package/src/packlets/config/systemConfiguration.ts +217 -0
  214. package/src/packlets/context/contextDecls.ts +76 -0
  215. package/src/packlets/context/contextToken.ts +252 -0
  216. package/src/packlets/context/convert/decls.ts +126 -0
  217. package/src/packlets/context/convert/index.ts +23 -0
  218. package/src/packlets/context/index.ts +27 -0
  219. package/src/packlets/decisions/abstractDecision.ts +87 -0
  220. package/src/packlets/decisions/abstractDecisionCollector.ts +122 -0
  221. package/src/packlets/decisions/candidate.ts +101 -0
  222. package/src/packlets/decisions/common.ts +37 -0
  223. package/src/packlets/decisions/concreteDecision.ts +157 -0
  224. package/src/packlets/decisions/decision.ts +172 -0
  225. package/src/packlets/decisions/index.ts +28 -0
  226. package/src/packlets/import/fsItem.ts +212 -0
  227. package/src/packlets/import/importContext.ts +183 -0
  228. package/src/packlets/import/importManager.ts +187 -0
  229. package/src/packlets/import/importable.ts +107 -0
  230. package/src/packlets/import/importers/collectionImporter.ts +153 -0
  231. package/src/packlets/import/importers/fsItemImporter.ts +154 -0
  232. package/src/packlets/import/importers/importer.ts +58 -0
  233. package/src/packlets/import/importers/index.ts +27 -0
  234. package/src/packlets/import/importers/jsonImporter.ts +133 -0
  235. package/src/packlets/import/importers/pathImporter.ts +134 -0
  236. package/src/packlets/import/index.ts +29 -0
  237. package/src/packlets/qualifier-types/config/convert.ts +108 -0
  238. package/src/packlets/qualifier-types/config/index.ts +27 -0
  239. package/src/packlets/qualifier-types/config/json.ts +126 -0
  240. package/src/packlets/qualifier-types/convert.ts +77 -0
  241. package/src/packlets/qualifier-types/helpers.ts +94 -0
  242. package/src/packlets/qualifier-types/index.ts +34 -0
  243. package/src/packlets/qualifier-types/languageQualifierType.ts +143 -0
  244. package/src/packlets/qualifier-types/literalQualifierType.ts +244 -0
  245. package/src/packlets/qualifier-types/literalValueHierarchy.ts +332 -0
  246. package/src/packlets/qualifier-types/qualifierType.ts +360 -0
  247. package/src/packlets/qualifier-types/qualifierTypeCollector.ts +102 -0
  248. package/src/packlets/qualifier-types/territoryQualifierType.ts +255 -0
  249. package/src/packlets/qualifiers/convert/decls.ts +90 -0
  250. package/src/packlets/qualifiers/convert/index.ts +24 -0
  251. package/src/packlets/qualifiers/convert/qualifier.ts +55 -0
  252. package/src/packlets/qualifiers/index.ts +31 -0
  253. package/src/packlets/qualifiers/qualifier.ts +169 -0
  254. package/src/packlets/qualifiers/qualifierCollector.ts +194 -0
  255. package/src/packlets/qualifiers/qualifierDecl.ts +80 -0
  256. package/src/packlets/qualifiers/qualifierDefaultValueDecls.ts +57 -0
  257. package/src/packlets/qualifiers/qualifierDefaultValueToken.ts +230 -0
  258. package/src/packlets/resource-json/compiled/common.ts +35 -0
  259. package/src/packlets/resource-json/compiled/convert.ts +143 -0
  260. package/src/packlets/resource-json/compiled/index.ts +27 -0
  261. package/src/packlets/resource-json/compiled/json.ts +239 -0
  262. package/src/packlets/resource-json/convert.ts +236 -0
  263. package/src/packlets/resource-json/helpers.ts +284 -0
  264. package/src/packlets/resource-json/index.ts +33 -0
  265. package/src/packlets/resource-json/json.ts +295 -0
  266. package/src/packlets/resource-json/normalized.ts +211 -0
  267. package/src/packlets/resource-json/resourceDeclCollection.ts +117 -0
  268. package/src/packlets/resource-json/resourceDeclContainer.ts +48 -0
  269. package/src/packlets/resource-json/resourceDeclTree.ts +116 -0
  270. package/src/packlets/resource-types/config/convert.ts +36 -0
  271. package/src/packlets/resource-types/config/index.ts +27 -0
  272. package/src/packlets/resource-types/config/json.ts +30 -0
  273. package/src/packlets/resource-types/helpers.ts +44 -0
  274. package/src/packlets/resource-types/index.ts +30 -0
  275. package/src/packlets/resource-types/jsonResourceType.ts +104 -0
  276. package/src/packlets/resource-types/resourceType.ts +259 -0
  277. package/src/packlets/resource-types/resourceTypeCollector.ts +79 -0
  278. package/src/packlets/resources/candidateReducer.ts +331 -0
  279. package/src/packlets/resources/common.ts +114 -0
  280. package/src/packlets/resources/index.ts +28 -0
  281. package/src/packlets/resources/resource.ts +307 -0
  282. package/src/packlets/resources/resourceBuilder.ts +269 -0
  283. package/src/packlets/resources/resourceCandidate.ts +333 -0
  284. package/src/packlets/resources/resourceManagerBuilder.ts +1169 -0
  285. package/src/packlets/runtime/cacheListener.ts +113 -0
  286. package/src/packlets/runtime/cacheMetrics.ts +206 -0
  287. package/src/packlets/runtime/compiledResourceCollection.ts +607 -0
  288. package/src/packlets/runtime/conditionSetResolutionResult.ts +160 -0
  289. package/src/packlets/runtime/context/contextQualifierProvider.ts +117 -0
  290. package/src/packlets/runtime/context/contextQualifierProviderValidator.ts +281 -0
  291. package/src/packlets/runtime/context/index.ts +26 -0
  292. package/src/packlets/runtime/context/simpleContextQualifierProvider.ts +225 -0
  293. package/src/packlets/runtime/context/validatingSimpleContextQualifierProvider.ts +96 -0
  294. package/src/packlets/runtime/iResourceManager.ts +130 -0
  295. package/src/packlets/runtime/index.ts +35 -0
  296. package/src/packlets/runtime/resource-tree/common.ts +126 -0
  297. package/src/packlets/runtime/resource-tree/index.ts +26 -0
  298. package/src/packlets/runtime/resource-tree/readOnlyResourceTree.ts +342 -0
  299. package/src/packlets/runtime/resource-tree/resourceTreeChildren.ts +125 -0
  300. package/src/packlets/runtime/resource-tree/resourceTreeChildrenValidator.ts +187 -0
  301. package/src/packlets/runtime/resourceResolver.ts +626 -0
  302. package/src/packlets/runtime/validate.ts +63 -0
  303. package/src/packlets/zip-archive/convert.ts +121 -0
  304. package/src/packlets/zip-archive/index.ts +76 -0
  305. package/src/packlets/zip-archive/json.ts +91 -0
  306. package/src/packlets/zip-archive/types.ts +140 -0
  307. package/src/packlets/zip-archive/zipArchiveCreator.ts +229 -0
  308. package/src/packlets/zip-archive/zipArchiveFormat.ts +158 -0
  309. package/src/packlets/zip-archive/zipArchiveLoader.ts +370 -0
  310. package/CHANGELOG.md +0 -14
  311. package/CLAUDE.md +0 -186
  312. package/EXAMPLE_INIT_PARAMS.md +0 -88
  313. package/PROGRESS_SUMMARY.md +0 -48
  314. package/lib/index.d.ts.map +0 -1
  315. package/lib/index.js.map +0 -1
  316. package/lib/packlets/common/conditions.d.ts.map +0 -1
  317. package/lib/packlets/common/conditions.js.map +0 -1
  318. package/lib/packlets/common/convert.d.ts.map +0 -1
  319. package/lib/packlets/common/convert.js.map +0 -1
  320. package/lib/packlets/common/helpers/conditions.d.ts.map +0 -1
  321. package/lib/packlets/common/helpers/conditions.js.map +0 -1
  322. package/lib/packlets/common/helpers/context.d.ts.map +0 -1
  323. package/lib/packlets/common/helpers/context.js.map +0 -1
  324. package/lib/packlets/common/helpers/index.d.ts.map +0 -1
  325. package/lib/packlets/common/helpers/index.js.map +0 -1
  326. package/lib/packlets/common/helpers/qualifierDefaultValues.d.ts.map +0 -1
  327. package/lib/packlets/common/helpers/qualifierDefaultValues.js.map +0 -1
  328. package/lib/packlets/common/helpers/resources.d.ts.map +0 -1
  329. package/lib/packlets/common/helpers/resources.js.map +0 -1
  330. package/lib/packlets/common/index.d.ts.map +0 -1
  331. package/lib/packlets/common/index.js.map +0 -1
  332. package/lib/packlets/common/resources.d.ts.map +0 -1
  333. package/lib/packlets/common/resources.js.map +0 -1
  334. package/lib/packlets/common/validate/conditions.d.ts.map +0 -1
  335. package/lib/packlets/common/validate/conditions.js.map +0 -1
  336. package/lib/packlets/common/validate/index.d.ts.map +0 -1
  337. package/lib/packlets/common/validate/index.js.map +0 -1
  338. package/lib/packlets/common/validate/regularExpressions.d.ts.map +0 -1
  339. package/lib/packlets/common/validate/regularExpressions.js.map +0 -1
  340. package/lib/packlets/common/validate/resources.d.ts.map +0 -1
  341. package/lib/packlets/common/validate/resources.js.map +0 -1
  342. package/lib/packlets/conditions/condition.d.ts.map +0 -1
  343. package/lib/packlets/conditions/condition.js.map +0 -1
  344. package/lib/packlets/conditions/conditionCollector.d.ts.map +0 -1
  345. package/lib/packlets/conditions/conditionCollector.js.map +0 -1
  346. package/lib/packlets/conditions/conditionDecls.d.ts.map +0 -1
  347. package/lib/packlets/conditions/conditionDecls.js.map +0 -1
  348. package/lib/packlets/conditions/conditionSet.d.ts.map +0 -1
  349. package/lib/packlets/conditions/conditionSet.js.map +0 -1
  350. package/lib/packlets/conditions/conditionSetCollector.d.ts.map +0 -1
  351. package/lib/packlets/conditions/conditionSetCollector.js.map +0 -1
  352. package/lib/packlets/conditions/conditionSetDecls.d.ts.map +0 -1
  353. package/lib/packlets/conditions/conditionSetDecls.js.map +0 -1
  354. package/lib/packlets/conditions/conditionToken.d.ts.map +0 -1
  355. package/lib/packlets/conditions/conditionToken.js.map +0 -1
  356. package/lib/packlets/conditions/convert/conditionSetDecls.d.ts.map +0 -1
  357. package/lib/packlets/conditions/convert/conditionSetDecls.js.map +0 -1
  358. package/lib/packlets/conditions/convert/decls.d.ts.map +0 -1
  359. package/lib/packlets/conditions/convert/decls.js.map +0 -1
  360. package/lib/packlets/conditions/convert/index.d.ts.map +0 -1
  361. package/lib/packlets/conditions/convert/index.js.map +0 -1
  362. package/lib/packlets/conditions/index.d.ts.map +0 -1
  363. package/lib/packlets/conditions/index.js.map +0 -1
  364. package/lib/packlets/config/common.d.ts.map +0 -1
  365. package/lib/packlets/config/common.js.map +0 -1
  366. package/lib/packlets/config/convert.d.ts.map +0 -1
  367. package/lib/packlets/config/convert.js.map +0 -1
  368. package/lib/packlets/config/index.d.ts.map +0 -1
  369. package/lib/packlets/config/index.js.map +0 -1
  370. package/lib/packlets/config/json.d.ts.map +0 -1
  371. package/lib/packlets/config/json.js.map +0 -1
  372. package/lib/packlets/config/predefined/default.d.ts.map +0 -1
  373. package/lib/packlets/config/predefined/default.js.map +0 -1
  374. package/lib/packlets/config/predefined/extended.d.ts.map +0 -1
  375. package/lib/packlets/config/predefined/extended.js.map +0 -1
  376. package/lib/packlets/config/predefined/index.d.ts.map +0 -1
  377. package/lib/packlets/config/predefined/index.js.map +0 -1
  378. package/lib/packlets/config/systemConfiguration.d.ts.map +0 -1
  379. package/lib/packlets/config/systemConfiguration.js.map +0 -1
  380. package/lib/packlets/context/contextDecls.d.ts.map +0 -1
  381. package/lib/packlets/context/contextDecls.js.map +0 -1
  382. package/lib/packlets/context/contextToken.d.ts.map +0 -1
  383. package/lib/packlets/context/contextToken.js.map +0 -1
  384. package/lib/packlets/context/convert/decls.d.ts.map +0 -1
  385. package/lib/packlets/context/convert/decls.js.map +0 -1
  386. package/lib/packlets/context/convert/index.d.ts.map +0 -1
  387. package/lib/packlets/context/convert/index.js.map +0 -1
  388. package/lib/packlets/context/index.d.ts.map +0 -1
  389. package/lib/packlets/context/index.js.map +0 -1
  390. package/lib/packlets/decisions/abstractDecision.d.ts.map +0 -1
  391. package/lib/packlets/decisions/abstractDecision.js.map +0 -1
  392. package/lib/packlets/decisions/abstractDecisionCollector.d.ts.map +0 -1
  393. package/lib/packlets/decisions/abstractDecisionCollector.js.map +0 -1
  394. package/lib/packlets/decisions/candidate.d.ts.map +0 -1
  395. package/lib/packlets/decisions/candidate.js.map +0 -1
  396. package/lib/packlets/decisions/common.d.ts.map +0 -1
  397. package/lib/packlets/decisions/common.js.map +0 -1
  398. package/lib/packlets/decisions/concreteDecision.d.ts.map +0 -1
  399. package/lib/packlets/decisions/concreteDecision.js.map +0 -1
  400. package/lib/packlets/decisions/decision.d.ts.map +0 -1
  401. package/lib/packlets/decisions/decision.js.map +0 -1
  402. package/lib/packlets/decisions/index.d.ts.map +0 -1
  403. package/lib/packlets/decisions/index.js.map +0 -1
  404. package/lib/packlets/import/fsItem.d.ts.map +0 -1
  405. package/lib/packlets/import/fsItem.js.map +0 -1
  406. package/lib/packlets/import/importContext.d.ts.map +0 -1
  407. package/lib/packlets/import/importContext.js.map +0 -1
  408. package/lib/packlets/import/importManager.d.ts.map +0 -1
  409. package/lib/packlets/import/importManager.js.map +0 -1
  410. package/lib/packlets/import/importable.d.ts.map +0 -1
  411. package/lib/packlets/import/importable.js.map +0 -1
  412. package/lib/packlets/import/importers/collectionImporter.d.ts.map +0 -1
  413. package/lib/packlets/import/importers/collectionImporter.js.map +0 -1
  414. package/lib/packlets/import/importers/fsItemImporter.d.ts.map +0 -1
  415. package/lib/packlets/import/importers/fsItemImporter.js.map +0 -1
  416. package/lib/packlets/import/importers/importer.d.ts.map +0 -1
  417. package/lib/packlets/import/importers/importer.js.map +0 -1
  418. package/lib/packlets/import/importers/index.d.ts.map +0 -1
  419. package/lib/packlets/import/importers/index.js.map +0 -1
  420. package/lib/packlets/import/importers/jsonImporter.d.ts.map +0 -1
  421. package/lib/packlets/import/importers/jsonImporter.js.map +0 -1
  422. package/lib/packlets/import/importers/pathImporter.d.ts.map +0 -1
  423. package/lib/packlets/import/importers/pathImporter.js.map +0 -1
  424. package/lib/packlets/import/index.d.ts.map +0 -1
  425. package/lib/packlets/import/index.js.map +0 -1
  426. package/lib/packlets/qualifier-types/config/convert.d.ts.map +0 -1
  427. package/lib/packlets/qualifier-types/config/convert.js.map +0 -1
  428. package/lib/packlets/qualifier-types/config/index.d.ts.map +0 -1
  429. package/lib/packlets/qualifier-types/config/index.js.map +0 -1
  430. package/lib/packlets/qualifier-types/config/json.d.ts.map +0 -1
  431. package/lib/packlets/qualifier-types/config/json.js.map +0 -1
  432. package/lib/packlets/qualifier-types/convert.d.ts.map +0 -1
  433. package/lib/packlets/qualifier-types/convert.js.map +0 -1
  434. package/lib/packlets/qualifier-types/helpers.d.ts.map +0 -1
  435. package/lib/packlets/qualifier-types/helpers.js.map +0 -1
  436. package/lib/packlets/qualifier-types/index.d.ts.map +0 -1
  437. package/lib/packlets/qualifier-types/index.js.map +0 -1
  438. package/lib/packlets/qualifier-types/languageQualifierType.d.ts.map +0 -1
  439. package/lib/packlets/qualifier-types/languageQualifierType.js.map +0 -1
  440. package/lib/packlets/qualifier-types/literalQualifierType.d.ts.map +0 -1
  441. package/lib/packlets/qualifier-types/literalQualifierType.js.map +0 -1
  442. package/lib/packlets/qualifier-types/literalValueHierarchy.d.ts.map +0 -1
  443. package/lib/packlets/qualifier-types/literalValueHierarchy.js.map +0 -1
  444. package/lib/packlets/qualifier-types/qualifierType.d.ts.map +0 -1
  445. package/lib/packlets/qualifier-types/qualifierType.js.map +0 -1
  446. package/lib/packlets/qualifier-types/qualifierTypeCollector.d.ts.map +0 -1
  447. package/lib/packlets/qualifier-types/qualifierTypeCollector.js.map +0 -1
  448. package/lib/packlets/qualifier-types/territoryQualifierType.d.ts.map +0 -1
  449. package/lib/packlets/qualifier-types/territoryQualifierType.js.map +0 -1
  450. package/lib/packlets/qualifiers/convert/decls.d.ts.map +0 -1
  451. package/lib/packlets/qualifiers/convert/decls.js.map +0 -1
  452. package/lib/packlets/qualifiers/convert/index.d.ts.map +0 -1
  453. package/lib/packlets/qualifiers/convert/index.js.map +0 -1
  454. package/lib/packlets/qualifiers/convert/qualifier.d.ts.map +0 -1
  455. package/lib/packlets/qualifiers/convert/qualifier.js.map +0 -1
  456. package/lib/packlets/qualifiers/index.d.ts.map +0 -1
  457. package/lib/packlets/qualifiers/index.js.map +0 -1
  458. package/lib/packlets/qualifiers/qualifier.d.ts.map +0 -1
  459. package/lib/packlets/qualifiers/qualifier.js.map +0 -1
  460. package/lib/packlets/qualifiers/qualifierCollector.d.ts.map +0 -1
  461. package/lib/packlets/qualifiers/qualifierCollector.js.map +0 -1
  462. package/lib/packlets/qualifiers/qualifierDecl.d.ts.map +0 -1
  463. package/lib/packlets/qualifiers/qualifierDecl.js.map +0 -1
  464. package/lib/packlets/qualifiers/qualifierDefaultValueDecls.d.ts.map +0 -1
  465. package/lib/packlets/qualifiers/qualifierDefaultValueDecls.js.map +0 -1
  466. package/lib/packlets/qualifiers/qualifierDefaultValueToken.d.ts.map +0 -1
  467. package/lib/packlets/qualifiers/qualifierDefaultValueToken.js.map +0 -1
  468. package/lib/packlets/resource-json/compiled/common.d.ts.map +0 -1
  469. package/lib/packlets/resource-json/compiled/common.js.map +0 -1
  470. package/lib/packlets/resource-json/compiled/convert.d.ts.map +0 -1
  471. package/lib/packlets/resource-json/compiled/convert.js.map +0 -1
  472. package/lib/packlets/resource-json/compiled/index.d.ts.map +0 -1
  473. package/lib/packlets/resource-json/compiled/index.js.map +0 -1
  474. package/lib/packlets/resource-json/compiled/json.d.ts.map +0 -1
  475. package/lib/packlets/resource-json/compiled/json.js.map +0 -1
  476. package/lib/packlets/resource-json/convert.d.ts.map +0 -1
  477. package/lib/packlets/resource-json/convert.js.map +0 -1
  478. package/lib/packlets/resource-json/helpers.d.ts.map +0 -1
  479. package/lib/packlets/resource-json/helpers.js.map +0 -1
  480. package/lib/packlets/resource-json/index.d.ts.map +0 -1
  481. package/lib/packlets/resource-json/index.js.map +0 -1
  482. package/lib/packlets/resource-json/json.d.ts.map +0 -1
  483. package/lib/packlets/resource-json/json.js.map +0 -1
  484. package/lib/packlets/resource-json/normalized.d.ts.map +0 -1
  485. package/lib/packlets/resource-json/normalized.js.map +0 -1
  486. package/lib/packlets/resource-json/resourceDeclCollection.d.ts.map +0 -1
  487. package/lib/packlets/resource-json/resourceDeclCollection.js.map +0 -1
  488. package/lib/packlets/resource-json/resourceDeclContainer.d.ts.map +0 -1
  489. package/lib/packlets/resource-json/resourceDeclContainer.js.map +0 -1
  490. package/lib/packlets/resource-json/resourceDeclTree.d.ts.map +0 -1
  491. package/lib/packlets/resource-json/resourceDeclTree.js.map +0 -1
  492. package/lib/packlets/resource-types/config/convert.d.ts.map +0 -1
  493. package/lib/packlets/resource-types/config/convert.js.map +0 -1
  494. package/lib/packlets/resource-types/config/index.d.ts.map +0 -1
  495. package/lib/packlets/resource-types/config/index.js.map +0 -1
  496. package/lib/packlets/resource-types/config/json.d.ts.map +0 -1
  497. package/lib/packlets/resource-types/config/json.js.map +0 -1
  498. package/lib/packlets/resource-types/helpers.d.ts.map +0 -1
  499. package/lib/packlets/resource-types/helpers.js.map +0 -1
  500. package/lib/packlets/resource-types/index.d.ts.map +0 -1
  501. package/lib/packlets/resource-types/index.js.map +0 -1
  502. package/lib/packlets/resource-types/jsonResourceType.d.ts.map +0 -1
  503. package/lib/packlets/resource-types/jsonResourceType.js.map +0 -1
  504. package/lib/packlets/resource-types/resourceType.d.ts.map +0 -1
  505. package/lib/packlets/resource-types/resourceType.js.map +0 -1
  506. package/lib/packlets/resource-types/resourceTypeCollector.d.ts.map +0 -1
  507. package/lib/packlets/resource-types/resourceTypeCollector.js.map +0 -1
  508. package/lib/packlets/resources/candidateReducer.d.ts.map +0 -1
  509. package/lib/packlets/resources/candidateReducer.js.map +0 -1
  510. package/lib/packlets/resources/common.d.ts.map +0 -1
  511. package/lib/packlets/resources/common.js.map +0 -1
  512. package/lib/packlets/resources/index.d.ts.map +0 -1
  513. package/lib/packlets/resources/index.js.map +0 -1
  514. package/lib/packlets/resources/resource.d.ts.map +0 -1
  515. package/lib/packlets/resources/resource.js.map +0 -1
  516. package/lib/packlets/resources/resourceBuilder.d.ts.map +0 -1
  517. package/lib/packlets/resources/resourceBuilder.js.map +0 -1
  518. package/lib/packlets/resources/resourceCandidate.d.ts.map +0 -1
  519. package/lib/packlets/resources/resourceCandidate.js.map +0 -1
  520. package/lib/packlets/resources/resourceManagerBuilder.d.ts.map +0 -1
  521. package/lib/packlets/resources/resourceManagerBuilder.js.map +0 -1
  522. package/lib/packlets/runtime/cacheListener.d.ts.map +0 -1
  523. package/lib/packlets/runtime/cacheListener.js.map +0 -1
  524. package/lib/packlets/runtime/cacheMetrics.d.ts.map +0 -1
  525. package/lib/packlets/runtime/cacheMetrics.js.map +0 -1
  526. package/lib/packlets/runtime/compiledResourceCollection.d.ts.map +0 -1
  527. package/lib/packlets/runtime/compiledResourceCollection.js.map +0 -1
  528. package/lib/packlets/runtime/conditionSetResolutionResult.d.ts.map +0 -1
  529. package/lib/packlets/runtime/conditionSetResolutionResult.js.map +0 -1
  530. package/lib/packlets/runtime/context/contextQualifierProvider.d.ts.map +0 -1
  531. package/lib/packlets/runtime/context/contextQualifierProvider.js.map +0 -1
  532. package/lib/packlets/runtime/context/contextQualifierProviderValidator.d.ts.map +0 -1
  533. package/lib/packlets/runtime/context/contextQualifierProviderValidator.js.map +0 -1
  534. package/lib/packlets/runtime/context/index.d.ts.map +0 -1
  535. package/lib/packlets/runtime/context/index.js.map +0 -1
  536. package/lib/packlets/runtime/context/simpleContextQualifierProvider.d.ts.map +0 -1
  537. package/lib/packlets/runtime/context/simpleContextQualifierProvider.js.map +0 -1
  538. package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.d.ts.map +0 -1
  539. package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.js.map +0 -1
  540. package/lib/packlets/runtime/iResourceManager.d.ts.map +0 -1
  541. package/lib/packlets/runtime/iResourceManager.js.map +0 -1
  542. package/lib/packlets/runtime/index.d.ts.map +0 -1
  543. package/lib/packlets/runtime/index.js.map +0 -1
  544. package/lib/packlets/runtime/resource-tree/common.d.ts.map +0 -1
  545. package/lib/packlets/runtime/resource-tree/common.js.map +0 -1
  546. package/lib/packlets/runtime/resource-tree/index.d.ts.map +0 -1
  547. package/lib/packlets/runtime/resource-tree/index.js.map +0 -1
  548. package/lib/packlets/runtime/resource-tree/readOnlyResourceTree.d.ts.map +0 -1
  549. package/lib/packlets/runtime/resource-tree/readOnlyResourceTree.js.map +0 -1
  550. package/lib/packlets/runtime/resource-tree/resourceTreeChildren.d.ts.map +0 -1
  551. package/lib/packlets/runtime/resource-tree/resourceTreeChildren.js.map +0 -1
  552. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.d.ts.map +0 -1
  553. package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.js.map +0 -1
  554. package/lib/packlets/runtime/resourceResolver.d.ts.map +0 -1
  555. package/lib/packlets/runtime/resourceResolver.js.map +0 -1
  556. package/lib/packlets/runtime/validate.d.ts.map +0 -1
  557. package/lib/packlets/runtime/validate.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { JsonObject } from '@fgv/ts-json-base';
2
2
  import { IResourceCandidateValidationProperties, ResourceType } from './resourceType';
3
- import { ResourceTypeName } from '../common';
3
+ import { CandidateCompleteness, ResourceTypeName } from '../common';
4
4
  import { Result } from '@fgv/ts-utils';
5
5
  /**
6
6
  * Parameters to create a {@link ResourceTypes.JsonResourceType | JsonResourceType} instance.
@@ -44,14 +44,19 @@ export declare class JsonResourceType extends ResourceType<JsonObject> {
44
44
  /**
45
45
  * {@inheritdoc ResourceTypes.ResourceType.(validate:1)}
46
46
  */
47
- validate(json: JsonObject, isPartial: true): Result<JsonObject>;
47
+ validate(json: JsonObject, completeness: CandidateCompleteness): Result<JsonObject>;
48
48
  /**
49
49
  * {@inheritdoc ResourceTypes.ResourceType.(validate:2)}
50
50
  */
51
- validate(json: JsonObject, isPartial: false): Result<JsonObject>;
51
+ validate(json: JsonObject, completeness: 'full'): Result<JsonObject>;
52
52
  /**
53
53
  * {@inheritdoc ResourceTypes.ResourceType.(validate:3)}
54
54
  */
55
- validate(json: JsonObject, isPartial: boolean): Result<JsonObject>;
55
+ validate(json: JsonObject, completeness: 'partial'): Result<JsonObject>;
56
+ /**
57
+ * Gets the default template value for a JSON resource type.
58
+ * @returns An empty object as the default JSON value
59
+ */
60
+ protected getDefaultTemplateValue(): JsonObject;
56
61
  }
57
62
  //# sourceMappingURL=jsonResourceType.d.ts.map
@@ -58,9 +58,16 @@ class JsonResourceType extends resourceType_1.ResourceType {
58
58
  validateDeclaration(props) {
59
59
  return ts_json_base_1.Converters.jsonObject.convert(props.json);
60
60
  }
61
- validate(json, __isPartial) {
61
+ validate(json, __completeness) {
62
62
  return ts_json_base_1.Converters.jsonObject.convert(json);
63
63
  }
64
+ /**
65
+ * Gets the default template value for a JSON resource type.
66
+ * @returns An empty object as the default JSON value
67
+ */
68
+ getDefaultTemplateValue() {
69
+ return {};
70
+ }
64
71
  }
65
72
  exports.JsonResourceType = JsonResourceType;
66
73
  //# sourceMappingURL=jsonResourceType.js.map
@@ -1,6 +1,7 @@
1
- import { JsonValue } from '@fgv/ts-json-base';
1
+ import { JsonValue, JsonObject } from '@fgv/ts-json-base';
2
2
  import { ICollectible, Result } from '@fgv/ts-utils';
3
- import { ResourceTypeIndex, ResourceTypeName, ResourceValueMergeMethod, ResourceId } from '../common';
3
+ import { CandidateCompleteness, ResourceTypeIndex, ResourceTypeName, ResourceValueMergeMethod, ResourceId } from '../common';
4
+ import * as ResourceJson from '../resource-json';
4
5
  /**
5
6
  * Parameters used to validate a {@link ResourceJson.Json.ILooseResourceCandidateDecl | resource candidate declaration}.
6
7
  * @public
@@ -12,10 +13,10 @@ export interface IResourceCandidateValidationProperties {
12
13
  */
13
14
  id: ResourceId;
14
15
  /**
15
- * {@inheritdoc ResourceJson.Json.ILooseResourceCandidateDecl.isPartial}
16
+ * Describes how complete the candidate value is.
16
17
  * @public
17
18
  */
18
- isPartial: boolean;
19
+ completeness: CandidateCompleteness;
19
20
  /**
20
21
  * {@inheritdoc ResourceJson.Json.ILooseResourceCandidateDecl.json}
21
22
  * @public
@@ -27,20 +28,84 @@ export interface IResourceCandidateValidationProperties {
27
28
  */
28
29
  mergeMethod: ResourceValueMergeMethod;
29
30
  }
31
+ /**
32
+ * Interface for a resource type. Resource types are responsible for
33
+ * validating and converting JSON values into the appropriate strongly-typed
34
+ * resource value.
35
+ * @public
36
+ */
37
+ export interface IResourceType<T = unknown> extends ICollectible<ResourceTypeName, ResourceTypeIndex> {
38
+ /**
39
+ * The key for this resource type.
40
+ */
41
+ readonly key: ResourceTypeName;
42
+ /**
43
+ * The index for this resource type.
44
+ */
45
+ readonly index: ResourceTypeIndex | undefined;
46
+ /**
47
+ * Validates properties of a {@link ResourceJson.Json.ILooseResourceCandidateDecl | resource candidate declaration} for
48
+ * a resource instance value.
49
+ * @param props - The {@link ResourceTypes.IResourceCandidateValidationProperties | properties } to validate.
50
+ * @returns `Success` with the strongly-typed resource value if the JSON and merge method
51
+ * are valid, `Failure` with an error message otherwise.
52
+ * @public
53
+ */
54
+ validateDeclaration(props: IResourceCandidateValidationProperties): Result<T | Partial<T>>;
55
+ /**
56
+ * Validates a JSON value for use as a partial resource instance value.
57
+ * @param json - The JSON value to validate.
58
+ * @param completeness - Describes {@link CandidateCompleteness | how complete} the candidate value is.
59
+ * @returns `Success` with the strongly-typed partial resource value if the JSON is valid,
60
+ * `Failure` with an error message otherwise.
61
+ * @public
62
+ */
63
+ validate(json: JsonValue, completeness: CandidateCompleteness): Result<Partial<T>>;
64
+ /**
65
+ * Validates a JSON value for use as a complete resource instance value.
66
+ * @param json - The JSON value to validate.
67
+ * @param completeness - Describes {@link CandidateCompleteness | how complete} the candidate value is.
68
+ * @returns `Success` with the strongly-typed resource value if the JSON is valid,
69
+ * `Failure` with an error message otherwise.
70
+ * @public
71
+ */
72
+ validate(json: JsonValue, completeness: 'full'): Result<T>;
73
+ /**
74
+ * Validates a JSON value for use as a partial resource instance value.
75
+ * @param json - The JSON value to validate.
76
+ * @param completeness - Describes {@link CandidateCompleteness | how complete} the candidate value is.
77
+ * @returns `Success` with the strongly-typed partial resource value if the JSON is valid,
78
+ * `Failure` with an error message otherwise.
79
+ * @public
80
+ */
81
+ validate(json: JsonValue, completeness: 'partial'): Result<Partial<T>>;
82
+ /**
83
+ * Sets the index for this resource type. Once set, the index cannot be changed.
84
+ */
85
+ setIndex(index: number): Result<ResourceTypeIndex>;
86
+ /**
87
+ * Creates a template for a new resource of this type.
88
+ * The template provides a default structure for creating new resource instances.
89
+ * @param resourceId - The id for the new resource
90
+ * @returns A loose resource declaration with default values for this resource type
91
+ * @public
92
+ */
93
+ createTemplate(resourceId: ResourceId): ResourceJson.Json.ILooseResourceDecl;
94
+ }
30
95
  /**
31
96
  * Abstract base class for resource types which are responsible for
32
97
  * validating and converting JSON values into the appropriate strongly-typed
33
98
  * resource value.
34
99
  * @public
35
100
  */
36
- export declare abstract class ResourceType<T = unknown> implements ICollectible<ResourceTypeName, ResourceTypeIndex> {
101
+ export declare abstract class ResourceType<T = unknown> implements IResourceType<T> {
37
102
  private _collectible;
38
103
  /**
39
- * The key for this resource type.
104
+ * {@inheritdoc ResourceTypes.IResourceType.key}
40
105
  */
41
106
  get key(): ResourceTypeName;
42
107
  /**
43
- * The index for this resource type.
108
+ * {@inheritdoc ResourceTypes.IResourceType.index}
44
109
  */
45
110
  get index(): ResourceTypeIndex | undefined;
46
111
  protected constructor(key: ResourceTypeName, index?: number);
@@ -56,33 +121,57 @@ export declare abstract class ResourceType<T = unknown> implements ICollectible<
56
121
  /**
57
122
  * Validates a JSON value for use as a partial resource instance value.
58
123
  * @param json - The JSON value to validate.
59
- * @param isPartial - `true` indicates that the value is expected to be partial.
124
+ * @param completeness - Describes {@link CandidateCompleteness | how complete} the candidate value is.
60
125
  * @returns `Success` with the strongly-typed partial resource value if the JSON is valid,
61
126
  * `Failure` with an error message otherwise.
62
127
  * @public
63
128
  */
64
- abstract validate(json: JsonValue, isPartial: true): Result<Partial<T>>;
129
+ abstract validate(json: JsonValue, completeness: CandidateCompleteness): Result<Partial<T>>;
65
130
  /**
66
131
  * Validates a JSON value for use as a complete resource instance value.
67
132
  * @param json - The JSON value to validate.
68
- * @param isPartial - `false` indicates that the value is expected to be complete.
133
+ * @param completeness - Describes {@link CandidateCompleteness | how complete} the candidate value is.
69
134
  * @returns `Success` with the strongly-typed resource value if the JSON is valid,
70
135
  * `Failure` with an error message otherwise.
71
136
  * @public
72
137
  */
73
- abstract validate(json: JsonValue, isPartial: false): Result<T>;
138
+ abstract validate(json: JsonValue, completeness: 'full'): Result<T>;
139
+ /**
140
+ * Validates a JSON value for use as a partial resource instance value.
141
+ * @param json - The JSON value to validate.
142
+ * @param completeness - Describes {@link CandidateCompleteness | how complete} the candidate value is.
143
+ * @returns `Success` with the strongly-typed partial resource value if the JSON is valid,
144
+ * `Failure` with an error message otherwise.
145
+ * @public
146
+ */
147
+ abstract validate(json: JsonValue, completeness: 'partial'): Result<Partial<T>>;
74
148
  /**
75
149
  * Validates a JSON value for use as a full or partial resource instance value.
76
150
  * @param json - The JSON value to validate.
77
- * @param isPartial - Indicates whether the value is expected to be partial.
151
+ * @param completeness - Describes {@link CandidateCompleteness | how complete} the candidate value is.
78
152
  * @returns `Success` with the strongly-typed full or partial resource value if
79
153
  * the JSON is valid, `Failure` with an error message otherwise.
80
154
  * @public
81
155
  */
82
- abstract validate(json: JsonValue, isPartial?: boolean): Result<T | Partial<T>>;
156
+ abstract validate(json: JsonValue, completeness?: CandidateCompleteness): Result<T | Partial<T>>;
83
157
  /**
84
158
  * Sets the index for this resource type. Once set, the index cannot be changed.
85
159
  */
86
160
  setIndex(index: number): Result<ResourceTypeIndex>;
161
+ /**
162
+ * Creates a template for a new resource of this type.
163
+ * Default implementation provides a basic template.
164
+ * Subclasses can override to provide type-specific templates.
165
+ * @param resourceId - The id for the new resource
166
+ * @returns A loose resource declaration with default values for this resource type
167
+ * @public
168
+ */
169
+ createTemplate(resourceId: ResourceId): ResourceJson.Json.ILooseResourceDecl;
170
+ /**
171
+ * Gets the default template value for this resource type.
172
+ * Subclasses should override this to provide type-specific default values.
173
+ * @returns The default JSON value for a new resource of this type
174
+ */
175
+ protected getDefaultTemplateValue(): JsonObject;
87
176
  }
88
177
  //# sourceMappingURL=resourceType.d.ts.map
@@ -32,13 +32,13 @@ const common_1 = require("../common");
32
32
  */
33
33
  class ResourceType {
34
34
  /**
35
- * The key for this resource type.
35
+ * {@inheritdoc ResourceTypes.IResourceType.key}
36
36
  */
37
37
  get key() {
38
38
  return this._collectible.key;
39
39
  }
40
40
  /**
41
- * The index for this resource type.
41
+ * {@inheritdoc ResourceTypes.IResourceType.index}
42
42
  */
43
43
  get index() {
44
44
  return this._collectible.index;
@@ -57,6 +57,38 @@ class ResourceType {
57
57
  setIndex(index) {
58
58
  return this._collectible.setIndex(index);
59
59
  }
60
+ /**
61
+ * Creates a template for a new resource of this type.
62
+ * Default implementation provides a basic template.
63
+ * Subclasses can override to provide type-specific templates.
64
+ * @param resourceId - The id for the new resource
65
+ * @returns A loose resource declaration with default values for this resource type
66
+ * @public
67
+ */
68
+ createTemplate(resourceId) {
69
+ return {
70
+ id: resourceId,
71
+ resourceTypeName: this.key,
72
+ candidates: [
73
+ {
74
+ json: this.getDefaultTemplateValue(),
75
+ conditions: undefined,
76
+ isPartial: false,
77
+ mergeMethod: 'replace'
78
+ }
79
+ ]
80
+ };
81
+ }
82
+ /**
83
+ * Gets the default template value for this resource type.
84
+ * Subclasses should override this to provide type-specific default values.
85
+ * @returns The default JSON value for a new resource of this type
86
+ */
87
+ getDefaultTemplateValue() {
88
+ // Default implementation returns an empty object
89
+ // Subclasses should override for type-specific defaults
90
+ return {};
91
+ }
60
92
  }
61
93
  exports.ResourceType = ResourceType;
62
94
  //# sourceMappingURL=resourceType.js.map
@@ -1,5 +1,7 @@
1
1
  import * as ResourceJson from '../resource-json';
2
2
  import { IValidatedContextDecl } from '../context';
3
+ import { IReadOnlyQualifierCollector } from '../qualifiers';
4
+ import { ReadOnlyResourceTypeCollector } from '../resource-types';
3
5
  /**
4
6
  * Options for resource declaration operations with strongly-typed context filtering.
5
7
  * Extends the base IDeclarationOptions with proper type safety for context filtering.
@@ -57,4 +59,28 @@ export interface ICompiledResourceOptionsWithFilter extends ResourceJson.Compile
57
59
  */
58
60
  filterForContext?: IValidatedContextDecl;
59
61
  }
62
+ /**
63
+ * Options for ResourceManagerBuilder clone operations.
64
+ * Extends IDeclarationOptions to include support for applying edits when cloning.
65
+ * @public
66
+ */
67
+ export interface IResourceManagerCloneOptions extends IResourceDeclarationOptions {
68
+ /**
69
+ * Optional array of loose condition declarations to be applied as edits during the clone operation.
70
+ * These conditions can modify or extend the resource candidates in the cloned manager.
71
+ */
72
+ readonly candidates?: ReadonlyArray<ResourceJson.Json.ILooseResourceCandidateDecl>;
73
+ /**
74
+ * Optional qualifier collector to use for the cloned manager.
75
+ * If not provided, uses the same qualifiers as the original manager.
76
+ * This allows creating clones with different qualifier configurations.
77
+ */
78
+ readonly qualifiers?: IReadOnlyQualifierCollector;
79
+ /**
80
+ * Optional resource type collector to use for the cloned manager.
81
+ * If not provided, uses the same resource types as the original manager.
82
+ * This allows creating clones with different resource type configurations.
83
+ */
84
+ readonly resourceTypes?: ReadOnlyResourceTypeCollector;
85
+ }
60
86
  //# sourceMappingURL=common.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { Result } from '@fgv/ts-utils';
2
- import { ResourceId } from '../common';
2
+ import { ResourceId, ResourceName } from '../common';
3
3
  import { ResourceCandidate } from './resourceCandidate';
4
4
  import { ResourceType } from '../resource-types';
5
5
  import { ConcreteDecision, AbstractDecisionCollector } from '../decisions';
@@ -40,10 +40,14 @@ export declare class Resource implements IResource {
40
40
  * The unique {@link ResourceId | id} of the resource.
41
41
  */
42
42
  readonly id: ResourceId;
43
+ /**
44
+ * The name of the resource.
45
+ */
46
+ readonly name: ResourceName;
43
47
  /**
44
48
  * The {@link ResourceTypes.ResourceType | type} of the resource.
45
49
  */
46
- readonly _resourceType: ResourceType;
50
+ readonly resourceType: ResourceType;
47
51
  /**
48
52
  * The array of {@link Resources.ResourceCandidate | candidates} for the resource.
49
53
  */
@@ -52,10 +56,6 @@ export declare class Resource implements IResource {
52
56
  * {@link Decisions.ConcreteDecision | Decision} for optimized resource resolution.
53
57
  */
54
58
  readonly decision: ConcreteDecision;
55
- /**
56
- * Gets the resource type (implements IResource interface).
57
- */
58
- get resourceType(): ResourceType;
59
59
  /**
60
60
  * Gets the resource type name as a string.
61
61
  */
@@ -33,17 +33,11 @@ const decisions_1 = require("../decisions");
33
33
  * @public
34
34
  */
35
35
  class Resource {
36
- /**
37
- * Gets the resource type (implements IResource interface).
38
- */
39
- get resourceType() {
40
- return this._resourceType;
41
- }
42
36
  /**
43
37
  * Gets the resource type name as a string.
44
38
  */
45
39
  get resourceTypeName() {
46
- return this._resourceType.key;
40
+ return this.resourceType.key;
47
41
  }
48
42
  /**
49
43
  * Constructor for a {@link Resources.Resource | Resource} object.
@@ -53,7 +47,8 @@ class Resource {
53
47
  constructor(params) {
54
48
  const id = params.id ? common_1.Validate.toResourceId(params.id).orThrow() : undefined;
55
49
  this.id = Resource._validateCandidateResourceIds(id, params.candidates).orThrow();
56
- this._resourceType = resourceCandidate_1.ResourceCandidate.validateResourceTypes(params.candidates, params.resourceType)
50
+ this.name = common_1.Helpers.getNameForResourceId(this.id).orThrow();
51
+ this.resourceType = resourceCandidate_1.ResourceCandidate.validateResourceTypes(params.candidates, params.resourceType)
57
52
  .onSuccess((t) => {
58
53
  /* c8 ignore next 3 - functional code path tested but coverage intermittently missed */
59
54
  if (t === undefined) {
@@ -1,5 +1,5 @@
1
1
  import { JsonObject } from '@fgv/ts-json-base';
2
- import { QualifierName, ResourceId, ResourceValueMergeMethod } from '../common';
2
+ import { CandidateCompleteness, QualifierName, ResourceId, ResourceValueMergeMethod } from '../common';
3
3
  import { Condition, ConditionSet, ConditionSetCollector } from '../conditions';
4
4
  import * as ResourceJson from '../resource-json';
5
5
  import { ResourceType } from '../resource-types';
@@ -64,6 +64,10 @@ export declare class ResourceCandidate implements IResourceCandidate {
64
64
  * this candidate belongs.
65
65
  */
66
66
  readonly resourceType: ResourceType | undefined;
67
+ /**
68
+ * The completeness of the candidate value.
69
+ */
70
+ get completeness(): CandidateCompleteness;
67
71
  /**
68
72
  * Constructor for a {@link Resources.ResourceCandidate | ResourceCandidate} object.
69
73
  * @param params - Parameters to create a new {@link Resources.ResourceCandidate | ResourceCandidate}.
@@ -66,6 +66,12 @@ const ts_utils_1 = require("@fgv/ts-utils");
66
66
  * @public
67
67
  */
68
68
  class ResourceCandidate {
69
+ /**
70
+ * The completeness of the candidate value.
71
+ */
72
+ get completeness() {
73
+ return this.isPartial ? 'partial' : 'full';
74
+ }
69
75
  /**
70
76
  * Constructor for a {@link Resources.ResourceCandidate | ResourceCandidate} object.
71
77
  * @param params - Parameters to create a new {@link Resources.ResourceCandidate | ResourceCandidate}.
@@ -1,16 +1,18 @@
1
1
  import { Collections, DetailedResult, Result, ValidatingResultMap } from '@fgv/ts-utils';
2
- import { ConditionCollector, ConditionSetCollector, ReadOnlyConditionCollector, ReadOnlyConditionSetCollector } from '../conditions';
2
+ import { ConditionCollector, ConditionSetCollector, ReadOnlyConditionCollector, ReadOnlyConditionSetCollector, Condition, ConditionSet } from '../conditions';
3
3
  import { AbstractDecisionCollector, ReadOnlyAbstractDecisionCollector } from '../decisions';
4
4
  import { IReadOnlyQualifierCollector } from '../qualifiers';
5
5
  import { ReadOnlyResourceTypeCollector } from '../resource-types';
6
6
  import { ResourceId } from '../common';
7
- import { IResourceManager } from '../runtime';
7
+ import { IResourceManager, ResourceTree } from '../runtime';
8
8
  import { ResourceBuilder, ResourceBuilderResultDetail } from './resourceBuilder';
9
9
  import { Resource } from './resource';
10
10
  import { ResourceCandidate } from './resourceCandidate';
11
- import { IResourceDeclarationOptions } from './common';
11
+ import { IResourceDeclarationOptions, IResourceManagerCloneOptions } from './common';
12
12
  import * as ResourceJson from '../resource-json';
13
13
  import * as Context from '../context';
14
+ import * as Config from '../config';
15
+ import { ReadOnlyQualifierTypeCollector } from '../qualifier-types';
14
16
  /**
15
17
  * Interface for parameters to the {@link Resources.ResourceManagerBuilder.create | ResourceManagerBuilder create method}.
16
18
  * @public
@@ -31,15 +33,54 @@ export type ResourceManagerBuilderResultDetail = Collections.ResultMapResultDeta
31
33
  * and builds a collection of {@link Resources.Resource | resources} once all candidates are collected.
32
34
  * @public
33
35
  */
34
- export declare class ResourceManagerBuilder implements IResourceManager {
36
+ export declare class ResourceManagerBuilder implements IResourceManager<Resource> {
37
+ /**
38
+ * The {@link Qualifiers.IReadOnlyQualifierCollector | qualifiers} used by this resource manager.
39
+ */
35
40
  readonly qualifiers: IReadOnlyQualifierCollector;
41
+ /**
42
+ * The {@link ResourceTypes.ReadOnlyResourceTypeCollector | resource types} used by this resource manager.
43
+ */
36
44
  readonly resourceTypes: ReadOnlyResourceTypeCollector;
45
+ /**
46
+ * The {@link Conditions.ConditionCollector | condition collector} used by this resource manager.
47
+ * @internal
48
+ */
37
49
  protected readonly _conditions: ConditionCollector;
50
+ /**
51
+ * The {@link Conditions.ConditionSetCollector | condition set collector} used by this resource manager.
52
+ * @internal
53
+ */
38
54
  protected readonly _conditionSets: ConditionSetCollector;
55
+ /**
56
+ * The {@link Decisions.AbstractDecisionCollector | abstract decision collector} used by this resource manager.
57
+ * @internal
58
+ */
39
59
  protected readonly _decisions: AbstractDecisionCollector;
60
+ /**
61
+ * The {@link Resources.ResourceBuilder | resource builders} used by this resource manager.
62
+ * @internal
63
+ */
40
64
  protected readonly _resources: ValidatingResultMap<ResourceId, ResourceBuilder>;
41
- readonly _builtResources: ValidatingResultMap<ResourceId, Resource>;
65
+ /**
66
+ * The {@link Resources.Resource | resources} built by this resource manager.
67
+ * @internal
68
+ */
69
+ protected readonly _builtResources: ValidatingResultMap<ResourceId, Resource>;
70
+ /**
71
+ * Whether the resources have been built.
72
+ * @internal
73
+ */
42
74
  protected _built: boolean;
75
+ /**
76
+ * The cached resource tree for this resource manager.
77
+ * @internal
78
+ */
79
+ protected _cachedResourceTree?: ResourceTree.IReadOnlyResourceTreeRoot<Resource>;
80
+ /**
81
+ * The {@link QualifierTypes.ReadOnlyQualifierTypeCollector | qualifier types} used by this resource manager.
82
+ */
83
+ get qualifierTypes(): ReadOnlyQualifierTypeCollector;
43
84
  /**
44
85
  * A {@link Conditions.ConditionCollector | ConditionCollector} which
45
86
  * contains the {@link Conditions.Condition | conditions} used so far by
@@ -96,6 +137,26 @@ export declare class ResourceManagerBuilder implements IResourceManager {
96
137
  * @public
97
138
  */
98
139
  static create(params: IResourceManagerBuilderCreateParams): Result<ResourceManagerBuilder>;
140
+ /**
141
+ * Creates a new {@link Resources.ResourceManagerBuilder | ResourceManagerBuilder} object from a predefined system configuration.
142
+ * @param name - The name of the predefined system configuration to use.
143
+ * @param qualifierDefaultValues - Optional default values for qualifiers.
144
+ * @returns `Success` with the new {@link Resources.ResourceManagerBuilder | ResourceManagerBuilder} object if successful,
145
+ * or `Failure` with an error message if not.
146
+ * @public
147
+ */
148
+ static createPredefined(name: Config.PredefinedSystemConfiguration, qualifierDefaultValues?: Config.ISystemConfigurationInitParams['qualifierDefaultValues']): Result<ResourceManagerBuilder>;
149
+ /**
150
+ * Creates a new {@link Resources.ResourceManagerBuilder | ResourceManagerBuilder} from a
151
+ * {@link ResourceJson.Compiled.ICompiledResourceCollection | compiled resource collection}.
152
+ * This method reconstructs an exactly equivalent builder where all qualifier, condition,
153
+ * condition set, and decision indices match the original compiled collection.
154
+ * @param compiledCollection - The compiled resource collection to reconstruct from.
155
+ * @param systemConfig - The system configuration containing qualifiers and resource types.
156
+ * @returns `Success` with the new manager if successful, or `Failure` with an error message if not.
157
+ * @public
158
+ */
159
+ static createFromCompiledResourceCollection(compiledCollection: ResourceJson.Compiled.ICompiledResourceCollection, systemConfig: Config.SystemConfiguration): Result<ResourceManagerBuilder>;
99
160
  /**
100
161
  * Given a {@link ResourceJson.Json.ILooseResourceCandidateDecl | resource candidate declaration}, builds and adds
101
162
  * a {@link Resources.ResourceCandidate | candidate} to the manager.
@@ -105,6 +166,20 @@ export declare class ResourceManagerBuilder implements IResourceManager {
105
166
  */
106
167
  addLooseCandidate(decl: ResourceJson.Json.ILooseResourceCandidateDecl): DetailedResult<ResourceCandidate, ResourceBuilderResultDetail>;
107
168
  addResource(decl: ResourceJson.Json.ILooseResourceDecl): DetailedResult<ResourceBuilder, ResourceBuilderResultDetail>;
169
+ /**
170
+ * Adds a condition to the manager.
171
+ * @param decl - The condition declaration to add.
172
+ * @returns `Success` with the condition if successful, or `Failure` with an error message if not.
173
+ * @public
174
+ */
175
+ addCondition(decl: ResourceJson.Json.ILooseConditionDecl): Result<Condition>;
176
+ /**
177
+ * Adds a condition set to the manager.
178
+ * @param decl - The condition set declaration to add.
179
+ * @returns `Success` with the condition set if successful, or `Failure` with an error message if not.
180
+ * @public
181
+ */
182
+ addConditionSet(conditions: ResourceJson.Normalized.ConditionSetDecl): Result<ConditionSet>;
108
183
  /**
109
184
  * Gets a read-only array of all {@link Resources.ResourceBuilder | resource builders} present in the manager.
110
185
  * @returns `Success` with the {@link Resources.ResourceBuilder | resource builder} if successful,
@@ -135,6 +210,19 @@ export declare class ResourceManagerBuilder implements IResourceManager {
135
210
  * @public
136
211
  */
137
212
  getAllBuiltResources(): Result<ReadonlyArray<Resource>>;
213
+ /**
214
+ * Builds and returns a hierarchical tree representation of all resources managed by this builder.
215
+ * Resources are organized based on their dot-separated resource IDs (e.g., "app.messages.welcome"
216
+ * becomes a tree with "app" as root, "messages" as branch, and "welcome" as leaf).
217
+ *
218
+ * String-based validation is available through the `children.validating` property,
219
+ * allowing callers to use `tree.children.validating.getById(stringId)` for validated access.
220
+ *
221
+ * Uses lazy initialization with caching for performance.
222
+ * @returns Result containing the resource tree root, or failure if tree construction fails
223
+ * @public
224
+ */
225
+ getBuiltResourceTree(): Result<ResourceTree.IReadOnlyResourceTreeRoot<Resource>>;
138
226
  /**
139
227
  * Gets a read-only array of all {@link Resources.Resource | built resources} in the manager.
140
228
  * @returns `Success` with an array of resources if successful, or `Failure` with an error message if not.
@@ -208,13 +296,96 @@ export declare class ResourceManagerBuilder implements IResourceManager {
208
296
  */
209
297
  getResourceCollectionDecl(options?: IResourceDeclarationOptions): Result<ResourceJson.Normalized.IResourceCollectionDecl>;
210
298
  /**
211
- * Creates a filtered clone of this ResourceManagerBuilder using the specified context.
212
- * This is a convenience method that creates a new ResourceManagerBuilder with the same
213
- * configuration but filtered to include only candidates that match the provided context.
214
- * @param options - Options for the cloning operation, including the strongly-typed filterForContext property.
215
- * @returns A Result containing the new filtered ResourceManagerBuilder.
299
+ * Creates a clone of this ResourceManagerBuilder with optional configuration overrides.
300
+ * This method creates a new ResourceManagerBuilder that can optionally use different
301
+ * qualifiers and/or resource types than the original. It can also be filtered to include
302
+ * only candidates that match the provided context and apply candidate edits.
303
+ *
304
+ * @param options - Options for the cloning operation:
305
+ * - `qualifiers`: Optional qualifier collector to use instead of the original
306
+ * - `resourceTypes`: Optional resource type collector to use instead of the original
307
+ * - `filterForContext`: Optional context filter for candidates
308
+ * - `candidates`: Optional candidate edits to apply during cloning
309
+ * @returns A Result containing the new ResourceManagerBuilder with the specified configuration.
216
310
  * @public
217
311
  */
218
- clone(options?: IResourceDeclarationOptions): Result<ResourceManagerBuilder>;
312
+ clone(options?: IResourceManagerCloneOptions): Result<ResourceManagerBuilder>;
313
+ /**
314
+ * Creates a resource ID keyed map from an array of loose resource candidate declarations.
315
+ * This enables efficient detection of edit collisions by grouping candidates by their target resource.
316
+ * @param candidates - Array of loose resource candidate declarations to organize
317
+ * @returns A Result containing a Map where keys are validated ResourceIds and values are arrays of candidates for that resource
318
+ * @internal
319
+ */
320
+ private static _createCandidatesByResourceMap;
321
+ /**
322
+ * Generates a proper ConditionSet token for collision detection using the existing ConditionSet.getKeyForDecl method.
323
+ * @param conditionSet - The condition set to generate a token for
324
+ * @param conditionCollector - The condition collector needed for validation context
325
+ * @returns A Result containing the ConditionSet token if successful, or failure if validation fails
326
+ * @internal
327
+ */
328
+ /**
329
+ * Applies candidate edits to a resource declaration, handling collisions using condition set tokens.
330
+ * If there's no collision, adds the candidate. If there's a collision, replaces the original candidate with the edit.
331
+ * @param resourceDecl - The original resource declaration to potentially modify
332
+ * @param candidatesByResource - Map of resource IDs to arrays of candidate edits
333
+ * @param conditionCollector - The condition collector needed for generating condition tokens
334
+ * @returns A Result containing the resource declaration to use (original or modified)
335
+ * @internal
336
+ */
337
+ private static _applyEditsToResourceDeclaration;
338
+ /**
339
+ * Creates a new resource declaration from an array of candidate declarations.
340
+ * This is used when cloning to create new resources that don't exist in the original manager.
341
+ * @param resourceId - The validated resource ID for the new resource
342
+ * @param candidates - Array of loose candidate declarations for the new resource
343
+ * @param conditionCollector - The condition collector for validation context
344
+ * @returns A Result containing the new resource declaration if successful, or failure if validation fails
345
+ * @internal
346
+ */
347
+ private static _createResourceDeclFromCandidates;
348
+ /**
349
+ * Reconstructs conditions from a compiled collection and adds them to the builder.
350
+ * @param builder - The builder to add conditions to.
351
+ * @param compiledCollection - The compiled collection containing conditions.
352
+ * @returns `Success` if all conditions were added successfully, `Failure` otherwise.
353
+ * @internal
354
+ */
355
+ private static _reconstructConditions;
356
+ /**
357
+ * Reconstructs condition sets from a compiled collection and adds them to the builder.
358
+ * @param builder - The builder to add condition sets to.
359
+ * @param compiledCollection - The compiled collection containing condition sets.
360
+ * @returns `Success` if all condition sets were added successfully, `Failure` otherwise.
361
+ * @internal
362
+ */
363
+ private static _reconstructConditionSets;
364
+ /**
365
+ * Reconstructs decisions from a compiled collection and adds them to the builder.
366
+ * @param builder - The builder to add decisions to.
367
+ * @param compiledCollection - The compiled collection containing decisions.
368
+ * @returns `Success` if all decisions were added successfully, `Failure` otherwise.
369
+ * @internal
370
+ */
371
+ private static _reconstructDecisions;
372
+ /**
373
+ * Reconstructs resources and their candidates from a compiled collection and adds them to the builder.
374
+ * @param builder - The builder to add resources to.
375
+ * @param compiledCollection - The compiled collection containing resources.
376
+ * @returns `Success` if all resources were added successfully, `Failure` otherwise.
377
+ * @internal
378
+ */
379
+ private static _reconstructResources;
380
+ /**
381
+ * Helper method to create candidates from a decision's condition sets.
382
+ * @param compiledResource - The compiled resource containing candidates.
383
+ * @param decision - The decision containing condition sets.
384
+ * @param resourceType - The resource type for the candidates.
385
+ * @param builder - The builder to add candidates to.
386
+ * @returns `Success` if all candidates were added successfully, `Failure` otherwise.
387
+ * @internal
388
+ */
389
+ private static _createCandidatesFromDecision;
219
390
  }
220
391
  //# sourceMappingURL=resourceManagerBuilder.d.ts.map