@fgv/ts-res 5.0.0-9 → 5.0.1-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +21 -0
- package/CHANGELOG.md +14 -1
- package/README.md +794 -137
- package/dist/ts-res.d.ts +2257 -268
- package/dist/tsdoc-metadata.json +1 -1
- package/eslint.config.js +16 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +3 -1
- package/lib/packlets/bundle/bundleBuilder.js +7 -4
- package/lib/packlets/bundle/bundleLoader.js +1 -0
- package/lib/packlets/bundle/bundleUtils.js +14 -16
- package/lib/packlets/bundle/index.d.ts +3 -1
- package/lib/packlets/bundle/index.js +14 -3
- package/lib/packlets/common/convert.d.ts +15 -0
- package/lib/packlets/common/convert.js +16 -1
- package/lib/packlets/common/helpers/context.js +1 -0
- package/lib/packlets/common/helpers/resources.d.ts +7 -0
- package/lib/packlets/common/helpers/resources.js +13 -0
- package/lib/packlets/common/resources.d.ts +44 -1
- package/lib/packlets/common/validate/conditions.d.ts +17 -1
- package/lib/packlets/common/validate/conditions.js +32 -6
- package/lib/packlets/common/validate/regularExpressions.d.ts +4 -0
- package/lib/packlets/common/validate/regularExpressions.js +5 -1
- package/lib/packlets/common/validate/resources.d.ts +35 -1
- package/lib/packlets/common/validate/resources.js +55 -0
- package/lib/packlets/conditions/condition.js +1 -0
- package/lib/packlets/conditions/conditionSet.d.ts +9 -0
- package/lib/packlets/conditions/conditionSet.js +75 -1
- package/lib/packlets/config/configInitFactory.d.ts +217 -0
- package/lib/packlets/config/configInitFactory.js +302 -0
- package/lib/packlets/config/convert.d.ts +9 -0
- package/lib/packlets/config/convert.js +12 -1
- package/lib/packlets/config/index.d.ts +1 -0
- package/lib/packlets/config/index.js +1 -0
- package/lib/packlets/config/json.d.ts +1 -1
- package/lib/packlets/config/systemConfiguration.d.ts +16 -3
- package/lib/packlets/config/systemConfiguration.js +19 -40
- package/lib/packlets/import/fsItem.d.ts +2 -1
- package/lib/packlets/import/fsItem.js +9 -13
- package/lib/packlets/import/importManager.d.ts +2 -1
- package/lib/packlets/import/importers/jsonImporter.js +1 -0
- package/lib/packlets/import/importers/pathImporter.d.ts +2 -1
- package/lib/packlets/import/importers/pathImporter.js +2 -1
- package/lib/packlets/qualifier-types/config/convert.d.ts +22 -1
- package/lib/packlets/qualifier-types/config/convert.js +67 -2
- package/lib/packlets/qualifier-types/config/json.d.ts +24 -2
- package/lib/packlets/qualifier-types/config/json.js +11 -0
- package/lib/packlets/qualifier-types/convert.d.ts +1 -1
- package/lib/packlets/qualifier-types/helpers.d.ts +14 -5
- package/lib/packlets/qualifier-types/helpers.js +2 -2
- package/lib/packlets/qualifier-types/languageQualifierType.d.ts +28 -2
- package/lib/packlets/qualifier-types/languageQualifierType.js +73 -0
- package/lib/packlets/qualifier-types/literalQualifierType.d.ts +31 -5
- package/lib/packlets/qualifier-types/literalQualifierType.js +75 -0
- package/lib/packlets/qualifier-types/literalValueHierarchy.d.ts +7 -11
- package/lib/packlets/qualifier-types/literalValueHierarchy.js +12 -1
- package/lib/packlets/qualifier-types/qualifierType.d.ts +31 -2
- package/lib/packlets/qualifier-types/territoryQualifierType.d.ts +31 -5
- package/lib/packlets/qualifier-types/territoryQualifierType.js +80 -0
- package/lib/packlets/qualifiers/qualifierCollector.js +1 -2
- package/lib/packlets/resource-json/compiled/convert.js +2 -1
- package/lib/packlets/resource-json/compiled/json.d.ts +6 -2
- package/lib/packlets/resource-types/config/convert.d.ts +1 -1
- package/lib/packlets/resource-types/config/convert.js +3 -1
- package/lib/packlets/resource-types/config/json.d.ts +3 -1
- package/lib/packlets/resource-types/jsonResourceType.d.ts +10 -1
- package/lib/packlets/resource-types/jsonResourceType.js +7 -3
- package/lib/packlets/resource-types/resourceType.d.ts +100 -8
- package/lib/packlets/resource-types/resourceType.js +39 -3
- package/lib/packlets/resources/candidateReducer.js +3 -0
- package/lib/packlets/resources/candidateValue.d.ts +92 -0
- package/lib/packlets/resources/candidateValue.js +128 -0
- package/lib/packlets/resources/candidateValueCollector.d.ts +55 -0
- package/lib/packlets/resources/candidateValueCollector.js +96 -0
- package/lib/packlets/resources/common.d.ts +14 -0
- package/lib/packlets/resources/deltaGenerator.d.ts +189 -0
- package/lib/packlets/resources/deltaGenerator.js +344 -0
- package/lib/packlets/resources/index.d.ts +3 -0
- package/lib/packlets/resources/index.js +3 -0
- package/lib/packlets/resources/resource.d.ts +6 -6
- package/lib/packlets/resources/resource.js +5 -10
- package/lib/packlets/resources/resourceBuilder.d.ts +6 -0
- package/lib/packlets/resources/resourceBuilder.js +4 -1
- package/lib/packlets/resources/resourceCandidate.d.ts +15 -2
- package/lib/packlets/resources/resourceCandidate.js +17 -5
- package/lib/packlets/resources/resourceManagerBuilder.d.ts +131 -10
- package/lib/packlets/resources/resourceManagerBuilder.js +289 -45
- package/lib/packlets/runtime/compiledResourceCollection.d.ts +27 -11
- package/lib/packlets/runtime/compiledResourceCollection.js +71 -28
- package/lib/packlets/runtime/conditionSetResolutionResult.js +3 -0
- package/lib/packlets/runtime/context/contextQualifierProvider.d.ts +53 -3
- package/lib/packlets/runtime/context/contextQualifierProviderValidator.d.ts +82 -37
- package/lib/packlets/runtime/context/contextQualifierProviderValidator.js +49 -77
- package/lib/packlets/runtime/context/simpleContextQualifierProvider.d.ts +23 -2
- package/lib/packlets/runtime/context/simpleContextQualifierProvider.js +53 -31
- package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.d.ts +4 -4
- package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.js +2 -2
- package/lib/packlets/runtime/iResourceManager.d.ts +17 -5
- package/lib/packlets/runtime/index.d.ts +1 -0
- package/lib/packlets/runtime/index.js +1 -0
- package/lib/packlets/runtime/resource-tree/common.d.ts +1 -1
- package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.d.ts +7 -7
- package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.js +5 -5
- package/lib/packlets/runtime/resourceResolver.d.ts +43 -1
- package/lib/packlets/runtime/resourceResolver.js +56 -28
- package/lib/packlets/runtime/resourceTreeResolver.d.ts +152 -0
- package/lib/packlets/runtime/resourceTreeResolver.js +222 -0
- package/lib/packlets/runtime/validate.js +1 -0
- package/lib/packlets/zip-archive/convert.d.ts +52 -0
- package/lib/packlets/zip-archive/convert.js +103 -0
- package/lib/packlets/zip-archive/index.d.ts +23 -0
- package/lib/packlets/zip-archive/index.js +95 -0
- package/lib/packlets/zip-archive/json.d.ts +64 -0
- package/lib/packlets/zip-archive/json.js +24 -0
- package/lib/packlets/zip-archive/types.d.ts +98 -0
- package/lib/packlets/zip-archive/types.js +39 -0
- package/lib/packlets/zip-archive/zipArchiveCreator.d.ts +35 -0
- package/lib/packlets/zip-archive/zipArchiveCreator.js +195 -0
- package/lib/packlets/zip-archive/zipArchiveFormat.d.ts +70 -0
- package/lib/packlets/zip-archive/zipArchiveFormat.js +184 -0
- package/lib/packlets/zip-archive/zipArchiveLoader.d.ts +70 -0
- package/lib/packlets/zip-archive/zipArchiveLoader.js +286 -0
- package/package.json +26 -32
- package/CLAUDE.md +0 -186
- package/EXAMPLE_INIT_PARAMS.md +0 -88
- package/PROGRESS_SUMMARY.md +0 -48
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/packlets/bundle/bundleBuilder.d.ts.map +0 -1
- package/lib/packlets/bundle/bundleBuilder.js.map +0 -1
- package/lib/packlets/bundle/bundleLoader.d.ts.map +0 -1
- package/lib/packlets/bundle/bundleLoader.js.map +0 -1
- package/lib/packlets/bundle/bundleNormalizer.d.ts.map +0 -1
- package/lib/packlets/bundle/bundleNormalizer.js.map +0 -1
- package/lib/packlets/bundle/bundleUtils.d.ts.map +0 -1
- package/lib/packlets/bundle/bundleUtils.js.map +0 -1
- package/lib/packlets/bundle/convert.d.ts.map +0 -1
- package/lib/packlets/bundle/convert.js.map +0 -1
- package/lib/packlets/bundle/index.d.ts.map +0 -1
- package/lib/packlets/bundle/index.js.map +0 -1
- package/lib/packlets/bundle/model.d.ts.map +0 -1
- package/lib/packlets/bundle/model.js.map +0 -1
- package/lib/packlets/common/conditions.d.ts.map +0 -1
- package/lib/packlets/common/conditions.js.map +0 -1
- package/lib/packlets/common/convert.d.ts.map +0 -1
- package/lib/packlets/common/convert.js.map +0 -1
- package/lib/packlets/common/helpers/conditions.d.ts.map +0 -1
- package/lib/packlets/common/helpers/conditions.js.map +0 -1
- package/lib/packlets/common/helpers/context.d.ts.map +0 -1
- package/lib/packlets/common/helpers/context.js.map +0 -1
- package/lib/packlets/common/helpers/index.d.ts.map +0 -1
- package/lib/packlets/common/helpers/index.js.map +0 -1
- package/lib/packlets/common/helpers/qualifierDefaultValues.d.ts.map +0 -1
- package/lib/packlets/common/helpers/qualifierDefaultValues.js.map +0 -1
- package/lib/packlets/common/helpers/resources.d.ts.map +0 -1
- package/lib/packlets/common/helpers/resources.js.map +0 -1
- package/lib/packlets/common/index.d.ts.map +0 -1
- package/lib/packlets/common/index.js.map +0 -1
- package/lib/packlets/common/resources.d.ts.map +0 -1
- package/lib/packlets/common/resources.js.map +0 -1
- package/lib/packlets/common/validate/conditions.d.ts.map +0 -1
- package/lib/packlets/common/validate/conditions.js.map +0 -1
- package/lib/packlets/common/validate/index.d.ts.map +0 -1
- package/lib/packlets/common/validate/index.js.map +0 -1
- package/lib/packlets/common/validate/regularExpressions.d.ts.map +0 -1
- package/lib/packlets/common/validate/regularExpressions.js.map +0 -1
- package/lib/packlets/common/validate/resources.d.ts.map +0 -1
- package/lib/packlets/common/validate/resources.js.map +0 -1
- package/lib/packlets/conditions/condition.d.ts.map +0 -1
- package/lib/packlets/conditions/condition.js.map +0 -1
- package/lib/packlets/conditions/conditionCollector.d.ts.map +0 -1
- package/lib/packlets/conditions/conditionCollector.js.map +0 -1
- package/lib/packlets/conditions/conditionDecls.d.ts.map +0 -1
- package/lib/packlets/conditions/conditionDecls.js.map +0 -1
- package/lib/packlets/conditions/conditionSet.d.ts.map +0 -1
- package/lib/packlets/conditions/conditionSet.js.map +0 -1
- package/lib/packlets/conditions/conditionSetCollector.d.ts.map +0 -1
- package/lib/packlets/conditions/conditionSetCollector.js.map +0 -1
- package/lib/packlets/conditions/conditionSetDecls.d.ts.map +0 -1
- package/lib/packlets/conditions/conditionSetDecls.js.map +0 -1
- package/lib/packlets/conditions/conditionToken.d.ts.map +0 -1
- package/lib/packlets/conditions/conditionToken.js.map +0 -1
- package/lib/packlets/conditions/convert/conditionSetDecls.d.ts.map +0 -1
- package/lib/packlets/conditions/convert/conditionSetDecls.js.map +0 -1
- package/lib/packlets/conditions/convert/decls.d.ts.map +0 -1
- package/lib/packlets/conditions/convert/decls.js.map +0 -1
- package/lib/packlets/conditions/convert/index.d.ts.map +0 -1
- package/lib/packlets/conditions/convert/index.js.map +0 -1
- package/lib/packlets/conditions/index.d.ts.map +0 -1
- package/lib/packlets/conditions/index.js.map +0 -1
- package/lib/packlets/config/common.d.ts.map +0 -1
- package/lib/packlets/config/common.js.map +0 -1
- package/lib/packlets/config/convert.d.ts.map +0 -1
- package/lib/packlets/config/convert.js.map +0 -1
- package/lib/packlets/config/index.d.ts.map +0 -1
- package/lib/packlets/config/index.js.map +0 -1
- package/lib/packlets/config/json.d.ts.map +0 -1
- package/lib/packlets/config/json.js.map +0 -1
- package/lib/packlets/config/predefined/default.d.ts.map +0 -1
- package/lib/packlets/config/predefined/default.js.map +0 -1
- package/lib/packlets/config/predefined/extended.d.ts.map +0 -1
- package/lib/packlets/config/predefined/extended.js.map +0 -1
- package/lib/packlets/config/predefined/index.d.ts.map +0 -1
- package/lib/packlets/config/predefined/index.js.map +0 -1
- package/lib/packlets/config/systemConfiguration.d.ts.map +0 -1
- package/lib/packlets/config/systemConfiguration.js.map +0 -1
- package/lib/packlets/context/contextDecls.d.ts.map +0 -1
- package/lib/packlets/context/contextDecls.js.map +0 -1
- package/lib/packlets/context/contextToken.d.ts.map +0 -1
- package/lib/packlets/context/contextToken.js.map +0 -1
- package/lib/packlets/context/convert/decls.d.ts.map +0 -1
- package/lib/packlets/context/convert/decls.js.map +0 -1
- package/lib/packlets/context/convert/index.d.ts.map +0 -1
- package/lib/packlets/context/convert/index.js.map +0 -1
- package/lib/packlets/context/index.d.ts.map +0 -1
- package/lib/packlets/context/index.js.map +0 -1
- package/lib/packlets/decisions/abstractDecision.d.ts.map +0 -1
- package/lib/packlets/decisions/abstractDecision.js.map +0 -1
- package/lib/packlets/decisions/abstractDecisionCollector.d.ts.map +0 -1
- package/lib/packlets/decisions/abstractDecisionCollector.js.map +0 -1
- package/lib/packlets/decisions/candidate.d.ts.map +0 -1
- package/lib/packlets/decisions/candidate.js.map +0 -1
- package/lib/packlets/decisions/common.d.ts.map +0 -1
- package/lib/packlets/decisions/common.js.map +0 -1
- package/lib/packlets/decisions/concreteDecision.d.ts.map +0 -1
- package/lib/packlets/decisions/concreteDecision.js.map +0 -1
- package/lib/packlets/decisions/decision.d.ts.map +0 -1
- package/lib/packlets/decisions/decision.js.map +0 -1
- package/lib/packlets/decisions/index.d.ts.map +0 -1
- package/lib/packlets/decisions/index.js.map +0 -1
- package/lib/packlets/import/fsItem.d.ts.map +0 -1
- package/lib/packlets/import/fsItem.js.map +0 -1
- package/lib/packlets/import/importContext.d.ts.map +0 -1
- package/lib/packlets/import/importContext.js.map +0 -1
- package/lib/packlets/import/importManager.d.ts.map +0 -1
- package/lib/packlets/import/importManager.js.map +0 -1
- package/lib/packlets/import/importable.d.ts.map +0 -1
- package/lib/packlets/import/importable.js.map +0 -1
- package/lib/packlets/import/importers/collectionImporter.d.ts.map +0 -1
- package/lib/packlets/import/importers/collectionImporter.js.map +0 -1
- package/lib/packlets/import/importers/fsItemImporter.d.ts.map +0 -1
- package/lib/packlets/import/importers/fsItemImporter.js.map +0 -1
- package/lib/packlets/import/importers/importer.d.ts.map +0 -1
- package/lib/packlets/import/importers/importer.js.map +0 -1
- package/lib/packlets/import/importers/index.d.ts.map +0 -1
- package/lib/packlets/import/importers/index.js.map +0 -1
- package/lib/packlets/import/importers/jsonImporter.d.ts.map +0 -1
- package/lib/packlets/import/importers/jsonImporter.js.map +0 -1
- package/lib/packlets/import/importers/pathImporter.d.ts.map +0 -1
- package/lib/packlets/import/importers/pathImporter.js.map +0 -1
- package/lib/packlets/import/index.d.ts.map +0 -1
- package/lib/packlets/import/index.js.map +0 -1
- package/lib/packlets/qualifier-types/config/convert.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/config/convert.js.map +0 -1
- package/lib/packlets/qualifier-types/config/index.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/config/index.js.map +0 -1
- package/lib/packlets/qualifier-types/config/json.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/config/json.js.map +0 -1
- package/lib/packlets/qualifier-types/convert.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/convert.js.map +0 -1
- package/lib/packlets/qualifier-types/helpers.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/helpers.js.map +0 -1
- package/lib/packlets/qualifier-types/index.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/index.js.map +0 -1
- package/lib/packlets/qualifier-types/languageQualifierType.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/languageQualifierType.js.map +0 -1
- package/lib/packlets/qualifier-types/literalQualifierType.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/literalQualifierType.js.map +0 -1
- package/lib/packlets/qualifier-types/literalValueHierarchy.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/literalValueHierarchy.js.map +0 -1
- package/lib/packlets/qualifier-types/qualifierType.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/qualifierType.js.map +0 -1
- package/lib/packlets/qualifier-types/qualifierTypeCollector.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/qualifierTypeCollector.js.map +0 -1
- package/lib/packlets/qualifier-types/territoryQualifierType.d.ts.map +0 -1
- package/lib/packlets/qualifier-types/territoryQualifierType.js.map +0 -1
- package/lib/packlets/qualifiers/convert/decls.d.ts.map +0 -1
- package/lib/packlets/qualifiers/convert/decls.js.map +0 -1
- package/lib/packlets/qualifiers/convert/index.d.ts.map +0 -1
- package/lib/packlets/qualifiers/convert/index.js.map +0 -1
- package/lib/packlets/qualifiers/convert/qualifier.d.ts.map +0 -1
- package/lib/packlets/qualifiers/convert/qualifier.js.map +0 -1
- package/lib/packlets/qualifiers/index.d.ts.map +0 -1
- package/lib/packlets/qualifiers/index.js.map +0 -1
- package/lib/packlets/qualifiers/qualifier.d.ts.map +0 -1
- package/lib/packlets/qualifiers/qualifier.js.map +0 -1
- package/lib/packlets/qualifiers/qualifierCollector.d.ts.map +0 -1
- package/lib/packlets/qualifiers/qualifierCollector.js.map +0 -1
- package/lib/packlets/qualifiers/qualifierDecl.d.ts.map +0 -1
- package/lib/packlets/qualifiers/qualifierDecl.js.map +0 -1
- package/lib/packlets/qualifiers/qualifierDefaultValueDecls.d.ts.map +0 -1
- package/lib/packlets/qualifiers/qualifierDefaultValueDecls.js.map +0 -1
- package/lib/packlets/qualifiers/qualifierDefaultValueToken.d.ts.map +0 -1
- package/lib/packlets/qualifiers/qualifierDefaultValueToken.js.map +0 -1
- package/lib/packlets/resource-json/compiled/common.d.ts.map +0 -1
- package/lib/packlets/resource-json/compiled/common.js.map +0 -1
- package/lib/packlets/resource-json/compiled/convert.d.ts.map +0 -1
- package/lib/packlets/resource-json/compiled/convert.js.map +0 -1
- package/lib/packlets/resource-json/compiled/index.d.ts.map +0 -1
- package/lib/packlets/resource-json/compiled/index.js.map +0 -1
- package/lib/packlets/resource-json/compiled/json.d.ts.map +0 -1
- package/lib/packlets/resource-json/compiled/json.js.map +0 -1
- package/lib/packlets/resource-json/convert.d.ts.map +0 -1
- package/lib/packlets/resource-json/convert.js.map +0 -1
- package/lib/packlets/resource-json/helpers.d.ts.map +0 -1
- package/lib/packlets/resource-json/helpers.js.map +0 -1
- package/lib/packlets/resource-json/index.d.ts.map +0 -1
- package/lib/packlets/resource-json/index.js.map +0 -1
- package/lib/packlets/resource-json/json.d.ts.map +0 -1
- package/lib/packlets/resource-json/json.js.map +0 -1
- package/lib/packlets/resource-json/normalized.d.ts.map +0 -1
- package/lib/packlets/resource-json/normalized.js.map +0 -1
- package/lib/packlets/resource-json/resourceDeclCollection.d.ts.map +0 -1
- package/lib/packlets/resource-json/resourceDeclCollection.js.map +0 -1
- package/lib/packlets/resource-json/resourceDeclContainer.d.ts.map +0 -1
- package/lib/packlets/resource-json/resourceDeclContainer.js.map +0 -1
- package/lib/packlets/resource-json/resourceDeclTree.d.ts.map +0 -1
- package/lib/packlets/resource-json/resourceDeclTree.js.map +0 -1
- package/lib/packlets/resource-types/config/convert.d.ts.map +0 -1
- package/lib/packlets/resource-types/config/convert.js.map +0 -1
- package/lib/packlets/resource-types/config/index.d.ts.map +0 -1
- package/lib/packlets/resource-types/config/index.js.map +0 -1
- package/lib/packlets/resource-types/config/json.d.ts.map +0 -1
- package/lib/packlets/resource-types/config/json.js.map +0 -1
- package/lib/packlets/resource-types/helpers.d.ts.map +0 -1
- package/lib/packlets/resource-types/helpers.js.map +0 -1
- package/lib/packlets/resource-types/index.d.ts.map +0 -1
- package/lib/packlets/resource-types/index.js.map +0 -1
- package/lib/packlets/resource-types/jsonResourceType.d.ts.map +0 -1
- package/lib/packlets/resource-types/jsonResourceType.js.map +0 -1
- package/lib/packlets/resource-types/resourceType.d.ts.map +0 -1
- package/lib/packlets/resource-types/resourceType.js.map +0 -1
- package/lib/packlets/resource-types/resourceTypeCollector.d.ts.map +0 -1
- package/lib/packlets/resource-types/resourceTypeCollector.js.map +0 -1
- package/lib/packlets/resources/candidateReducer.d.ts.map +0 -1
- package/lib/packlets/resources/candidateReducer.js.map +0 -1
- package/lib/packlets/resources/common.d.ts.map +0 -1
- package/lib/packlets/resources/common.js.map +0 -1
- package/lib/packlets/resources/index.d.ts.map +0 -1
- package/lib/packlets/resources/index.js.map +0 -1
- package/lib/packlets/resources/resource.d.ts.map +0 -1
- package/lib/packlets/resources/resource.js.map +0 -1
- package/lib/packlets/resources/resourceBuilder.d.ts.map +0 -1
- package/lib/packlets/resources/resourceBuilder.js.map +0 -1
- package/lib/packlets/resources/resourceCandidate.d.ts.map +0 -1
- package/lib/packlets/resources/resourceCandidate.js.map +0 -1
- package/lib/packlets/resources/resourceManagerBuilder.d.ts.map +0 -1
- package/lib/packlets/resources/resourceManagerBuilder.js.map +0 -1
- package/lib/packlets/runtime/cacheListener.d.ts.map +0 -1
- package/lib/packlets/runtime/cacheListener.js.map +0 -1
- package/lib/packlets/runtime/cacheMetrics.d.ts.map +0 -1
- package/lib/packlets/runtime/cacheMetrics.js.map +0 -1
- package/lib/packlets/runtime/compiledResourceCollection.d.ts.map +0 -1
- package/lib/packlets/runtime/compiledResourceCollection.js.map +0 -1
- package/lib/packlets/runtime/conditionSetResolutionResult.d.ts.map +0 -1
- package/lib/packlets/runtime/conditionSetResolutionResult.js.map +0 -1
- package/lib/packlets/runtime/context/contextQualifierProvider.d.ts.map +0 -1
- package/lib/packlets/runtime/context/contextQualifierProvider.js.map +0 -1
- package/lib/packlets/runtime/context/contextQualifierProviderValidator.d.ts.map +0 -1
- package/lib/packlets/runtime/context/contextQualifierProviderValidator.js.map +0 -1
- package/lib/packlets/runtime/context/index.d.ts.map +0 -1
- package/lib/packlets/runtime/context/index.js.map +0 -1
- package/lib/packlets/runtime/context/simpleContextQualifierProvider.d.ts.map +0 -1
- package/lib/packlets/runtime/context/simpleContextQualifierProvider.js.map +0 -1
- package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.d.ts.map +0 -1
- package/lib/packlets/runtime/context/validatingSimpleContextQualifierProvider.js.map +0 -1
- package/lib/packlets/runtime/iResourceManager.d.ts.map +0 -1
- package/lib/packlets/runtime/iResourceManager.js.map +0 -1
- package/lib/packlets/runtime/index.d.ts.map +0 -1
- package/lib/packlets/runtime/index.js.map +0 -1
- package/lib/packlets/runtime/resource-tree/common.d.ts.map +0 -1
- package/lib/packlets/runtime/resource-tree/common.js.map +0 -1
- package/lib/packlets/runtime/resource-tree/index.d.ts.map +0 -1
- package/lib/packlets/runtime/resource-tree/index.js.map +0 -1
- package/lib/packlets/runtime/resource-tree/readOnlyResourceTree.d.ts.map +0 -1
- package/lib/packlets/runtime/resource-tree/readOnlyResourceTree.js.map +0 -1
- package/lib/packlets/runtime/resource-tree/resourceTreeChildren.d.ts.map +0 -1
- package/lib/packlets/runtime/resource-tree/resourceTreeChildren.js.map +0 -1
- package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.d.ts.map +0 -1
- package/lib/packlets/runtime/resource-tree/resourceTreeChildrenValidator.js.map +0 -1
- package/lib/packlets/runtime/resourceResolver.d.ts.map +0 -1
- package/lib/packlets/runtime/resourceResolver.js.map +0 -1
- package/lib/packlets/runtime/validate.d.ts.map +0 -1
- package/lib/packlets/runtime/validate.js.map +0 -1
|
@@ -132,6 +132,7 @@ class CandidateReducer {
|
|
|
132
132
|
hasCollisions = true;
|
|
133
133
|
}
|
|
134
134
|
else {
|
|
135
|
+
/* c8 ignore next 12 - complex collision handling for partial candidates rarely triggered */
|
|
135
136
|
// Partial reduced candidate - merge into unchanged and suppress reduced
|
|
136
137
|
const mergedJson = CandidateReducer._mergeJsonValues(unchangedCandidate.originalCandidate.json, reducedCandidate.originalCandidate.json);
|
|
137
138
|
// Update unchanged candidate with merged JSON, keeping its isPartial status
|
|
@@ -142,6 +143,7 @@ class CandidateReducer {
|
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
145
|
else {
|
|
146
|
+
/* c8 ignore next 15 - complex collision reversion logic rarely triggered in practice */
|
|
145
147
|
// Complex collision case - revert all reduced candidates to unchanged
|
|
146
148
|
for (const candidateInfo of reducedCandidates) {
|
|
147
149
|
// Revert to original conditions and mark as unchanged
|
|
@@ -224,6 +226,7 @@ class CandidateReducer {
|
|
|
224
226
|
reduceCandidate(candidate) {
|
|
225
227
|
var _a;
|
|
226
228
|
const candidateInfo = this._candidateInfos.find((info) => info.originalCandidate === candidate);
|
|
229
|
+
/* c8 ignore next 3 - defensive coding: candidate should always be found if properly managed */
|
|
227
230
|
if (!candidateInfo) {
|
|
228
231
|
return (0, ts_utils_1.fail)(`Candidate not found in reducer state`);
|
|
229
232
|
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { JsonValue } from '@fgv/ts-json-base';
|
|
2
|
+
import { Collections, Hash, Result } from '@fgv/ts-utils';
|
|
3
|
+
import { CandidateValueIndex, CandidateValueKey } from '../common';
|
|
4
|
+
/**
|
|
5
|
+
* Interface for a candidate value that can be collected and indexed.
|
|
6
|
+
* Candidate values are normalized JSON values that can be shared across
|
|
7
|
+
* multiple resource candidates to reduce duplication.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export interface ICandidateValue extends Collections.ICollectible<CandidateValueKey, CandidateValueIndex> {
|
|
11
|
+
/**
|
|
12
|
+
* The unique key for this candidate value, derived from the hash of the normalized JSON.
|
|
13
|
+
*/
|
|
14
|
+
readonly key: CandidateValueKey;
|
|
15
|
+
/**
|
|
16
|
+
* The index of this candidate value in the collection.
|
|
17
|
+
*/
|
|
18
|
+
readonly index: CandidateValueIndex | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* The normalized JSON value.
|
|
21
|
+
*/
|
|
22
|
+
readonly json: JsonValue;
|
|
23
|
+
/**
|
|
24
|
+
* Sets the index of this candidate value.
|
|
25
|
+
* @param index - The index to set.
|
|
26
|
+
* @returns `Success` with the index if successful, or `Failure` with an error message if not.
|
|
27
|
+
*/
|
|
28
|
+
setIndex(index: number): Result<CandidateValueIndex>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Parameters for creating a {@link Resources.CandidateValue | CandidateValue}.
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
export interface ICandidateValueCreateParams {
|
|
35
|
+
/**
|
|
36
|
+
* The JSON value to store. Will be normalized during creation.
|
|
37
|
+
*/
|
|
38
|
+
json: JsonValue;
|
|
39
|
+
/**
|
|
40
|
+
* Optional normalizer to use for normalizing the JSON value.
|
|
41
|
+
* If not provided, a default Crc32Normalizer will be used.
|
|
42
|
+
*/
|
|
43
|
+
normalizer?: Hash.Crc32Normalizer;
|
|
44
|
+
/**
|
|
45
|
+
* Optional index if the value is already indexed.
|
|
46
|
+
*/
|
|
47
|
+
index?: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Implementation of a candidate value that stores normalized JSON data.
|
|
51
|
+
* The value is normalized on creation and a hash-based key is generated
|
|
52
|
+
* for efficient deduplication.
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
export declare class CandidateValue implements ICandidateValue {
|
|
56
|
+
private readonly _collectible;
|
|
57
|
+
private readonly _json;
|
|
58
|
+
/**
|
|
59
|
+
* The unique key for this candidate value.
|
|
60
|
+
*/
|
|
61
|
+
get key(): CandidateValueKey;
|
|
62
|
+
/**
|
|
63
|
+
* The index of this candidate value in the collection.
|
|
64
|
+
*/
|
|
65
|
+
get index(): CandidateValueIndex | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* The normalized JSON value.
|
|
68
|
+
*/
|
|
69
|
+
get json(): JsonValue;
|
|
70
|
+
/**
|
|
71
|
+
* Constructor for a {@link Resources.CandidateValue} object.
|
|
72
|
+
* @param params - Parameters to create the candidate value.
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
protected constructor(params: ICandidateValueCreateParams);
|
|
76
|
+
/**
|
|
77
|
+
* Creates a new {@link Resources.CandidateValue} object.
|
|
78
|
+
* @param params - Parameters to create the candidate value.
|
|
79
|
+
* @returns `Success` with the new candidate value if successful,
|
|
80
|
+
* or `Failure` with an error message if not.
|
|
81
|
+
* @public
|
|
82
|
+
*/
|
|
83
|
+
static create(params: ICandidateValueCreateParams): Result<CandidateValue>;
|
|
84
|
+
/**
|
|
85
|
+
* Sets the index of this candidate value.
|
|
86
|
+
* @param index - The index to set.
|
|
87
|
+
* @returns `Success` with the index if successful, or `Failure` with an error message if not.
|
|
88
|
+
* @public
|
|
89
|
+
*/
|
|
90
|
+
setIndex(index: number): Result<CandidateValueIndex>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=candidateValue.d.ts.map
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025 Erik Fortune
|
|
4
|
+
*
|
|
5
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
* in the Software without restriction, including without limitation the rights
|
|
8
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
* furnished to do so, subject to the following conditions:
|
|
11
|
+
*
|
|
12
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
* copies or substantial portions of the Software.
|
|
14
|
+
*
|
|
15
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
* SOFTWARE.
|
|
22
|
+
*/
|
|
23
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
24
|
+
if (k2 === undefined) k2 = k;
|
|
25
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
26
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
27
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
28
|
+
}
|
|
29
|
+
Object.defineProperty(o, k2, desc);
|
|
30
|
+
}) : (function(o, m, k, k2) {
|
|
31
|
+
if (k2 === undefined) k2 = k;
|
|
32
|
+
o[k2] = m[k];
|
|
33
|
+
}));
|
|
34
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
35
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
36
|
+
}) : function(o, v) {
|
|
37
|
+
o["default"] = v;
|
|
38
|
+
});
|
|
39
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
40
|
+
var ownKeys = function(o) {
|
|
41
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
42
|
+
var ar = [];
|
|
43
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
44
|
+
return ar;
|
|
45
|
+
};
|
|
46
|
+
return ownKeys(o);
|
|
47
|
+
};
|
|
48
|
+
return function (mod) {
|
|
49
|
+
if (mod && mod.__esModule) return mod;
|
|
50
|
+
var result = {};
|
|
51
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
52
|
+
__setModuleDefault(result, mod);
|
|
53
|
+
return result;
|
|
54
|
+
};
|
|
55
|
+
})();
|
|
56
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
|
+
exports.CandidateValue = void 0;
|
|
58
|
+
const ts_utils_1 = require("@fgv/ts-utils");
|
|
59
|
+
const common_1 = require("../common");
|
|
60
|
+
const Common = __importStar(require("../common"));
|
|
61
|
+
/**
|
|
62
|
+
* Implementation of a candidate value that stores normalized JSON data.
|
|
63
|
+
* The value is normalized on creation and a hash-based key is generated
|
|
64
|
+
* for efficient deduplication.
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
class CandidateValue {
|
|
68
|
+
/**
|
|
69
|
+
* The unique key for this candidate value.
|
|
70
|
+
*/
|
|
71
|
+
get key() {
|
|
72
|
+
return this._collectible.key;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The index of this candidate value in the collection.
|
|
76
|
+
*/
|
|
77
|
+
get index() {
|
|
78
|
+
return this._collectible.index;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The normalized JSON value.
|
|
82
|
+
*/
|
|
83
|
+
get json() {
|
|
84
|
+
return this._json;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Constructor for a {@link Resources.CandidateValue} object.
|
|
88
|
+
* @param params - Parameters to create the candidate value.
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
91
|
+
constructor(params) {
|
|
92
|
+
var _a;
|
|
93
|
+
const normalizer = (_a = params.normalizer) !== null && _a !== void 0 ? _a : new ts_utils_1.Hash.Crc32Normalizer();
|
|
94
|
+
// Normalize the JSON value
|
|
95
|
+
const normalizedResult = normalizer.normalize(params.json);
|
|
96
|
+
this._json = normalizedResult.orThrow();
|
|
97
|
+
// Generate key from the normalized value using computeHash
|
|
98
|
+
const keyResult = normalizer.computeHash(this._json);
|
|
99
|
+
const key = common_1.Convert.candidateValueKey.convert(keyResult.orThrow()).orThrow();
|
|
100
|
+
// Create the collectible with the key and optional index
|
|
101
|
+
this._collectible = new ts_utils_1.Collections.Collectible({
|
|
102
|
+
key,
|
|
103
|
+
index: params.index,
|
|
104
|
+
indexConverter: Common.Convert.candidateValueIndex
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Creates a new {@link Resources.CandidateValue} object.
|
|
109
|
+
* @param params - Parameters to create the candidate value.
|
|
110
|
+
* @returns `Success` with the new candidate value if successful,
|
|
111
|
+
* or `Failure` with an error message if not.
|
|
112
|
+
* @public
|
|
113
|
+
*/
|
|
114
|
+
static create(params) {
|
|
115
|
+
return (0, ts_utils_1.captureResult)(() => new CandidateValue(params));
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Sets the index of this candidate value.
|
|
119
|
+
* @param index - The index to set.
|
|
120
|
+
* @returns `Success` with the index if successful, or `Failure` with an error message if not.
|
|
121
|
+
* @public
|
|
122
|
+
*/
|
|
123
|
+
setIndex(index) {
|
|
124
|
+
return this._collectible.setIndex(index);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.CandidateValue = CandidateValue;
|
|
128
|
+
//# sourceMappingURL=candidateValue.js.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { JsonValue } from '@fgv/ts-json-base';
|
|
2
|
+
import { Hash, Result, ValidatingCollector } from '@fgv/ts-utils';
|
|
3
|
+
import { CandidateValue } from './candidateValue';
|
|
4
|
+
/**
|
|
5
|
+
* Parameters for creating a {@link Resources.CandidateValueCollector}.
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export interface ICandidateValueCollectorCreateParams {
|
|
9
|
+
/**
|
|
10
|
+
* Optional normalizer to use for normalizing JSON values.
|
|
11
|
+
* If not provided, a default Crc32Normalizer will be used.
|
|
12
|
+
*/
|
|
13
|
+
normalizer?: Hash.HashingNormalizer;
|
|
14
|
+
/**
|
|
15
|
+
* Optional initial candidate values to add to the collection.
|
|
16
|
+
*/
|
|
17
|
+
candidateValues?: (CandidateValue | JsonValue)[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A `ValidatingCollector` for {@link Resources.CandidateValue | CandidateValues},
|
|
21
|
+
* which collects candidate values supplied as either {@link Resources.CandidateValue | CandidateValue} or
|
|
22
|
+
* `JsonValue`.
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
export declare class CandidateValueCollector extends ValidatingCollector<CandidateValue> {
|
|
26
|
+
readonly normalizer: Hash.HashingNormalizer;
|
|
27
|
+
/**
|
|
28
|
+
* Constructor for a {@link Resources.CandidateValueCollector} object.
|
|
29
|
+
* @param params - Parameters to create the collector.
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
protected constructor(params?: ICandidateValueCollectorCreateParams);
|
|
33
|
+
/**
|
|
34
|
+
* Creates a new {@link Resources.CandidateValueCollector} object.
|
|
35
|
+
* @param params - Parameters to create the collector.
|
|
36
|
+
* @returns `Success` with the new collector if successful,
|
|
37
|
+
* or `Failure` with an error message if not.
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
40
|
+
static create(params?: ICandidateValueCollectorCreateParams): Result<CandidateValueCollector>;
|
|
41
|
+
/**
|
|
42
|
+
* Returns an array of JSON values ordered by their indices.
|
|
43
|
+
* @returns Array of JsonValue objects in index order.
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
getValuesByIndex(): JsonValue[];
|
|
47
|
+
/**
|
|
48
|
+
* Converter method to handle CandidateValue | JsonValue.
|
|
49
|
+
* @param from - The value to convert.
|
|
50
|
+
* @returns `Success` with the CandidateValue if successful, or `Failure` with an error message if not.
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
private _toCandidateValue;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=candidateValueCollector.d.ts.map
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025 Erik Fortune
|
|
4
|
+
*
|
|
5
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
* in the Software without restriction, including without limitation the rights
|
|
8
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
* furnished to do so, subject to the following conditions:
|
|
11
|
+
*
|
|
12
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
* copies or substantial portions of the Software.
|
|
14
|
+
*
|
|
15
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
* SOFTWARE.
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.CandidateValueCollector = void 0;
|
|
25
|
+
const ts_json_base_1 = require("@fgv/ts-json-base");
|
|
26
|
+
const ts_utils_1 = require("@fgv/ts-utils");
|
|
27
|
+
const common_1 = require("../common");
|
|
28
|
+
const candidateValue_1 = require("./candidateValue");
|
|
29
|
+
/**
|
|
30
|
+
* A `ValidatingCollector` for {@link Resources.CandidateValue | CandidateValues},
|
|
31
|
+
* which collects candidate values supplied as either {@link Resources.CandidateValue | CandidateValue} or
|
|
32
|
+
* `JsonValue`.
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
class CandidateValueCollector extends ts_utils_1.ValidatingCollector {
|
|
36
|
+
/**
|
|
37
|
+
* Constructor for a {@link Resources.CandidateValueCollector} object.
|
|
38
|
+
* @param params - Parameters to create the collector.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
constructor(params = {}) {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
super({
|
|
44
|
+
converters: new ts_utils_1.Collections.KeyValueConverters({
|
|
45
|
+
key: common_1.Convert.candidateValueKey,
|
|
46
|
+
value: (from) => this._toCandidateValue(from)
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
this.normalizer = (_a = params === null || params === void 0 ? void 0 : params.normalizer) !== null && _a !== void 0 ? _a : new ts_utils_1.Hash.Crc32Normalizer();
|
|
50
|
+
(_b = params.candidateValues) === null || _b === void 0 ? void 0 : _b.forEach((candidateValue) => this.validating.add(candidateValue));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Creates a new {@link Resources.CandidateValueCollector} object.
|
|
54
|
+
* @param params - Parameters to create the collector.
|
|
55
|
+
* @returns `Success` with the new collector if successful,
|
|
56
|
+
* or `Failure` with an error message if not.
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
static create(params) {
|
|
60
|
+
return (0, ts_utils_1.captureResult)(() => new CandidateValueCollector(params));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Returns an array of JSON values ordered by their indices.
|
|
64
|
+
* @returns Array of JsonValue objects in index order.
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
getValuesByIndex() {
|
|
68
|
+
// Use the base class valuesByIndex() method to get CandidateValues in index order,
|
|
69
|
+
// then extract their JSON values
|
|
70
|
+
return this.valuesByIndex().map((candidateValue) => candidateValue.json);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Converter method to handle CandidateValue | JsonValue.
|
|
74
|
+
* @param from - The value to convert.
|
|
75
|
+
* @returns `Success` with the CandidateValue if successful, or `Failure` with an error message if not.
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
_toCandidateValue(from) {
|
|
79
|
+
/* c8 ignore next 3 - functional code tested but coverage intermittently missed */
|
|
80
|
+
if (from instanceof candidateValue_1.CandidateValue) {
|
|
81
|
+
return (0, ts_utils_1.succeed)(from);
|
|
82
|
+
}
|
|
83
|
+
// Validate as JsonValue and create new CandidateValue
|
|
84
|
+
return ts_json_base_1.Validators.jsonValue
|
|
85
|
+
.validate(from)
|
|
86
|
+
.withErrorFormat((msg) => `Invalid JSON value: ${msg}`)
|
|
87
|
+
.onSuccess((jsonValue) => {
|
|
88
|
+
return candidateValue_1.CandidateValue.create({
|
|
89
|
+
json: jsonValue,
|
|
90
|
+
normalizer: this.normalizer
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.CandidateValueCollector = CandidateValueCollector;
|
|
96
|
+
//# sourceMappingURL=candidateValueCollector.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.
|
|
@@ -68,5 +70,17 @@ export interface IResourceManagerCloneOptions extends IResourceDeclarationOption
|
|
|
68
70
|
* These conditions can modify or extend the resource candidates in the cloned manager.
|
|
69
71
|
*/
|
|
70
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;
|
|
71
85
|
}
|
|
72
86
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { Logging, Result } from '@fgv/ts-utils';
|
|
2
|
+
import { IResourceResolver } from '../common';
|
|
3
|
+
import { ResourceManagerBuilder } from './resourceManagerBuilder';
|
|
4
|
+
import * as Context from '../context';
|
|
5
|
+
/**
|
|
6
|
+
* Interface for parameters to create a {@link Resources.DeltaGenerator | DeltaGenerator}.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export interface IDeltaGeneratorParams {
|
|
10
|
+
/**
|
|
11
|
+
* The baseline resource resolver to compare against.
|
|
12
|
+
*/
|
|
13
|
+
baselineResolver: IResourceResolver;
|
|
14
|
+
/**
|
|
15
|
+
* The delta resource resolver containing changes.
|
|
16
|
+
*/
|
|
17
|
+
deltaResolver: IResourceResolver;
|
|
18
|
+
/**
|
|
19
|
+
* The resource manager to clone and update.
|
|
20
|
+
*/
|
|
21
|
+
resourceManager: ResourceManagerBuilder;
|
|
22
|
+
/**
|
|
23
|
+
* Optional logger for status and error reporting.
|
|
24
|
+
*/
|
|
25
|
+
logger?: Logging.ILogger;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Interface for options controlling delta generation behavior.
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
31
|
+
export interface IDeltaGeneratorOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Context to use when resolving resources. If not provided, uses empty context.
|
|
34
|
+
*/
|
|
35
|
+
context?: Context.IContextDecl;
|
|
36
|
+
/**
|
|
37
|
+
* Array of specific resource IDs to include in delta generation.
|
|
38
|
+
* If not provided, generates deltas for all resources in the delta resolver.
|
|
39
|
+
*/
|
|
40
|
+
resourceIds?: ReadonlyArray<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Whether to skip resources that haven't changed. Default: true.
|
|
43
|
+
*/
|
|
44
|
+
skipUnchanged?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Class for generating resource deltas between baseline and delta resolvers.
|
|
48
|
+
* Creates partial/augment candidates for updated resources and full/replace candidates for new resources.
|
|
49
|
+
* Uses Diff.jsonThreeWayDiff for efficient delta computation.
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
export declare class DeltaGenerator {
|
|
53
|
+
/**
|
|
54
|
+
* The baseline resource resolver to compare against.
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
private readonly _baselineResolver;
|
|
58
|
+
/**
|
|
59
|
+
* The delta resource resolver containing changes.
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
private readonly _deltaResolver;
|
|
63
|
+
/**
|
|
64
|
+
* The resource manager to clone and update.
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
private readonly _resourceManager;
|
|
68
|
+
/**
|
|
69
|
+
* Logger for status and error reporting.
|
|
70
|
+
* @internal
|
|
71
|
+
*/
|
|
72
|
+
private readonly _logger;
|
|
73
|
+
/**
|
|
74
|
+
* Constructor for a {@link Resources.DeltaGenerator | DeltaGenerator} object.
|
|
75
|
+
* @param params - Parameters to create a new {@link Resources.DeltaGenerator | DeltaGenerator}.
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
protected constructor(params: IDeltaGeneratorParams);
|
|
79
|
+
/**
|
|
80
|
+
* Creates a new {@link Resources.DeltaGenerator | DeltaGenerator} object.
|
|
81
|
+
* @param params - Parameters to create a new {@link Resources.DeltaGenerator | DeltaGenerator}.
|
|
82
|
+
* @returns `Success` with the new {@link Resources.DeltaGenerator | DeltaGenerator} object if successful,
|
|
83
|
+
* or `Failure` with an error message if not.
|
|
84
|
+
* @public
|
|
85
|
+
*/
|
|
86
|
+
static create(params: IDeltaGeneratorParams): Result<DeltaGenerator>;
|
|
87
|
+
/**
|
|
88
|
+
* Generates deltas between baseline and delta resolvers.
|
|
89
|
+
* Creates a cloned resource manager with partial/augment candidates for updates
|
|
90
|
+
* and full/replace candidates for new resources.
|
|
91
|
+
*
|
|
92
|
+
* @param options - Options controlling delta generation behavior.
|
|
93
|
+
* @returns `Success` with the updated resource manager if successful,
|
|
94
|
+
* or `Failure` with an error message if not.
|
|
95
|
+
* @public
|
|
96
|
+
*/
|
|
97
|
+
generate(options?: IDeltaGeneratorOptions): Result<ResourceManagerBuilder>;
|
|
98
|
+
/**
|
|
99
|
+
* Validates the provided context declaration.
|
|
100
|
+
* @param context - The context declaration to validate.
|
|
101
|
+
* @returns `Success` with the validated context if successful, `Failure` otherwise.
|
|
102
|
+
* @internal
|
|
103
|
+
*/
|
|
104
|
+
private _validateContext;
|
|
105
|
+
/**
|
|
106
|
+
* Enumerates target resource IDs for delta generation.
|
|
107
|
+
* If specific resource IDs are provided, uses those. Otherwise, discovers all resources
|
|
108
|
+
* from both the baseline resource manager and the delta resolver to ensure comprehensive
|
|
109
|
+
* coverage of all potential resources.
|
|
110
|
+
*
|
|
111
|
+
* @param requestedIds - Optional array of specific resource IDs to target.
|
|
112
|
+
* @param context - The validated context to use for resource discovery.
|
|
113
|
+
* @returns `Success` with array of resource IDs if successful, `Failure` otherwise.
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
private _enumerateTargetResources;
|
|
117
|
+
/**
|
|
118
|
+
* Discovers all unique resource IDs from both baseline and delta resolvers.
|
|
119
|
+
* Creates a union of resource IDs from the baseline resource manager and delta resolver
|
|
120
|
+
* to ensure comprehensive coverage of all resources.
|
|
121
|
+
*
|
|
122
|
+
* @returns `Success` with array of unique resource IDs if successful, `Failure` otherwise.
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
private _discoverAllResourceIds;
|
|
126
|
+
/**
|
|
127
|
+
* Creates a clone of the resource manager for delta operations.
|
|
128
|
+
* @returns `Success` with the cloned resource manager if successful, `Failure` otherwise.
|
|
129
|
+
* @internal
|
|
130
|
+
*/
|
|
131
|
+
private _cloneResourceManager;
|
|
132
|
+
/**
|
|
133
|
+
* Generates deltas for the specified resources and adds them to the cloned manager.
|
|
134
|
+
*
|
|
135
|
+
* @param clonedManager - The cloned resource manager to update.
|
|
136
|
+
* @param resourceIds - Array of resource IDs to process.
|
|
137
|
+
* @param context - The context to use for resource resolution.
|
|
138
|
+
* @param skipUnchanged - Whether to skip resources that haven't changed.
|
|
139
|
+
* @returns `Success` with the updated manager if successful, `Failure` otherwise.
|
|
140
|
+
* @internal
|
|
141
|
+
*/
|
|
142
|
+
private _generateDeltas;
|
|
143
|
+
/**
|
|
144
|
+
* Generates a delta for a single resource and adds appropriate candidates to the manager.
|
|
145
|
+
*
|
|
146
|
+
* @param manager - The resource manager to update.
|
|
147
|
+
* @param resourceId - The resource ID to process.
|
|
148
|
+
* @param context - The context to use for resource resolution.
|
|
149
|
+
* @param skipUnchanged - Whether to skip resources that haven't changed.
|
|
150
|
+
* @returns `Success` with the resource delta result if successful, `Failure` otherwise.
|
|
151
|
+
* @internal
|
|
152
|
+
*/
|
|
153
|
+
private _generateResourceDelta;
|
|
154
|
+
/**
|
|
155
|
+
* Checks if two JSON values are identical.
|
|
156
|
+
* @param value1 - First value to compare.
|
|
157
|
+
* @param value2 - Second value to compare.
|
|
158
|
+
* @returns True if values are identical, false otherwise.
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
private _areValuesIdentical;
|
|
162
|
+
/**
|
|
163
|
+
* Creates a new resource candidate for a newly discovered resource.
|
|
164
|
+
* Uses full/replace merge method since this is a completely new resource.
|
|
165
|
+
*
|
|
166
|
+
* @param manager - The resource manager to update.
|
|
167
|
+
* @param resourceId - The resource ID for the new resource.
|
|
168
|
+
* @param value - The resolved value for the new resource.
|
|
169
|
+
* @param context - The context used for resolution.
|
|
170
|
+
* @returns `Success` if the candidate was added successfully, `Failure` otherwise.
|
|
171
|
+
* @internal
|
|
172
|
+
*/
|
|
173
|
+
private _createNewResourceCandidate;
|
|
174
|
+
/**
|
|
175
|
+
* Creates a delta candidate for an updated resource.
|
|
176
|
+
* Computes the difference between baseline and delta values and creates
|
|
177
|
+
* a partial/augment candidate with only the changed properties.
|
|
178
|
+
*
|
|
179
|
+
* @param manager - The resource manager to update.
|
|
180
|
+
* @param resourceId - The resource ID for the updated resource.
|
|
181
|
+
* @param baselineValue - The baseline resolved value.
|
|
182
|
+
* @param deltaValue - The delta resolved value.
|
|
183
|
+
* @param context - The context used for resolution.
|
|
184
|
+
* @returns `Success` if the candidate was added successfully, `Failure` otherwise.
|
|
185
|
+
* @internal
|
|
186
|
+
*/
|
|
187
|
+
private _createDeltaCandidate;
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=deltaGenerator.d.ts.map
|