resolve-accept-language 1.1.16 → 1.1.19
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 -21
- package/README.md +108 -108
- package/lib/locale-list.d.ts +19 -19
- package/lib/locale-list.js +34 -34
- package/lib/locale.d.ts +38 -38
- package/lib/locale.js +56 -56
- package/lib/lookup-list.d.ts +76 -76
- package/lib/lookup-list.js +158 -158
- package/lib/resolve-accept-language.d.ts +76 -76
- package/lib/resolve-accept-language.js +136 -136
- package/package.json +62 -62
|
@@ -1,136 +1,136 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
-
if (ar || !(i in from)) {
|
|
5
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
-
ar[i] = from[i];
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ResolveAcceptLanguage = void 0;
|
|
13
|
-
var locale_1 = require("./locale");
|
|
14
|
-
var lookup_list_1 = require("./lookup-list");
|
|
15
|
-
/** Resolve the preferred locale from an HTTP `Accept-Language` header. */
|
|
16
|
-
var ResolveAcceptLanguage = /** @class */ (function () {
|
|
17
|
-
/**
|
|
18
|
-
* Create a new `ResolveAcceptLanguage` object.
|
|
19
|
-
*
|
|
20
|
-
* All locale identifiers provided as parameters must following the BCP 47 `language`-`country` (case insensitive).
|
|
21
|
-
*
|
|
22
|
-
* @param acceptLanguageHeader - The value of an HTTP request `Accept-Language` header (also known as a "language priority list").
|
|
23
|
-
* @param locales - An array of locale identifiers. The order will be used for matching where the first identifier will be more
|
|
24
|
-
* likely to be matched than the last identifier.
|
|
25
|
-
*/
|
|
26
|
-
function ResolveAcceptLanguage(acceptLanguageHeader, locales) {
|
|
27
|
-
var lookupList = new lookup_list_1.default(acceptLanguageHeader, locales);
|
|
28
|
-
var topLocaleOrLanguage = lookupList.getTopLocaleOrLanguage();
|
|
29
|
-
if (topLocaleOrLanguage !== undefined) {
|
|
30
|
-
if (locale_1.default.isLocale(topLocaleOrLanguage)) {
|
|
31
|
-
this.localeBasedMatch = topLocaleOrLanguage;
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
this.languageBasedMatch = lookupList.getTopByLanguage(topLocaleOrLanguage);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
this.relatedLocaleBasedMatch = lookupList.getTopRelatedLocale();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Is the best match language-based?
|
|
43
|
-
*
|
|
44
|
-
* @returns True if the best match language-based, otherwise false.
|
|
45
|
-
*/
|
|
46
|
-
ResolveAcceptLanguage.prototype.bestMatchIsLanguageBased = function () {
|
|
47
|
-
return this.languageBasedMatch !== undefined;
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Is the best match locale-based?
|
|
51
|
-
*
|
|
52
|
-
* @returns True if the best match locale-based, otherwise false.
|
|
53
|
-
*/
|
|
54
|
-
ResolveAcceptLanguage.prototype.bestMatchIsLocaleBased = function () {
|
|
55
|
-
return this.localeBasedMatch !== undefined;
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* Is the best match related-locale-based?
|
|
59
|
-
*
|
|
60
|
-
* @returns True if the best match related-locale-based, otherwise false.
|
|
61
|
-
*/
|
|
62
|
-
ResolveAcceptLanguage.prototype.bestMatchIsRelatedLocaleBased = function () {
|
|
63
|
-
return this.relatedLocaleBasedMatch !== undefined;
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* Get the locale which was the best match.
|
|
67
|
-
*
|
|
68
|
-
* @returns The locale which was the best match.
|
|
69
|
-
*/
|
|
70
|
-
ResolveAcceptLanguage.prototype.getBestMatch = function () {
|
|
71
|
-
var _a, _b;
|
|
72
|
-
return (_b = (_a = this.localeBasedMatch) !== null && _a !== void 0 ? _a : this.languageBasedMatch) !== null && _b !== void 0 ? _b : this.relatedLocaleBasedMatch;
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Was a match found when resolving the preferred locale?
|
|
76
|
-
*
|
|
77
|
-
* @returns True when a match is found, otherwise false.
|
|
78
|
-
*/
|
|
79
|
-
ResolveAcceptLanguage.prototype.hasMatch = function () {
|
|
80
|
-
return this.getBestMatch() !== undefined ? true : false;
|
|
81
|
-
};
|
|
82
|
-
/**
|
|
83
|
-
* Did the resolution of the preferred locale find no match?
|
|
84
|
-
*
|
|
85
|
-
* @returns True when there is no match, otherwise false.
|
|
86
|
-
*/
|
|
87
|
-
ResolveAcceptLanguage.prototype.hasNoMatch = function () {
|
|
88
|
-
return !this.hasMatch();
|
|
89
|
-
};
|
|
90
|
-
return ResolveAcceptLanguage;
|
|
91
|
-
}());
|
|
92
|
-
exports.ResolveAcceptLanguage = ResolveAcceptLanguage;
|
|
93
|
-
/**
|
|
94
|
-
* Resolve the preferred locale from an HTTP `Accept-Language` header.
|
|
95
|
-
*
|
|
96
|
-
* All locale identifiers provided as parameters must following the BCP 47 `language`-`country` (case insensitive).
|
|
97
|
-
*
|
|
98
|
-
* @param acceptLanguageHeader - The value of an HTTP request `Accept-Language` header (also known as a "language priority list").
|
|
99
|
-
* @param locales - An array of locale identifiers that must include the default locale. The order will be used for matching where
|
|
100
|
-
* the first identifier will be more likely to be matched than the last identifier.
|
|
101
|
-
* @param defaultLocale - The default locale identifier when no match is found.
|
|
102
|
-
*
|
|
103
|
-
* @returns The locale identifier which was the best match, in case-normalized format.
|
|
104
|
-
*
|
|
105
|
-
* @example
|
|
106
|
-
* // returns 'fr-CA'
|
|
107
|
-
* resolveAcceptLanguage(
|
|
108
|
-
* 'fr-CA;q=0.01,en-CA;q=0.1,en-US;q=0.001',
|
|
109
|
-
* ['en-US', 'fr-CA'],
|
|
110
|
-
* 'en-US'
|
|
111
|
-
* )
|
|
112
|
-
*/
|
|
113
|
-
function resolveAcceptLanguage(acceptLanguageHeader, locales, defaultLocale) {
|
|
114
|
-
var localesIncludeDefault = false;
|
|
115
|
-
locales.forEach(function (locale) {
|
|
116
|
-
if (!locale_1.default.isLocale(locale, false)) {
|
|
117
|
-
throw new Error("invalid locale identifier '".concat(locale, "'"));
|
|
118
|
-
}
|
|
119
|
-
if (locale.toLowerCase() === defaultLocale.toLocaleLowerCase()) {
|
|
120
|
-
localesIncludeDefault = true;
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
if (!locale_1.default.isLocale(defaultLocale, false)) {
|
|
124
|
-
throw new Error("invalid default locale identifier '".concat(defaultLocale, "'"));
|
|
125
|
-
}
|
|
126
|
-
if (!localesIncludeDefault) {
|
|
127
|
-
throw new Error('the default locale must be included in the locales');
|
|
128
|
-
}
|
|
129
|
-
var rankedLocales = __spreadArray([defaultLocale], locales.filter(function (locale) { return locale !== defaultLocale; }), true);
|
|
130
|
-
var resolveAcceptLanguage = new ResolveAcceptLanguage(acceptLanguageHeader, rankedLocales);
|
|
131
|
-
if (resolveAcceptLanguage.hasMatch()) {
|
|
132
|
-
return resolveAcceptLanguage.getBestMatch();
|
|
133
|
-
}
|
|
134
|
-
return new locale_1.default(defaultLocale).identifier;
|
|
135
|
-
}
|
|
136
|
-
exports.default = resolveAcceptLanguage;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ResolveAcceptLanguage = void 0;
|
|
13
|
+
var locale_1 = require("./locale");
|
|
14
|
+
var lookup_list_1 = require("./lookup-list");
|
|
15
|
+
/** Resolve the preferred locale from an HTTP `Accept-Language` header. */
|
|
16
|
+
var ResolveAcceptLanguage = /** @class */ (function () {
|
|
17
|
+
/**
|
|
18
|
+
* Create a new `ResolveAcceptLanguage` object.
|
|
19
|
+
*
|
|
20
|
+
* All locale identifiers provided as parameters must following the BCP 47 `language`-`country` (case insensitive).
|
|
21
|
+
*
|
|
22
|
+
* @param acceptLanguageHeader - The value of an HTTP request `Accept-Language` header (also known as a "language priority list").
|
|
23
|
+
* @param locales - An array of locale identifiers. The order will be used for matching where the first identifier will be more
|
|
24
|
+
* likely to be matched than the last identifier.
|
|
25
|
+
*/
|
|
26
|
+
function ResolveAcceptLanguage(acceptLanguageHeader, locales) {
|
|
27
|
+
var lookupList = new lookup_list_1.default(acceptLanguageHeader, locales);
|
|
28
|
+
var topLocaleOrLanguage = lookupList.getTopLocaleOrLanguage();
|
|
29
|
+
if (topLocaleOrLanguage !== undefined) {
|
|
30
|
+
if (locale_1.default.isLocale(topLocaleOrLanguage)) {
|
|
31
|
+
this.localeBasedMatch = topLocaleOrLanguage;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.languageBasedMatch = lookupList.getTopByLanguage(topLocaleOrLanguage);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this.relatedLocaleBasedMatch = lookupList.getTopRelatedLocale();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Is the best match language-based?
|
|
43
|
+
*
|
|
44
|
+
* @returns True if the best match language-based, otherwise false.
|
|
45
|
+
*/
|
|
46
|
+
ResolveAcceptLanguage.prototype.bestMatchIsLanguageBased = function () {
|
|
47
|
+
return this.languageBasedMatch !== undefined;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Is the best match locale-based?
|
|
51
|
+
*
|
|
52
|
+
* @returns True if the best match locale-based, otherwise false.
|
|
53
|
+
*/
|
|
54
|
+
ResolveAcceptLanguage.prototype.bestMatchIsLocaleBased = function () {
|
|
55
|
+
return this.localeBasedMatch !== undefined;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Is the best match related-locale-based?
|
|
59
|
+
*
|
|
60
|
+
* @returns True if the best match related-locale-based, otherwise false.
|
|
61
|
+
*/
|
|
62
|
+
ResolveAcceptLanguage.prototype.bestMatchIsRelatedLocaleBased = function () {
|
|
63
|
+
return this.relatedLocaleBasedMatch !== undefined;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Get the locale which was the best match.
|
|
67
|
+
*
|
|
68
|
+
* @returns The locale which was the best match.
|
|
69
|
+
*/
|
|
70
|
+
ResolveAcceptLanguage.prototype.getBestMatch = function () {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
return (_b = (_a = this.localeBasedMatch) !== null && _a !== void 0 ? _a : this.languageBasedMatch) !== null && _b !== void 0 ? _b : this.relatedLocaleBasedMatch;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Was a match found when resolving the preferred locale?
|
|
76
|
+
*
|
|
77
|
+
* @returns True when a match is found, otherwise false.
|
|
78
|
+
*/
|
|
79
|
+
ResolveAcceptLanguage.prototype.hasMatch = function () {
|
|
80
|
+
return this.getBestMatch() !== undefined ? true : false;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Did the resolution of the preferred locale find no match?
|
|
84
|
+
*
|
|
85
|
+
* @returns True when there is no match, otherwise false.
|
|
86
|
+
*/
|
|
87
|
+
ResolveAcceptLanguage.prototype.hasNoMatch = function () {
|
|
88
|
+
return !this.hasMatch();
|
|
89
|
+
};
|
|
90
|
+
return ResolveAcceptLanguage;
|
|
91
|
+
}());
|
|
92
|
+
exports.ResolveAcceptLanguage = ResolveAcceptLanguage;
|
|
93
|
+
/**
|
|
94
|
+
* Resolve the preferred locale from an HTTP `Accept-Language` header.
|
|
95
|
+
*
|
|
96
|
+
* All locale identifiers provided as parameters must following the BCP 47 `language`-`country` (case insensitive).
|
|
97
|
+
*
|
|
98
|
+
* @param acceptLanguageHeader - The value of an HTTP request `Accept-Language` header (also known as a "language priority list").
|
|
99
|
+
* @param locales - An array of locale identifiers that must include the default locale. The order will be used for matching where
|
|
100
|
+
* the first identifier will be more likely to be matched than the last identifier.
|
|
101
|
+
* @param defaultLocale - The default locale identifier when no match is found.
|
|
102
|
+
*
|
|
103
|
+
* @returns The locale identifier which was the best match, in case-normalized format.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* // returns 'fr-CA'
|
|
107
|
+
* resolveAcceptLanguage(
|
|
108
|
+
* 'fr-CA;q=0.01,en-CA;q=0.1,en-US;q=0.001',
|
|
109
|
+
* ['en-US', 'fr-CA'],
|
|
110
|
+
* 'en-US'
|
|
111
|
+
* )
|
|
112
|
+
*/
|
|
113
|
+
function resolveAcceptLanguage(acceptLanguageHeader, locales, defaultLocale) {
|
|
114
|
+
var localesIncludeDefault = false;
|
|
115
|
+
locales.forEach(function (locale) {
|
|
116
|
+
if (!locale_1.default.isLocale(locale, false)) {
|
|
117
|
+
throw new Error("invalid locale identifier '".concat(locale, "'"));
|
|
118
|
+
}
|
|
119
|
+
if (locale.toLowerCase() === defaultLocale.toLocaleLowerCase()) {
|
|
120
|
+
localesIncludeDefault = true;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
if (!locale_1.default.isLocale(defaultLocale, false)) {
|
|
124
|
+
throw new Error("invalid default locale identifier '".concat(defaultLocale, "'"));
|
|
125
|
+
}
|
|
126
|
+
if (!localesIncludeDefault) {
|
|
127
|
+
throw new Error('the default locale must be included in the locales');
|
|
128
|
+
}
|
|
129
|
+
var rankedLocales = __spreadArray([defaultLocale], locales.filter(function (locale) { return locale !== defaultLocale; }), true);
|
|
130
|
+
var resolveAcceptLanguage = new ResolveAcceptLanguage(acceptLanguageHeader, rankedLocales);
|
|
131
|
+
if (resolveAcceptLanguage.hasMatch()) {
|
|
132
|
+
return resolveAcceptLanguage.getBestMatch();
|
|
133
|
+
}
|
|
134
|
+
return new locale_1.default(defaultLocale).identifier;
|
|
135
|
+
}
|
|
136
|
+
exports.default = resolveAcceptLanguage;
|
package/package.json
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "resolve-accept-language",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "Resolve the preferred locale based on the value of an `Accept-Language` HTTP header.",
|
|
5
|
-
"author": "Avansai (https://avansai.com)",
|
|
6
|
-
"repository": {
|
|
7
|
-
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/Avansai/resolve-accept-language.git"
|
|
9
|
-
},
|
|
10
|
-
"main": "lib/resolve-accept-language.js",
|
|
11
|
-
"types": "lib/resolve-accept-language.d.ts",
|
|
12
|
-
"scripts": {
|
|
13
|
-
"build": "npm run prettier && npm run lint-fix && rm -Rf ./lib && tsc && npm run test",
|
|
14
|
-
"lint-fix": "eslint --ext .js --ext .jsx --ext .ts --ext .tsx --fix .",
|
|
15
|
-
"lint-check": "eslint --ext .js --ext .jsx --ext .ts --ext .tsx .",
|
|
16
|
-
"lint-print-config": "eslint --print-config ./eslintrc.yaml",
|
|
17
|
-
"prettier": "prettier --write .",
|
|
18
|
-
"test": "jest --coverage",
|
|
19
|
-
"release": "dotenv -- release-it --only-version"
|
|
20
|
-
},
|
|
21
|
-
"license": "MIT",
|
|
22
|
-
"files": [
|
|
23
|
-
"lib"
|
|
24
|
-
],
|
|
25
|
-
"keywords": [
|
|
26
|
-
"accept-language",
|
|
27
|
-
"RFC 4647",
|
|
28
|
-
"locale",
|
|
29
|
-
"language tags",
|
|
30
|
-
"RFC 4646",
|
|
31
|
-
"BCP 47",
|
|
32
|
-
"RFC 2616",
|
|
33
|
-
"resolve",
|
|
34
|
-
"detect",
|
|
35
|
-
"intl",
|
|
36
|
-
"i18n",
|
|
37
|
-
"internationalization"
|
|
38
|
-
],
|
|
39
|
-
"devDependencies": {
|
|
40
|
-
"@release-it/conventional-changelog": "^5.
|
|
41
|
-
"@types/jest": "^
|
|
42
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
43
|
-
"@typescript-eslint/parser": "^5.
|
|
44
|
-
"dotenv-cli": "^6.0.0",
|
|
45
|
-
"eslint": "^8.
|
|
46
|
-
"eslint-config-prettier": "^8.5.0",
|
|
47
|
-
"eslint-import-resolver-node": "^0.3.6",
|
|
48
|
-
"eslint-import-resolver-typescript": "^3.
|
|
49
|
-
"eslint-plugin-import": "^2.26.0",
|
|
50
|
-
"eslint-plugin-jest": "^
|
|
51
|
-
"eslint-plugin-prettier": "^4.2.1",
|
|
52
|
-
"eslint-plugin-unicorn": "^43.0.2",
|
|
53
|
-
"jest": "^
|
|
54
|
-
"prettier": "^2.7.1",
|
|
55
|
-
"prettier-plugin-organize-imports": "^3.
|
|
56
|
-
"prettier-plugin-sh": "^0.12.8",
|
|
57
|
-
"release-it": "^15.
|
|
58
|
-
"ts-jest": "^
|
|
59
|
-
"ts-node": "^10.9.1",
|
|
60
|
-
"typescript": "^4.
|
|
61
|
-
}
|
|
62
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "resolve-accept-language",
|
|
3
|
+
"version": "1.1.19",
|
|
4
|
+
"description": "Resolve the preferred locale based on the value of an `Accept-Language` HTTP header.",
|
|
5
|
+
"author": "Avansai (https://avansai.com)",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/Avansai/resolve-accept-language.git"
|
|
9
|
+
},
|
|
10
|
+
"main": "lib/resolve-accept-language.js",
|
|
11
|
+
"types": "lib/resolve-accept-language.d.ts",
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "npm run prettier && npm run lint-fix && rm -Rf ./lib && tsc && npm run test",
|
|
14
|
+
"lint-fix": "eslint --ext .js --ext .jsx --ext .ts --ext .tsx --fix .",
|
|
15
|
+
"lint-check": "eslint --ext .js --ext .jsx --ext .ts --ext .tsx .",
|
|
16
|
+
"lint-print-config": "eslint --print-config ./eslintrc.yaml",
|
|
17
|
+
"prettier": "prettier --write .",
|
|
18
|
+
"test": "jest --coverage",
|
|
19
|
+
"release": "dotenv -- release-it --only-version"
|
|
20
|
+
},
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"files": [
|
|
23
|
+
"lib"
|
|
24
|
+
],
|
|
25
|
+
"keywords": [
|
|
26
|
+
"accept-language",
|
|
27
|
+
"RFC 4647",
|
|
28
|
+
"locale",
|
|
29
|
+
"language tags",
|
|
30
|
+
"RFC 4646",
|
|
31
|
+
"BCP 47",
|
|
32
|
+
"RFC 2616",
|
|
33
|
+
"resolve",
|
|
34
|
+
"detect",
|
|
35
|
+
"intl",
|
|
36
|
+
"i18n",
|
|
37
|
+
"internationalization"
|
|
38
|
+
],
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@release-it/conventional-changelog": "^5.1.0",
|
|
41
|
+
"@types/jest": "^29.0.0",
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^5.36.2",
|
|
43
|
+
"@typescript-eslint/parser": "^5.36.2",
|
|
44
|
+
"dotenv-cli": "^6.0.0",
|
|
45
|
+
"eslint": "^8.23.0",
|
|
46
|
+
"eslint-config-prettier": "^8.5.0",
|
|
47
|
+
"eslint-import-resolver-node": "^0.3.6",
|
|
48
|
+
"eslint-import-resolver-typescript": "^3.5.1",
|
|
49
|
+
"eslint-plugin-import": "^2.26.0",
|
|
50
|
+
"eslint-plugin-jest": "^27.0.3",
|
|
51
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
52
|
+
"eslint-plugin-unicorn": "^43.0.2",
|
|
53
|
+
"jest": "^29.0.2",
|
|
54
|
+
"prettier": "^2.7.1",
|
|
55
|
+
"prettier-plugin-organize-imports": "^3.1.1",
|
|
56
|
+
"prettier-plugin-sh": "^0.12.8",
|
|
57
|
+
"release-it": "^15.4.1",
|
|
58
|
+
"ts-jest": "^29.0.0",
|
|
59
|
+
"ts-node": "^10.9.1",
|
|
60
|
+
"typescript": "^4.8.3"
|
|
61
|
+
}
|
|
62
|
+
}
|