@fgv/ts-bcp47 0.5.1 → 0.5.3
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/{src/bcp47 → bcp47}/bcp47Subtags/converters.d.ts +0 -0
- package/bcp47/bcp47Subtags/converters.d.ts.map +1 -0
- package/{src/bcp47 → bcp47}/bcp47Subtags/converters.js +1 -1
- package/{src/bcp47 → bcp47}/bcp47Subtags/index.d.ts +0 -0
- package/bcp47/bcp47Subtags/index.d.ts.map +1 -0
- package/{src/iana/jar/language-subtags/converters.js → bcp47/bcp47Subtags/index.js} +8 -6
- package/{src/bcp47 → bcp47}/bcp47Subtags/model.d.ts +0 -0
- package/bcp47/bcp47Subtags/model.d.ts.map +1 -0
- package/{src/bcp47/overrides → bcp47/bcp47Subtags}/model.js +1 -1
- package/{src/bcp47 → bcp47}/bcp47Subtags/validate.d.ts +0 -0
- package/bcp47/bcp47Subtags/validate.d.ts.map +1 -0
- package/bcp47/bcp47Subtags/validate.js +74 -0
- package/{src/bcp47 → bcp47}/common.d.ts +0 -0
- package/bcp47/common.d.ts.map +1 -0
- package/bcp47/common.js +59 -0
- package/{src/bcp47 → bcp47}/helpers.d.ts +0 -0
- package/bcp47/helpers.d.ts.map +1 -0
- package/bcp47/helpers.js +103 -0
- package/{src/bcp47 → bcp47}/index.d.ts +0 -0
- package/bcp47/index.d.ts.map +1 -0
- package/bcp47/index.js +27 -0
- package/bcp47/languageRegistryData.d.ts +88 -0
- package/bcp47/languageRegistryData.d.ts.map +1 -0
- package/bcp47/languageRegistryData.js +144 -0
- package/{src/bcp47 → bcp47}/languageTag.d.ts +6 -0
- package/bcp47/languageTag.d.ts.map +1 -0
- package/bcp47/languageTag.js +344 -0
- package/{src/bcp47 → bcp47}/languageTagParser.d.ts +0 -0
- package/bcp47/languageTagParser.d.ts.map +1 -0
- package/bcp47/languageTagParser.js +310 -0
- package/{src/bcp47 → bcp47}/match/chooser.d.ts +1 -1
- package/bcp47/match/chooser.d.ts.map +1 -0
- package/bcp47/match/chooser.js +92 -0
- package/{src/bcp47 → bcp47}/match/common.d.ts +0 -0
- package/bcp47/match/common.d.ts.map +1 -0
- package/bcp47/match/common.js +42 -0
- package/{src/bcp47 → bcp47}/match/index.d.ts +0 -0
- package/bcp47/match/index.d.ts.map +1 -0
- package/{src/iana/jar/language-subtags/registry/converters.js → bcp47/match/index.js} +10 -23
- package/{src/bcp47 → bcp47}/match/similarity.d.ts +0 -0
- package/bcp47/match/similarity.d.ts.map +1 -0
- package/bcp47/match/similarity.js +230 -0
- package/{src/bcp47 → bcp47}/normalization/baseNormalizer.d.ts +0 -0
- package/bcp47/normalization/baseNormalizer.d.ts.map +1 -0
- package/bcp47/normalization/baseNormalizer.js +114 -0
- package/{src/bcp47 → bcp47}/normalization/canonicalNormalizer.d.ts +0 -0
- package/bcp47/normalization/canonicalNormalizer.d.ts.map +1 -0
- package/bcp47/normalization/canonicalNormalizer.js +110 -0
- package/{src/bcp47 → bcp47}/normalization/common.d.ts +0 -0
- package/bcp47/normalization/common.d.ts.map +1 -0
- package/bcp47/normalization/common.js +82 -0
- package/{src/bcp47 → bcp47}/normalization/index.d.ts +0 -0
- package/bcp47/normalization/index.d.ts.map +1 -0
- package/{src/bcp47 → bcp47}/normalization/index.js +1 -1
- package/{src/bcp47 → bcp47}/normalization/normalizeTag.d.ts +0 -0
- package/bcp47/normalization/normalizeTag.d.ts.map +1 -0
- package/bcp47/normalization/normalizeTag.js +105 -0
- package/{src/bcp47 → bcp47}/normalization/preferredTagNormalizer.d.ts +0 -0
- package/bcp47/normalization/preferredTagNormalizer.d.ts.map +1 -0
- package/bcp47/normalization/preferredTagNormalizer.js +178 -0
- package/{src/bcp47 → bcp47}/overrides/converters.d.ts +0 -0
- package/bcp47/overrides/converters.d.ts.map +1 -0
- package/bcp47/overrides/converters.js +75 -0
- package/{src/bcp47 → bcp47}/overrides/defaultRegistries.d.ts +0 -0
- package/bcp47/overrides/defaultRegistries.d.ts.map +1 -0
- package/bcp47/overrides/defaultRegistries.js +42 -0
- package/{src/bcp47 → bcp47}/overrides/index.d.ts +0 -0
- package/bcp47/overrides/index.d.ts.map +1 -0
- package/bcp47/overrides/index.js +30 -0
- package/{src/bcp47 → bcp47}/overrides/model.d.ts +0 -0
- package/bcp47/overrides/model.d.ts.map +1 -0
- package/bcp47/overrides/model.js +24 -0
- package/{src/bcp47 → bcp47}/overrides/overridesRegistry.d.ts +0 -0
- package/bcp47/overrides/overridesRegistry.d.ts.map +1 -0
- package/bcp47/overrides/overridesRegistry.js +112 -0
- package/{src/bcp47 → bcp47}/validation/baseValidator.d.ts +0 -0
- package/bcp47/validation/baseValidator.d.ts.map +1 -0
- package/bcp47/validation/baseValidator.js +111 -0
- package/{src/bcp47 → bcp47}/validation/common.d.ts +0 -0
- package/bcp47/validation/common.d.ts.map +1 -0
- package/bcp47/validation/common.js +84 -0
- package/{src/bcp47 → bcp47}/validation/index.d.ts +0 -0
- package/bcp47/validation/index.d.ts.map +1 -0
- package/{src/iana/jar/language-subtags → bcp47/validation}/index.js +14 -17
- package/{src/bcp47 → bcp47}/validation/isCanonical.d.ts +0 -0
- package/bcp47/validation/isCanonical.d.ts.map +1 -0
- package/bcp47/validation/isCanonical.js +101 -0
- package/{src/bcp47 → bcp47}/validation/isInPreferredForm.d.ts +0 -0
- package/bcp47/validation/isInPreferredForm.d.ts.map +1 -0
- package/bcp47/validation/isInPreferredForm.js +73 -0
- package/{src/bcp47 → bcp47}/validation/isStrictlyValid.d.ts +0 -0
- package/bcp47/validation/isStrictlyValid.d.ts.map +1 -0
- package/bcp47/validation/isStrictlyValid.js +98 -0
- package/{src/bcp47 → bcp47}/validation/isValid.d.ts +0 -0
- package/bcp47/validation/isValid.d.ts.map +1 -0
- package/bcp47/validation/isValid.js +115 -0
- package/{src/bcp47 → bcp47}/validation/isWellFormed.d.ts +0 -0
- package/bcp47/validation/isWellFormed.d.ts.map +1 -0
- package/bcp47/validation/isWellFormed.js +98 -0
- package/{src/bcp47 → bcp47}/validation/validateTag.d.ts +0 -0
- package/bcp47/validation/validateTag.d.ts.map +1 -0
- package/bcp47/validation/validateTag.js +159 -0
- package/{src/iana → iana}/common/converters.d.ts +0 -0
- package/iana/common/converters.d.ts.map +1 -0
- package/iana/common/converters.js +84 -0
- package/{src/iana → iana}/common/model.d.ts +0 -0
- package/iana/common/model.d.ts.map +1 -0
- package/{src/unsd/csv → iana/common}/model.js +1 -1
- package/{src/iana → iana}/common/registeredItems.d.ts +0 -0
- package/iana/common/registeredItems.d.ts.map +1 -0
- package/iana/common/registeredItems.js +124 -0
- package/{src/iana → iana}/common/utils.d.ts +0 -0
- package/iana/common/utils.d.ts.map +1 -0
- package/iana/common/utils.js +34 -0
- package/{src/iana → iana}/common/validate.d.ts +0 -0
- package/iana/common/validate.d.ts.map +1 -0
- package/iana/common/validate.js +61 -0
- package/{src/iana → iana}/converters.d.ts +0 -0
- package/iana/converters.d.ts.map +1 -0
- package/{src/iana/jar/model.js → iana/converters.js} +8 -8
- package/{src/iana → iana}/defaultRegistries.d.ts +0 -0
- package/iana/defaultRegistries.d.ts.map +1 -0
- package/iana/defaultRegistries.js +42 -0
- package/{src/iana → iana}/index.d.ts +0 -0
- package/iana/index.d.ts.map +1 -0
- package/{src/iana → iana}/index.js +1 -1
- package/{src/iana → iana}/jar/converters.d.ts +0 -0
- package/iana/jar/converters.d.ts.map +1 -0
- package/{src/iana → iana}/jar/converters.js +1 -1
- package/{src/iana → iana}/jar/index.d.ts +0 -0
- package/iana/jar/index.d.ts.map +1 -0
- package/{src/iana/jar/language-subtags/tags → iana/jar}/index.js +4 -8
- package/{src/iana → iana}/jar/jarConverters.d.ts +0 -0
- package/iana/jar/jarConverters.d.ts.map +1 -0
- package/iana/jar/jarConverters.js +85 -0
- package/{src/iana → iana}/jar/jarModel.d.ts +0 -0
- package/iana/jar/jarModel.d.ts.map +1 -0
- package/{src/iana/common/model.js → iana/jar/jarModel.js} +1 -1
- package/{src/iana → iana}/jar/language-subtags/converters.d.ts +0 -0
- package/iana/jar/language-subtags/converters.d.ts.map +1 -0
- package/{src/iana/jar/language-subtags/model.js → iana/jar/language-subtags/converters.js} +3 -3
- package/{src/iana → iana}/jar/language-subtags/index.d.ts +0 -0
- package/iana/jar/language-subtags/index.d.ts.map +1 -0
- package/{src/utils → iana/jar/language-subtags}/index.js +18 -4
- package/{src/iana → iana}/jar/language-subtags/model.d.ts +0 -0
- package/iana/jar/language-subtags/model.d.ts.map +1 -0
- package/{src/unsd/common.js → iana/jar/language-subtags/model.js} +29 -1
- package/{src/iana → iana}/jar/language-subtags/registry/converters.d.ts +0 -0
- package/iana/jar/language-subtags/registry/converters.d.ts.map +1 -0
- package/{src/iana/language-subtags/common.js → iana/jar/language-subtags/registry/converters.js} +35 -1
- package/{src/iana → iana}/jar/language-subtags/registry/index.d.ts +0 -0
- package/iana/jar/language-subtags/registry/index.d.ts.map +1 -0
- package/{src/bcp47/bcp47Subtags → iana/jar/language-subtags/registry}/index.js +28 -27
- package/{src/iana → iana}/jar/language-subtags/registry/model.d.ts +0 -0
- package/iana/jar/language-subtags/registry/model.d.ts.map +1 -0
- package/iana/jar/language-subtags/registry/model.js +41 -0
- package/{src/iana → iana}/jar/language-subtags/tags/converters.d.ts +0 -0
- package/iana/jar/language-subtags/tags/converters.d.ts.map +1 -0
- package/iana/jar/language-subtags/tags/converters.js +128 -0
- package/{src/iana → iana}/jar/language-subtags/tags/index.d.ts +0 -0
- package/iana/jar/language-subtags/tags/index.d.ts.map +1 -0
- package/{src/iana/converters.js → iana/jar/language-subtags/tags/index.js} +10 -8
- package/{src/iana → iana}/jar/language-subtags/tags/model.d.ts +0 -0
- package/iana/jar/language-subtags/tags/model.d.ts.map +1 -0
- package/{src/unsd/csv/index.js → iana/jar/language-subtags/tags/model.js} +1 -29
- package/{src/iana → iana}/jar/language-subtags/tags/tagValidation.d.ts +0 -0
- package/iana/jar/language-subtags/tags/tagValidation.d.ts.map +1 -0
- package/iana/jar/language-subtags/tags/tagValidation.js +70 -0
- package/{src/iana → iana}/jar/language-subtags/tags/validate.d.ts +0 -0
- package/iana/jar/language-subtags/tags/validate.d.ts.map +1 -0
- package/iana/jar/language-subtags/tags/validate.js +87 -0
- package/{src/iana → iana}/jar/model.d.ts +0 -0
- package/iana/jar/model.d.ts.map +1 -0
- package/{src/iana/jar/language-subtags/registry/index.js → iana/jar/model.js} +26 -27
- package/{src/iana → iana}/language-subtags/common.d.ts +0 -0
- package/iana/language-subtags/common.d.ts.map +1 -0
- package/iana/language-subtags/common.js +24 -0
- package/{src/iana → iana}/language-subtags/converters.d.ts +0 -0
- package/iana/language-subtags/converters.d.ts.map +1 -0
- package/iana/language-subtags/converters.js +200 -0
- package/{src/iana → iana}/language-subtags/index.d.ts +0 -0
- package/iana/language-subtags/index.d.ts.map +1 -0
- package/{src/iana → iana}/language-subtags/index.js +1 -1
- package/{src/iana → iana}/language-subtags/jarConverters.d.ts +12 -12
- package/iana/language-subtags/jarConverters.d.ts.map +1 -0
- package/iana/language-subtags/jarConverters.js +213 -0
- package/{src/iana → iana}/language-subtags/model.d.ts +0 -0
- package/iana/language-subtags/model.d.ts.map +1 -0
- package/iana/language-subtags/model.js +24 -0
- package/{src/iana → iana}/language-subtags/scope.d.ts +0 -0
- package/iana/language-subtags/scope.d.ts.map +1 -0
- package/iana/language-subtags/scope.js +179 -0
- package/{src/iana → iana}/language-subtags/subtagRegistry.d.ts +0 -0
- package/iana/language-subtags/subtagRegistry.d.ts.map +1 -0
- package/iana/language-subtags/subtagRegistry.js +149 -0
- package/{src/iana → iana}/language-subtags/validate.d.ts +0 -0
- package/iana/language-subtags/validate.d.ts.map +1 -0
- package/{src/iana → iana}/language-subtags/validate.js +1 -1
- package/{src/iana → iana}/language-tag-extensions/converters.d.ts +0 -0
- package/iana/language-tag-extensions/converters.d.ts.map +1 -0
- package/iana/language-tag-extensions/converters.js +87 -0
- package/{src/iana → iana}/language-tag-extensions/extensionsRegistry.d.ts +0 -0
- package/iana/language-tag-extensions/extensionsRegistry.d.ts.map +1 -0
- package/iana/language-tag-extensions/extensionsRegistry.js +104 -0
- package/{src/iana → iana}/language-tag-extensions/extensionsScope.d.ts +0 -0
- package/iana/language-tag-extensions/extensionsScope.d.ts.map +1 -0
- package/iana/language-tag-extensions/extensionsScope.js +77 -0
- package/{src/iana → iana}/language-tag-extensions/index.d.ts +0 -0
- package/iana/language-tag-extensions/index.d.ts.map +1 -0
- package/{src/iana → iana}/language-tag-extensions/index.js +1 -1
- package/{src/iana → iana}/language-tag-extensions/jarConverters.d.ts +0 -0
- package/iana/language-tag-extensions/jarConverters.d.ts.map +1 -0
- package/iana/language-tag-extensions/jarConverters.js +102 -0
- package/{src/iana → iana}/language-tag-extensions/model.d.ts +0 -0
- package/iana/language-tag-extensions/model.d.ts.map +1 -0
- package/{src/bcp47/overrides/defaultRegistries.js → iana/language-tag-extensions/model.js} +1 -19
- package/{src/iana → iana}/language-tag-extensions/validate.d.ts +0 -0
- package/iana/language-tag-extensions/validate.d.ts.map +1 -0
- package/iana/language-tag-extensions/validate.js +36 -0
- package/{src/iana → iana}/languageRegistries.d.ts +0 -0
- package/iana/languageRegistries.d.ts.map +1 -0
- package/iana/languageRegistries.js +56 -0
- package/{src/iana → iana}/model.d.ts +0 -0
- package/iana/model.d.ts.map +1 -0
- package/{src/iana → iana}/model.js +1 -1
- package/{src/iana → iana}/validate.d.ts +0 -0
- package/iana/validate.d.ts.map +1 -0
- package/{src/iana → iana}/validate.js +1 -1
- package/{src/index.d.ts → index.d.ts} +0 -0
- package/index.d.ts.map +1 -0
- package/{src/index.js → index.js} +1 -1
- package/package.json +1 -1
- package/{src/unsd → unsd}/areas.d.ts +0 -0
- package/unsd/areas.d.ts.map +1 -0
- package/unsd/areas.js +96 -0
- package/{src/unsd → unsd}/common.d.ts +0 -0
- package/unsd/common.d.ts.map +1 -0
- package/unsd/common.js +24 -0
- package/{src/unsd → unsd}/csv/converters.d.ts +0 -0
- package/unsd/csv/converters.d.ts.map +1 -0
- package/unsd/csv/converters.js +70 -0
- package/{src/unsd → unsd}/csv/index.d.ts +0 -0
- package/unsd/csv/index.d.ts.map +1 -0
- package/{src/iana/jar → unsd/csv}/index.js +1 -1
- package/{src/unsd → unsd}/csv/model.d.ts +0 -0
- package/unsd/csv/model.d.ts.map +1 -0
- package/{src/unsd/index.js → unsd/csv/model.js} +1 -21
- package/{src/unsd → unsd}/defaultRegistries.d.ts +0 -0
- package/unsd/defaultRegistries.d.ts.map +1 -0
- package/unsd/defaultRegistries.js +42 -0
- package/{src/unsd → unsd}/index.d.ts +0 -0
- package/unsd/index.d.ts.map +1 -0
- package/unsd/index.js +44 -0
- package/{src/unsd → unsd}/regionCodes.d.ts +0 -0
- package/unsd/regionCodes.d.ts.map +1 -0
- package/unsd/regionCodes.js +121 -0
- package/{src/unsd → unsd}/regions.d.ts +0 -0
- package/unsd/regions.d.ts.map +1 -0
- package/unsd/regions.js +77 -0
- package/{src/utils → utils}/index.d.ts +0 -0
- package/utils/index.d.ts.map +1 -0
- package/{src/utils/jsonHelpers.js → utils/index.js} +17 -6
- package/{src/utils → utils}/jsonHelpers.d.ts +0 -0
- package/utils/jsonHelpers.d.ts.map +1 -0
- package/{src/iana/jar/language-subtags/tags/model.js → utils/jsonHelpers.js} +7 -2
- package/{src/utils → utils}/validationHelpers.d.ts +0 -0
- package/utils/validationHelpers.d.ts.map +1 -0
- package/utils/validationHelpers.js +88 -0
- package/src/bcp47/bcp47Subtags/converters.d.ts.map +0 -1
- package/src/bcp47/bcp47Subtags/index.d.ts.map +0 -1
- package/src/bcp47/bcp47Subtags/model.d.ts.map +0 -1
- package/src/bcp47/bcp47Subtags/model.js +0 -24
- package/src/bcp47/bcp47Subtags/validate.d.ts.map +0 -1
- package/src/bcp47/bcp47Subtags/validate.js +0 -74
- package/src/bcp47/common.d.ts.map +0 -1
- package/src/bcp47/common.js +0 -59
- package/src/bcp47/helpers.d.ts.map +0 -1
- package/src/bcp47/helpers.js +0 -103
- package/src/bcp47/index.d.ts.map +0 -1
- package/src/bcp47/index.js +0 -27
- package/src/bcp47/languageTag.d.ts.map +0 -1
- package/src/bcp47/languageTag.js +0 -342
- package/src/bcp47/languageTagParser.d.ts.map +0 -1
- package/src/bcp47/languageTagParser.js +0 -310
- package/src/bcp47/match/chooser.d.ts.map +0 -1
- package/src/bcp47/match/chooser.js +0 -92
- package/src/bcp47/match/common.d.ts.map +0 -1
- package/src/bcp47/match/common.js +0 -42
- package/src/bcp47/match/index.d.ts.map +0 -1
- package/src/bcp47/match/index.js +0 -45
- package/src/bcp47/match/similarity.d.ts.map +0 -1
- package/src/bcp47/match/similarity.js +0 -230
- package/src/bcp47/normalization/baseNormalizer.d.ts.map +0 -1
- package/src/bcp47/normalization/baseNormalizer.js +0 -114
- package/src/bcp47/normalization/canonicalNormalizer.d.ts.map +0 -1
- package/src/bcp47/normalization/canonicalNormalizer.js +0 -110
- package/src/bcp47/normalization/common.d.ts.map +0 -1
- package/src/bcp47/normalization/common.js +0 -82
- package/src/bcp47/normalization/index.d.ts.map +0 -1
- package/src/bcp47/normalization/normalizeTag.d.ts.map +0 -1
- package/src/bcp47/normalization/normalizeTag.js +0 -105
- package/src/bcp47/normalization/preferredTagNormalizer.d.ts.map +0 -1
- package/src/bcp47/normalization/preferredTagNormalizer.js +0 -178
- package/src/bcp47/overrides/converters.d.ts.map +0 -1
- package/src/bcp47/overrides/converters.js +0 -75
- package/src/bcp47/overrides/defaultRegistries.d.ts.map +0 -1
- package/src/bcp47/overrides/index.d.ts.map +0 -1
- package/src/bcp47/overrides/index.js +0 -30
- package/src/bcp47/overrides/model.d.ts.map +0 -1
- package/src/bcp47/overrides/overridesRegistry.d.ts.map +0 -1
- package/src/bcp47/overrides/overridesRegistry.js +0 -112
- package/src/bcp47/validation/baseValidator.d.ts.map +0 -1
- package/src/bcp47/validation/baseValidator.js +0 -111
- package/src/bcp47/validation/common.d.ts.map +0 -1
- package/src/bcp47/validation/common.js +0 -84
- package/src/bcp47/validation/index.d.ts.map +0 -1
- package/src/bcp47/validation/index.js +0 -51
- package/src/bcp47/validation/isCanonical.d.ts.map +0 -1
- package/src/bcp47/validation/isCanonical.js +0 -101
- package/src/bcp47/validation/isInPreferredForm.d.ts.map +0 -1
- package/src/bcp47/validation/isInPreferredForm.js +0 -73
- package/src/bcp47/validation/isStrictlyValid.d.ts.map +0 -1
- package/src/bcp47/validation/isStrictlyValid.js +0 -98
- package/src/bcp47/validation/isValid.d.ts.map +0 -1
- package/src/bcp47/validation/isValid.js +0 -115
- package/src/bcp47/validation/isWellFormed.d.ts.map +0 -1
- package/src/bcp47/validation/isWellFormed.js +0 -98
- package/src/bcp47/validation/validateTag.d.ts.map +0 -1
- package/src/bcp47/validation/validateTag.js +0 -159
- package/src/iana/common/converters.d.ts.map +0 -1
- package/src/iana/common/converters.js +0 -84
- package/src/iana/common/model.d.ts.map +0 -1
- package/src/iana/common/registeredItems.d.ts.map +0 -1
- package/src/iana/common/registeredItems.js +0 -124
- package/src/iana/common/utils.d.ts.map +0 -1
- package/src/iana/common/utils.js +0 -34
- package/src/iana/common/validate.d.ts.map +0 -1
- package/src/iana/common/validate.js +0 -61
- package/src/iana/converters.d.ts.map +0 -1
- package/src/iana/defaultRegistries.d.ts.map +0 -1
- package/src/iana/defaultRegistries.js +0 -42
- package/src/iana/index.d.ts.map +0 -1
- package/src/iana/jar/converters.d.ts.map +0 -1
- package/src/iana/jar/index.d.ts.map +0 -1
- package/src/iana/jar/jarConverters.d.ts.map +0 -1
- package/src/iana/jar/jarConverters.js +0 -85
- package/src/iana/jar/jarModel.d.ts.map +0 -1
- package/src/iana/jar/jarModel.js +0 -24
- package/src/iana/jar/language-subtags/converters.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/index.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/model.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/registry/converters.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/registry/index.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/registry/model.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/registry/model.js +0 -41
- package/src/iana/jar/language-subtags/tags/converters.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/tags/converters.js +0 -128
- package/src/iana/jar/language-subtags/tags/index.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/tags/model.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/tags/tagValidation.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/tags/tagValidation.js +0 -70
- package/src/iana/jar/language-subtags/tags/validate.d.ts.map +0 -1
- package/src/iana/jar/language-subtags/tags/validate.js +0 -87
- package/src/iana/jar/model.d.ts.map +0 -1
- package/src/iana/language-subtags/common.d.ts.map +0 -1
- package/src/iana/language-subtags/converters.d.ts.map +0 -1
- package/src/iana/language-subtags/converters.js +0 -200
- package/src/iana/language-subtags/index.d.ts.map +0 -1
- package/src/iana/language-subtags/jarConverters.d.ts.map +0 -1
- package/src/iana/language-subtags/jarConverters.js +0 -213
- package/src/iana/language-subtags/model.d.ts.map +0 -1
- package/src/iana/language-subtags/model.js +0 -24
- package/src/iana/language-subtags/scope.d.ts.map +0 -1
- package/src/iana/language-subtags/scope.js +0 -179
- package/src/iana/language-subtags/subtagRegistry.d.ts.map +0 -1
- package/src/iana/language-subtags/subtagRegistry.js +0 -149
- package/src/iana/language-subtags/validate.d.ts.map +0 -1
- package/src/iana/language-tag-extensions/converters.d.ts.map +0 -1
- package/src/iana/language-tag-extensions/converters.js +0 -87
- package/src/iana/language-tag-extensions/extensionsRegistry.d.ts.map +0 -1
- package/src/iana/language-tag-extensions/extensionsRegistry.js +0 -104
- package/src/iana/language-tag-extensions/extensionsScope.d.ts.map +0 -1
- package/src/iana/language-tag-extensions/extensionsScope.js +0 -77
- package/src/iana/language-tag-extensions/index.d.ts.map +0 -1
- package/src/iana/language-tag-extensions/jarConverters.d.ts.map +0 -1
- package/src/iana/language-tag-extensions/jarConverters.js +0 -102
- package/src/iana/language-tag-extensions/model.d.ts.map +0 -1
- package/src/iana/language-tag-extensions/model.js +0 -24
- package/src/iana/language-tag-extensions/validate.d.ts.map +0 -1
- package/src/iana/language-tag-extensions/validate.js +0 -36
- package/src/iana/languageRegistries.d.ts.map +0 -1
- package/src/iana/languageRegistries.js +0 -56
- package/src/iana/model.d.ts.map +0 -1
- package/src/iana/validate.d.ts.map +0 -1
- package/src/index.d.ts.map +0 -1
- package/src/unsd/areas.d.ts.map +0 -1
- package/src/unsd/areas.js +0 -96
- package/src/unsd/common.d.ts.map +0 -1
- package/src/unsd/csv/converters.d.ts.map +0 -1
- package/src/unsd/csv/converters.js +0 -70
- package/src/unsd/csv/index.d.ts.map +0 -1
- package/src/unsd/csv/model.d.ts.map +0 -1
- package/src/unsd/defaultRegistries.d.ts.map +0 -1
- package/src/unsd/defaultRegistries.js +0 -42
- package/src/unsd/index.d.ts.map +0 -1
- package/src/unsd/regionCodes.d.ts.map +0 -1
- package/src/unsd/regionCodes.js +0 -121
- package/src/unsd/regions.d.ts.map +0 -1
- package/src/unsd/regions.js +0 -77
- package/src/utils/index.d.ts.map +0 -1
- package/src/utils/jsonHelpers.d.ts.map +0 -1
- package/src/utils/validationHelpers.d.ts.map +0 -1
- package/src/utils/validationHelpers.js +0 -88
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isInPreferredForm.d.ts","sourceRoot":"","sources":["../../../src/bcp47/validation/isInPreferredForm.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,MAAM,EAAiB,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,OAAO,EAAmB,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;GAEG;AACH,qBAAa,0BAA2B,YAAW,YAAY;IAC3D,SAAgB,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC;IAC9C,SAAgB,QAAQ,EAAE,WAAW,CAAW;gBAE7B,IAAI,CAAC,EAAE,IAAI,CAAC,kBAAkB;IAK1C,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;CAUzD"}
|
|
@@ -0,0 +1,73 @@
|
|
|
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.IsInPreferredFromValidator = 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 normalization_1 = require("../normalization");
|
|
52
|
+
/**
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
class IsInPreferredFromValidator {
|
|
56
|
+
constructor(iana) {
|
|
57
|
+
this.validity = 'valid';
|
|
58
|
+
// istanbul ignore next
|
|
59
|
+
this.iana = iana !== null && iana !== void 0 ? iana : Iana.DefaultRegistries.languageRegistries;
|
|
60
|
+
}
|
|
61
|
+
validateSubtags(subtags) {
|
|
62
|
+
return normalization_1.NormalizeTag.toPreferred(subtags).onSuccess((preferred) => {
|
|
63
|
+
const want = (0, common_1.subtagsToString)(preferred);
|
|
64
|
+
const have = (0, common_1.subtagsToString)(subtags);
|
|
65
|
+
if (want !== have) {
|
|
66
|
+
return (0, ts_utils_1.fail)(`${have}: does not match preferred form ${want}`);
|
|
67
|
+
}
|
|
68
|
+
return (0, ts_utils_1.succeed)(true);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.IsInPreferredFromValidator = IsInPreferredFromValidator;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNJblByZWZlcnJlZEZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmNwNDcvdmFsaWRhdGlvbi9pc0luUHJlZmVycmVkRm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILGlEQUFtQztBQUVuQyw0Q0FBc0Q7QUFDdEQsc0NBQXFEO0FBQ3JELG9EQUFnRDtBQUloRDs7R0FFRztBQUNILE1BQWEsMEJBQTBCO0lBSW5DLFlBQW1CLElBQThCO1FBRmpDLGFBQVEsR0FBZ0IsT0FBTyxDQUFDO1FBRzVDLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQztJQUNsRSxDQUFDO0lBRU0sZUFBZSxDQUFDLE9BQWdCO1FBQ25DLE9BQU8sNEJBQVksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDN0QsTUFBTSxJQUFJLEdBQUcsSUFBQSx3QkFBZSxFQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUEsd0JBQWUsRUFBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2YsT0FBTyxJQUFBLGVBQUksRUFBQyxHQUFHLElBQUksbUNBQW1DLElBQUksRUFBRSxDQUFDLENBQUM7YUFDakU7WUFDRCxPQUFPLElBQUEsa0JBQU8sRUFBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQW5CRCxnRUFtQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIyIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0ICogYXMgSWFuYSBmcm9tICcuLi8uLi9pYW5hJztcblxuaW1wb3J0IHsgUmVzdWx0LCBmYWlsLCBzdWNjZWVkIH0gZnJvbSAnQGZndi90cy11dGlscyc7XG5pbXBvcnQgeyBTdWJ0YWdzLCBzdWJ0YWdzVG9TdHJpbmcgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgTm9ybWFsaXplVGFnIH0gZnJvbSAnLi4vbm9ybWFsaXphdGlvbic7XG5pbXBvcnQgeyBUYWdWYWxpZGF0b3IgfSBmcm9tICcuL2Jhc2VWYWxpZGF0b3InO1xuaW1wb3J0IHsgVGFnVmFsaWRpdHkgfSBmcm9tICcuL2NvbW1vbic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJc0luUHJlZmVycmVkRnJvbVZhbGlkYXRvciBpbXBsZW1lbnRzIFRhZ1ZhbGlkYXRvciB7XG4gICAgcHVibGljIHJlYWRvbmx5IGlhbmE6IElhbmEuTGFuZ3VhZ2VSZWdpc3RyaWVzO1xuICAgIHB1YmxpYyByZWFkb25seSB2YWxpZGl0eTogVGFnVmFsaWRpdHkgPSAndmFsaWQnO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGlhbmE/OiBJYW5hLkxhbmd1YWdlUmVnaXN0cmllcykge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICB0aGlzLmlhbmEgPSBpYW5hID8/IElhbmEuRGVmYXVsdFJlZ2lzdHJpZXMubGFuZ3VhZ2VSZWdpc3RyaWVzO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZVN1YnRhZ3Moc3VidGFnczogU3VidGFncyk6IFJlc3VsdDx0cnVlPiB7XG4gICAgICAgIHJldHVybiBOb3JtYWxpemVUYWcudG9QcmVmZXJyZWQoc3VidGFncykub25TdWNjZXNzKChwcmVmZXJyZWQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHdhbnQgPSBzdWJ0YWdzVG9TdHJpbmcocHJlZmVycmVkKTtcbiAgICAgICAgICAgIGNvbnN0IGhhdmUgPSBzdWJ0YWdzVG9TdHJpbmcoc3VidGFncyk7XG4gICAgICAgICAgICBpZiAod2FudCAhPT0gaGF2ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKGAke2hhdmV9OiBkb2VzIG5vdCBtYXRjaCBwcmVmZXJyZWQgZm9ybSAke3dhbnR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isStrictlyValid.d.ts","sourceRoot":"","sources":["../../../src/bcp47/validation/isStrictlyValid.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAgB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,MAAM,EAA6B,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,OAAO,EAAmB,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,gBAAgB;IACnD,QAAQ,EAAE,WAAW,CAAoB;IACzC,aAAa,EAAE,gBAAgB,CAAa;IAEnD,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;IAOpG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;IAOpG,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;IAyBtH,SAAS,CAAC,sBAAsB,CAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC1B,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,GAC/C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;CA4B9D"}
|
|
@@ -0,0 +1,98 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.IsStrictlyValidValidator = void 0;
|
|
25
|
+
const normalization_1 = require("../normalization");
|
|
26
|
+
const ts_utils_1 = require("@fgv/ts-utils");
|
|
27
|
+
const common_1 = require("../common");
|
|
28
|
+
const isValid_1 = require("./isValid");
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
class IsStrictlyValidValidator extends isValid_1.IsValidValidator {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(...arguments);
|
|
35
|
+
this.validity = 'strictly-valid';
|
|
36
|
+
this.normalization = 'unknown';
|
|
37
|
+
}
|
|
38
|
+
_checkExtlangs(subtags) {
|
|
39
|
+
if (subtags.extlangs) {
|
|
40
|
+
return super._checkExtlangs(subtags).onSuccess(() => this._validateExtlangPrefix(subtags));
|
|
41
|
+
}
|
|
42
|
+
return (0, ts_utils_1.succeed)(undefined);
|
|
43
|
+
}
|
|
44
|
+
_checkVariants(subtags) {
|
|
45
|
+
if (subtags.variants) {
|
|
46
|
+
return super._checkVariants(subtags).onSuccess((v) => this._validateVariantPrefix(subtags, v));
|
|
47
|
+
}
|
|
48
|
+
return (0, ts_utils_1.succeed)(undefined);
|
|
49
|
+
}
|
|
50
|
+
_validateExtlangPrefix(subtags) {
|
|
51
|
+
if (subtags.extlangs) {
|
|
52
|
+
const prefix = this.iana.subtags.languages.toCanonical(subtags.primaryLanguage).orDefault();
|
|
53
|
+
if (!prefix) {
|
|
54
|
+
return (0, ts_utils_1.fail)('missing primary language for extlang prefix validation.');
|
|
55
|
+
}
|
|
56
|
+
return (0, ts_utils_1.mapResults)(subtags.extlangs.map((extlang) => {
|
|
57
|
+
const def = this.iana.subtags.extlangs.tryGet(extlang);
|
|
58
|
+
// istanbul ignore next - should never happen due to guards earlier in conversion
|
|
59
|
+
if (!def) {
|
|
60
|
+
return (0, ts_utils_1.fail)(`invalid extlang subtag "${extlang}" (not registered).`);
|
|
61
|
+
}
|
|
62
|
+
if (prefix !== def.prefix) {
|
|
63
|
+
return (0, ts_utils_1.fail)(`invalid prefix "${prefix}" for extlang subtag ${extlang} (expected "${def.prefix}").`);
|
|
64
|
+
}
|
|
65
|
+
return (0, ts_utils_1.succeed)(extlang);
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
// istanbul ignore next - should be caught in the caller
|
|
69
|
+
return (0, ts_utils_1.succeed)(undefined);
|
|
70
|
+
}
|
|
71
|
+
_validateVariantPrefix(subtags, variants) {
|
|
72
|
+
const { primaryLanguage, extlangs, script, region } = subtags;
|
|
73
|
+
const nonCanonical = { primaryLanguage, extlangs, script, region };
|
|
74
|
+
const canonical = normalization_1.NormalizeTag.normalizeSubtags(nonCanonical, 'canonical');
|
|
75
|
+
// istanbul ignore next - should be caught in the first pass
|
|
76
|
+
if (canonical.isFailure()) {
|
|
77
|
+
return (0, ts_utils_1.fail)(`failed to normalize variant prefix: ${canonical.message}`);
|
|
78
|
+
}
|
|
79
|
+
let prefix = (0, common_1.subtagsToString)(canonical.value);
|
|
80
|
+
return (0, ts_utils_1.mapResults)(variants.map((variant) => {
|
|
81
|
+
var _a;
|
|
82
|
+
const def = this.iana.subtags.variants.tryGet(variant);
|
|
83
|
+
// istanbul ignore next - should be caught in the first pass
|
|
84
|
+
if (!def) {
|
|
85
|
+
return (0, ts_utils_1.fail)(`invalid variant subtag "${variant}" (not registered).`);
|
|
86
|
+
}
|
|
87
|
+
// only fail if registration specifies prefixes but none are present
|
|
88
|
+
if (((_a = def.prefix) === null || _a === void 0 ? void 0 : _a.includes(prefix)) === false) {
|
|
89
|
+
return (0, ts_utils_1.fail)(`invalid prefix "${prefix}" for variant subtag ${variant} (expected "(${def.prefix.join(', ')})").`);
|
|
90
|
+
}
|
|
91
|
+
const canonicalVariant = this.iana.subtags.variants.toCanonical(variant).orDefault();
|
|
92
|
+
prefix = `${prefix}-${canonicalVariant}`;
|
|
93
|
+
return (0, ts_utils_1.succeed)(variant);
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.IsStrictlyValidValidator = IsStrictlyValidValidator;
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNTdHJpY3RseVZhbGlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JjcDQ3L3ZhbGlkYXRpb24vaXNTdHJpY3RseVZhbGlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7OztBQUlILG9EQUFrRTtBQUNsRSw0Q0FBa0U7QUFDbEUsc0NBQXFEO0FBRXJELHVDQUE2QztBQUc3Qzs7R0FFRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsMEJBQWdCO0lBQTlEOztRQUNXLGFBQVEsR0FBZ0IsZ0JBQWdCLENBQUM7UUFDekMsa0JBQWEsR0FBcUIsU0FBUyxDQUFDO0lBd0V2RCxDQUFDO0lBdEVhLGNBQWMsQ0FBQyxPQUFnQjtRQUNyQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDbEIsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUM5RjtRQUNELE9BQU8sSUFBQSxrQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFUyxjQUFjLENBQUMsT0FBZ0I7UUFDckMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQztTQUNuRztRQUNELE9BQU8sSUFBQSxrQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxPQUEwQjtRQUN2RCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUks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Q0FBQztDQUNKO0FBMUVELDREQTBFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBJYW5hIGZyb20gJy4uLy4uL2lhbmEnO1xuXG5pbXBvcnQgeyBOb3JtYWxpemVUYWcsIFRhZ05vcm1hbGl6YXRpb24gfSBmcm9tICcuLi9ub3JtYWxpemF0aW9uJztcbmltcG9ydCB7IFJlc3VsdCwgZmFpbCwgbWFwUmVzdWx0cywgc3VjY2VlZCB9IGZyb20gJ0BmZ3YvdHMtdXRpbHMnO1xuaW1wb3J0IHsgU3VidGFncywgc3VidGFnc1RvU3RyaW5nIH0gZnJvbSAnLi4vY29tbW9uJztcblxuaW1wb3J0IHsgSXNWYWxpZFZhbGlkYXRvciB9IGZyb20gJy4vaXNWYWxpZCc7XG5pbXBvcnQgeyBUYWdWYWxpZGl0eSB9IGZyb20gJy4vY29tbW9uJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIElzU3RyaWN0bHlWYWxpZFZhbGlkYXRvciBleHRlbmRzIElzVmFsaWRWYWxpZGF0b3Ige1xuICAgIHB1YmxpYyB2YWxpZGl0eTogVGFnVmFsaWRpdHkgPSAnc3RyaWN0bHktdmFsaWQnO1xuICAgIHB1YmxpYyBub3JtYWxpemF0aW9uOiBUYWdOb3JtYWxpemF0aW9uID0gJ3Vua25vd24nO1xuXG4gICAgcHJvdGVjdGVkIF9jaGVja0V4dGxhbmdzKHN1YnRhZ3M6IFN1YnRhZ3MpOiBSZXN1bHQ8SWFuYS5MYW5ndWFnZVN1YnRhZ3MuRXh0TGFuZ1N1YnRhZ1tdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmIChzdWJ0YWdzLmV4dGxhbmdzKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VwZXIuX2NoZWNrRXh0bGFuZ3Moc3VidGFncykub25TdWNjZXNzKCgpID0+IHRoaXMuX3ZhbGlkYXRlRXh0bGFuZ1ByZWZpeChzdWJ0YWdzKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NoZWNrVmFyaWFudHMoc3VidGFnczogU3VidGFncyk6IFJlc3VsdDxJYW5hLkxhbmd1YWdlU3VidGFncy5WYXJpYW50U3VidGFnW10gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgaWYgKHN1YnRhZ3MudmFyaWFudHMpIHtcbiAgICAgICAgICAgIHJldHVybiBzdXBlci5fY2hlY2tWYXJpYW50cyhzdWJ0YWdzKS5vblN1Y2Nlc3MoKHYpID0+IHRoaXMuX3ZhbGlkYXRlVmFyaWFudFByZWZpeChzdWJ0YWdzLCB2ISkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdWNjZWVkKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF92YWxpZGF0ZUV4dGxhbmdQcmVmaXgoc3VidGFnczogUmVhZG9ubHk8U3VidGFncz4pOiBSZXN1bHQ8SWFuYS5MYW5ndWFnZVN1YnRhZ3MuRXh0TGFuZ1N1YnRhZ1tdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmIChzdWJ0YWdzLmV4dGxhbmdzKSB7XG4gICAgICAgICAgICBjb25zdCBwcmVmaXggPSB0aGlzLmlhbmEuc3VidGFncy5sYW5ndWFnZXMudG9DYW5vbmljYWwoc3VidGFncy5wcmltYXJ5TGFuZ3VhZ2UpLm9yRGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFwcmVmaXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFpbCgnbWlzc2luZyBwcmltYXJ5IGxhbmd1YWdlIGZvciBleHRsYW5nIHByZWZpeCB2YWxpZGF0aW9uLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbWFwUmVzdWx0cyhcbiAgICAgICAgICAgICAgICBzdWJ0YWdzLmV4dGxhbmdzLm1hcCgoZXh0bGFuZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWYgPSB0aGlzLmlhbmEuc3VidGFncy5leHRsYW5ncy50cnlHZXQoZXh0bGFuZyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0IC0gc2hvdWxkIG5ldmVyIGhhcHBlbiBkdWUgdG8gZ3VhcmRzIGVhcmxpZXIgaW4gY29udmVyc2lvblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWRlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoYGludmFsaWQgZXh0bGFuZyBzdWJ0YWcgXCIke2V4dGxhbmd9XCIgKG5vdCByZWdpc3RlcmVkKS5gKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4ICE9PSBkZWYucHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFpbChgaW52YWxpZCBwcmVmaXggXCIke3ByZWZpeH1cIiBmb3IgZXh0bGFuZyBzdWJ0YWcgJHtleHRsYW5nfSAoZXhwZWN0ZWQgXCIke2RlZi5wcmVmaXh9XCIpLmApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKGV4dGxhbmcpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0IC0gc2hvdWxkIGJlIGNhdWdodCBpbiB0aGUgY2FsbGVyXG4gICAgICAgIHJldHVybiBzdWNjZWVkKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF92YWxpZGF0ZVZhcmlhbnRQcmVmaXgoXG4gICAgICAgIHN1YnRhZ3M6IFJlYWRvbmx5PFN1YnRhZ3M+LFxuICAgICAgICB2YXJpYW50czogSWFuYS5MYW5ndWFnZVN1YnRhZ3MuVmFyaWFudFN1YnRhZ1tdXG4gICAgKTogUmVzdWx0PElhbmEuTGFuZ3VhZ2VTdWJ0YWdzLlZhcmlhbnRTdWJ0YWdbXSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCB7IHByaW1hcnlMYW5ndWFnZSwgZXh0bGFuZ3MsIHNjcmlwdCwgcmVnaW9uIH0gPSBzdWJ0YWdzO1xuICAgICAgICBjb25zdCBub25DYW5vbmljYWwgPSB7IHByaW1hcnlMYW5ndWFnZSwgZXh0bGFuZ3MsIHNjcmlwdCwgcmVnaW9uIH07XG4gICAgICAgIGNvbnN0IGNhbm9uaWNhbCA9IE5vcm1hbGl6ZVRhZy5ub3JtYWxpemVTdWJ0YWdzKG5vbkNhbm9uaWNhbCwgJ2Nhbm9uaWNhbCcpO1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAtIHNob3VsZCBiZSBjYXVnaHQgaW4gdGhlIGZpcnN0IHBhc3NcbiAgICAgICAgaWYgKGNhbm9uaWNhbC5pc0ZhaWx1cmUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhaWwoYGZhaWxlZCB0byBub3JtYWxpemUgdmFyaWFudCBwcmVmaXg6ICR7Y2Fub25pY2FsLm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHByZWZpeCA9IHN1YnRhZ3NUb1N0cmluZyhjYW5vbmljYWwudmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBtYXBSZXN1bHRzKFxuICAgICAgICAgICAgdmFyaWFudHMubWFwKCh2YXJpYW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVmID0gdGhpcy5pYW5hLnN1YnRhZ3MudmFyaWFudHMudHJ5R2V0KHZhcmlhbnQpO1xuICAgICAgICAgICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0IC0gc2hvdWxkIGJlIGNhdWdodCBpbiB0aGUgZmlyc3QgcGFzc1xuICAgICAgICAgICAgICAgIGlmICghZGVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKGBpbnZhbGlkIHZhcmlhbnQgc3VidGFnIFwiJHt2YXJpYW50fVwiIChub3QgcmVnaXN0ZXJlZCkuYCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gb25seSBmYWlsIGlmIHJlZ2lzdHJhdGlvbiBzcGVjaWZpZXMgcHJlZml4ZXMgYnV0IG5vbmUgYXJlIHByZXNlbnRcbiAgICAgICAgICAgICAgICBpZiAoZGVmLnByZWZpeD8uaW5jbHVkZXMocHJlZml4IGFzIElhbmEuTGFuZ3VhZ2VTdWJ0YWdzLkV4dGVuZGVkTGFuZ3VhZ2VSYW5nZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKGBpbnZhbGlkIHByZWZpeCBcIiR7cHJlZml4fVwiIGZvciB2YXJpYW50IHN1YnRhZyAke3ZhcmlhbnR9IChleHBlY3RlZCBcIigke2RlZi5wcmVmaXguam9pbignLCAnKX0pXCIpLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjYW5vbmljYWxWYXJpYW50ID0gdGhpcy5pYW5hLnN1YnRhZ3MudmFyaWFudHMudG9DYW5vbmljYWwodmFyaWFudCkub3JEZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcHJlZml4ID0gYCR7cHJlZml4fS0ke2Nhbm9uaWNhbFZhcmlhbnR9YDtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh2YXJpYW50KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isValid.d.ts","sourceRoot":"","sources":["../../../src/bcp47/validation/isValid.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAyC,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;IAC3C,QAAQ,EAAE,WAAW,CAAW;IAEvC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,SAAS,CAAC;IAInG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;IAUpG,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,SAAS,CAAC;IAI/F,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,SAAS,CAAC;IAI/F,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;IAcpG,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAI7F,SAAS,CAAC,0BAA0B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAIrF,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAMxF,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAUlH,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAI9G,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;CAQ7D"}
|
|
@@ -0,0 +1,115 @@
|
|
|
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.IsValidValidator = void 0;
|
|
48
|
+
const Bcp47Subtags = __importStar(require("../bcp47Subtags"));
|
|
49
|
+
const Iana = __importStar(require("../../iana"));
|
|
50
|
+
const ts_utils_1 = require("@fgv/ts-utils");
|
|
51
|
+
const baseValidator_1 = require("./baseValidator");
|
|
52
|
+
/**
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
class IsValidValidator extends baseValidator_1.TagValidatorBase {
|
|
56
|
+
constructor() {
|
|
57
|
+
super(...arguments);
|
|
58
|
+
this.validity = 'valid';
|
|
59
|
+
}
|
|
60
|
+
_checkLanguage(subtags) {
|
|
61
|
+
return subtags.primaryLanguage ? this.iana.subtags.languages.verifyIsValid(subtags.primaryLanguage) : (0, ts_utils_1.succeed)(undefined);
|
|
62
|
+
}
|
|
63
|
+
_checkExtlangs(subtags) {
|
|
64
|
+
if (subtags.extlangs) {
|
|
65
|
+
return (0, ts_utils_1.allSucceed)(subtags.extlangs.map((e) => this.iana.subtags.extlangs.verifyIsValid(e)), subtags.extlangs);
|
|
66
|
+
}
|
|
67
|
+
return (0, ts_utils_1.succeed)(undefined);
|
|
68
|
+
}
|
|
69
|
+
_checkScript(subtags) {
|
|
70
|
+
return subtags.script ? this.iana.subtags.scripts.verifyIsValid(subtags.script) : (0, ts_utils_1.succeed)(undefined);
|
|
71
|
+
}
|
|
72
|
+
_checkRegion(subtags) {
|
|
73
|
+
return subtags.region ? this.iana.subtags.regions.verifyIsValid(subtags.region) : (0, ts_utils_1.succeed)(undefined);
|
|
74
|
+
}
|
|
75
|
+
_checkVariants(subtags) {
|
|
76
|
+
if (subtags.variants) {
|
|
77
|
+
return (0, ts_utils_1.allSucceed)(subtags.variants.map((v) => this.iana.subtags.variants.verifyIsValid(v)), subtags.variants).onSuccess((v) => {
|
|
78
|
+
return (0, ts_utils_1.mapResults)(v.map((vc) => this.iana.subtags.variants.toCanonical(vc))).onSuccess((canonical) => {
|
|
79
|
+
return this._verifyUnique('variant subtag', canonical, (v) => v);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return (0, ts_utils_1.succeed)(undefined);
|
|
84
|
+
}
|
|
85
|
+
_checkExtensionSingleton(singleton) {
|
|
86
|
+
return this.iana.extensions.extensions.verifyIsValid(singleton);
|
|
87
|
+
}
|
|
88
|
+
_checkExtensionSubtagValue(value) {
|
|
89
|
+
return Bcp47Subtags.Validate.extensionSubtag.verifyIsWellFormed(value);
|
|
90
|
+
}
|
|
91
|
+
_checkExtensions(subtags) {
|
|
92
|
+
return super._checkExtensions(subtags).onSuccess((extensions) => {
|
|
93
|
+
return this._verifyUnique('extensions', extensions, (e) => e.singleton.toLowerCase());
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
_checkPrivateUseTags(subtags) {
|
|
97
|
+
if (subtags.privateUse) {
|
|
98
|
+
return (0, ts_utils_1.allSucceed)(subtags.privateUse.map((pu) => Iana.LanguageSubtags.Validate.extendedLanguageRange.verifyIsWellFormed(pu)), subtags.privateUse);
|
|
99
|
+
}
|
|
100
|
+
return (0, ts_utils_1.succeed)(subtags.privateUse);
|
|
101
|
+
}
|
|
102
|
+
_checkGrandfatheredTags(subtags) {
|
|
103
|
+
return subtags.grandfathered ? this.iana.subtags.grandfathered.verifyIsValid(subtags.grandfathered) : (0, ts_utils_1.succeed)(undefined);
|
|
104
|
+
}
|
|
105
|
+
_postValidate(subtags) {
|
|
106
|
+
return this._basicPostValidation(subtags).onSuccess((validated) => {
|
|
107
|
+
if (validated.extlangs && validated.extlangs.length > 1) {
|
|
108
|
+
return (0, ts_utils_1.fail)(`${validated.extlangs.join('-')}: multiple extlang subtags is invalid`);
|
|
109
|
+
}
|
|
110
|
+
return (0, ts_utils_1.succeed)(validated);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.IsValidValidator = IsValidValidator;
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNWYWxpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iY3A0Ny92YWxpZGF0aW9uL2lzVmFsaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCw4REFBZ0Q7QUFDaEQsaURBQW1DO0FBSW5DLDRDQUE4RTtBQUM5RSxtREFBbUQ7QUFHbkQ7O0dBRUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLGdDQUFnQjtJQUF0RDs7UUFDVyxhQUFRLEdBQWdCLE9BQU8sQ0FBQztJQTBFM0MsQ0FBQztJQXhFYSxjQUFjLENBQUMsT0FBZ0I7UUFDckMsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxrQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdILENBQUM7SUFFUyxjQUFjLENBQUMsT0FBZ0I7UUFDckMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU8sSUFBQSxxQkFBVSxFQUNiLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3hFLE9BQU8sQ0FBQyxRQUFRLENBQ25CLENBQUM7U0FDTDtRQUNELE9BQU8sSUFBQSxrQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFUyxZQUFZLENBQUMsT0FBZ0I7UUFDbkMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMs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Q0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGtCQUFPLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0gsQ0FBQztJQUVTLGFBQWEsQ0FBQyxPQUFnQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM5RCxJQUFJLFNBQVMsQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyRCxPQUFPLElBQUEsZUFBSSxFQUFDLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7YUFDdkY7WUFDRCxPQUFPLElBQUEsa0JBQU8sRUFBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQTNFRCw0Q0EyRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIyIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0ICogYXMgQmNwNDdTdWJ0YWdzIGZyb20gJy4uL2JjcDQ3U3VidGFncyc7XG5pbXBvcnQgKiBhcyBJYW5hIGZyb20gJy4uLy4uL2lhbmEnO1xuXG5pbXBvcnQgeyBFeHRlbnNpb25TaW5nbGV0b24sIEV4dGVuc2lvblN1YnRhZyB9IGZyb20gJy4uL2JjcDQ3U3VidGFncy9tb2RlbCc7XG5pbXBvcnQgeyBFeHRlbnNpb25TdWJ0YWdWYWx1ZSwgU3VidGFncyB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBSZXN1bHQsIGFsbFN1Y2NlZWQsIGZhaWwsIG1hcFJlc3VsdHMsIHN1Y2NlZWQgfSBmcm9tICdAZmd2L3RzLXV0aWxzJztcbmltcG9ydCB7IFRhZ1ZhbGlkYXRvckJhc2UgfSBmcm9tICcuL2Jhc2VWYWxpZGF0b3InO1xuaW1wb3J0IHsgVGFnVmFsaWRpdHkgfSBmcm9tICcuL2NvbW1vbic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJc1ZhbGlkVmFsaWRhdG9yIGV4dGVuZHMgVGFnVmFsaWRhdG9yQmFzZSB7XG4gICAgcHVibGljIHZhbGlkaXR5OiBUYWdWYWxpZGl0eSA9ICd2YWxpZCc7XG5cbiAgICBwcm90ZWN0ZWQgX2NoZWNrTGFuZ3VhZ2Uoc3VidGFnczogU3VidGFncyk6IFJlc3VsdDxJYW5hLkxhbmd1YWdlU3VidGFncy5MYW5ndWFnZVN1YnRhZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gc3VidGFncy5wcmltYXJ5TGFuZ3VhZ2UgPyB0aGlzLmlhbmEuc3VidGFncy5sYW5ndWFnZXMudmVyaWZ5SXNWYWxpZChzdWJ0YWdzLnByaW1hcnlMYW5ndWFnZSkgOiBzdWNjZWVkKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jaGVja0V4dGxhbmdzKHN1YnRhZ3M6IFN1YnRhZ3MpOiBSZXN1bHQ8SWFuYS5MYW5ndWFnZVN1YnRhZ3MuRXh0TGFuZ1N1YnRhZ1tdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmIChzdWJ0YWdzLmV4dGxhbmdzKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxsU3VjY2VlZChcbiAgICAgICAgICAgICAgICBzdWJ0YWdzLmV4dGxhbmdzLm1hcCgoZSkgPT4gdGhpcy5pYW5hLnN1YnRhZ3MuZXh0bGFuZ3MudmVyaWZ5SXNWYWxpZChlKSksXG4gICAgICAgICAgICAgICAgc3VidGFncy5leHRsYW5nc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VjY2VlZCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tTY3JpcHQoc3VidGFnczogU3VidGFncyk6IFJlc3VsdDxJYW5hLkxhbmd1YWdlU3VidGFncy5TY3JpcHRTdWJ0YWcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHN1YnRhZ3Muc2NyaXB0ID8gdGhpcy5pYW5hLnN1YnRhZ3Muc2NyaXB0cy52ZXJpZnlJc1ZhbGlkKHN1YnRhZ3Muc2NyaXB0KSA6IHN1Y2NlZWQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NoZWNrUmVnaW9uKHN1YnRhZ3M6IFN1YnRhZ3MpOiBSZXN1bHQ8SWFuYS5MYW5ndWFnZVN1YnRhZ3MuUmVnaW9uU3VidGFnIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBzdWJ0YWdzLnJlZ2lvbiA/IHRoaXMuaWFuYS5zdWJ0YWdzLnJlZ2lvbnMudmVyaWZ5SXNWYWxpZChzdWJ0YWdzLnJlZ2lvbikgOiBzdWNjZWVkKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jaGVja1ZhcmlhbnRzKHN1YnRhZ3M6IFN1YnRhZ3MpOiBSZXN1bHQ8SWFuYS5MYW5ndWFnZVN1YnRhZ3MuVmFyaWFudFN1YnRhZ1tdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmIChzdWJ0YWdzLnZhcmlhbnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxsU3VjY2VlZChcbiAgICAgICAgICAgICAgICBzdWJ0YWdzLnZhcmlhbnRzLm1hcCgodikgPT4gdGhpcy5pYW5hLnN1YnRhZ3MudmFyaWFudHMudmVyaWZ5SXNWYWxpZCh2KSksXG4gICAgICAgICAgICAgICAgc3VidGFncy52YXJpYW50c1xuICAgICAgICAgICAgKS5vblN1Y2Nlc3MoKHYpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwUmVzdWx0cyh2Lm1hcCgodmMpID0+IHRoaXMuaWFuYS5zdWJ0YWdzLnZhcmlhbnRzLnRvQ2Fub25pY2FsKHZjKSkpLm9uU3VjY2VzcygoY2Fub25pY2FsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl92ZXJpZnlVbmlxdWUoJ3ZhcmlhbnQgc3VidGFnJywgY2Fub25pY2FsLCAodikgPT4gdik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VjY2VlZCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tFeHRlbnNpb25TaW5nbGV0b24oc2luZ2xldG9uOiBFeHRlbnNpb25TaW5nbGV0b24pOiBSZXN1bHQ8RXh0ZW5zaW9uU2luZ2xldG9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlhbmEuZXh0ZW5zaW9ucy5leHRlbnNpb25zLnZlcmlmeUlzVmFsaWQoc2luZ2xldG9uKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NoZWNrRXh0ZW5zaW9uU3VidGFnVmFsdWUodmFsdWU6IEV4dGVuc2lvblN1YnRhZyk6IFJlc3VsdDxFeHRlbnNpb25TdWJ0YWc+IHtcbiAgICAgICAgcmV0dXJuIEJjcDQ3U3VidGFncy5WYWxpZGF0ZS5leHRlbnNpb25TdWJ0YWcudmVyaWZ5SXNXZWxsRm9ybWVkKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NoZWNrRXh0ZW5zaW9ucyhzdWJ0YWdzOiBTdWJ0YWdzKTogUmVzdWx0PEV4dGVuc2lvblN1YnRhZ1ZhbHVlW10gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLl9jaGVja0V4dGVuc2lvbnMoc3VidGFncykub25TdWNjZXNzKChleHRlbnNpb25zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmVyaWZ5VW5pcXVlKCdleHRlbnNpb25zJywgZXh0ZW5zaW9ucywgKGUpID0+IGUuc2luZ2xldG9uLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NoZWNrUHJpdmF0ZVVzZVRhZ3Moc3VidGFnczogU3VidGFncyk6IFJlc3VsdDxJYW5hLkxhbmd1YWdlU3VidGFncy5FeHRlbmRlZExhbmd1YWdlUmFuZ2VbXSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZiAoc3VidGFncy5wcml2YXRlVXNlKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxsU3VjY2VlZChcbiAgICAgICAgICAgICAgICBzdWJ0YWdzLnByaXZhdGVVc2UubWFwKChwdSkgPT4gSWFuYS5MYW5ndWFnZVN1YnRhZ3MuVmFsaWRhdGUuZXh0ZW5kZWRMYW5ndWFnZVJhbmdlLnZlcmlmeUlzV2VsbEZvcm1lZChwdSkpLFxuICAgICAgICAgICAgICAgIHN1YnRhZ3MucHJpdmF0ZVVzZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VjY2VlZChzdWJ0YWdzLnByaXZhdGVVc2UpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tHcmFuZGZhdGhlcmVkVGFncyhzdWJ0YWdzOiBTdWJ0YWdzKTogUmVzdWx0PElhbmEuTGFuZ3VhZ2VTdWJ0YWdzLkdyYW5kZmF0aGVyZWRUYWcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHN1YnRhZ3MuZ3JhbmRmYXRoZXJlZCA/IHRoaXMuaWFuYS5zdWJ0YWdzLmdyYW5kZmF0aGVyZWQudmVyaWZ5SXNWYWxpZChzdWJ0YWdzLmdyYW5kZmF0aGVyZWQpIDogc3VjY2VlZCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcG9zdFZhbGlkYXRlKHN1YnRhZ3M6IFN1YnRhZ3MpOiBSZXN1bHQ8U3VidGFncz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYmFzaWNQb3N0VmFsaWRhdGlvbihzdWJ0YWdzKS5vblN1Y2Nlc3MoKHZhbGlkYXRlZCkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRlZC5leHRsYW5ncyAmJiB2YWxpZGF0ZWQuZXh0bGFuZ3MubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKGAke3ZhbGlkYXRlZC5leHRsYW5ncy5qb2luKCctJyl9OiBtdWx0aXBsZSBleHRsYW5nIHN1YnRhZ3MgaXMgaW52YWxpZGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQodmFsaWRhdGVkKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isWellFormed.d.ts","sourceRoot":"","sources":["../../../src/bcp47/validation/isWellFormed.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAuB,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,gBAAgB;IAChD,QAAQ,EAAE,WAAW,CAAiB;IAE7C,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,SAAS,CAAC;IAInG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;IAUpG,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,SAAS,CAAC;IAI/F,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,SAAS,CAAC;IAI/F,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;IAUpG,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAI7F,SAAS,CAAC,0BAA0B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAIrF,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAUlH,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,SAAS,CAAC;CAGjH"}
|
|
@@ -0,0 +1,98 @@
|
|
|
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.IsWellFormedValidator = void 0;
|
|
48
|
+
const Bcp47Subtags = __importStar(require("../bcp47Subtags"));
|
|
49
|
+
const Iana = __importStar(require("../../iana"));
|
|
50
|
+
const ts_utils_1 = require("@fgv/ts-utils");
|
|
51
|
+
const baseValidator_1 = require("./baseValidator");
|
|
52
|
+
/**
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
class IsWellFormedValidator extends baseValidator_1.TagValidatorBase {
|
|
56
|
+
constructor() {
|
|
57
|
+
super(...arguments);
|
|
58
|
+
this.validity = 'well-formed';
|
|
59
|
+
}
|
|
60
|
+
_checkLanguage(subtags) {
|
|
61
|
+
return subtags.primaryLanguage ? this.iana.subtags.languages.verifyIsWellFormed(subtags.primaryLanguage) : (0, ts_utils_1.succeed)(undefined);
|
|
62
|
+
}
|
|
63
|
+
_checkExtlangs(subtags) {
|
|
64
|
+
if (subtags.extlangs) {
|
|
65
|
+
return (0, ts_utils_1.allSucceed)(subtags.extlangs.map((e) => this.iana.subtags.extlangs.verifyIsWellFormed(e)), subtags.extlangs);
|
|
66
|
+
}
|
|
67
|
+
return (0, ts_utils_1.succeed)(undefined);
|
|
68
|
+
}
|
|
69
|
+
_checkScript(subtags) {
|
|
70
|
+
return subtags.script ? this.iana.subtags.scripts.verifyIsWellFormed(subtags.script) : (0, ts_utils_1.succeed)(undefined);
|
|
71
|
+
}
|
|
72
|
+
_checkRegion(subtags) {
|
|
73
|
+
return subtags.region ? this.iana.subtags.regions.verifyIsWellFormed(subtags.region) : (0, ts_utils_1.succeed)(undefined);
|
|
74
|
+
}
|
|
75
|
+
_checkVariants(subtags) {
|
|
76
|
+
if (subtags.variants) {
|
|
77
|
+
return (0, ts_utils_1.allSucceed)(subtags.variants.map((v) => this.iana.subtags.variants.verifyIsWellFormed(v)), subtags.variants);
|
|
78
|
+
}
|
|
79
|
+
return (0, ts_utils_1.succeed)(undefined);
|
|
80
|
+
}
|
|
81
|
+
_checkExtensionSingleton(singleton) {
|
|
82
|
+
return this.iana.extensions.extensions.verifyIsWellFormed(singleton);
|
|
83
|
+
}
|
|
84
|
+
_checkExtensionSubtagValue(value) {
|
|
85
|
+
return Bcp47Subtags.Validate.extensionSubtag.verifyIsWellFormed(value);
|
|
86
|
+
}
|
|
87
|
+
_checkPrivateUseTags(subtags) {
|
|
88
|
+
if (subtags.privateUse) {
|
|
89
|
+
return (0, ts_utils_1.allSucceed)(subtags.privateUse.map((pu) => Iana.LanguageSubtags.Validate.extendedLanguageRange.verifyIsWellFormed(pu)), subtags.privateUse);
|
|
90
|
+
}
|
|
91
|
+
return (0, ts_utils_1.succeed)(subtags.privateUse);
|
|
92
|
+
}
|
|
93
|
+
_checkGrandfatheredTags(subtags) {
|
|
94
|
+
return subtags.grandfathered ? this.iana.subtags.grandfathered.verifyIsWellFormed(subtags.grandfathered) : (0, ts_utils_1.succeed)(undefined);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.IsWellFormedValidator = IsWellFormedValidator;
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNXZWxsRm9ybWVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JjcDQ3L3ZhbGlkYXRpb24vaXNXZWxsRm9ybWVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsOERBQWdEO0FBQ2hELGlEQUFtQztBQUduQyw0Q0FBNEQ7QUFHNUQsbURBQW1EO0FBR25EOztHQUVHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxnQ0FBZ0I7SUFBM0Q7O1FBQ1csYUFBUSxHQUFnQixhQUFhLENBQUM7SUF1RGpELENBQUM7SUFyRGEsY0FBYyxDQUFDLE9BQWdCO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxrQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xJLENBQUM7SUFFUyxjQUFjLENBQUMsT0FBZ0I7UUFDckMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU8sSUFBQSxxQkFBVSxFQUNiLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDN0UsT0FBTyxDQUFDLFFBQVEsQ0FDbkIsQ0FBQztTQUNMO1FBQ0QsT0FBTyxJQUFBLGtCQUFPLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVTLFlBQVksQ0FBQyxPQUFnQjtRQUNuQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsa0JBQU8sRUFBQyxTQUFTLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRVMsWUFBWSxDQUFDLE9BQWdCO1FBQ25DLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxrQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFUyxjQUFjLENBQUMsT0FBZ0I7UUFDckMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU8sSUFBQSxxQkFBVSxFQUNiLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDN0UsT0FBTyxDQUFDLFFBQVEsQ0FDbkIsQ0FBQztTQUNMO1FBQ0QsT0FBTyxJQUFBLGtCQUFPLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVTLHdCQUF3QixDQUFDLFNBQTZCO1FBQzVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFUywwQkFBMEIsQ0FBQyxLQUFzQjtRQUN2RCxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFUyxvQkFBb0IsQ0FBQyxPQUFnQjtRQUMzQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDcEIsT0FBTyxJQUFBLHFCQUFVLEVBQ2IsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzFHLE9BQU8sQ0FBQyxVQUFVLENBQ3JCLENBQUM7U0FDTDtRQUNELE9BQU8sSUFBQSxrQkFBTyxFQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsdUJBQXVCLENBQUMsT0FBZ0I7UUFDOUMsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGtCQUFPLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEksQ0FBQztDQUNKO0FBeERELHNEQXdEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBCY3A0N1N1YnRhZ3MgZnJvbSAnLi4vYmNwNDdTdWJ0YWdzJztcbmltcG9ydCAqIGFzIElhbmEgZnJvbSAnLi4vLi4vaWFuYSc7XG5cbmltcG9ydCB7IEV4dGVuc2lvblNpbmdsZXRvbiwgRXh0ZW5zaW9uU3VidGFnIH0gZnJvbSAnLi4vYmNwNDdTdWJ0YWdzL21vZGVsJztcbmltcG9ydCB7IFJlc3VsdCwgYWxsU3VjY2VlZCwgc3VjY2VlZCB9IGZyb20gJ0BmZ3YvdHMtdXRpbHMnO1xuXG5pbXBvcnQgeyBTdWJ0YWdzIH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IFRhZ1ZhbGlkYXRvckJhc2UgfSBmcm9tICcuL2Jhc2VWYWxpZGF0b3InO1xuaW1wb3J0IHsgVGFnVmFsaWRpdHkgfSBmcm9tICcuL2NvbW1vbic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJc1dlbGxGb3JtZWRWYWxpZGF0b3IgZXh0ZW5kcyBUYWdWYWxpZGF0b3JCYXNlIHtcbiAgICBwdWJsaWMgdmFsaWRpdHk6IFRhZ1ZhbGlkaXR5ID0gJ3dlbGwtZm9ybWVkJztcblxuICAgIHByb3RlY3RlZCBfY2hlY2tMYW5ndWFnZShzdWJ0YWdzOiBTdWJ0YWdzKTogUmVzdWx0PElhbmEuTGFuZ3VhZ2VTdWJ0YWdzLkxhbmd1YWdlU3VidGFnIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBzdWJ0YWdzLnByaW1hcnlMYW5ndWFnZSA/IHRoaXMuaWFuYS5zdWJ0YWdzLmxhbmd1YWdlcy52ZXJpZnlJc1dlbGxGb3JtZWQoc3VidGFncy5wcmltYXJ5TGFuZ3VhZ2UpIDogc3VjY2VlZCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tFeHRsYW5ncyhzdWJ0YWdzOiBTdWJ0YWdzKTogUmVzdWx0PElhbmEuTGFuZ3VhZ2VTdWJ0YWdzLkV4dExhbmdTdWJ0YWdbXSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZiAoc3VidGFncy5leHRsYW5ncykge1xuICAgICAgICAgICAgcmV0dXJuIGFsbFN1Y2NlZWQoXG4gICAgICAgICAgICAgICAgc3VidGFncy5leHRsYW5ncy5tYXAoKGUpID0+IHRoaXMuaWFuYS5zdWJ0YWdzLmV4dGxhbmdzLnZlcmlmeUlzV2VsbEZvcm1lZChlKSksXG4gICAgICAgICAgICAgICAgc3VidGFncy5leHRsYW5nc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VjY2VlZCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tTY3JpcHQoc3VidGFnczogU3VidGFncyk6IFJlc3VsdDxJYW5hLkxhbmd1YWdlU3VidGFncy5TY3JpcHRTdWJ0YWcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHN1YnRhZ3Muc2NyaXB0ID8gdGhpcy5pYW5hLnN1YnRhZ3Muc2NyaXB0cy52ZXJpZnlJc1dlbGxGb3JtZWQoc3VidGFncy5zY3JpcHQpIDogc3VjY2VlZCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tSZWdpb24oc3VidGFnczogU3VidGFncyk6IFJlc3VsdDxJYW5hLkxhbmd1YWdlU3VidGFncy5SZWdpb25TdWJ0YWcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHN1YnRhZ3MucmVnaW9uID8gdGhpcy5pYW5hLnN1YnRhZ3MucmVnaW9ucy52ZXJpZnlJc1dlbGxGb3JtZWQoc3VidGFncy5yZWdpb24pIDogc3VjY2VlZCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tWYXJpYW50cyhzdWJ0YWdzOiBTdWJ0YWdzKTogUmVzdWx0PElhbmEuTGFuZ3VhZ2VTdWJ0YWdzLlZhcmlhbnRTdWJ0YWdbXSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZiAoc3VidGFncy52YXJpYW50cykge1xuICAgICAgICAgICAgcmV0dXJuIGFsbFN1Y2NlZWQoXG4gICAgICAgICAgICAgICAgc3VidGFncy52YXJpYW50cy5tYXAoKHYpID0+IHRoaXMuaWFuYS5zdWJ0YWdzLnZhcmlhbnRzLnZlcmlmeUlzV2VsbEZvcm1lZCh2KSksXG4gICAgICAgICAgICAgICAgc3VidGFncy52YXJpYW50c1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VjY2VlZCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tFeHRlbnNpb25TaW5nbGV0b24oc2luZ2xldG9uOiBFeHRlbnNpb25TaW5nbGV0b24pOiBSZXN1bHQ8RXh0ZW5zaW9uU2luZ2xldG9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlhbmEuZXh0ZW5zaW9ucy5leHRlbnNpb25zLnZlcmlmeUlzV2VsbEZvcm1lZChzaW5nbGV0b24pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tFeHRlbnNpb25TdWJ0YWdWYWx1ZSh2YWx1ZTogRXh0ZW5zaW9uU3VidGFnKTogUmVzdWx0PEV4dGVuc2lvblN1YnRhZz4ge1xuICAgICAgICByZXR1cm4gQmNwNDdTdWJ0YWdzLlZhbGlkYXRlLmV4dGVuc2lvblN1YnRhZy52ZXJpZnlJc1dlbGxGb3JtZWQodmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tQcml2YXRlVXNlVGFncyhzdWJ0YWdzOiBTdWJ0YWdzKTogUmVzdWx0PElhbmEuTGFuZ3VhZ2VTdWJ0YWdzLkV4dGVuZGVkTGFuZ3VhZ2VSYW5nZVtdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmIChzdWJ0YWdzLnByaXZhdGVVc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBhbGxTdWNjZWVkKFxuICAgICAgICAgICAgICAgIHN1YnRhZ3MucHJpdmF0ZVVzZS5tYXAoKHB1KSA9PiBJYW5hLkxhbmd1YWdlU3VidGFncy5WYWxpZGF0ZS5leHRlbmRlZExhbmd1YWdlUmFuZ2UudmVyaWZ5SXNXZWxsRm9ybWVkKHB1KSksXG4gICAgICAgICAgICAgICAgc3VidGFncy5wcml2YXRlVXNlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdWNjZWVkKHN1YnRhZ3MucHJpdmF0ZVVzZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jaGVja0dyYW5kZmF0aGVyZWRUYWdzKHN1YnRhZ3M6IFN1YnRhZ3MpOiBSZXN1bHQ8SWFuYS5MYW5ndWFnZVN1YnRhZ3MuR3JhbmRmYXRoZXJlZFRhZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gc3VidGFncy5ncmFuZGZhdGhlcmVkID8gdGhpcy5pYW5hLnN1YnRhZ3MuZ3JhbmRmYXRoZXJlZC52ZXJpZnlJc1dlbGxGb3JtZWQoc3VidGFncy5ncmFuZGZhdGhlcmVkKSA6IHN1Y2NlZWQodW5kZWZpbmVkKTtcbiAgICB9XG59XG4iXX0=
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateTag.d.ts","sourceRoot":"","sources":["../../../src/bcp47/validation/validateTag.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,MAAM,EAAW,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAmB,MAAM,UAAU,CAAC;AAOxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;GAGG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAe;IAC3C,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAe;IACjD,OAAO,CAAC,MAAM,CAAC,WAAW,CAA4D;IAEtF;;;;;;;;;;;OAWG;WACW,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAOpD;;;;;;;;;;;;;OAaG;WACW,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAO1D;;;;;;;;;;OAUG;WACW,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIxD;;;;;;;;;OASG;WACW,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIhD;;;;;;;;;OASG;WACW,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIrD;;;;;;;;OAQG;WACW,eAAe,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS;IAkB9G;;;;;;;;;OASG;WACW,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;CAK1H"}
|