@fgv/ts-bcp47 0.5.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/LICENSE +21 -0
- package/README.md +141 -0
- package/bcp47/bcp47Subtags/converters.d.ts +9 -0
- package/bcp47/bcp47Subtags/converters.d.ts.map +1 -0
- package/bcp47/bcp47Subtags/converters.js +57 -0
- package/bcp47/bcp47Subtags/index.d.ts +5 -0
- package/bcp47/bcp47Subtags/index.d.ts.map +1 -0
- package/bcp47/bcp47Subtags/index.js +54 -0
- package/bcp47/bcp47Subtags/model.d.ts +18 -0
- package/bcp47/bcp47Subtags/model.d.ts.map +1 -0
- package/bcp47/bcp47Subtags/model.js +24 -0
- package/bcp47/bcp47Subtags/validate.d.ts +16 -0
- package/bcp47/bcp47Subtags/validate.d.ts.map +1 -0
- package/bcp47/bcp47Subtags/validate.js +74 -0
- package/bcp47/common.d.ts +38 -0
- package/bcp47/common.d.ts.map +1 -0
- package/bcp47/common.js +59 -0
- package/bcp47/helpers.d.ts +66 -0
- package/bcp47/helpers.d.ts.map +1 -0
- package/bcp47/helpers.js +103 -0
- package/bcp47/index.d.ts +7 -0
- package/bcp47/index.d.ts.map +1 -0
- package/bcp47/index.js +27 -0
- package/bcp47/languageTag.d.ts +208 -0
- package/bcp47/languageTag.d.ts.map +1 -0
- package/bcp47/languageTag.js +342 -0
- package/bcp47/languageTagParser.d.ts +123 -0
- package/bcp47/languageTagParser.d.ts.map +1 -0
- package/bcp47/languageTagParser.js +310 -0
- package/bcp47/match/chooser.d.ts +70 -0
- package/bcp47/match/chooser.d.ts.map +1 -0
- package/bcp47/match/chooser.js +92 -0
- package/bcp47/match/common.d.ts +24 -0
- package/bcp47/match/common.d.ts.map +1 -0
- package/bcp47/match/common.js +42 -0
- package/bcp47/match/index.d.ts +4 -0
- package/bcp47/match/index.d.ts.map +1 -0
- package/bcp47/match/index.js +45 -0
- package/bcp47/match/similarity.d.ts +24 -0
- package/bcp47/match/similarity.d.ts.map +1 -0
- package/bcp47/match/similarity.js +230 -0
- package/bcp47/normalization/baseNormalizer.d.ts +36 -0
- package/bcp47/normalization/baseNormalizer.d.ts.map +1 -0
- package/bcp47/normalization/baseNormalizer.js +114 -0
- package/bcp47/normalization/canonicalNormalizer.d.ts +22 -0
- package/bcp47/normalization/canonicalNormalizer.d.ts.map +1 -0
- package/bcp47/normalization/canonicalNormalizer.js +110 -0
- package/bcp47/normalization/common.d.ts +23 -0
- package/bcp47/normalization/common.d.ts.map +1 -0
- package/bcp47/normalization/common.js +82 -0
- package/bcp47/normalization/index.d.ts +5 -0
- package/bcp47/normalization/index.d.ts.map +1 -0
- package/bcp47/normalization/index.js +47 -0
- package/bcp47/normalization/normalizeTag.d.ts +59 -0
- package/bcp47/normalization/normalizeTag.d.ts.map +1 -0
- package/bcp47/normalization/normalizeTag.js +105 -0
- package/bcp47/normalization/preferredTagNormalizer.d.ts +26 -0
- package/bcp47/normalization/preferredTagNormalizer.d.ts.map +1 -0
- package/bcp47/normalization/preferredTagNormalizer.js +178 -0
- package/bcp47/overrides/converters.d.ts +19 -0
- package/bcp47/overrides/converters.d.ts.map +1 -0
- package/bcp47/overrides/converters.js +75 -0
- package/bcp47/overrides/defaultRegistries.d.ts +12 -0
- package/bcp47/overrides/defaultRegistries.d.ts.map +1 -0
- package/bcp47/overrides/defaultRegistries.js +42 -0
- package/bcp47/overrides/index.d.ts +3 -0
- package/bcp47/overrides/index.d.ts.map +1 -0
- package/bcp47/overrides/index.js +30 -0
- package/bcp47/overrides/model.d.ts +11 -0
- package/bcp47/overrides/model.d.ts.map +1 -0
- package/bcp47/overrides/model.js +24 -0
- package/bcp47/overrides/overridesRegistry.d.ts +32 -0
- package/bcp47/overrides/overridesRegistry.d.ts.map +1 -0
- package/bcp47/overrides/overridesRegistry.js +101 -0
- package/bcp47/validation/baseValidator.d.ts +35 -0
- package/bcp47/validation/baseValidator.d.ts.map +1 -0
- package/bcp47/validation/baseValidator.js +111 -0
- package/bcp47/validation/common.d.ts +23 -0
- package/bcp47/validation/common.d.ts.map +1 -0
- package/bcp47/validation/common.js +84 -0
- package/bcp47/validation/index.d.ts +7 -0
- package/bcp47/validation/index.d.ts.map +1 -0
- package/bcp47/validation/index.js +51 -0
- package/bcp47/validation/isCanonical.d.ts +22 -0
- package/bcp47/validation/isCanonical.d.ts.map +1 -0
- package/bcp47/validation/isCanonical.js +101 -0
- package/bcp47/validation/isInPreferredForm.d.ts +15 -0
- package/bcp47/validation/isInPreferredForm.d.ts.map +1 -0
- package/bcp47/validation/isInPreferredForm.js +73 -0
- package/bcp47/validation/isStrictlyValid.d.ts +18 -0
- package/bcp47/validation/isStrictlyValid.d.ts.map +1 -0
- package/bcp47/validation/isStrictlyValid.js +98 -0
- package/bcp47/validation/isValid.d.ts +24 -0
- package/bcp47/validation/isValid.d.ts.map +1 -0
- package/bcp47/validation/isValid.js +115 -0
- package/bcp47/validation/isWellFormed.d.ts +22 -0
- package/bcp47/validation/isWellFormed.d.ts.map +1 -0
- package/bcp47/validation/isWellFormed.js +98 -0
- package/bcp47/validation/validateTag.d.ts +97 -0
- package/bcp47/validation/validateTag.d.ts.map +1 -0
- package/bcp47/validation/validateTag.js +159 -0
- package/data/bcp/overrides.json +21 -0
- package/data/iana/language-subtags.json +77295 -0
- package/data/iana/language-tag-extensions.json +42 -0
- package/data/unsd/m49.csv +250 -0
- package/iana/common/converters.d.ts +31 -0
- package/iana/common/converters.d.ts.map +1 -0
- package/iana/common/converters.js +84 -0
- package/iana/common/model.d.ts +30 -0
- package/iana/common/model.d.ts.map +1 -0
- package/iana/common/model.js +24 -0
- package/iana/common/registeredItems.d.ts +30 -0
- package/iana/common/registeredItems.d.ts.map +1 -0
- package/iana/common/registeredItems.js +124 -0
- package/iana/common/utils.d.ts +7 -0
- package/iana/common/utils.d.ts.map +1 -0
- package/iana/common/utils.js +34 -0
- package/iana/common/validate.d.ts +19 -0
- package/iana/common/validate.d.ts.map +1 -0
- package/iana/common/validate.js +61 -0
- package/iana/converters.d.ts +4 -0
- package/iana/converters.d.ts.map +1 -0
- package/iana/converters.js +54 -0
- package/iana/defaultRegistries.d.ts +12 -0
- package/iana/defaultRegistries.d.ts.map +1 -0
- package/iana/defaultRegistries.js +42 -0
- package/iana/index.d.ts +9 -0
- package/iana/index.d.ts.map +1 -0
- package/iana/index.js +64 -0
- package/iana/jar/converters.d.ts +4 -0
- package/iana/jar/converters.d.ts.map +1 -0
- package/iana/jar/converters.js +54 -0
- package/iana/jar/index.d.ts +4 -0
- package/iana/jar/index.d.ts.map +1 -0
- package/iana/jar/index.js +52 -0
- package/iana/jar/jarConverters.d.ts +17 -0
- package/iana/jar/jarConverters.d.ts.map +1 -0
- package/iana/jar/jarConverters.js +85 -0
- package/iana/jar/jarModel.d.ts +11 -0
- package/iana/jar/jarModel.d.ts.map +1 -0
- package/iana/jar/jarModel.js +24 -0
- package/iana/jar/language-subtags/converters.d.ts +4 -0
- package/iana/jar/language-subtags/converters.d.ts.map +1 -0
- package/iana/jar/language-subtags/converters.js +52 -0
- package/iana/jar/language-subtags/index.d.ts +4 -0
- package/iana/jar/language-subtags/index.d.ts.map +1 -0
- package/iana/jar/language-subtags/index.js +54 -0
- package/iana/jar/language-subtags/model.d.ts +4 -0
- package/iana/jar/language-subtags/model.d.ts.map +1 -0
- package/iana/jar/language-subtags/model.js +52 -0
- package/iana/jar/language-subtags/registry/converters.d.ts +10 -0
- package/iana/jar/language-subtags/registry/converters.d.ts.map +1 -0
- package/iana/jar/language-subtags/registry/converters.js +58 -0
- package/iana/jar/language-subtags/registry/index.d.ts +4 -0
- package/iana/jar/language-subtags/registry/index.d.ts.map +1 -0
- package/iana/jar/language-subtags/registry/index.js +55 -0
- package/iana/jar/language-subtags/registry/model.d.ts +88 -0
- package/iana/jar/language-subtags/registry/model.d.ts.map +1 -0
- package/iana/jar/language-subtags/registry/model.js +41 -0
- package/iana/jar/language-subtags/tags/converters.d.ts +55 -0
- package/iana/jar/language-subtags/tags/converters.d.ts.map +1 -0
- package/iana/jar/language-subtags/tags/converters.js +128 -0
- package/iana/jar/language-subtags/tags/index.d.ts +5 -0
- package/iana/jar/language-subtags/tags/index.d.ts.map +1 -0
- package/iana/jar/language-subtags/tags/index.js +56 -0
- package/iana/jar/language-subtags/tags/model.d.ts +42 -0
- package/iana/jar/language-subtags/tags/model.d.ts.map +1 -0
- package/iana/jar/language-subtags/tags/model.js +24 -0
- package/iana/jar/language-subtags/tags/tagValidation.d.ts +11 -0
- package/iana/jar/language-subtags/tags/tagValidation.d.ts.map +1 -0
- package/iana/jar/language-subtags/tags/tagValidation.js +70 -0
- package/iana/jar/language-subtags/tags/validate.d.ts +36 -0
- package/iana/jar/language-subtags/tags/validate.d.ts.map +1 -0
- package/iana/jar/language-subtags/tags/validate.js +87 -0
- package/iana/jar/model.d.ts +4 -0
- package/iana/jar/model.d.ts.map +1 -0
- package/iana/jar/model.js +54 -0
- package/iana/language-subtags/common.d.ts +5 -0
- package/iana/language-subtags/common.d.ts.map +1 -0
- package/iana/language-subtags/common.js +24 -0
- package/iana/language-subtags/converters.d.ts +52 -0
- package/iana/language-subtags/converters.d.ts.map +1 -0
- package/iana/language-subtags/converters.js +200 -0
- package/iana/language-subtags/index.d.ts +7 -0
- package/iana/language-subtags/index.d.ts.map +1 -0
- package/iana/language-subtags/index.js +60 -0
- package/iana/language-subtags/jarConverters.d.ts +55 -0
- package/iana/language-subtags/jarConverters.d.ts.map +1 -0
- package/iana/language-subtags/jarConverters.js +213 -0
- package/iana/language-subtags/model.d.ts +144 -0
- package/iana/language-subtags/model.d.ts.map +1 -0
- package/iana/language-subtags/model.js +24 -0
- package/iana/language-subtags/scope.d.ts +77 -0
- package/iana/language-subtags/scope.d.ts.map +1 -0
- package/iana/language-subtags/scope.js +179 -0
- package/iana/language-subtags/subtagRegistry.d.ts +36 -0
- package/iana/language-subtags/subtagRegistry.d.ts.map +1 -0
- package/iana/language-subtags/subtagRegistry.js +139 -0
- package/iana/language-subtags/validate.d.ts +2 -0
- package/iana/language-subtags/validate.d.ts.map +1 -0
- package/iana/language-subtags/validate.js +39 -0
- package/iana/language-tag-extensions/converters.d.ts +23 -0
- package/iana/language-tag-extensions/converters.d.ts.map +1 -0
- package/iana/language-tag-extensions/converters.js +87 -0
- package/iana/language-tag-extensions/extensionsRegistry.d.ts +26 -0
- package/iana/language-tag-extensions/extensionsRegistry.d.ts.map +1 -0
- package/iana/language-tag-extensions/extensionsRegistry.js +94 -0
- package/iana/language-tag-extensions/extensionsScope.d.ts +20 -0
- package/iana/language-tag-extensions/extensionsScope.d.ts.map +1 -0
- package/iana/language-tag-extensions/extensionsScope.js +77 -0
- package/iana/language-tag-extensions/index.d.ts +6 -0
- package/iana/language-tag-extensions/index.d.ts.map +1 -0
- package/iana/language-tag-extensions/index.js +56 -0
- package/iana/language-tag-extensions/jarConverters.d.ts +28 -0
- package/iana/language-tag-extensions/jarConverters.d.ts.map +1 -0
- package/iana/language-tag-extensions/jarConverters.js +102 -0
- package/iana/language-tag-extensions/model.d.ts +40 -0
- package/iana/language-tag-extensions/model.d.ts.map +1 -0
- package/iana/language-tag-extensions/model.js +24 -0
- package/iana/language-tag-extensions/validate.d.ts +7 -0
- package/iana/language-tag-extensions/validate.d.ts.map +1 -0
- package/iana/language-tag-extensions/validate.js +36 -0
- package/iana/languageRegistries.d.ts +13 -0
- package/iana/languageRegistries.d.ts.map +1 -0
- package/iana/languageRegistries.js +49 -0
- package/iana/model.d.ts +4 -0
- package/iana/model.d.ts.map +1 -0
- package/iana/model.js +54 -0
- package/iana/validate.d.ts +2 -0
- package/iana/validate.d.ts.map +1 -0
- package/iana/validate.js +39 -0
- package/index.d.ts +5 -0
- package/index.d.ts.map +1 -0
- package/index.js +54 -0
- package/package.json +64 -0
- package/unsd/areas.d.ts +29 -0
- package/unsd/areas.d.ts.map +1 -0
- package/unsd/areas.js +96 -0
- package/unsd/common.d.ts +49 -0
- package/unsd/common.d.ts.map +1 -0
- package/unsd/common.js +24 -0
- package/unsd/csv/converters.d.ts +21 -0
- package/unsd/csv/converters.d.ts.map +1 -0
- package/unsd/csv/converters.js +70 -0
- package/unsd/csv/index.d.ts +4 -0
- package/unsd/csv/index.d.ts.map +1 -0
- package/unsd/csv/index.js +52 -0
- package/unsd/csv/model.d.ts +22 -0
- package/unsd/csv/model.d.ts.map +1 -0
- package/unsd/csv/model.js +24 -0
- package/unsd/defaultRegistries.d.ts +12 -0
- package/unsd/defaultRegistries.d.ts.map +1 -0
- package/unsd/defaultRegistries.js +42 -0
- package/unsd/index.d.ts +4 -0
- package/unsd/index.d.ts.map +1 -0
- package/unsd/index.js +44 -0
- package/unsd/regionCodes.d.ts +38 -0
- package/unsd/regionCodes.d.ts.map +1 -0
- package/unsd/regionCodes.js +111 -0
- package/unsd/regions.d.ts +21 -0
- package/unsd/regions.d.ts.map +1 -0
- package/unsd/regions.js +77 -0
- package/utils/index.d.ts +3 -0
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js +40 -0
- package/utils/jsonHelpers.d.ts +2 -0
- package/utils/jsonHelpers.d.ts.map +1 -0
- package/utils/jsonHelpers.js +29 -0
- package/utils/validationHelpers.d.ts +47 -0
- package/utils/validationHelpers.d.ts.map +1 -0
- package/utils/validationHelpers.js +88 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/bcp47/helpers.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAmB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,MAAM,EAAuB,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC,WAAW,CAAC,CAE7F;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAElG;AAED;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,CAI/G;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAClB,OAAO,EAAE,YAAY,EAAE,EACvB,SAAS,EAAE,YAAY,EAAE,EACzB,OAAO,CAAC,EAAE,sBAAsB,GAAG,sBAAsB,GAC1D,MAAM,CAAC,WAAW,EAAE,CAAC,CAMvB"}
|
package/bcp47/helpers.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
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.choose = exports.similarity = exports.tags = exports.tag = void 0;
|
|
25
|
+
const chooser_1 = require("./match/chooser");
|
|
26
|
+
const languageTag_1 = require("./languageTag");
|
|
27
|
+
const ts_utils_1 = require("@fgv/ts-utils");
|
|
28
|
+
const match_1 = require("./match");
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new {@link Bcp47.LanguageTag | language tag} from a {@link Bcp47.LanguageSpec | language specifier}
|
|
31
|
+
*
|
|
32
|
+
* The supplied initializer must be at least
|
|
33
|
+
* {@link https://www.rfc-editor.org/rfc/rfc5646.html#section-2.2.9 | well-formed according to RFC 5646}.
|
|
34
|
+
* Higher degrees of validation along with any normalizations may be optionally specified.
|
|
35
|
+
*
|
|
36
|
+
* @param from - The {@link Bcp47.LanguageSpec | language specifier} from which the tag is to
|
|
37
|
+
* be created.
|
|
38
|
+
* @param options - (optional) The {@link Bcp47.LanguageTagInitOptions | options} used to construct
|
|
39
|
+
* and validate the tag.
|
|
40
|
+
* @returns `Success` with a valid {@link Bcp47.LanguageTag | language tag} or `Failure` with details
|
|
41
|
+
* if an error occurs.
|
|
42
|
+
* @public
|
|
43
|
+
*/
|
|
44
|
+
// istanbul ignore next - tests applied for wrapped function
|
|
45
|
+
function tag(from, options) {
|
|
46
|
+
return from instanceof languageTag_1.LanguageTag ? (0, ts_utils_1.succeed)(from) : languageTag_1.LanguageTag.create(from, options);
|
|
47
|
+
}
|
|
48
|
+
exports.tag = tag;
|
|
49
|
+
/**
|
|
50
|
+
* Creates an array of {@link Bcp47.LanguageTag | language tags} from an incoming array of
|
|
51
|
+
* {@link Bcp47.LanguageSpec | language specifiers}.
|
|
52
|
+
* @param from - The array of {@link Bcp47.LanguageSpec} to be converted.
|
|
53
|
+
* @param options - (optional) The {@link Bcp47.LanguageTagInitOptions | options} used to construct
|
|
54
|
+
* and validate any created tags.
|
|
55
|
+
* @returns `Success` with an array of {@link Bcp47.LanguageTag | language tags}, or `Failure`
|
|
56
|
+
* with details if an error occurs.
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
function tags(from, options) {
|
|
60
|
+
return (0, ts_utils_1.mapResults)(from.map((f) => tag(f, options)));
|
|
61
|
+
}
|
|
62
|
+
exports.tags = tags;
|
|
63
|
+
/**
|
|
64
|
+
* Determine how similar two language tags are to each other.
|
|
65
|
+
*
|
|
66
|
+
* @param t1 - First tag to match, supplied as one of `string`, individual
|
|
67
|
+
* {@link Bcp47.Subtags | subtags}, or constructed
|
|
68
|
+
* {@link Bcp47.LanguageTag | language tag}.
|
|
69
|
+
* @param t2 - Second tag to match, supplied as one of `string`, individual
|
|
70
|
+
* {@link Bcp47.Subtags | subtags}, or constructed
|
|
71
|
+
* {@link Bcp47.LanguageTag | language tag}.
|
|
72
|
+
* @param options - (optional) A set of {@link Bcp47.LanguageTagInitOptions | language tag options}
|
|
73
|
+
* which control any necessary conversion or parsing.
|
|
74
|
+
* @returns A numeric value in the range 1.0 (exact match) to 0.0 (no match).
|
|
75
|
+
* @see For a set of common levels of similarity, see {@link Bcp47.tagSimilarity | similarity}.
|
|
76
|
+
* @public
|
|
77
|
+
*/
|
|
78
|
+
// istanbul ignore next - tests applied for wrapped function
|
|
79
|
+
function similarity(t1, t2, options) {
|
|
80
|
+
return tags([t1, t2], options).onSuccess((tags) => {
|
|
81
|
+
return (0, ts_utils_1.succeed)(new match_1.LanguageSimilarityMatcher().matchLanguageTags(tags[0], tags[1]));
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
exports.similarity = similarity;
|
|
85
|
+
/**
|
|
86
|
+
* Matches a list of desired {@link Bcp47.LanguageSpec | languages} to a list of available {@link Bcp47.LanguageSpec | languages},
|
|
87
|
+
* return a list of matching languages ordered from best to worst.
|
|
88
|
+
* @param desired - An array of {@link Bcp47.LanguageSpec | language specifications} containing an ordered list of preferred languages.
|
|
89
|
+
* @param available - An array of {@link Bcp47.LanguageSpec | language specifications} containing an unordered list of available languages.
|
|
90
|
+
* @param options - (optional) Parameters to control language tag conversion or comparison
|
|
91
|
+
* @returns `Success` with an ordered list of matching {@link Bcp47.LanguageTag | languages}, or `Failure` with details if
|
|
92
|
+
* an error occurs.
|
|
93
|
+
* @public
|
|
94
|
+
*/
|
|
95
|
+
function choose(desired, available, options) {
|
|
96
|
+
return tags(desired, options).onSuccess((w) => {
|
|
97
|
+
return tags(available, options).onSuccess((h) => {
|
|
98
|
+
return (0, ts_utils_1.succeed)(new chooser_1.LanguageChooser().filterLanguageTags(w, h, options));
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
exports.choose = choose;
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iY3A0Ny9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7OztBQUVILDZDQUEwRTtBQUMxRSwrQ0FBb0U7QUFDcEUsNENBQTREO0FBQzVELG1DQUFvRDtBQVdwRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDREQUE0RDtBQUM1RCxTQUFnQixHQUFHLENBQUMsSUFBa0IsRUFBRSxPQUFnQztJQUNwRSxPQUFPLElBQUksWUFBWSx5QkFBVyxDQUFDLENBQUMsQ0FBQyxJQUFBLGtCQUFPLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUFXLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRkQsa0JBRUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixJQUFJLENBQUMsSUFBb0IsRUFBRSxPQUFnQztJQUN2RSxPQUFPLElBQUEscUJBQVUsRUFBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRkQsb0JBRUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDREQUE0RDtBQUM1RCxTQUFnQixVQUFVLENBQUMsRUFBZ0IsRUFBRSxFQUFnQixFQUFFLE9BQWdDO0lBQzNGLE9BQU8sSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzlDLE9BQU8sSUFBQSxrQkFBTyxFQUFDLElBQUksaUNBQXlCLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFKRCxnQ0FJQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLE1BQU0sQ0FDbEIsT0FBdUIsRUFDdkIsU0FBeUIsRUFDekIsT0FBeUQ7SUFFekQsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QyxPQUFPLElBQUEsa0JBQU8sRUFBQyxJQUFJLHlCQUFlLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFWRCx3QkFVQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBMYW5ndWFnZUNob29zZXIsIExhbmd1YWdlQ2hvb3Nlck9wdGlvbnMgfSBmcm9tICcuL21hdGNoL2Nob29zZXInO1xuaW1wb3J0IHsgTGFuZ3VhZ2VUYWcsIExhbmd1YWdlVGFnSW5pdE9wdGlvbnMgfSBmcm9tICcuL2xhbmd1YWdlVGFnJztcbmltcG9ydCB7IFJlc3VsdCwgbWFwUmVzdWx0cywgc3VjY2VlZCB9IGZyb20gJ0BmZ3YvdHMtdXRpbHMnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTaW1pbGFyaXR5TWF0Y2hlciB9IGZyb20gJy4vbWF0Y2gnO1xuaW1wb3J0IHsgU3VidGFncyB9IGZyb20gJy4vY29tbW9uJztcblxuLyoqXG4gKiBBbnkgb2YgdGhlIHBvc3NpYmxlIHdheXMgdG8gcmVwcmVzZW50IGEgbGFuZ3VhZ2UgLSBhcyBhIGBzdHJpbmdgLFxuICogcGFyc2VkIHtAbGluayBCY3A0Ny5TdWJ0YWdzIHwgc3VidGFnc30gb3IgYW4gaW5zdGFudGlhdGVkXG4gKiB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VUYWcgfCBsYW5ndWFnZSB0YWd9LlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBMYW5ndWFnZVNwZWMgPSBzdHJpbmcgfCBTdWJ0YWdzIHwgTGFuZ3VhZ2VUYWc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VUYWcgfCBsYW5ndWFnZSB0YWd9IGZyb20gYSB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VTcGVjIHwgbGFuZ3VhZ2Ugc3BlY2lmaWVyfVxuICpcbiAqIFRoZSBzdXBwbGllZCBpbml0aWFsaXplciBtdXN0IGJlIGF0IGxlYXN0XG4gKiB7QGxpbmsgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzU2NDYuaHRtbCNzZWN0aW9uLTIuMi45IHwgd2VsbC1mb3JtZWQgYWNjb3JkaW5nIHRvIFJGQyA1NjQ2fS5cbiAqIEhpZ2hlciBkZWdyZWVzIG9mIHZhbGlkYXRpb24gYWxvbmcgd2l0aCBhbnkgbm9ybWFsaXphdGlvbnMgbWF5IGJlIG9wdGlvbmFsbHkgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBmcm9tIC0gVGhlIHtAbGluayBCY3A0Ny5MYW5ndWFnZVNwZWMgfCBsYW5ndWFnZSBzcGVjaWZpZXJ9IGZyb20gd2hpY2ggdGhlIHRhZyBpcyB0b1xuICogYmUgY3JlYXRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gKG9wdGlvbmFsKSBUaGUge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnSW5pdE9wdGlvbnMgfCBvcHRpb25zfSB1c2VkIHRvIGNvbnN0cnVjdFxuICogYW5kIHZhbGlkYXRlIHRoZSB0YWcuXG4gKiBAcmV0dXJucyBgU3VjY2Vzc2Agd2l0aCBhIHZhbGlkIHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZyB8IGxhbmd1YWdlIHRhZ30gb3IgYEZhaWx1cmVgIHdpdGggZGV0YWlsc1xuICogaWYgYW4gZXJyb3Igb2NjdXJzLlxuICogQHB1YmxpY1xuICovXG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAtIHRlc3RzIGFwcGxpZWQgZm9yIHdyYXBwZWQgZnVuY3Rpb25cbmV4cG9ydCBmdW5jdGlvbiB0YWcoZnJvbTogTGFuZ3VhZ2VTcGVjLCBvcHRpb25zPzogTGFuZ3VhZ2VUYWdJbml0T3B0aW9ucyk6IFJlc3VsdDxMYW5ndWFnZVRhZz4ge1xuICAgIHJldHVybiBmcm9tIGluc3RhbmNlb2YgTGFuZ3VhZ2VUYWcgPyBzdWNjZWVkKGZyb20pIDogTGFuZ3VhZ2VUYWcuY3JlYXRlKGZyb20sIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2Yge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnIHwgbGFuZ3VhZ2UgdGFnc30gZnJvbSBhbiBpbmNvbWluZyBhcnJheSBvZlxuICoge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlU3BlYyB8IGxhbmd1YWdlIHNwZWNpZmllcnN9LlxuICogQHBhcmFtIGZyb20gLSBUaGUgYXJyYXkgb2Yge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlU3BlY30gdG8gYmUgY29udmVydGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSAob3B0aW9uYWwpIFRoZSB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VUYWdJbml0T3B0aW9ucyB8IG9wdGlvbnN9IHVzZWQgdG8gY29uc3RydWN0XG4gKiBhbmQgdmFsaWRhdGUgYW55IGNyZWF0ZWQgdGFncy5cbiAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIGFuIGFycmF5IG9mIHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZyB8IGxhbmd1YWdlIHRhZ3N9LCBvciBgRmFpbHVyZWBcbiAqIHdpdGggZGV0YWlscyBpZiBhbiBlcnJvciBvY2N1cnMuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YWdzKGZyb206IExhbmd1YWdlU3BlY1tdLCBvcHRpb25zPzogTGFuZ3VhZ2VUYWdJbml0T3B0aW9ucyk6IFJlc3VsdDxMYW5ndWFnZVRhZ1tdPiB7XG4gICAgcmV0dXJuIG1hcFJlc3VsdHMoZnJvbS5tYXAoKGYpID0+IHRhZyhmLCBvcHRpb25zKSkpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBob3cgc2ltaWxhciB0d28gbGFuZ3VhZ2UgdGFncyBhcmUgdG8gZWFjaCBvdGhlci5cbiAqXG4gKiBAcGFyYW0gdDEgLSBGaXJzdCB0YWcgdG8gbWF0Y2gsIHN1cHBsaWVkIGFzIG9uZSBvZiBgc3RyaW5nYCwgaW5kaXZpZHVhbFxuICoge0BsaW5rIEJjcDQ3LlN1YnRhZ3MgfCBzdWJ0YWdzfSwgb3IgY29uc3RydWN0ZWRcbiAqIHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZyB8IGxhbmd1YWdlIHRhZ30uXG4gKiBAcGFyYW0gdDIgLSBTZWNvbmQgdGFnIHRvIG1hdGNoLCBzdXBwbGllZCBhcyBvbmUgb2YgYHN0cmluZ2AsIGluZGl2aWR1YWxcbiAqIHtAbGluayBCY3A0Ny5TdWJ0YWdzIHwgc3VidGFnc30sIG9yIGNvbnN0cnVjdGVkXG4gKiB7QGxpbmsgQmNwNDcuTGFuZ3VhZ2VUYWcgfCBsYW5ndWFnZSB0YWd9LlxuICogQHBhcmFtIG9wdGlvbnMgLSAob3B0aW9uYWwpIEEgc2V0IG9mIHtAbGluayBCY3A0Ny5MYW5ndWFnZVRhZ0luaXRPcHRpb25zIHwgbGFuZ3VhZ2UgdGFnIG9wdGlvbnN9XG4gKiB3aGljaCBjb250cm9sIGFueSBuZWNlc3NhcnkgY29udmVyc2lvbiBvciBwYXJzaW5nLlxuICogQHJldHVybnMgQSBudW1lcmljIHZhbHVlIGluIHRoZSByYW5nZSAxLjAgKGV4YWN0IG1hdGNoKSB0byAwLjAgKG5vIG1hdGNoKS5cbiAqIEBzZWUgRm9yIGEgc2V0IG9mIGNvbW1vbiBsZXZlbHMgb2Ygc2ltaWxhcml0eSwgc2VlIHtAbGluayBCY3A0Ny50YWdTaW1pbGFyaXR5IHwgc2ltaWxhcml0eX0uXG4gKiBAcHVibGljXG4gKi9cbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0IC0gdGVzdHMgYXBwbGllZCBmb3Igd3JhcHBlZCBmdW5jdGlvblxuZXhwb3J0IGZ1bmN0aW9uIHNpbWlsYXJpdHkodDE6IExhbmd1YWdlU3BlYywgdDI6IExhbmd1YWdlU3BlYywgb3B0aW9ucz86IExhbmd1YWdlVGFnSW5pdE9wdGlvbnMpOiBSZXN1bHQ8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRhZ3MoW3QxLCB0Ml0sIG9wdGlvbnMpLm9uU3VjY2VzcygodGFncykgPT4ge1xuICAgICAgICByZXR1cm4gc3VjY2VlZChuZXcgTGFuZ3VhZ2VTaW1pbGFyaXR5TWF0Y2hlcigpLm1hdGNoTGFuZ3VhZ2VUYWdzKHRhZ3NbMF0sIHRhZ3NbMV0pKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBNYXRjaGVzIGEgbGlzdCBvZiBkZXNpcmVkIHtAbGluayBCY3A0Ny5MYW5ndWFnZVNwZWMgfCBsYW5ndWFnZXN9IHRvIGEgbGlzdCBvZiBhdmFpbGFibGUge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlU3BlYyB8IGxhbmd1YWdlc30sXG4gKiByZXR1cm4gYSBsaXN0IG9mIG1hdGNoaW5nIGxhbmd1YWdlcyBvcmRlcmVkIGZyb20gYmVzdCB0byB3b3JzdC5cbiAqIEBwYXJhbSBkZXNpcmVkIC0gQW4gYXJyYXkgb2Yge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlU3BlYyB8IGxhbmd1YWdlIHNwZWNpZmljYXRpb25zfSBjb250YWluaW5nIGFuIG9yZGVyZWQgbGlzdCBvZiBwcmVmZXJyZWQgbGFuZ3VhZ2VzLlxuICogQHBhcmFtIGF2YWlsYWJsZSAtIEFuIGFycmF5IG9mIHtAbGluayBCY3A0Ny5MYW5ndWFnZVNwZWMgfCBsYW5ndWFnZSBzcGVjaWZpY2F0aW9uc30gY29udGFpbmluZyBhbiB1bm9yZGVyZWQgbGlzdCBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzLlxuICogQHBhcmFtIG9wdGlvbnMgLSAob3B0aW9uYWwpIFBhcmFtZXRlcnMgdG8gY29udHJvbCBsYW5ndWFnZSB0YWcgY29udmVyc2lvbiBvciBjb21wYXJpc29uXG4gKiBAcmV0dXJucyBgU3VjY2Vzc2Agd2l0aCBhbiBvcmRlcmVkIGxpc3Qgb2YgbWF0Y2hpbmcge0BsaW5rIEJjcDQ3Lkxhbmd1YWdlVGFnIHwgbGFuZ3VhZ2VzfSwgb3IgYEZhaWx1cmVgIHdpdGggZGV0YWlscyBpZlxuICogYW4gZXJyb3Igb2NjdXJzLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2hvb3NlKFxuICAgIGRlc2lyZWQ6IExhbmd1YWdlU3BlY1tdLFxuICAgIGF2YWlsYWJsZTogTGFuZ3VhZ2VTcGVjW10sXG4gICAgb3B0aW9ucz86IExhbmd1YWdlVGFnSW5pdE9wdGlvbnMgJiBMYW5ndWFnZUNob29zZXJPcHRpb25zXG4pOiBSZXN1bHQ8TGFuZ3VhZ2VUYWdbXT4ge1xuICAgIHJldHVybiB0YWdzKGRlc2lyZWQsIG9wdGlvbnMpLm9uU3VjY2VzcygodykgPT4ge1xuICAgICAgICByZXR1cm4gdGFncyhhdmFpbGFibGUsIG9wdGlvbnMpLm9uU3VjY2VzcygoaCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQobmV3IExhbmd1YWdlQ2hvb3NlcigpLmZpbHRlckxhbmd1YWdlVGFncyh3LCBoLCBvcHRpb25zKSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuIl19
|
package/bcp47/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { ExtensionSubtagValue, Subtags } from './common';
|
|
2
|
+
export { LanguageTag, LanguageTagInitOptions } from './languageTag';
|
|
3
|
+
export { NormalizeTag, TagNormalization } from './normalization';
|
|
4
|
+
export { TagValidity, ValidateTag } from './validation';
|
|
5
|
+
export { LanguageFilterOptions, TagSimilarity, tagSimilarity } from './match';
|
|
6
|
+
export * from './helpers';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bcp47/index.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9E,cAAc,WAAW,CAAC"}
|
package/bcp47/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.tagSimilarity = exports.ValidateTag = exports.NormalizeTag = exports.LanguageTag = void 0;
|
|
18
|
+
var languageTag_1 = require("./languageTag");
|
|
19
|
+
Object.defineProperty(exports, "LanguageTag", { enumerable: true, get: function () { return languageTag_1.LanguageTag; } });
|
|
20
|
+
var normalization_1 = require("./normalization");
|
|
21
|
+
Object.defineProperty(exports, "NormalizeTag", { enumerable: true, get: function () { return normalization_1.NormalizeTag; } });
|
|
22
|
+
var validation_1 = require("./validation");
|
|
23
|
+
Object.defineProperty(exports, "ValidateTag", { enumerable: true, get: function () { return validation_1.ValidateTag; } });
|
|
24
|
+
var match_1 = require("./match");
|
|
25
|
+
Object.defineProperty(exports, "tagSimilarity", { enumerable: true, get: function () { return match_1.tagSimilarity; } });
|
|
26
|
+
__exportStar(require("./helpers"), exports);
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmNwNDcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsNkNBQW9FO0FBQTNELDBHQUFBLFdBQVcsT0FBQTtBQUNwQixpREFBaUU7QUFBeEQsNkdBQUEsWUFBWSxPQUFBO0FBQ3JCLDJDQUF3RDtBQUFsQyx5R0FBQSxXQUFXLE9BQUE7QUFFakMsaUNBQThFO0FBQS9CLHNHQUFBLGFBQWEsT0FBQTtBQUU1RCw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIyIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cbi8vIGlzdGFuYnVsIGlnbm9yZSBmaWxlXG5leHBvcnQgeyBFeHRlbnNpb25TdWJ0YWdWYWx1ZSwgU3VidGFncyB9IGZyb20gJy4vY29tbW9uJztcblxuZXhwb3J0IHsgTGFuZ3VhZ2VUYWcsIExhbmd1YWdlVGFnSW5pdE9wdGlvbnMgfSBmcm9tICcuL2xhbmd1YWdlVGFnJztcbmV4cG9ydCB7IE5vcm1hbGl6ZVRhZywgVGFnTm9ybWFsaXphdGlvbiB9IGZyb20gJy4vbm9ybWFsaXphdGlvbic7XG5leHBvcnQgeyBUYWdWYWxpZGl0eSwgVmFsaWRhdGVUYWcgfSBmcm9tICcuL3ZhbGlkYXRpb24nO1xuXG5leHBvcnQgeyBMYW5ndWFnZUZpbHRlck9wdGlvbnMsIFRhZ1NpbWlsYXJpdHksIHRhZ1NpbWlsYXJpdHkgfSBmcm9tICcuL21hdGNoJztcblxuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcbiJdfQ==
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import * as Iana from '../iana';
|
|
2
|
+
import { Result } from '@fgv/ts-utils';
|
|
3
|
+
import { Subtags } from './common';
|
|
4
|
+
import { TagNormalization } from './normalization/common';
|
|
5
|
+
import { TagValidity } from './validation/common';
|
|
6
|
+
import { ScriptSubtag } from '../iana/language-subtags';
|
|
7
|
+
/**
|
|
8
|
+
* Initialization options for parsing or creation of {@link Bcp47.LanguageTag | language tag} objects.
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export interface LanguageTagInitOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Desired {@link Bcp47.TagValidity | validity level} (optional).
|
|
14
|
+
*/
|
|
15
|
+
validity?: TagValidity;
|
|
16
|
+
/**
|
|
17
|
+
* Desired {@link Bcp47.TagNormalization | normalization level} (optional).
|
|
18
|
+
*/
|
|
19
|
+
normalization?: TagNormalization;
|
|
20
|
+
/**
|
|
21
|
+
* The {@link Iana.LanguageRegistries | IANA language subtag and extension registries} to
|
|
22
|
+
* be used for the request (optional).
|
|
23
|
+
*/
|
|
24
|
+
iana?: Iana.LanguageRegistries;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Represents a single BCP-47 language tag.
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
export declare class LanguageTag {
|
|
31
|
+
/**
|
|
32
|
+
* The individual {@link Bcp47.Subtags | subtags} for
|
|
33
|
+
* this language tag.
|
|
34
|
+
*/
|
|
35
|
+
readonly subtags: Readonly<Subtags>;
|
|
36
|
+
/**
|
|
37
|
+
* A string representation of this language tag.
|
|
38
|
+
*/
|
|
39
|
+
readonly tag: string;
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
protected readonly _iana: Iana.LanguageRegistries;
|
|
44
|
+
/**
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
protected _validity: TagValidity;
|
|
48
|
+
/**
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
protected _normalization: TagNormalization;
|
|
52
|
+
/**
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
protected _isValid: undefined | boolean;
|
|
56
|
+
/**
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
protected _isStrictlyValid: undefined | boolean;
|
|
60
|
+
/**
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
protected _isCanonical: undefined | boolean;
|
|
64
|
+
/**
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
protected _isPreferred: undefined | boolean;
|
|
68
|
+
/**
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
protected _suppressedScript: undefined | ScriptSubtag | false;
|
|
72
|
+
/**
|
|
73
|
+
* Constructs a {@link Bcp47.LanguageTag | LanguageTag }.
|
|
74
|
+
* @param subtags - The {@link Bcp47.Subtags | subtags } from
|
|
75
|
+
* which the tag is constructed.
|
|
76
|
+
* @param validity - Known {@link Bcp47.TagValidity | validation level} of the
|
|
77
|
+
* supplied subtags.
|
|
78
|
+
* @param normalization - Known {@link Bcp47.TagNormalization | normalization level}
|
|
79
|
+
* of the supplied subtags.
|
|
80
|
+
* @param iana - The {@link Iana.LanguageRegistries} used to validate and normalize
|
|
81
|
+
* this tag.
|
|
82
|
+
* @internal
|
|
83
|
+
*/
|
|
84
|
+
protected constructor(subtags: Subtags, validity: TagValidity, normalization: TagNormalization, iana: Iana.LanguageRegistries);
|
|
85
|
+
/**
|
|
86
|
+
* The effective script of this language tag, if known.
|
|
87
|
+
* The effective script is the script subtag in the tag itself,
|
|
88
|
+
* if present, or the `Suppress-Script` defined in the
|
|
89
|
+
* {@link https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry | IANA subtag registry}
|
|
90
|
+
* for the primary language of this tag. Can be `undefined`
|
|
91
|
+
* if neither the tag nor the IANA registry define a script.
|
|
92
|
+
*/
|
|
93
|
+
get effectiveScript(): ScriptSubtag | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Determines if this tag represents the special `undetermined` language.
|
|
96
|
+
*/
|
|
97
|
+
get isUndetermined(): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Whether this language tag is valid.
|
|
100
|
+
*/
|
|
101
|
+
get isValid(): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Whether if this language tag is strictly valid.
|
|
104
|
+
*/
|
|
105
|
+
get isStrictlyValid(): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Whether this language tag is in canonical form.
|
|
108
|
+
*/
|
|
109
|
+
get isCanonical(): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Whether this language tag is in preferred form.
|
|
112
|
+
*/
|
|
113
|
+
get isPreferred(): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Creates a new {@link Bcp47.LanguageTag | language tag} from a supplied `string` tag
|
|
116
|
+
* using optional configuration, if supplied.
|
|
117
|
+
* @param tag - The `string` tag from which the {@link Bcp47.LanguageTag | language tag}
|
|
118
|
+
* is te be constructed.
|
|
119
|
+
* @param options - (optional) set of {@link Bcp47.LanguageTagInitOptions | init options}
|
|
120
|
+
* to guide the validation and normalization of this tag.
|
|
121
|
+
* @returns `Success` with the new {@link Bcp47.LanguageTag | language tag} or `Failure`
|
|
122
|
+
* with details if an error occurs.
|
|
123
|
+
*/
|
|
124
|
+
static createFromTag(tag: string, options?: LanguageTagInitOptions): Result<LanguageTag>;
|
|
125
|
+
/**
|
|
126
|
+
* Creates a new {@link Bcp47.LanguageTag | language tag} from a supplied
|
|
127
|
+
* {@link Bcp47.Subtags | subtags} using optional configuration,
|
|
128
|
+
* if supplied.
|
|
129
|
+
* @param tag - The {@link Bcp47.Subtags | subtags} from which the
|
|
130
|
+
* {@link Bcp47.LanguageTag | language tag} is te be constructed.
|
|
131
|
+
* @param options - (optional) set of {@link Bcp47.LanguageTagInitOptions | init options}
|
|
132
|
+
* to guide the validation and normalization of this tag.
|
|
133
|
+
* @returns `Success` with the new {@link Bcp47.LanguageTag | language tag} or `Failure`
|
|
134
|
+
* with details if an error occurs.
|
|
135
|
+
*/
|
|
136
|
+
static createFromSubtags(subtags: Subtags, options?: LanguageTagInitOptions): Result<LanguageTag>;
|
|
137
|
+
/**
|
|
138
|
+
* Creates a new {@link Bcp47.LanguageTag | language tag} from a supplied `string`
|
|
139
|
+
* tag or {@link Bcp47.Subtags | subtags} using optional configuration,
|
|
140
|
+
* if supplied.
|
|
141
|
+
* @param from - The `string` tag or {@link Bcp47.Subtags | subtags} from
|
|
142
|
+
* which the {@link Bcp47.LanguageTag | language tag} is te be constructed.
|
|
143
|
+
* @param options - (optional) set of {@link Bcp47.LanguageTagInitOptions | init options}
|
|
144
|
+
* to guide the validation and normalization of this tag.
|
|
145
|
+
* @returns `Success` with the new {@link Bcp47.LanguageTag | language tag} or `Failure`
|
|
146
|
+
* with details if an error occurs.
|
|
147
|
+
*/
|
|
148
|
+
static create(from: string | Subtags, options?: LanguageTagInitOptions): Result<LanguageTag>;
|
|
149
|
+
/**
|
|
150
|
+
* Constructs a new {@link Bcp47.LanguageTag | language tag} by applying appropriate transformations
|
|
151
|
+
* to as supplied {@link Bcp47.Subtags | Bcp47.Subtags}.
|
|
152
|
+
* @param subtags - The {@link Bcp47.Subtags | subtags} which represent the tag.
|
|
153
|
+
* @param fromValidity - The {@link Bcp47.TagValidity | validation level} of the supplied subtags.
|
|
154
|
+
* @param fromNormalization - The {@link Bcp47.TagNormalization | normalization level} fo the
|
|
155
|
+
* supplied subtags.
|
|
156
|
+
* @param partialOptions - Any {@link Bcp47.LanguageTagInitOptions | initialization options}.
|
|
157
|
+
* @returns `Success` with the corresponding {@link Bcp47.LanguageTag | language tag} or `Failure`
|
|
158
|
+
* with details if an error occurs.
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
protected static _createTransformed(subtags: Subtags, fromValidity: TagValidity, fromNormalization: TagNormalization, partialOptions?: LanguageTagInitOptions): Result<LanguageTag>;
|
|
162
|
+
/**
|
|
163
|
+
* Gets a fully-specified {@link Bcp47.LanguageTagInitOptions} from partial or undefined
|
|
164
|
+
* options, substituting defaults as appropriate.
|
|
165
|
+
* @param options - The {@link Bcp47.LanguageTagInitOptions} to be expanded, or `undefined`
|
|
166
|
+
* for default options.
|
|
167
|
+
* @returns Fully-specified {@link Bcp47.LanguageTagInitOptions | init options}.
|
|
168
|
+
* @internal
|
|
169
|
+
*/
|
|
170
|
+
protected static _getOptions(options?: LanguageTagInitOptions): Required<LanguageTagInitOptions>;
|
|
171
|
+
/**
|
|
172
|
+
* Returns the `Suppress-Script` value defined for the primary language of this tag,
|
|
173
|
+
* regardless of whether a different script is defined in this subtag.
|
|
174
|
+
* @returns The suppress-script defined for the primary language, or undefined if
|
|
175
|
+
* the primary language is invalid or has no defined suppressed script.
|
|
176
|
+
*/
|
|
177
|
+
getSuppressedScript(): ScriptSubtag | undefined;
|
|
178
|
+
/**
|
|
179
|
+
* Gets a confirmed valid representation of this language tag.
|
|
180
|
+
* @returns `Success` with a valid representation of this {@link Bcp47.LanguageTag | language tag},
|
|
181
|
+
* or `Failure` with details if the tag cannot be validated.
|
|
182
|
+
*/
|
|
183
|
+
toValid(): Result<LanguageTag>;
|
|
184
|
+
/**
|
|
185
|
+
* Gets a confirmed strictly valid representation of this language tag.
|
|
186
|
+
* @returns `Success` with a strictly valid representation of this {@link Bcp47.LanguageTag | language tag},
|
|
187
|
+
* or `Failure` with details if the tag cannot be strictly validated.
|
|
188
|
+
*/
|
|
189
|
+
toStrictlyValid(): Result<LanguageTag>;
|
|
190
|
+
/**
|
|
191
|
+
* Gets a confirmed canonical representation of this language tag.
|
|
192
|
+
* @returns `Success` with a canonical representation of this {@link Bcp47.LanguageTag | language tag},
|
|
193
|
+
* or `Failure` with details if the tag cannot be normalized to canonical form.
|
|
194
|
+
*/
|
|
195
|
+
toCanonical(): Result<LanguageTag>;
|
|
196
|
+
/**
|
|
197
|
+
* Gets a confirmed preferred representation of this language tag.
|
|
198
|
+
* @returns `Success` with a preferred representation of this {@link Bcp47.LanguageTag | language tag},
|
|
199
|
+
* or `Failure` with details if the tag cannot be normalized to preferred form.
|
|
200
|
+
*/
|
|
201
|
+
toPreferred(): Result<LanguageTag>;
|
|
202
|
+
/**
|
|
203
|
+
* Gets a string representation of this language tag.
|
|
204
|
+
* @returns A string representation of this language tag.
|
|
205
|
+
*/
|
|
206
|
+
toString(): string;
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=languageTag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languageTag.d.ts","sourceRoot":"","sources":["../../src/bcp47/languageTag.ts"],"names":[],"mappings":"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"}
|