@fgv/ts-bcp47 0.9.6 → 2.0.1-alpha.0
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/.cache/build.lint/_eslint-R7SFxnrl.json +481 -0
- package/dist/ts-bcp47.d.ts +2554 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/lib/data/bcp/overrides.json +20 -0
- package/lib/data/iana/language-subtags.json +57439 -0
- package/{data → lib/data}/iana/language-tag-extensions.json +2 -6
- package/lib/data/unsd/m49.json +3723 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +57 -0
- package/lib/index.js.map +1 -0
- package/lib/packlets/bcp47/bcp47Subtags/converters.d.ts.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/converters.js +2 -1
- package/lib/packlets/bcp47/bcp47Subtags/converters.js.map +1 -0
- package/lib/packlets/bcp47/bcp47Subtags/index.d.ts.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/index.js +1 -1
- package/lib/packlets/bcp47/bcp47Subtags/index.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/model.d.ts +3 -1
- package/lib/packlets/bcp47/bcp47Subtags/model.d.ts.map +1 -0
- package/lib/packlets/bcp47/bcp47Subtags/model.js +24 -0
- package/lib/packlets/bcp47/bcp47Subtags/model.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/validate.d.ts +2 -2
- package/lib/packlets/bcp47/bcp47Subtags/validate.d.ts.map +1 -0
- package/lib/packlets/bcp47/bcp47Subtags/validate.js +74 -0
- package/lib/packlets/bcp47/bcp47Subtags/validate.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/common.d.ts +4 -4
- package/lib/packlets/bcp47/common.d.ts.map +1 -0
- package/lib/packlets/bcp47/common.js +59 -0
- package/lib/packlets/bcp47/common.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/helpers.d.ts +8 -8
- package/lib/packlets/bcp47/helpers.d.ts.map +1 -0
- package/lib/packlets/bcp47/helpers.js +103 -0
- package/lib/packlets/bcp47/helpers.js.map +1 -0
- package/lib/packlets/bcp47/index.d.ts +10 -0
- package/lib/packlets/bcp47/index.d.ts.map +1 -0
- package/lib/packlets/bcp47/index.js +68 -0
- package/lib/packlets/bcp47/index.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/languageRegistryData.d.ts +26 -27
- package/lib/packlets/bcp47/languageRegistryData.d.ts.map +1 -0
- package/lib/packlets/bcp47/languageRegistryData.js +206 -0
- package/lib/packlets/bcp47/languageRegistryData.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/languageTag.d.ts +12 -13
- package/lib/packlets/bcp47/languageTag.d.ts.map +1 -0
- package/lib/packlets/bcp47/languageTag.js +390 -0
- package/lib/packlets/bcp47/languageTag.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/languageTagParser.d.ts +13 -14
- package/lib/packlets/bcp47/languageTagParser.d.ts.map +1 -0
- package/lib/packlets/bcp47/languageTagParser.js +303 -0
- package/lib/packlets/bcp47/languageTagParser.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/match/chooser.d.ts +8 -8
- package/lib/packlets/bcp47/match/chooser.d.ts.map +1 -0
- package/lib/packlets/bcp47/match/chooser.js +92 -0
- package/lib/packlets/bcp47/match/chooser.js.map +1 -0
- package/lib/packlets/bcp47/match/common.d.ts.map +1 -0
- package/lib/packlets/bcp47/match/common.js +52 -0
- package/lib/packlets/bcp47/match/common.js.map +1 -0
- package/lib/packlets/bcp47/match/index.d.ts +4 -0
- package/lib/packlets/bcp47/match/index.d.ts.map +1 -0
- package/lib/packlets/bcp47/match/index.js +45 -0
- package/lib/packlets/bcp47/match/index.js.map +1 -0
- package/lib/packlets/bcp47/match/similarity.d.ts.map +1 -0
- package/lib/packlets/bcp47/match/similarity.js +230 -0
- package/lib/packlets/bcp47/match/similarity.js.map +1 -0
- package/lib/packlets/bcp47/normalization/baseNormalizer.d.ts +35 -0
- package/lib/packlets/bcp47/normalization/baseNormalizer.d.ts.map +1 -0
- package/lib/packlets/bcp47/normalization/baseNormalizer.js +116 -0
- package/lib/packlets/bcp47/normalization/baseNormalizer.js.map +1 -0
- package/lib/packlets/bcp47/normalization/canonicalNormalizer.d.ts +22 -0
- package/lib/packlets/bcp47/normalization/canonicalNormalizer.d.ts.map +1 -0
- package/lib/packlets/bcp47/normalization/canonicalNormalizer.js +113 -0
- package/lib/packlets/bcp47/normalization/canonicalNormalizer.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/normalization/common.d.ts +1 -1
- package/lib/packlets/bcp47/normalization/common.d.ts.map +1 -0
- package/lib/packlets/bcp47/normalization/common.js +82 -0
- package/lib/packlets/bcp47/normalization/common.js.map +1 -0
- package/lib/packlets/bcp47/normalization/index.d.ts.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/normalization/index.js +1 -1
- package/lib/packlets/bcp47/normalization/index.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/normalization/normalizeTag.d.ts +6 -6
- package/lib/packlets/bcp47/normalization/normalizeTag.d.ts.map +1 -0
- package/lib/packlets/bcp47/normalization/normalizeTag.js +105 -0
- package/lib/packlets/bcp47/normalization/normalizeTag.js.map +1 -0
- package/lib/packlets/bcp47/normalization/preferredTagNormalizer.d.ts +27 -0
- package/lib/packlets/bcp47/normalization/preferredTagNormalizer.d.ts.map +1 -0
- package/lib/packlets/bcp47/normalization/preferredTagNormalizer.js +204 -0
- package/lib/packlets/bcp47/normalization/preferredTagNormalizer.js.map +1 -0
- package/lib/packlets/bcp47/overrides/converters.d.ts +19 -0
- package/lib/packlets/bcp47/overrides/converters.d.ts.map +1 -0
- package/lib/packlets/bcp47/overrides/converters.js +76 -0
- package/lib/packlets/bcp47/overrides/converters.js.map +1 -0
- package/lib/packlets/bcp47/overrides/defaultRegistries.d.ts.map +1 -0
- package/lib/packlets/bcp47/overrides/defaultRegistries.js +42 -0
- package/lib/packlets/bcp47/overrides/defaultRegistries.js.map +1 -0
- package/lib/packlets/bcp47/overrides/index.d.ts.map +1 -0
- package/lib/packlets/bcp47/overrides/index.js +30 -0
- package/lib/packlets/bcp47/overrides/index.js.map +1 -0
- package/lib/packlets/bcp47/overrides/model.d.ts +11 -0
- package/lib/packlets/bcp47/overrides/model.d.ts.map +1 -0
- package/lib/packlets/bcp47/overrides/model.js +24 -0
- package/lib/packlets/bcp47/overrides/model.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/overrides/overridesRegistry.d.ts +8 -8
- package/lib/packlets/bcp47/overrides/overridesRegistry.d.ts.map +1 -0
- package/lib/packlets/bcp47/overrides/overridesRegistry.js +113 -0
- package/lib/packlets/bcp47/overrides/overridesRegistry.js.map +1 -0
- package/lib/packlets/bcp47/validation/baseValidator.d.ts +35 -0
- package/lib/packlets/bcp47/validation/baseValidator.d.ts.map +1 -0
- package/lib/packlets/bcp47/validation/baseValidator.js +113 -0
- package/lib/packlets/bcp47/validation/baseValidator.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/validation/common.d.ts +1 -1
- package/lib/packlets/bcp47/validation/common.d.ts.map +1 -0
- package/lib/packlets/bcp47/validation/common.js +84 -0
- package/lib/packlets/bcp47/validation/common.js.map +1 -0
- package/lib/packlets/bcp47/validation/index.d.ts.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/validation/index.js +1 -1
- package/lib/packlets/bcp47/validation/index.js.map +1 -0
- package/lib/packlets/bcp47/validation/isCanonical.d.ts +22 -0
- package/lib/packlets/bcp47/validation/isCanonical.d.ts.map +1 -0
- package/lib/packlets/bcp47/validation/isCanonical.js +106 -0
- package/lib/packlets/bcp47/validation/isCanonical.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/validation/isInPreferredForm.d.ts +4 -4
- package/lib/packlets/bcp47/validation/isInPreferredForm.d.ts.map +1 -0
- package/lib/packlets/bcp47/validation/isInPreferredForm.js +73 -0
- package/lib/packlets/bcp47/validation/isInPreferredForm.js.map +1 -0
- package/lib/packlets/bcp47/validation/isStrictlyValid.d.ts +18 -0
- package/lib/packlets/bcp47/validation/isStrictlyValid.d.ts.map +1 -0
- package/lib/packlets/bcp47/validation/isStrictlyValid.js +98 -0
- package/lib/packlets/bcp47/validation/isStrictlyValid.js.map +1 -0
- package/lib/packlets/bcp47/validation/isValid.d.ts +24 -0
- package/lib/packlets/bcp47/validation/isValid.d.ts.map +1 -0
- package/lib/packlets/bcp47/validation/isValid.js +119 -0
- package/lib/packlets/bcp47/validation/isValid.js.map +1 -0
- package/lib/packlets/bcp47/validation/isWellFormed.d.ts +22 -0
- package/lib/packlets/bcp47/validation/isWellFormed.d.ts.map +1 -0
- package/lib/packlets/bcp47/validation/isWellFormed.js +102 -0
- package/lib/packlets/bcp47/validation/isWellFormed.js.map +1 -0
- package/{bcp47 → lib/packlets/bcp47}/validation/validateTag.d.ts +9 -9
- package/lib/packlets/bcp47/validation/validateTag.d.ts.map +1 -0
- package/lib/packlets/bcp47/validation/validateTag.js +159 -0
- package/lib/packlets/bcp47/validation/validateTag.js.map +1 -0
- package/{iana → lib/packlets/iana}/common/converters.d.ts +2 -2
- package/lib/packlets/iana/common/converters.d.ts.map +1 -0
- package/lib/packlets/iana/common/converters.js +85 -0
- package/lib/packlets/iana/common/converters.js.map +1 -0
- package/{iana → lib/packlets/iana}/common/model.d.ts +1 -1
- package/lib/packlets/iana/common/model.d.ts.map +1 -0
- package/lib/packlets/iana/common/model.js +24 -0
- package/lib/packlets/iana/common/model.js.map +1 -0
- package/lib/packlets/iana/common/registeredItems.d.ts.map +1 -0
- package/lib/packlets/iana/common/registeredItems.js +124 -0
- package/lib/packlets/iana/common/registeredItems.js.map +1 -0
- package/lib/packlets/iana/common/utils.d.ts.map +1 -0
- package/lib/packlets/iana/common/utils.js +34 -0
- package/lib/packlets/iana/common/utils.js.map +1 -0
- package/{iana → lib/packlets/iana}/common/validate.d.ts +1 -1
- package/lib/packlets/iana/common/validate.d.ts.map +1 -0
- package/lib/packlets/iana/common/validate.js +62 -0
- package/lib/packlets/iana/common/validate.js.map +1 -0
- package/lib/packlets/iana/converters.d.ts.map +1 -0
- package/{iana → lib/packlets/iana}/converters.js +1 -1
- package/lib/packlets/iana/converters.js.map +1 -0
- package/lib/packlets/iana/defaultRegistries.d.ts.map +1 -0
- package/lib/packlets/iana/defaultRegistries.js +42 -0
- package/lib/packlets/iana/defaultRegistries.js.map +1 -0
- package/{iana → lib/packlets/iana}/index.d.ts +4 -2
- package/lib/packlets/iana/index.d.ts.map +1 -0
- package/{iana/jar/language-subtags/tags → lib/packlets/iana}/index.js +18 -6
- package/lib/packlets/iana/index.js.map +1 -0
- package/lib/packlets/iana/jar/converters.d.ts.map +1 -0
- package/{iana → lib/packlets/iana}/jar/converters.js +1 -1
- package/lib/packlets/iana/jar/converters.js.map +1 -0
- package/lib/packlets/iana/jar/index.d.ts +5 -0
- package/lib/packlets/iana/jar/index.d.ts.map +1 -0
- package/{unsd/csv → lib/packlets/iana/jar}/index.js +4 -2
- package/lib/packlets/iana/jar/index.js.map +1 -0
- package/{iana → lib/packlets/iana}/jar/jarConverters.d.ts +5 -5
- package/lib/packlets/iana/jar/jarConverters.d.ts.map +1 -0
- package/lib/packlets/iana/jar/jarConverters.js +86 -0
- package/lib/packlets/iana/jar/jarConverters.js.map +1 -0
- package/{iana → lib/packlets/iana}/jar/jarModel.d.ts +1 -1
- package/lib/packlets/iana/jar/jarModel.d.ts.map +1 -0
- package/lib/packlets/iana/jar/jarModel.js +24 -0
- package/lib/packlets/iana/jar/jarModel.js.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/converters.d.ts.map +1 -0
- package/{iana → lib/packlets/iana}/jar/language-subtags/converters.js +1 -1
- package/lib/packlets/iana/jar/language-subtags/converters.js.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/index.d.ts +5 -0
- package/lib/packlets/iana/jar/language-subtags/index.d.ts.map +1 -0
- package/{iana/jar/language-subtags/registry → lib/packlets/iana/jar/language-subtags}/index.js +29 -28
- package/lib/packlets/iana/jar/language-subtags/index.js.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/model.d.ts.map +1 -0
- package/{iana → lib/packlets/iana}/jar/language-subtags/model.js +1 -1
- package/lib/packlets/iana/jar/language-subtags/model.js.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/registry/converters.d.ts.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/registry/converters.js +59 -0
- package/lib/packlets/iana/jar/language-subtags/registry/converters.js.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/registry/index.d.ts.map +1 -0
- package/{iana/jar/language-subtags → lib/packlets/iana/jar/language-subtags/registry}/index.js +23 -22
- package/lib/packlets/iana/jar/language-subtags/registry/index.js.map +1 -0
- package/{iana → lib/packlets/iana}/jar/language-subtags/registry/model.d.ts +12 -12
- package/lib/packlets/iana/jar/language-subtags/registry/model.d.ts.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/registry/model.js +46 -0
- package/lib/packlets/iana/jar/language-subtags/registry/model.js.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/tags/converters.d.ts +55 -0
- package/lib/packlets/iana/jar/language-subtags/tags/converters.d.ts.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/tags/converters.js +129 -0
- package/lib/packlets/iana/jar/language-subtags/tags/converters.js.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/tags/index.d.ts +6 -0
- package/lib/packlets/iana/jar/language-subtags/tags/index.d.ts.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/tags/index.js +58 -0
- package/lib/packlets/iana/jar/language-subtags/tags/index.js.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/tags/model.d.ts.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/tags/model.js +24 -0
- package/lib/packlets/iana/jar/language-subtags/tags/model.js.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/tags/tagValidation.d.ts.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/tags/tagValidation.js +70 -0
- package/lib/packlets/iana/jar/language-subtags/tags/tagValidation.js.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/tags/validate.d.ts.map +1 -0
- package/lib/packlets/iana/jar/language-subtags/tags/validate.js +88 -0
- package/lib/packlets/iana/jar/language-subtags/tags/validate.js.map +1 -0
- package/lib/packlets/iana/jar/model.d.ts.map +1 -0
- package/{iana → lib/packlets/iana}/jar/model.js +1 -1
- package/lib/packlets/iana/jar/model.js.map +1 -0
- package/lib/packlets/iana/language-subtags/common.d.ts.map +1 -0
- package/lib/packlets/iana/language-subtags/common.js +24 -0
- package/lib/packlets/iana/language-subtags/common.js.map +1 -0
- package/lib/packlets/iana/language-subtags/converters.d.ts +52 -0
- package/lib/packlets/iana/language-subtags/converters.d.ts.map +1 -0
- package/lib/packlets/iana/language-subtags/converters.js +209 -0
- package/lib/packlets/iana/language-subtags/converters.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-subtags/index.d.ts +4 -3
- package/lib/packlets/iana/language-subtags/index.d.ts.map +1 -0
- package/{iana → lib/packlets/iana}/language-subtags/index.js +10 -8
- package/lib/packlets/iana/language-subtags/index.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-subtags/jarConverters.d.ts +8 -8
- package/lib/packlets/iana/language-subtags/jarConverters.d.ts.map +1 -0
- package/lib/packlets/iana/language-subtags/jarConverters.js +237 -0
- package/lib/packlets/iana/language-subtags/jarConverters.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-subtags/model.d.ts +15 -15
- package/lib/packlets/iana/language-subtags/model.d.ts.map +1 -0
- package/lib/packlets/iana/language-subtags/model.js +24 -0
- package/lib/packlets/iana/language-subtags/model.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-subtags/scope.d.ts +12 -12
- package/lib/packlets/iana/language-subtags/scope.d.ts.map +1 -0
- package/lib/packlets/iana/language-subtags/scope.js +179 -0
- package/lib/packlets/iana/language-subtags/scope.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-subtags/subtagRegistry.d.ts +1 -1
- package/lib/packlets/iana/language-subtags/subtagRegistry.d.ts.map +1 -0
- package/lib/packlets/iana/language-subtags/subtagRegistry.js +150 -0
- package/lib/packlets/iana/language-subtags/subtagRegistry.js.map +1 -0
- package/lib/packlets/iana/language-subtags/validate.d.ts.map +1 -0
- package/{iana → lib/packlets/iana}/language-subtags/validate.js +1 -1
- package/lib/packlets/iana/language-subtags/validate.js.map +1 -0
- package/lib/packlets/iana/language-tag-extensions/converters.d.ts +22 -0
- package/lib/packlets/iana/language-tag-extensions/converters.d.ts.map +1 -0
- package/lib/packlets/iana/language-tag-extensions/converters.js +86 -0
- package/lib/packlets/iana/language-tag-extensions/converters.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-tag-extensions/extensionsRegistry.d.ts +2 -2
- package/lib/packlets/iana/language-tag-extensions/extensionsRegistry.d.ts.map +1 -0
- package/lib/packlets/iana/language-tag-extensions/extensionsRegistry.js +105 -0
- package/lib/packlets/iana/language-tag-extensions/extensionsRegistry.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-tag-extensions/extensionsScope.d.ts +3 -3
- package/lib/packlets/iana/language-tag-extensions/extensionsScope.d.ts.map +1 -0
- package/lib/packlets/iana/language-tag-extensions/extensionsScope.js +77 -0
- package/lib/packlets/iana/language-tag-extensions/extensionsScope.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-tag-extensions/index.d.ts +3 -2
- package/lib/packlets/iana/language-tag-extensions/index.d.ts.map +1 -0
- package/{iana → lib/packlets/iana}/language-tag-extensions/index.js +6 -4
- package/lib/packlets/iana/language-tag-extensions/index.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-tag-extensions/jarConverters.d.ts +2 -3
- package/lib/packlets/iana/language-tag-extensions/jarConverters.d.ts.map +1 -0
- package/lib/packlets/iana/language-tag-extensions/jarConverters.js +79 -0
- package/lib/packlets/iana/language-tag-extensions/jarConverters.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-tag-extensions/model.d.ts +5 -6
- package/lib/packlets/iana/language-tag-extensions/model.d.ts.map +1 -0
- package/lib/packlets/iana/language-tag-extensions/model.js +25 -0
- package/lib/packlets/iana/language-tag-extensions/model.js.map +1 -0
- package/{iana → lib/packlets/iana}/language-tag-extensions/validate.d.ts +2 -2
- package/lib/packlets/iana/language-tag-extensions/validate.d.ts.map +1 -0
- package/lib/packlets/iana/language-tag-extensions/validate.js +36 -0
- package/lib/packlets/iana/language-tag-extensions/validate.js.map +1 -0
- package/lib/packlets/iana/languageRegistries.d.ts.map +1 -0
- package/lib/packlets/iana/languageRegistries.js +56 -0
- package/lib/packlets/iana/languageRegistries.js.map +1 -0
- package/lib/packlets/iana/model.d.ts.map +1 -0
- package/{iana → lib/packlets/iana}/model.js +1 -1
- package/lib/packlets/iana/model.js.map +1 -0
- package/lib/packlets/iana/validate.d.ts.map +1 -0
- package/{iana → lib/packlets/iana}/validate.js +1 -1
- package/lib/packlets/iana/validate.js.map +1 -0
- package/lib/packlets/unsd/areas.d.ts +29 -0
- package/lib/packlets/unsd/areas.d.ts.map +1 -0
- package/lib/packlets/unsd/areas.js +96 -0
- package/lib/packlets/unsd/areas.js.map +1 -0
- package/lib/packlets/unsd/common.d.ts +49 -0
- package/lib/packlets/unsd/common.d.ts.map +1 -0
- package/lib/packlets/unsd/common.js +24 -0
- package/lib/packlets/unsd/common.js.map +1 -0
- package/{unsd → lib/packlets/unsd}/csv/converters.d.ts +7 -4
- package/lib/packlets/unsd/csv/converters.d.ts.map +1 -0
- package/lib/packlets/unsd/csv/converters.js +78 -0
- package/lib/packlets/unsd/csv/converters.js.map +1 -0
- package/lib/packlets/unsd/csv/index.d.ts.map +1 -0
- package/{iana/jar → lib/packlets/unsd/csv}/index.js +1 -1
- package/lib/packlets/unsd/csv/index.js.map +1 -0
- package/lib/packlets/unsd/csv/model.d.ts +22 -0
- package/lib/packlets/unsd/csv/model.d.ts.map +1 -0
- package/lib/packlets/unsd/csv/model.js +24 -0
- package/lib/packlets/unsd/csv/model.js.map +1 -0
- package/lib/packlets/unsd/defaultRegistries.d.ts.map +1 -0
- package/lib/packlets/unsd/defaultRegistries.js +42 -0
- package/lib/packlets/unsd/defaultRegistries.js.map +1 -0
- package/{unsd → lib/packlets/unsd}/index.d.ts +2 -0
- package/lib/packlets/unsd/index.d.ts.map +1 -0
- package/lib/packlets/unsd/index.js +58 -0
- package/lib/packlets/unsd/index.js.map +1 -0
- package/{unsd → lib/packlets/unsd}/regionCodes.d.ts +7 -7
- package/lib/packlets/unsd/regionCodes.d.ts.map +1 -0
- package/lib/packlets/unsd/regionCodes.js +122 -0
- package/lib/packlets/unsd/regionCodes.js.map +1 -0
- package/lib/packlets/unsd/regions.d.ts +21 -0
- package/lib/packlets/unsd/regions.d.ts.map +1 -0
- package/lib/packlets/unsd/regions.js +77 -0
- package/lib/packlets/unsd/regions.js.map +1 -0
- package/lib/packlets/utils/index.d.ts.map +1 -0
- package/{utils → lib/packlets/utils}/index.js +1 -1
- package/lib/packlets/utils/index.js.map +1 -0
- package/lib/packlets/utils/jsonHelpers.d.ts.map +1 -0
- package/lib/packlets/utils/jsonHelpers.js +29 -0
- package/lib/packlets/utils/jsonHelpers.js.map +1 -0
- package/lib/packlets/utils/public.d.ts +2 -0
- package/lib/packlets/utils/public.d.ts.map +1 -0
- package/lib/packlets/utils/public.js +28 -0
- package/lib/packlets/utils/public.js.map +1 -0
- package/{utils → lib/packlets/utils}/validationHelpers.d.ts +9 -10
- package/lib/packlets/utils/validationHelpers.d.ts.map +1 -0
- package/lib/packlets/utils/validationHelpers.js +120 -0
- package/lib/packlets/utils/validationHelpers.js.map +1 -0
- package/package.json +73 -67
- package/bcp47/bcp47Subtags/converters.d.ts.map +0 -1
- package/bcp47/bcp47Subtags/index.d.ts.map +0 -1
- package/bcp47/bcp47Subtags/model.d.ts.map +0 -1
- package/bcp47/bcp47Subtags/model.js +0 -24
- package/bcp47/bcp47Subtags/validate.d.ts.map +0 -1
- package/bcp47/bcp47Subtags/validate.js +0 -74
- package/bcp47/common.d.ts.map +0 -1
- package/bcp47/common.js +0 -59
- package/bcp47/helpers.d.ts.map +0 -1
- package/bcp47/helpers.js +0 -103
- package/bcp47/index.d.ts +0 -7
- package/bcp47/index.d.ts.map +0 -1
- package/bcp47/index.js +0 -27
- package/bcp47/languageRegistryData.d.ts.map +0 -1
- package/bcp47/languageRegistryData.js +0 -209
- package/bcp47/languageTag.d.ts.map +0 -1
- package/bcp47/languageTag.js +0 -390
- package/bcp47/languageTagParser.d.ts.map +0 -1
- package/bcp47/languageTagParser.js +0 -302
- package/bcp47/match/chooser.d.ts.map +0 -1
- package/bcp47/match/chooser.js +0 -92
- package/bcp47/match/common.d.ts.map +0 -1
- package/bcp47/match/common.js +0 -51
- package/bcp47/match/index.d.ts +0 -4
- package/bcp47/match/index.d.ts.map +0 -1
- package/bcp47/match/index.js +0 -45
- package/bcp47/match/similarity.d.ts.map +0 -1
- package/bcp47/match/similarity.js +0 -230
- package/bcp47/normalization/baseNormalizer.d.ts +0 -36
- package/bcp47/normalization/baseNormalizer.d.ts.map +0 -1
- package/bcp47/normalization/baseNormalizer.js +0 -114
- package/bcp47/normalization/canonicalNormalizer.d.ts +0 -22
- package/bcp47/normalization/canonicalNormalizer.d.ts.map +0 -1
- package/bcp47/normalization/canonicalNormalizer.js +0 -113
- package/bcp47/normalization/common.d.ts.map +0 -1
- package/bcp47/normalization/common.js +0 -82
- package/bcp47/normalization/index.d.ts.map +0 -1
- package/bcp47/normalization/normalizeTag.d.ts.map +0 -1
- package/bcp47/normalization/normalizeTag.js +0 -105
- package/bcp47/normalization/preferredTagNormalizer.d.ts +0 -27
- package/bcp47/normalization/preferredTagNormalizer.d.ts.map +0 -1
- package/bcp47/normalization/preferredTagNormalizer.js +0 -209
- package/bcp47/overrides/converters.d.ts +0 -19
- package/bcp47/overrides/converters.d.ts.map +0 -1
- package/bcp47/overrides/converters.js +0 -75
- package/bcp47/overrides/defaultRegistries.d.ts.map +0 -1
- package/bcp47/overrides/defaultRegistries.js +0 -42
- package/bcp47/overrides/index.d.ts.map +0 -1
- package/bcp47/overrides/index.js +0 -30
- package/bcp47/overrides/model.d.ts +0 -11
- package/bcp47/overrides/model.d.ts.map +0 -1
- package/bcp47/overrides/model.js +0 -24
- package/bcp47/overrides/overridesRegistry.d.ts.map +0 -1
- package/bcp47/overrides/overridesRegistry.js +0 -112
- package/bcp47/validation/baseValidator.d.ts +0 -35
- package/bcp47/validation/baseValidator.d.ts.map +0 -1
- package/bcp47/validation/baseValidator.js +0 -111
- package/bcp47/validation/common.d.ts.map +0 -1
- package/bcp47/validation/common.js +0 -84
- package/bcp47/validation/index.d.ts.map +0 -1
- package/bcp47/validation/isCanonical.d.ts +0 -22
- package/bcp47/validation/isCanonical.d.ts.map +0 -1
- package/bcp47/validation/isCanonical.js +0 -104
- package/bcp47/validation/isInPreferredForm.d.ts.map +0 -1
- package/bcp47/validation/isInPreferredForm.js +0 -73
- package/bcp47/validation/isStrictlyValid.d.ts +0 -18
- package/bcp47/validation/isStrictlyValid.d.ts.map +0 -1
- package/bcp47/validation/isStrictlyValid.js +0 -98
- package/bcp47/validation/isValid.d.ts +0 -24
- package/bcp47/validation/isValid.d.ts.map +0 -1
- package/bcp47/validation/isValid.js +0 -115
- package/bcp47/validation/isWellFormed.d.ts +0 -22
- package/bcp47/validation/isWellFormed.d.ts.map +0 -1
- package/bcp47/validation/isWellFormed.js +0 -98
- package/bcp47/validation/validateTag.d.ts.map +0 -1
- package/bcp47/validation/validateTag.js +0 -159
- package/data/bcp/overrides.json +0 -21
- package/data/iana/language-subtags.json +0 -77295
- package/data/unsd/m49.json +0 -251
- package/iana/common/converters.d.ts.map +0 -1
- package/iana/common/converters.js +0 -84
- package/iana/common/model.d.ts.map +0 -1
- package/iana/common/model.js +0 -24
- package/iana/common/registeredItems.d.ts.map +0 -1
- package/iana/common/registeredItems.js +0 -124
- package/iana/common/utils.d.ts.map +0 -1
- package/iana/common/utils.js +0 -34
- package/iana/common/validate.d.ts.map +0 -1
- package/iana/common/validate.js +0 -61
- package/iana/converters.d.ts.map +0 -1
- package/iana/defaultRegistries.d.ts.map +0 -1
- package/iana/defaultRegistries.js +0 -42
- package/iana/index.d.ts.map +0 -1
- package/iana/index.js +0 -64
- package/iana/jar/converters.d.ts.map +0 -1
- package/iana/jar/index.d.ts.map +0 -1
- package/iana/jar/jarConverters.d.ts.map +0 -1
- package/iana/jar/jarConverters.js +0 -85
- package/iana/jar/jarModel.d.ts.map +0 -1
- package/iana/jar/jarModel.js +0 -24
- package/iana/jar/language-subtags/converters.d.ts.map +0 -1
- package/iana/jar/language-subtags/index.d.ts.map +0 -1
- package/iana/jar/language-subtags/model.d.ts.map +0 -1
- package/iana/jar/language-subtags/registry/converters.d.ts.map +0 -1
- package/iana/jar/language-subtags/registry/converters.js +0 -58
- package/iana/jar/language-subtags/registry/index.d.ts +0 -4
- package/iana/jar/language-subtags/registry/index.d.ts.map +0 -1
- package/iana/jar/language-subtags/registry/model.d.ts.map +0 -1
- package/iana/jar/language-subtags/registry/model.js +0 -41
- package/iana/jar/language-subtags/tags/converters.d.ts +0 -55
- package/iana/jar/language-subtags/tags/converters.d.ts.map +0 -1
- package/iana/jar/language-subtags/tags/converters.js +0 -128
- package/iana/jar/language-subtags/tags/index.d.ts +0 -5
- package/iana/jar/language-subtags/tags/index.d.ts.map +0 -1
- package/iana/jar/language-subtags/tags/model.d.ts.map +0 -1
- package/iana/jar/language-subtags/tags/model.js +0 -24
- package/iana/jar/language-subtags/tags/tagValidation.d.ts.map +0 -1
- package/iana/jar/language-subtags/tags/tagValidation.js +0 -70
- package/iana/jar/language-subtags/tags/validate.d.ts.map +0 -1
- package/iana/jar/language-subtags/tags/validate.js +0 -87
- package/iana/jar/model.d.ts.map +0 -1
- package/iana/language-subtags/common.d.ts.map +0 -1
- package/iana/language-subtags/common.js +0 -24
- package/iana/language-subtags/converters.d.ts +0 -52
- package/iana/language-subtags/converters.d.ts.map +0 -1
- package/iana/language-subtags/converters.js +0 -200
- package/iana/language-subtags/index.d.ts.map +0 -1
- package/iana/language-subtags/jarConverters.d.ts.map +0 -1
- package/iana/language-subtags/jarConverters.js +0 -213
- package/iana/language-subtags/model.d.ts.map +0 -1
- package/iana/language-subtags/model.js +0 -24
- package/iana/language-subtags/scope.d.ts.map +0 -1
- package/iana/language-subtags/scope.js +0 -179
- package/iana/language-subtags/subtagRegistry.d.ts.map +0 -1
- package/iana/language-subtags/subtagRegistry.js +0 -149
- package/iana/language-subtags/validate.d.ts.map +0 -1
- package/iana/language-tag-extensions/converters.d.ts +0 -23
- package/iana/language-tag-extensions/converters.d.ts.map +0 -1
- package/iana/language-tag-extensions/converters.js +0 -87
- package/iana/language-tag-extensions/extensionsRegistry.d.ts.map +0 -1
- package/iana/language-tag-extensions/extensionsRegistry.js +0 -104
- package/iana/language-tag-extensions/extensionsScope.d.ts.map +0 -1
- package/iana/language-tag-extensions/extensionsScope.js +0 -77
- package/iana/language-tag-extensions/index.d.ts.map +0 -1
- package/iana/language-tag-extensions/jarConverters.d.ts.map +0 -1
- package/iana/language-tag-extensions/jarConverters.js +0 -102
- package/iana/language-tag-extensions/model.d.ts.map +0 -1
- package/iana/language-tag-extensions/model.js +0 -24
- package/iana/language-tag-extensions/validate.d.ts.map +0 -1
- package/iana/language-tag-extensions/validate.js +0 -36
- package/iana/languageRegistries.d.ts.map +0 -1
- package/iana/languageRegistries.js +0 -56
- package/iana/model.d.ts.map +0 -1
- package/iana/validate.d.ts.map +0 -1
- package/index.d.ts +0 -6
- package/index.d.ts.map +0 -1
- package/index.js +0 -56
- package/unsd/areas.d.ts +0 -29
- package/unsd/areas.d.ts.map +0 -1
- package/unsd/areas.js +0 -96
- package/unsd/common.d.ts +0 -49
- package/unsd/common.d.ts.map +0 -1
- package/unsd/common.js +0 -24
- package/unsd/csv/converters.d.ts.map +0 -1
- package/unsd/csv/converters.js +0 -70
- package/unsd/csv/index.d.ts +0 -4
- package/unsd/csv/index.d.ts.map +0 -1
- package/unsd/csv/model.d.ts +0 -22
- package/unsd/csv/model.d.ts.map +0 -1
- package/unsd/csv/model.js +0 -24
- package/unsd/defaultRegistries.d.ts.map +0 -1
- package/unsd/defaultRegistries.js +0 -42
- package/unsd/index.d.ts.map +0 -1
- package/unsd/index.js +0 -44
- package/unsd/regionCodes.d.ts.map +0 -1
- package/unsd/regionCodes.js +0 -121
- package/unsd/regions.d.ts +0 -21
- package/unsd/regions.d.ts.map +0 -1
- package/unsd/regions.js +0 -77
- package/utils/index.d.ts.map +0 -1
- package/utils/jsonHelpers.d.ts.map +0 -1
- package/utils/jsonHelpers.js +0 -29
- package/utils/public.d.ts +0 -2
- package/utils/public.d.ts.map +0 -1
- package/utils/public.js +0 -28
- package/utils/validationHelpers.d.ts.map +0 -1
- package/utils/validationHelpers.js +0 -120
- /package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/converters.d.ts +0 -0
- /package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/index.d.ts +0 -0
- /package/{bcp47 → lib/packlets/bcp47}/match/common.d.ts +0 -0
- /package/{bcp47 → lib/packlets/bcp47}/match/similarity.d.ts +0 -0
- /package/{bcp47 → lib/packlets/bcp47}/normalization/index.d.ts +0 -0
- /package/{bcp47 → lib/packlets/bcp47}/overrides/defaultRegistries.d.ts +0 -0
- /package/{bcp47 → lib/packlets/bcp47}/overrides/index.d.ts +0 -0
- /package/{bcp47 → lib/packlets/bcp47}/validation/index.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/common/registeredItems.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/common/utils.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/converters.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/defaultRegistries.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/jar/converters.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/jar/language-subtags/converters.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/jar/language-subtags/model.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/jar/language-subtags/registry/converters.d.ts +0 -0
- /package/{iana/jar/language-subtags → lib/packlets/iana/jar/language-subtags/registry}/index.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/jar/language-subtags/tags/model.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/jar/language-subtags/tags/tagValidation.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/jar/language-subtags/tags/validate.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/jar/model.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/language-subtags/common.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/language-subtags/validate.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/languageRegistries.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/model.d.ts +0 -0
- /package/{iana → lib/packlets/iana}/validate.d.ts +0 -0
- /package/{iana/jar → lib/packlets/unsd/csv}/index.d.ts +0 -0
- /package/{unsd → lib/packlets/unsd}/defaultRegistries.d.ts +0 -0
- /package/{utils → lib/packlets/utils}/index.d.ts +0 -0
- /package/{utils → lib/packlets/utils}/jsonHelpers.d.ts +0 -0
package/bcp47/languageTag.js
DELETED
|
@@ -1,390 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2022 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 (mod) {
|
|
40
|
-
if (mod && mod.__esModule) return mod;
|
|
41
|
-
var result = {};
|
|
42
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
43
|
-
__setModuleDefault(result, mod);
|
|
44
|
-
return result;
|
|
45
|
-
};
|
|
46
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
-
exports.LanguageTag = void 0;
|
|
48
|
-
const Iana = __importStar(require("../iana"));
|
|
49
|
-
const ts_utils_1 = require("@fgv/ts-utils");
|
|
50
|
-
const common_1 = require("./common");
|
|
51
|
-
const common_2 = require("./normalization/common");
|
|
52
|
-
const common_3 = require("./validation/common");
|
|
53
|
-
const languageRegistryData_1 = require("./languageRegistryData");
|
|
54
|
-
const languageTagParser_1 = require("./languageTagParser");
|
|
55
|
-
const normalization_1 = require("./normalization");
|
|
56
|
-
const validation_1 = require("./validation");
|
|
57
|
-
/**
|
|
58
|
-
* Represents a single BCP-47 language tag.
|
|
59
|
-
* @public
|
|
60
|
-
*/
|
|
61
|
-
class LanguageTag {
|
|
62
|
-
/**
|
|
63
|
-
* Constructs a {@link Bcp47.LanguageTag | LanguageTag }.
|
|
64
|
-
* @param subtags - The {@link Bcp47.Subtags | subtags } from
|
|
65
|
-
* which the tag is constructed.
|
|
66
|
-
* @param validity - Known {@link Bcp47.TagValidity | validation level} of the
|
|
67
|
-
* supplied subtags.
|
|
68
|
-
* @param normalization - Known {@link Bcp47.TagNormalization | normalization level}
|
|
69
|
-
* of the supplied subtags.
|
|
70
|
-
* @param iana - The {@link Iana.LanguageRegistries} used to validate and normalize
|
|
71
|
-
* this tag.
|
|
72
|
-
* @internal
|
|
73
|
-
*/
|
|
74
|
-
constructor(subtags, validity, normalization, iana) {
|
|
75
|
-
this.subtags = Object.freeze({ ...subtags });
|
|
76
|
-
this._normalization = normalization;
|
|
77
|
-
this._validity = validity;
|
|
78
|
-
this.tag = (0, common_1.subtagsToString)(subtags);
|
|
79
|
-
this._iana = iana;
|
|
80
|
-
this.registry = new languageRegistryData_1.LanguageRegistryData(this.subtags, iana);
|
|
81
|
-
if (validity === 'strictly-valid') {
|
|
82
|
-
this._isStrictlyValid = true;
|
|
83
|
-
this._isValid = true;
|
|
84
|
-
}
|
|
85
|
-
else if (validity === 'valid') {
|
|
86
|
-
this._isValid = true;
|
|
87
|
-
}
|
|
88
|
-
if (normalization === 'preferred') {
|
|
89
|
-
this._isPreferred = true;
|
|
90
|
-
this._isCanonical = true;
|
|
91
|
-
}
|
|
92
|
-
else if (normalization === 'canonical') {
|
|
93
|
-
this._isCanonical = true;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* The effective script of this language tag, if known.
|
|
98
|
-
* The effective script is the script subtag in the tag itself,
|
|
99
|
-
* if present, or the `Suppress-Script` defined in the
|
|
100
|
-
* {@link https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry | IANA subtag registry}
|
|
101
|
-
* for the primary language of this tag. Can be `undefined`
|
|
102
|
-
* if neither the tag nor the IANA registry define a script.
|
|
103
|
-
*/
|
|
104
|
-
get effectiveScript() {
|
|
105
|
-
var _a;
|
|
106
|
-
return (_a = this.subtags.script) !== null && _a !== void 0 ? _a : this.getSuppressedScript();
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Determines if this tag represents the special `undetermined` language.
|
|
110
|
-
*/
|
|
111
|
-
get isUndetermined() {
|
|
112
|
-
var _a;
|
|
113
|
-
// istanbul ignore next
|
|
114
|
-
return ((_a = this.subtags.primaryLanguage) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === common_1.UndeterminedLanguage;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Whether this language tag is valid.
|
|
118
|
-
*/
|
|
119
|
-
get isValid() {
|
|
120
|
-
if (this._isValid === undefined) {
|
|
121
|
-
this._isValid = validation_1.ValidateTag.isValid(this.subtags);
|
|
122
|
-
if (this._isValid) {
|
|
123
|
-
this._validity = 'valid';
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return this._isValid === true;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Whether if this language tag is strictly valid.
|
|
130
|
-
*/
|
|
131
|
-
get isStrictlyValid() {
|
|
132
|
-
if (this._isStrictlyValid === undefined) {
|
|
133
|
-
this._isStrictlyValid = validation_1.ValidateTag.isStrictlyValid(this.subtags);
|
|
134
|
-
if (this._isStrictlyValid) {
|
|
135
|
-
this._validity = 'strictly-valid';
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return this._isStrictlyValid === true;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Whether this language tag is in canonical form.
|
|
142
|
-
*/
|
|
143
|
-
get isCanonical() {
|
|
144
|
-
if (this._isCanonical === undefined) {
|
|
145
|
-
this._isCanonical = validation_1.ValidateTag.isCanonical(this.subtags);
|
|
146
|
-
if (this._isCanonical) {
|
|
147
|
-
this._normalization = 'canonical';
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return this._isCanonical === true;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Whether this language tag is in preferred form.
|
|
154
|
-
*/
|
|
155
|
-
get isPreferred() {
|
|
156
|
-
if (this._isPreferred === undefined) {
|
|
157
|
-
this._isPreferred = validation_1.ValidateTag.isInPreferredForm(this.subtags);
|
|
158
|
-
if (this._isPreferred) {
|
|
159
|
-
this._normalization = 'preferred';
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return this._isPreferred === true;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Whether this language tag is a grandfathered tag.
|
|
166
|
-
*/
|
|
167
|
-
get isGrandfathered() {
|
|
168
|
-
return this.subtags.grandfathered !== undefined;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Gets a text description of this tag.
|
|
172
|
-
*/
|
|
173
|
-
get description() {
|
|
174
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
175
|
-
const parts = [];
|
|
176
|
-
if (!this.subtags.grandfathered) {
|
|
177
|
-
if (this.registry.primaryLanguage || this.subtags.primaryLanguage) {
|
|
178
|
-
parts.push(((_b = (_a = this.registry.primaryLanguage) === null || _a === void 0 ? void 0 : _a.description[0]) !== null && _b !== void 0 ? _b : this.subtags.primaryLanguage));
|
|
179
|
-
}
|
|
180
|
-
if (this.registry.extlangs) {
|
|
181
|
-
for (const e of this.registry.extlangs) {
|
|
182
|
-
parts.push(`/ ${(_d = (_c = e.registry) === null || _c === void 0 ? void 0 : _c.description[0]) !== null && _d !== void 0 ? _d : e.subtag}`);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
if (this.subtags.script) {
|
|
186
|
-
parts.push(`in ${(_f = (_e = this.registry.script) === null || _e === void 0 ? void 0 : _e.description[0]) !== null && _f !== void 0 ? _f : this.subtags.script} script`);
|
|
187
|
-
}
|
|
188
|
-
if (this.subtags.region) {
|
|
189
|
-
parts.push(`as spoken in ${(_h = (_g = this.registry.region) === null || _g === void 0 ? void 0 : _g.description[0]) !== null && _h !== void 0 ? _h : this.subtags.region}`);
|
|
190
|
-
}
|
|
191
|
-
if (this.registry.variants && this.registry.variants.length > 0) {
|
|
192
|
-
for (const e of this.registry.variants) {
|
|
193
|
-
parts.push(`(${(_k = (_j = e.registry) === null || _j === void 0 ? void 0 : _j.description[0]) !== null && _k !== void 0 ? _k : e.subtag})`);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
if (this.registry.extensions && this.registry.extensions.length > 0) {
|
|
197
|
-
for (const e of this.registry.extensions) {
|
|
198
|
-
parts.push(`(${(_m = (_l = e.registry) === null || _l === void 0 ? void 0 : _l.description[0]) !== null && _m !== void 0 ? _m : `-${e.singleton}`} "${e.value}")`);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
if (this.subtags.privateUse && this.subtags.privateUse.length > 0) {
|
|
202
|
-
parts.push(`(-x "${this.subtags.privateUse.join('-')}")`);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
parts.push(`${this.tag} (grandfathered)`);
|
|
207
|
-
}
|
|
208
|
-
return parts.join(' ');
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Creates a new {@link Bcp47.LanguageTag | language tag} from a supplied `string` tag
|
|
212
|
-
* using optional configuration, if supplied.
|
|
213
|
-
* @param tag - The `string` tag from which the {@link Bcp47.LanguageTag | language tag}
|
|
214
|
-
* is te be constructed.
|
|
215
|
-
* @param options - (optional) set of {@link Bcp47.LanguageTagInitOptions | init options}
|
|
216
|
-
* to guide the validation and normalization of this tag.
|
|
217
|
-
* @returns `Success` with the new {@link Bcp47.LanguageTag | language tag} or `Failure`
|
|
218
|
-
* with details if an error occurs.
|
|
219
|
-
*/
|
|
220
|
-
static createFromTag(tag, options) {
|
|
221
|
-
options = this._getOptions(options);
|
|
222
|
-
return languageTagParser_1.LanguageTagParser.parse(tag, options.iana).onSuccess((subtags) => {
|
|
223
|
-
return this._createTransformed(subtags, 'unknown', 'unknown', options);
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Creates a new {@link Bcp47.LanguageTag | language tag} from a supplied
|
|
228
|
-
* {@link Bcp47.Subtags | subtags} using optional configuration,
|
|
229
|
-
* if supplied.
|
|
230
|
-
* @param tag - The {@link Bcp47.Subtags | subtags} from which the
|
|
231
|
-
* {@link Bcp47.LanguageTag | language tag} is te be constructed.
|
|
232
|
-
* @param options - (optional) set of {@link Bcp47.LanguageTagInitOptions | init options}
|
|
233
|
-
* to guide the validation and normalization of this tag.
|
|
234
|
-
* @returns `Success` with the new {@link Bcp47.LanguageTag | language tag} or `Failure`
|
|
235
|
-
* with details if an error occurs.
|
|
236
|
-
*/
|
|
237
|
-
static createFromSubtags(subtags, options) {
|
|
238
|
-
return this._createTransformed(subtags, 'unknown', 'unknown', options);
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Creates a new {@link Bcp47.LanguageTag | language tag} from a supplied `string`
|
|
242
|
-
* tag or {@link Bcp47.Subtags | subtags} using optional configuration,
|
|
243
|
-
* if supplied.
|
|
244
|
-
* @param from - The `string` tag or {@link Bcp47.Subtags | subtags} from
|
|
245
|
-
* which the {@link Bcp47.LanguageTag | language tag} is te be constructed.
|
|
246
|
-
* @param options - (optional) set of {@link Bcp47.LanguageTagInitOptions | init options}
|
|
247
|
-
* to guide the validation and normalization of this tag.
|
|
248
|
-
* @returns `Success` with the new {@link Bcp47.LanguageTag | language tag} or `Failure`
|
|
249
|
-
* with details if an error occurs.
|
|
250
|
-
*/
|
|
251
|
-
static create(from, options) {
|
|
252
|
-
if (typeof from === 'string') {
|
|
253
|
-
return this.createFromTag(from, options);
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
return this.createFromSubtags(from, options);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Constructs a new {@link Bcp47.LanguageTag | language tag} by applying appropriate transformations
|
|
261
|
-
* to as supplied {@link Bcp47.Subtags | Bcp47.Subtags}.
|
|
262
|
-
* @param subtags - The {@link Bcp47.Subtags | subtags} which represent the tag.
|
|
263
|
-
* @param fromValidity - The {@link Bcp47.TagValidity | validation level} of the supplied subtags.
|
|
264
|
-
* @param fromNormalization - The {@link Bcp47.TagNormalization | normalization level} fo the
|
|
265
|
-
* supplied subtags.
|
|
266
|
-
* @param partialOptions - Any {@link Bcp47.LanguageTagInitOptions | initialization options}.
|
|
267
|
-
* @returns `Success` with the corresponding {@link Bcp47.LanguageTag | language tag} or `Failure`
|
|
268
|
-
* with details if an error occurs.
|
|
269
|
-
* @internal
|
|
270
|
-
*/
|
|
271
|
-
static _createTransformed(subtags, fromValidity, fromNormalization, partialOptions) {
|
|
272
|
-
const options = this._getOptions(partialOptions);
|
|
273
|
-
return validation_1.ValidateTag.validateSubtags(subtags, options.validity, fromValidity)
|
|
274
|
-
.onSuccess(() => {
|
|
275
|
-
return normalization_1.NormalizeTag.normalizeSubtags(subtags, options.normalization, fromNormalization);
|
|
276
|
-
})
|
|
277
|
-
.onSuccess((normalized) => {
|
|
278
|
-
const validity = (0, common_3.mostValid)(fromValidity, options.validity);
|
|
279
|
-
const normalization = (0, common_2.mostNormalized)(fromNormalization, options.normalization);
|
|
280
|
-
return (0, ts_utils_1.captureResult)(() => new LanguageTag(normalized, validity, normalization, options.iana));
|
|
281
|
-
});
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Gets a fully-specified {@link Bcp47.LanguageTagInitOptions} from partial or undefined
|
|
285
|
-
* options, substituting defaults as appropriate.
|
|
286
|
-
* @param options - The {@link Bcp47.LanguageTagInitOptions} to be expanded, or `undefined`
|
|
287
|
-
* for default options.
|
|
288
|
-
* @returns Fully-specified {@link Bcp47.LanguageTagInitOptions | init options}.
|
|
289
|
-
* @internal
|
|
290
|
-
*/
|
|
291
|
-
static _getOptions(options) {
|
|
292
|
-
var _a, _b, _c;
|
|
293
|
-
return {
|
|
294
|
-
iana: (_a = options === null || options === void 0 ? void 0 : options.iana) !== null && _a !== void 0 ? _a : Iana.DefaultRegistries.languageRegistries,
|
|
295
|
-
validity: (_b = options === null || options === void 0 ? void 0 : options.validity) !== null && _b !== void 0 ? _b : 'well-formed',
|
|
296
|
-
normalization: (_c = options === null || options === void 0 ? void 0 : options.normalization) !== null && _c !== void 0 ? _c : 'none',
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* Returns the `Suppress-Script` value defined for the primary language of this tag,
|
|
301
|
-
* regardless of whether a different script is defined in this subtag.
|
|
302
|
-
* @returns The suppress-script defined for the primary language, or undefined if
|
|
303
|
-
* the primary language is invalid or has no defined suppressed script.
|
|
304
|
-
*/
|
|
305
|
-
getSuppressedScript() {
|
|
306
|
-
if (this._suppressedScript === undefined) {
|
|
307
|
-
this._suppressedScript = false;
|
|
308
|
-
if (this.subtags.primaryLanguage) {
|
|
309
|
-
const language = this._iana.subtags.languages.tryGet(this.subtags.primaryLanguage);
|
|
310
|
-
if ((language === null || language === void 0 ? void 0 : language.suppressScript) !== undefined) {
|
|
311
|
-
this._suppressedScript = language.suppressScript;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
return this._suppressedScript ? this._suppressedScript : undefined;
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Gets a confirmed valid representation of this language tag.
|
|
319
|
-
* @returns `Success` with a valid representation of this {@link Bcp47.LanguageTag | language tag},
|
|
320
|
-
* or `Failure` with details if the tag cannot be validated.
|
|
321
|
-
*/
|
|
322
|
-
toValid() {
|
|
323
|
-
if (this.isValid) {
|
|
324
|
-
return (0, ts_utils_1.succeed)(this);
|
|
325
|
-
}
|
|
326
|
-
const options = {
|
|
327
|
-
iana: this._iana,
|
|
328
|
-
validity: 'valid',
|
|
329
|
-
normalization: this._normalization,
|
|
330
|
-
};
|
|
331
|
-
return LanguageTag._createTransformed(this.subtags, this._validity, this._normalization, options);
|
|
332
|
-
}
|
|
333
|
-
/**
|
|
334
|
-
* Gets a confirmed strictly valid representation of this language tag.
|
|
335
|
-
* @returns `Success` with a strictly valid representation of this {@link Bcp47.LanguageTag | language tag},
|
|
336
|
-
* or `Failure` with details if the tag cannot be strictly validated.
|
|
337
|
-
*/
|
|
338
|
-
toStrictlyValid() {
|
|
339
|
-
if (this.isStrictlyValid) {
|
|
340
|
-
return (0, ts_utils_1.succeed)(this);
|
|
341
|
-
}
|
|
342
|
-
const options = {
|
|
343
|
-
iana: this._iana,
|
|
344
|
-
validity: 'strictly-valid',
|
|
345
|
-
normalization: this._normalization,
|
|
346
|
-
};
|
|
347
|
-
return LanguageTag._createTransformed(this.subtags, this._validity, this._normalization, options);
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Gets a confirmed canonical representation of this language tag.
|
|
351
|
-
* @returns `Success` with a canonical representation of this {@link Bcp47.LanguageTag | language tag},
|
|
352
|
-
* or `Failure` with details if the tag cannot be normalized to canonical form.
|
|
353
|
-
*/
|
|
354
|
-
toCanonical() {
|
|
355
|
-
if (this.isCanonical) {
|
|
356
|
-
return (0, ts_utils_1.succeed)(this);
|
|
357
|
-
}
|
|
358
|
-
const options = {
|
|
359
|
-
iana: this._iana,
|
|
360
|
-
validity: this._validity,
|
|
361
|
-
normalization: 'canonical',
|
|
362
|
-
};
|
|
363
|
-
return LanguageTag._createTransformed(this.subtags, this._validity, this._normalization, options);
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* Gets a confirmed preferred representation of this language tag.
|
|
367
|
-
* @returns `Success` with a preferred representation of this {@link Bcp47.LanguageTag | language tag},
|
|
368
|
-
* or `Failure` with details if the tag cannot be normalized to preferred form.
|
|
369
|
-
*/
|
|
370
|
-
toPreferred() {
|
|
371
|
-
if (this.isPreferred) {
|
|
372
|
-
return (0, ts_utils_1.succeed)(this);
|
|
373
|
-
}
|
|
374
|
-
const options = {
|
|
375
|
-
iana: this._iana,
|
|
376
|
-
validity: 'valid',
|
|
377
|
-
normalization: 'preferred',
|
|
378
|
-
};
|
|
379
|
-
return LanguageTag._createTransformed(this.subtags, this._validity, this._normalization, options);
|
|
380
|
-
}
|
|
381
|
-
/**
|
|
382
|
-
* Gets a string representation of this language tag.
|
|
383
|
-
* @returns A string representation of this language tag.
|
|
384
|
-
*/
|
|
385
|
-
toString() {
|
|
386
|
-
return this.tag;
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
exports.LanguageTag = LanguageTag;
|
|
390
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VUYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmNwNDcvbGFuZ3VhZ2VUYWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCw4Q0FBZ0M7QUFFaEMsNENBQStEO0FBQy9ELHFDQUEwRTtBQUMxRSxtREFBMEU7QUFDMUUsZ0RBQTZEO0FBRTdELGlFQUE4RDtBQUM5RCwyREFBd0Q7QUFDeEQsbURBQStDO0FBRS9DLDZDQUEyQztBQXNCM0M7OztHQUdHO0FBQ0gsTUFBYSxXQUFXO0lBMERwQjs7Ozs7Ozs7Ozs7T0FXRztJQUNILFlBQXNCLE9BQWdCLEVBQUUsUUFBcUIsRUFBRSxhQUErQixFQUFFLElBQTZCO1FBQ3pILElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUEsd0JBQWUsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksMkNBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3RCxJQUFJLFFBQVEsS0FBSyxnQkFBZ0IsRUFBRTtZQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO2FBQU0sSUFBSSxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO1FB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VztRQUNkLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPLElBQUEsa0JBQU8sRUFBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjtRQUNELE1BQU0sT0FBTyxHQUEyQjtZQUNwQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3hCLGFBQWEsRUFBRSxXQUFXO1NBQzdCLENBQUM7UUFDRixPQUFPLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTyxJQUFBLGtCQUFPLEVBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEI7UUFDRCxNQUFNLE9BQU8sR0FBMkI7WUFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2hCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxXQUFXO1NBQzdCLENBQUM7UUFDRixPQUFPLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFuWkQsa0NBbVpDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMiBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCAqIGFzIElhbmEgZnJvbSAnLi4vaWFuYSc7XG5cbmltcG9ydCB7IFJlc3VsdCwgY2FwdHVyZVJlc3VsdCwgc3VjY2VlZCB9IGZyb20gJ0BmZ3YvdHMtdXRpbHMnO1xuaW1wb3J0IHsgU3VidGFncywgVW5kZXRlcm1pbmVkTGFuZ3VhZ2UsIHN1YnRhZ3NUb1N0cmluZyB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IFRhZ05vcm1hbGl6YXRpb24sIG1vc3ROb3JtYWxpemVkIH0gZnJvbSAnLi9ub3JtYWxpemF0aW9uL2NvbW1vbic7XG5pbXBvcnQgeyBUYWdWYWxpZGl0eSwgbW9zdFZhbGlkIH0gZnJvbSAnLi92YWxpZGF0aW9uL2NvbW1vbic7XG5cbmltcG9ydCB7IExhbmd1YWdlUmVnaXN0cnlEYXRhIH0gZnJvbSAnLi9sYW5ndWFnZVJlZ2lzdHJ5RGF0YSc7XG5pbXBvcnQgeyBMYW5ndWFnZVRhZ1BhcnNlciB9IGZyb20gJy4vbGFuZ3VhZ2VUYWdQYXJzZXInO1xuaW1wb3J0IHsgTm9ybWFsaXplVGFnIH0gZnJvbSAnLi9ub3JtYWxpemF0aW9uJztcbmltcG9ydCB7IFNjcmlwdFN1YnRhZyB9IGZyb20gJy4uL2lhbmEvbGFuZ3VhZ2Utc3VidGFncyc7XG5pbXBvcnQgeyBWYWxpZGF0ZVRhZyB9IGZyb20gJy4vdmFsaWRhdGlvbic7XG5cbi8qKlxuICogSW5pdGlhbGl6YXRpb24gb3B0aW9ucyBmb3IgcGFyc2luZyBvciBjcmVhdGlvbiBvZiB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VUYWcgfCBsYW5ndWFnZSB0YWd9IG9iamVjdHMuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2VUYWdJbml0T3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogRGVzaXJlZCB7QGxpbmsgQmNwNDcuVGFnVmFsaWRpdHkgfCB2YWxpZGl0eSBsZXZlbH0gKG9wdGlvbmFsKS5cbiAgICAgKi9cbiAgICB2YWxpZGl0eT86IFRhZ1ZhbGlkaXR5O1xuICAgIC8qKlxuICAgICAqIERlc2lyZWQge0BsaW5rIEJjcDQ3LlRhZ05vcm1hbGl6YXRpb24gfCBub3JtYWxpemF0aW9uIGxldmVsfSAob3B0aW9uYWwpLlxuICAgICAqL1xuICAgIG5vcm1hbGl6YXRpb24/OiBUYWdOb3JtYWxpemF0aW9uO1xuICAgIC8qKlxuICAgICAqIFRoZSB7QGxpbmsgSWFuYS5MYW5ndWFnZVJlZ2lzdHJpZXMgfCBJQU5BIGxhbmd1YWdlIHN1YnRhZyBhbmQgZXh0ZW5zaW9uIHJlZ2lzdHJpZXN9IHRvXG4gICAgICogYmUgdXNlZCBmb3IgdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cbiAgICAgKi9cbiAgICBpYW5hPzogSWFuYS5MYW5ndWFnZVJlZ2lzdHJpZXM7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSBCQ1AtNDcgbGFuZ3VhZ2UgdGFnLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VUYWcge1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRpdmlkdWFsIHtAbGluayBCY3A0Ny5TdWJ0YWdzIHwgc3VidGFnc30gZm9yXG4gICAgICogdGhpcyBsYW5ndWFnZSB0YWcuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHN1YnRhZ3M6IFJlYWRvbmx5PFN1YnRhZ3M+O1xuXG4gICAgLyoqXG4gICAgICogQSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBsYW5ndWFnZSB0YWcuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHRhZzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRGV0YWlscyBhYm91dCB0aGlzIGxhbmd1YWdlIHRhZyBmcm9tIHRoZSBJQU5BIGxhbmd1YWdlXG4gICAgICogcmVnaXN0cmllcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVnaXN0cnk6IExhbmd1YWdlUmVnaXN0cnlEYXRhO1xuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9pYW5hOiBJYW5hLkxhbmd1YWdlUmVnaXN0cmllcztcblxuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdmFsaWRpdHk6IFRhZ1ZhbGlkaXR5O1xuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9ub3JtYWxpemF0aW9uOiBUYWdOb3JtYWxpemF0aW9uO1xuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pc1ZhbGlkOiB1bmRlZmluZWQgfCBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pc1N0cmljdGx5VmFsaWQ6IHVuZGVmaW5lZCB8IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2lzQ2Fub25pY2FsOiB1bmRlZmluZWQgfCBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pc1ByZWZlcnJlZDogdW5kZWZpbmVkIHwgYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfc3VwcHJlc3NlZFNjcmlwdDogdW5kZWZpbmVkIHwgU2NyaXB0U3VidGFnIHwgZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RzIGEge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnIHwgTGFuZ3VhZ2VUYWcgfS5cbiAgICAgKiBAcGFyYW0gc3VidGFncyAtIFRoZSB7QGxpbmsgQmNwNDcuU3VidGFncyB8IHN1YnRhZ3MgfSBmcm9tXG4gICAgICogd2hpY2ggdGhlIHRhZyBpcyBjb25zdHJ1Y3RlZC5cbiAgICAgKiBAcGFyYW0gdmFsaWRpdHkgLSBLbm93biB7QGxpbmsgQmNwNDcuVGFnVmFsaWRpdHkgfCB2YWxpZGF0aW9uIGxldmVsfSBvZiB0aGVcbiAgICAgKiBzdXBwbGllZCBzdWJ0YWdzLlxuICAgICAqIEBwYXJhbSBub3JtYWxpemF0aW9uIC0gS25vd24ge0BsaW5rIEJjcDQ3LlRhZ05vcm1hbGl6YXRpb24gfCBub3JtYWxpemF0aW9uIGxldmVsfVxuICAgICAqIG9mIHRoZSBzdXBwbGllZCBzdWJ0YWdzLlxuICAgICAqIEBwYXJhbSBpYW5hIC0gVGhlIHtAbGluayBJYW5hLkxhbmd1YWdlUmVnaXN0cmllc30gdXNlZCB0byB2YWxpZGF0ZSBhbmQgbm9ybWFsaXplXG4gICAgICogdGhpcyB0YWcuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHN1YnRhZ3M6IFN1YnRhZ3MsIHZhbGlkaXR5OiBUYWdWYWxpZGl0eSwgbm9ybWFsaXphdGlvbjogVGFnTm9ybWFsaXphdGlvbiwgaWFuYTogSWFuYS5MYW5ndWFnZVJlZ2lzdHJpZXMpIHtcbiAgICAgICAgdGhpcy5zdWJ0YWdzID0gT2JqZWN0LmZyZWV6ZSh7IC4uLnN1YnRhZ3MgfSk7XG4gICAgICAgIHRoaXMuX25vcm1hbGl6YXRpb24gPSBub3JtYWxpemF0aW9uO1xuICAgICAgICB0aGlzLl92YWxpZGl0eSA9IHZhbGlkaXR5O1xuICAgICAgICB0aGlzLnRhZyA9IHN1YnRhZ3NUb1N0cmluZyhzdWJ0YWdzKTtcbiAgICAgICAgdGhpcy5faWFuYSA9IGlhbmE7XG4gICAgICAgIHRoaXMucmVnaXN0cnkgPSBuZXcgTGFuZ3VhZ2VSZWdpc3RyeURhdGEodGhpcy5zdWJ0YWdzLCBpYW5hKTtcblxuICAgICAgICBpZiAodmFsaWRpdHkgPT09ICdzdHJpY3RseS12YWxpZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzU3RyaWN0bHlWYWxpZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWxpZGl0eSA9PT0gJ3ZhbGlkJykge1xuICAgICAgICAgICAgdGhpcy5faXNWYWxpZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9ybWFsaXphdGlvbiA9PT0gJ3ByZWZlcnJlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzUHJlZmVycmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2lzQ2Fub25pY2FsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChub3JtYWxpemF0aW9uID09PSAnY2Fub25pY2FsJykge1xuICAgICAgICAgICAgdGhpcy5faXNDYW5vbmljYWwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGVmZmVjdGl2ZSBzY3JpcHQgb2YgdGhpcyBsYW5ndWFnZSB0YWcsIGlmIGtub3duLlxuICAgICAqIFRoZSBlZmZlY3RpdmUgc2NyaXB0IGlzIHRoZSBzY3JpcHQgc3VidGFnIGluIHRoZSB0YWcgaXRzZWxmLFxuICAgICAqIGlmIHByZXNlbnQsIG9yIHRoZSBgU3VwcHJlc3MtU2NyaXB0YCBkZWZpbmVkIGluIHRoZVxuICAgICAqIHtAbGluayBodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9sYW5ndWFnZS1zdWJ0YWctcmVnaXN0cnkvbGFuZ3VhZ2Utc3VidGFnLXJlZ2lzdHJ5IHwgSUFOQSBzdWJ0YWcgcmVnaXN0cnl9XG4gICAgICogZm9yIHRoZSBwcmltYXJ5IGxhbmd1YWdlIG9mIHRoaXMgdGFnLiAgQ2FuIGJlIGB1bmRlZmluZWRgXG4gICAgICogaWYgbmVpdGhlciB0aGUgdGFnIG5vciB0aGUgSUFOQSByZWdpc3RyeSBkZWZpbmUgYSBzY3JpcHQuXG4gICAgICovXG4gICAgcHVibGljIGdldCBlZmZlY3RpdmVTY3JpcHQoKTogU2NyaXB0U3VidGFnIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VidGFncy5zY3JpcHQgPz8gdGhpcy5nZXRTdXBwcmVzc2VkU2NyaXB0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIHRhZyByZXByZXNlbnRzIHRoZSBzcGVjaWFsIGB1bmRldGVybWluZWRgIGxhbmd1YWdlLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNVbmRldGVybWluZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIHJldHVybiB0aGlzLnN1YnRhZ3MucHJpbWFyeUxhbmd1YWdlPy50b0xvd2VyQ2FzZSgpID09PSBVbmRldGVybWluZWRMYW5ndWFnZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoaXMgbGFuZ3VhZ2UgdGFnIGlzIHZhbGlkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzVmFsaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5faXNWYWxpZCA9IFZhbGlkYXRlVGFnLmlzVmFsaWQodGhpcy5zdWJ0YWdzKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsaWRpdHkgPSAndmFsaWQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZhbGlkID09PSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgaWYgdGhpcyBsYW5ndWFnZSB0YWcgaXMgc3RyaWN0bHkgdmFsaWQuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc1N0cmljdGx5VmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9pc1N0cmljdGx5VmFsaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5faXNTdHJpY3RseVZhbGlkID0gVmFsaWRhdGVUYWcuaXNTdHJpY3RseVZhbGlkKHRoaXMuc3VidGFncyk7XG4gICAgICAgICAgICBpZiAodGhpcy5faXNTdHJpY3RseVZhbGlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsaWRpdHkgPSAnc3RyaWN0bHktdmFsaWQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1N0cmljdGx5VmFsaWQgPT09IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGlzIGxhbmd1YWdlIHRhZyBpcyBpbiBjYW5vbmljYWwgZm9ybS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzQ2Fub25pY2FsKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5faXNDYW5vbmljYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5faXNDYW5vbmljYWwgPSBWYWxpZGF0ZVRhZy5pc0Nhbm9uaWNhbCh0aGlzLnN1YnRhZ3MpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzQ2Fub25pY2FsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbm9ybWFsaXphdGlvbiA9ICdjYW5vbmljYWwnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0Nhbm9uaWNhbCA9PT0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoaXMgbGFuZ3VhZ2UgdGFnIGlzIGluIHByZWZlcnJlZCBmb3JtLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNQcmVmZXJyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9pc1ByZWZlcnJlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9pc1ByZWZlcnJlZCA9IFZhbGlkYXRlVGFnLmlzSW5QcmVmZXJyZWRGb3JtKHRoaXMuc3VidGFncyk7XG4gICAgICAgICAgICBpZiAodGhpcy5faXNQcmVmZXJyZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3JtYWxpemF0aW9uID0gJ3ByZWZlcnJlZCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUHJlZmVycmVkID09PSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhpcyBsYW5ndWFnZSB0YWcgaXMgYSBncmFuZGZhdGhlcmVkIHRhZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzR3JhbmRmYXRoZXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VidGFncy5ncmFuZGZhdGhlcmVkICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHRleHQgZGVzY3JpcHRpb24gb2YgdGhpcyB0YWcuXG4gICAgICovXG4gICAgcHVibGljIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgaWYgKCF0aGlzLnN1YnRhZ3MuZ3JhbmRmYXRoZXJlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucmVnaXN0cnkucHJpbWFyeUxhbmd1YWdlIHx8IHRoaXMuc3VidGFncy5wcmltYXJ5TGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICBwYXJ0cy5wdXNoKCh0aGlzLnJlZ2lzdHJ5LnByaW1hcnlMYW5ndWFnZT8uZGVzY3JpcHRpb25bMF0gPz8gdGhpcy5zdWJ0YWdzLnByaW1hcnlMYW5ndWFnZSkhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnJlZ2lzdHJ5LmV4dGxhbmdzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIHRoaXMucmVnaXN0cnkuZXh0bGFuZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydHMucHVzaChgLyAke2UucmVnaXN0cnk/LmRlc2NyaXB0aW9uWzBdID8/IGUuc3VidGFnfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnN1YnRhZ3Muc2NyaXB0KSB7XG4gICAgICAgICAgICAgICAgcGFydHMucHVzaChgaW4gJHt0aGlzLnJlZ2lzdHJ5LnNjcmlwdD8uZGVzY3JpcHRpb25bMF0gPz8gdGhpcy5zdWJ0YWdzLnNjcmlwdH0gc2NyaXB0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5zdWJ0YWdzLnJlZ2lvbikge1xuICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goYGFzIHNwb2tlbiBpbiAke3RoaXMucmVnaXN0cnkucmVnaW9uPy5kZXNjcmlwdGlvblswXSA/PyB0aGlzLnN1YnRhZ3MucmVnaW9ufWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucmVnaXN0cnkudmFyaWFudHMgJiYgdGhpcy5yZWdpc3RyeS52YXJpYW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIHRoaXMucmVnaXN0cnkudmFyaWFudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydHMucHVzaChgKCR7ZS5yZWdpc3RyeT8uZGVzY3JpcHRpb25bMF0gPz8gZS5zdWJ0YWd9KWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnJlZ2lzdHJ5LmV4dGVuc2lvbnMgJiYgdGhpcy5yZWdpc3RyeS5leHRlbnNpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGUgb2YgdGhpcy5yZWdpc3RyeS5leHRlbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goYCgke2UucmVnaXN0cnk/LmRlc2NyaXB0aW9uWzBdID8/IGAtJHtlLnNpbmdsZXRvbn1gfSBcIiR7ZS52YWx1ZX1cIilgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5zdWJ0YWdzLnByaXZhdGVVc2UgJiYgdGhpcy5zdWJ0YWdzLnByaXZhdGVVc2UubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goYCgteCBcIiR7dGhpcy5zdWJ0YWdzLnByaXZhdGVVc2Uuam9pbignLScpfVwiKWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFydHMucHVzaChgJHt0aGlzLnRhZ30gKGdyYW5kZmF0aGVyZWQpYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnRzLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZyB8IGxhbmd1YWdlIHRhZ30gZnJvbSBhIHN1cHBsaWVkIGBzdHJpbmdgIHRhZ1xuICAgICAqIHVzaW5nIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24sIGlmIHN1cHBsaWVkLlxuICAgICAqIEBwYXJhbSB0YWcgLSBUaGUgYHN0cmluZ2AgdGFnIGZyb20gd2hpY2ggdGhlIHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZyB8IGxhbmd1YWdlIHRhZ31cbiAgICAgKiBpcyB0ZSBiZSBjb25zdHJ1Y3RlZC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIChvcHRpb25hbCkgc2V0IG9mIHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZ0luaXRPcHRpb25zIHwgaW5pdCBvcHRpb25zfVxuICAgICAqIHRvIGd1aWRlIHRoZSB2YWxpZGF0aW9uIGFuZCBub3JtYWxpemF0aW9uIG9mIHRoaXMgdGFnLlxuICAgICAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIHRoZSBuZXcge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnIHwgbGFuZ3VhZ2UgdGFnfSBvciBgRmFpbHVyZWBcbiAgICAgKiB3aXRoIGRldGFpbHMgaWYgYW4gZXJyb3Igb2NjdXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbVRhZyh0YWc6IHN0cmluZywgb3B0aW9ucz86IExhbmd1YWdlVGFnSW5pdE9wdGlvbnMpOiBSZXN1bHQ8TGFuZ3VhZ2VUYWc+IHtcbiAgICAgICAgb3B0aW9ucyA9IHRoaXMuX2dldE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgcmV0dXJuIExhbmd1YWdlVGFnUGFyc2VyLnBhcnNlKHRhZywgb3B0aW9ucy5pYW5hKS5vblN1Y2Nlc3MoKHN1YnRhZ3MpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVUcmFuc2Zvcm1lZChzdWJ0YWdzLCAndW5rbm93bicsICd1bmtub3duJywgb3B0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnIHwgbGFuZ3VhZ2UgdGFnfSBmcm9tIGEgc3VwcGxpZWRcbiAgICAgKiB7QGxpbmsgQmNwNDcuU3VidGFncyB8IHN1YnRhZ3N9IHVzaW5nIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24sXG4gICAgICogaWYgc3VwcGxpZWQuXG4gICAgICogQHBhcmFtIHRhZyAtIFRoZSB7QGxpbmsgQmNwNDcuU3VidGFncyB8IHN1YnRhZ3N9IGZyb20gd2hpY2ggdGhlXG4gICAgICoge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnIHwgbGFuZ3VhZ2UgdGFnfSBpcyB0ZSBiZSBjb25zdHJ1Y3RlZC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIChvcHRpb25hbCkgc2V0IG9mIHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZ0luaXRPcHRpb25zIHwgaW5pdCBvcHRpb25zfVxuICAgICAqIHRvIGd1aWRlIHRoZSB2YWxpZGF0aW9uIGFuZCBub3JtYWxpemF0aW9uIG9mIHRoaXMgdGFnLlxuICAgICAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIHRoZSBuZXcge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnIHwgbGFuZ3VhZ2UgdGFnfSBvciBgRmFpbHVyZWBcbiAgICAgKiB3aXRoIGRldGFpbHMgaWYgYW4gZXJyb3Igb2NjdXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbVN1YnRhZ3Moc3VidGFnczogU3VidGFncywgb3B0aW9ucz86IExhbmd1YWdlVGFnSW5pdE9wdGlvbnMpOiBSZXN1bHQ8TGFuZ3VhZ2VUYWc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZVRyYW5zZm9ybWVkKHN1YnRhZ3MsICd1bmtub3duJywgJ3Vua25vd24nLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZyB8IGxhbmd1YWdlIHRhZ30gZnJvbSBhIHN1cHBsaWVkIGBzdHJpbmdgXG4gICAgICogdGFnIG9yIHtAbGluayBCY3A0Ny5TdWJ0YWdzIHwgc3VidGFnc30gdXNpbmcgb3B0aW9uYWwgY29uZmlndXJhdGlvbixcbiAgICAgKiBpZiBzdXBwbGllZC5cbiAgICAgKiBAcGFyYW0gZnJvbSAtIFRoZSBgc3RyaW5nYCB0YWcgb3Ige0BsaW5rIEJjcDQ3LlN1YnRhZ3MgfCBzdWJ0YWdzfSBmcm9tXG4gICAgICogd2hpY2ggdGhlIHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZyB8IGxhbmd1YWdlIHRhZ30gaXMgdGUgYmUgY29uc3RydWN0ZWQuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSAob3B0aW9uYWwpIHNldCBvZiB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VUYWdJbml0T3B0aW9ucyB8IGluaXQgb3B0aW9uc31cbiAgICAgKiB0byBndWlkZSB0aGUgdmFsaWRhdGlvbiBhbmQgbm9ybWFsaXphdGlvbiBvZiB0aGlzIHRhZy5cbiAgICAgKiBAcmV0dXJucyBgU3VjY2Vzc2Agd2l0aCB0aGUgbmV3IHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZyB8IGxhbmd1YWdlIHRhZ30gb3IgYEZhaWx1cmVgXG4gICAgICogd2l0aCBkZXRhaWxzIGlmIGFuIGVycm9yIG9jY3Vycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZShmcm9tOiBzdHJpbmcgfCBTdWJ0YWdzLCBvcHRpb25zPzogTGFuZ3VhZ2VUYWdJbml0T3B0aW9ucyk6IFJlc3VsdDxMYW5ndWFnZVRhZz4ge1xuICAgICAgICBpZiAodHlwZW9mIGZyb20gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGcm9tVGFnKGZyb20sIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRnJvbVN1YnRhZ3MoZnJvbSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZyB8IGxhbmd1YWdlIHRhZ30gYnkgYXBwbHlpbmcgYXBwcm9wcmlhdGUgdHJhbnNmb3JtYXRpb25zXG4gICAgICogdG8gYXMgc3VwcGxpZWQge0BsaW5rIEJjcDQ3LlN1YnRhZ3MgfCBCY3A0Ny5TdWJ0YWdzfS5cbiAgICAgKiBAcGFyYW0gc3VidGFncyAtIFRoZSB7QGxpbmsgQmNwNDcuU3VidGFncyB8IHN1YnRhZ3N9IHdoaWNoIHJlcHJlc2VudCB0aGUgdGFnLlxuICAgICAqIEBwYXJhbSBmcm9tVmFsaWRpdHkgLSBUaGUge0BsaW5rIEJjcDQ3LlRhZ1ZhbGlkaXR5IHwgdmFsaWRhdGlvbiBsZXZlbH0gb2YgdGhlIHN1cHBsaWVkIHN1YnRhZ3MuXG4gICAgICogQHBhcmFtIGZyb21Ob3JtYWxpemF0aW9uIC0gVGhlIHtAbGluayBCY3A0Ny5UYWdOb3JtYWxpemF0aW9uIHwgbm9ybWFsaXphdGlvbiBsZXZlbH0gZm8gdGhlXG4gICAgICogc3VwcGxpZWQgc3VidGFncy5cbiAgICAgKiBAcGFyYW0gcGFydGlhbE9wdGlvbnMgLSBBbnkge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnSW5pdE9wdGlvbnMgfCBpbml0aWFsaXphdGlvbiBvcHRpb25zfS5cbiAgICAgKiBAcmV0dXJucyBgU3VjY2Vzc2Agd2l0aCB0aGUgY29ycmVzcG9uZGluZyB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VUYWcgfCBsYW5ndWFnZSB0YWd9IG9yIGBGYWlsdXJlYFxuICAgICAqIHdpdGggZGV0YWlscyBpZiBhbiBlcnJvciBvY2N1cnMuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBfY3JlYXRlVHJhbnNmb3JtZWQoXG4gICAgICAgIHN1YnRhZ3M6IFN1YnRhZ3MsXG4gICAgICAgIGZyb21WYWxpZGl0eTogVGFnVmFsaWRpdHksXG4gICAgICAgIGZyb21Ob3JtYWxpemF0aW9uOiBUYWdOb3JtYWxpemF0aW9uLFxuICAgICAgICBwYXJ0aWFsT3B0aW9ucz86IExhbmd1YWdlVGFnSW5pdE9wdGlvbnNcbiAgICApOiBSZXN1bHQ8TGFuZ3VhZ2VUYWc+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX2dldE9wdGlvbnMocGFydGlhbE9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gVmFsaWRhdGVUYWcudmFsaWRhdGVTdWJ0YWdzKHN1YnRhZ3MsIG9wdGlvbnMudmFsaWRpdHksIGZyb21WYWxpZGl0eSlcbiAgICAgICAgICAgIC5vblN1Y2Nlc3MoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVUYWcubm9ybWFsaXplU3VidGFncyhzdWJ0YWdzLCBvcHRpb25zLm5vcm1hbGl6YXRpb24sIGZyb21Ob3JtYWxpemF0aW9uKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAub25TdWNjZXNzKChub3JtYWxpemVkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRpdHkgPSBtb3N0VmFsaWQoZnJvbVZhbGlkaXR5LCBvcHRpb25zLnZhbGlkaXR5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemF0aW9uID0gbW9zdE5vcm1hbGl6ZWQoZnJvbU5vcm1hbGl6YXRpb24sIG9wdGlvbnMubm9ybWFsaXphdGlvbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVSZXN1bHQoKCkgPT4gbmV3IExhbmd1YWdlVGFnKG5vcm1hbGl6ZWQsIHZhbGlkaXR5LCBub3JtYWxpemF0aW9uLCBvcHRpb25zLmlhbmEpKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBmdWxseS1zcGVjaWZpZWQge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnSW5pdE9wdGlvbnN9IGZyb20gcGFydGlhbCBvciB1bmRlZmluZWRcbiAgICAgKiBvcHRpb25zLCBzdWJzdGl0dXRpbmcgZGVmYXVsdHMgYXMgYXBwcm9wcmlhdGUuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnSW5pdE9wdGlvbnN9IHRvIGJlIGV4cGFuZGVkLCBvciBgdW5kZWZpbmVkYFxuICAgICAqIGZvciBkZWZhdWx0IG9wdGlvbnMuXG4gICAgICogQHJldHVybnMgRnVsbHktc3BlY2lmaWVkIHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZ0luaXRPcHRpb25zIHwgaW5pdCBvcHRpb25zfS5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc3RhdGljIF9nZXRPcHRpb25zKG9wdGlvbnM/OiBMYW5ndWFnZVRhZ0luaXRPcHRpb25zKTogUmVxdWlyZWQ8TGFuZ3VhZ2VUYWdJbml0T3B0aW9ucz4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWFuYTogb3B0aW9ucz8uaWFuYSA/PyBJYW5hLkRlZmF1bHRSZWdpc3RyaWVzLmxhbmd1YWdlUmVnaXN0cmllcyxcbiAgICAgICAgICAgIHZhbGlkaXR5OiBvcHRpb25zPy52YWxpZGl0eSA/PyAnd2VsbC1mb3JtZWQnLFxuICAgICAgICAgICAgbm9ybWFsaXphdGlvbjogb3B0aW9ucz8ubm9ybWFsaXphdGlvbiA/PyAnbm9uZScsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYFN1cHByZXNzLVNjcmlwdGAgdmFsdWUgZGVmaW5lZCBmb3IgdGhlIHByaW1hcnkgbGFuZ3VhZ2Ugb2YgdGhpcyB0YWcsXG4gICAgICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGEgZGlmZmVyZW50IHNjcmlwdCBpcyBkZWZpbmVkIGluIHRoaXMgc3VidGFnLlxuICAgICAqIEByZXR1cm5zIFRoZSBzdXBwcmVzcy1zY3JpcHQgZGVmaW5lZCBmb3IgdGhlIHByaW1hcnkgbGFuZ3VhZ2UsIG9yIHVuZGVmaW5lZCBpZlxuICAgICAqIHRoZSBwcmltYXJ5IGxhbmd1YWdlIGlzIGludmFsaWQgb3IgaGFzIG5vIGRlZmluZWQgc3VwcHJlc3NlZCBzY3JpcHQuXG4gICAgICovXG4gICAgcHVibGljIGdldFN1cHByZXNzZWRTY3JpcHQoKTogU2NyaXB0U3VidGFnIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuX3N1cHByZXNzZWRTY3JpcHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fc3VwcHJlc3NlZFNjcmlwdCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3VidGFncy5wcmltYXJ5TGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMuX2lhbmEuc3VidGFncy5sYW5ndWFnZXMudHJ5R2V0KHRoaXMuc3VidGFncy5wcmltYXJ5TGFuZ3VhZ2UpO1xuICAgICAgICAgICAgICAgIGlmIChsYW5ndWFnZT8uc3VwcHJlc3NTY3JpcHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdXBwcmVzc2VkU2NyaXB0ID0gbGFuZ3VhZ2Uuc3VwcHJlc3NTY3JpcHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9zdXBwcmVzc2VkU2NyaXB0ID8gdGhpcy5fc3VwcHJlc3NlZFNjcmlwdCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgY29uZmlybWVkIHZhbGlkIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgbGFuZ3VhZ2UgdGFnLlxuICAgICAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIGEgdmFsaWQgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VUYWcgfCBsYW5ndWFnZSB0YWd9LFxuICAgICAqIG9yIGBGYWlsdXJlYCB3aXRoIGRldGFpbHMgaWYgdGhlIHRhZyBjYW5ub3QgYmUgdmFsaWRhdGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyB0b1ZhbGlkKCk6IFJlc3VsdDxMYW5ndWFnZVRhZz4ge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zOiBMYW5ndWFnZVRhZ0luaXRPcHRpb25zID0ge1xuICAgICAgICAgICAgaWFuYTogdGhpcy5faWFuYSxcbiAgICAgICAgICAgIHZhbGlkaXR5OiAndmFsaWQnLFxuICAgICAgICAgICAgbm9ybWFsaXphdGlvbjogdGhpcy5fbm9ybWFsaXphdGlvbixcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIExhbmd1YWdlVGFnLl9jcmVhdGVUcmFuc2Zvcm1lZCh0aGlzLnN1YnRhZ3MsIHRoaXMuX3ZhbGlkaXR5LCB0aGlzLl9ub3JtYWxpemF0aW9uLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgY29uZmlybWVkIHN0cmljdGx5IHZhbGlkIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgbGFuZ3VhZ2UgdGFnLlxuICAgICAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIGEgc3RyaWN0bHkgdmFsaWQgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VUYWcgfCBsYW5ndWFnZSB0YWd9LFxuICAgICAqIG9yIGBGYWlsdXJlYCB3aXRoIGRldGFpbHMgaWYgdGhlIHRhZyBjYW5ub3QgYmUgc3RyaWN0bHkgdmFsaWRhdGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyB0b1N0cmljdGx5VmFsaWQoKTogUmVzdWx0PExhbmd1YWdlVGFnPiB7XG4gICAgICAgIGlmICh0aGlzLmlzU3RyaWN0bHlWYWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0aW9uczogTGFuZ3VhZ2VUYWdJbml0T3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGlhbmE6IHRoaXMuX2lhbmEsXG4gICAgICAgICAgICB2YWxpZGl0eTogJ3N0cmljdGx5LXZhbGlkJyxcbiAgICAgICAgICAgIG5vcm1hbGl6YXRpb246IHRoaXMuX25vcm1hbGl6YXRpb24sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBMYW5ndWFnZVRhZy5fY3JlYXRlVHJhbnNmb3JtZWQodGhpcy5zdWJ0YWdzLCB0aGlzLl92YWxpZGl0eSwgdGhpcy5fbm9ybWFsaXphdGlvbiwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIGNvbmZpcm1lZCBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBsYW5ndWFnZSB0YWcuXG4gICAgICogQHJldHVybnMgYFN1Y2Nlc3NgIHdpdGggYSBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VUYWcgfCBsYW5ndWFnZSB0YWd9LFxuICAgICAqIG9yIGBGYWlsdXJlYCB3aXRoIGRldGFpbHMgaWYgdGhlIHRhZyBjYW5ub3QgYmUgbm9ybWFsaXplZCB0byBjYW5vbmljYWwgZm9ybS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdG9DYW5vbmljYWwoKTogUmVzdWx0PExhbmd1YWdlVGFnPiB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2Fub25pY2FsKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zOiBMYW5ndWFnZVRhZ0luaXRPcHRpb25zID0ge1xuICAgICAgICAgICAgaWFuYTogdGhpcy5faWFuYSxcbiAgICAgICAgICAgIHZhbGlkaXR5OiB0aGlzLl92YWxpZGl0eSxcbiAgICAgICAgICAgIG5vcm1hbGl6YXRpb246ICdjYW5vbmljYWwnLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gTGFuZ3VhZ2VUYWcuX2NyZWF0ZVRyYW5zZm9ybWVkKHRoaXMuc3VidGFncywgdGhpcy5fdmFsaWRpdHksIHRoaXMuX25vcm1hbGl6YXRpb24sIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBjb25maXJtZWQgcHJlZmVycmVkIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgbGFuZ3VhZ2UgdGFnLlxuICAgICAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIGEgcHJlZmVycmVkIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnIHwgbGFuZ3VhZ2UgdGFnfSxcbiAgICAgKiBvciBgRmFpbHVyZWAgd2l0aCBkZXRhaWxzIGlmIHRoZSB0YWcgY2Fubm90IGJlIG5vcm1hbGl6ZWQgdG8gcHJlZmVycmVkIGZvcm0uXG4gICAgICovXG4gICAgcHVibGljIHRvUHJlZmVycmVkKCk6IFJlc3VsdDxMYW5ndWFnZVRhZz4ge1xuICAgICAgICBpZiAodGhpcy5pc1ByZWZlcnJlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0aW9uczogTGFuZ3VhZ2VUYWdJbml0T3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGlhbmE6IHRoaXMuX2lhbmEsXG4gICAgICAgICAgICB2YWxpZGl0eTogJ3ZhbGlkJywgLy8gcHJlZmVycmVkIHJlcXVpcmVzIHZhbGlkaXR5XG4gICAgICAgICAgICBub3JtYWxpemF0aW9uOiAncHJlZmVycmVkJyxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIExhbmd1YWdlVGFnLl9jcmVhdGVUcmFuc2Zvcm1lZCh0aGlzLnN1YnRhZ3MsIHRoaXMuX3ZhbGlkaXR5LCB0aGlzLl9ub3JtYWxpemF0aW9uLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgbGFuZ3VhZ2UgdGFnLlxuICAgICAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgbGFuZ3VhZ2UgdGFnLlxuICAgICAqL1xuICAgIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50YWc7XG4gICAgfVxufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"languageTagParser.d.ts","sourceRoot":"","sources":["../../src/bcp47/languageTagParser.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,OAAO,EAA6B,MAAM,eAAe,CAAC;AAG3E,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC;;GAEG;AACH,UAAU,WAAW;IACjB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAG1B,OAAO;IAEP;;;;;;;;;;OAUG;WACW,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC;IA6BjF;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAW7E;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IAiB3E;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IAenE;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IASlE;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IASlE;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IAapE;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IA+BtE;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IAsB1E;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;CAMrE"}
|