@avstantso/utils-languages 1.1.0 → 1.2.2

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.
@@ -0,0 +1,2 @@
1
+ import Rus = AVStantso.Rus;
2
+ export { Rus };
@@ -0,0 +1,6 @@
1
+ import '@avstantso/errors';
2
+ import '@avstantso/js';
3
+ import '@avstantso/concepts';
4
+ import '@avstantso/utils-enum-class';
5
+ import './_global';
6
+ export * from './export';
package/dist/index.js ADDED
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ require('@avstantso/errors');
4
+ require('@avstantso/js');
5
+ require('@avstantso/concepts');
6
+ require('@avstantso/utils-enum-class');
7
+
8
+ var AVStantso$1;
9
+ (function (AVStantso) {
10
+ AVStantso.Rus = avstantso._reg.Rus({});
11
+ })(AVStantso$1 || (AVStantso$1 = {}));
12
+
13
+ (function (AVStantso) {
14
+ class _RusCase extends AVStantso_EnumClass {
15
+ static Items = {
16
+ /**
17
+ * @summary Именительный
18
+ * @example Кто? Что?
19
+ */
20
+ nominative: new _RusCase(1),
21
+ /**
22
+ * @summary Родительный
23
+ * @example Кого? Чего?
24
+ */
25
+ genitive: new _RusCase(2),
26
+ /**
27
+ * @summary Дательный
28
+ * @example Кому? Чему?
29
+ */
30
+ dative: new _RusCase(3),
31
+ /**
32
+ * @summary Винительный
33
+ * @example Кого? Что?
34
+ */
35
+ accusative: new _RusCase(4),
36
+ /**
37
+ * @summary Творительный
38
+ * @example Кем? Чем?
39
+ */
40
+ instrumental: new _RusCase(5),
41
+ /**
42
+ * @summary Предложный
43
+ * @example О ком? О чём?; В ком? В чём?
44
+ */
45
+ prepositional: new _RusCase(6)
46
+ };
47
+ }
48
+ const RusCase = _RusCase.Init();
49
+ avstantso._reg.Rus.Case(() => RusCase);
50
+ })();
51
+
52
+ (function (AVStantso) {
53
+ class _RusNumber extends AVStantso_EnumClass {
54
+ static Items = {
55
+ /**
56
+ * @summary Единственное
57
+ * @example "день", "мошка"
58
+ */
59
+ singular: new _RusNumber(1),
60
+ /**
61
+ * @summary Двойственное
62
+ * @example "дня", "мошки"
63
+ */
64
+ dual: new _RusNumber(2),
65
+ /**
66
+ * @summary Множественное
67
+ * @example "дней", "мошек"
68
+ */
69
+ plural: new _RusNumber(3)
70
+ };
71
+ static Statics;
72
+ static withSubstantive(...wordForms) {
73
+ const { singular, dual, plural } = avstantso.JS.is.object(wordForms[0])
74
+ ? wordForms[0]
75
+ : { singular: wordForms[0], dual: wordForms[1], plural: wordForms[2] };
76
+ return (num) => {
77
+ const m10 = Math.abs(num) % 10;
78
+ const m100 = Math.abs(num) % 100;
79
+ return !(m10 >= 1 && m10 <= 4) || (m100 >= 11 && m100 <= 14)
80
+ ? plural
81
+ : 1 === m10
82
+ ? singular
83
+ : dual;
84
+ };
85
+ }
86
+ }
87
+ const RusNumber = _RusNumber.Init();
88
+ avstantso._reg.Rus.Number(() => RusNumber);
89
+ })();
90
+
91
+ var Rus = AVStantso.Rus;
92
+
93
+ exports.Rus = Rus;
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/_global/rus/_register.ts","../src/_global/rus/case.ts","../src/_global/rus/number.ts","../src/export.ts"],"sourcesContent":["namespace AVStantso {\n /**\n * @summary Russian grammar helpers\n */\n export namespace Rus {}\n\n export namespace Code {\n /**\n * @summary Russian grammar helpers\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n export interface Rus {}\n }\n\n export interface Code {\n /**\n * @summary Russian grammar helpers\n */\n Rus: Code.Rus;\n }\n\n export const Rus: Code.Rus = avstantso._reg.Rus({});\n}\n","namespace AVStantso {\n class _RusCase<TValue extends number = number> extends AVStantso_EnumClass<TValue> {\n public static Items = {\n /**\n * @summary Именительный\n * @example Кто? Что?\n */\n nominative: new _RusCase(1),\n\n /**\n * @summary Родительный\n * @example Кого? Чего?\n */\n genitive: new _RusCase(2),\n\n /**\n * @summary Дательный\n * @example Кому? Чему?\n */\n dative: new _RusCase(3),\n\n /**\n * @summary Винительный\n * @example Кого? Что?\n */\n accusative: new _RusCase(4),\n\n /**\n * @summary Творительный\n * @example Кем? Чем?\n */\n instrumental: new _RusCase(5),\n\n /**\n * @summary Предложный\n * @example О ком? О чём?; В ком? В чём?\n */\n prepositional: new _RusCase(6)\n };\n }\n\n const RusCase = _RusCase.Init();\n\n export namespace Rus {\n /**\n * @summary Падеж в русском языке\n */\n export type Case = typeof RusCase.Item;\n }\n\n export namespace Code {\n export interface Rus {\n /**\n * @summary Падеж в русском языке\n */\n Case: typeof RusCase;\n }\n }\n\n avstantso._reg.Rus.Case(() => RusCase);\n}\n","namespace AVStantso {\n class _RusNumber<TValue extends number = number> extends AVStantso_EnumClass<TValue> {\n public static Items = {\n /**\n * @summary Единственное\n * @example \"день\", \"мошка\"\n */\n singular: new _RusNumber(1),\n\n /**\n * @summary Двойственное\n * @example \"дня\", \"мошки\"\n */\n dual: new _RusNumber(2),\n\n /**\n * @summary Множественное\n * @example \"дней\", \"мошек\"\n */\n plural: new _RusNumber(3)\n };\n\n public static Statics: {\n withSubstantive: Rus.Number.WithSubstantive;\n };\n\n public static withSubstantive(...wordForms: TS.Arr) {\n const { singular, dual, plural }: Rus.Number.WordForms =\n avstantso.JS.is.object<Rus.Number.WordForms>(wordForms[0])\n ? wordForms[0]\n : { singular: wordForms[0], dual: wordForms[1], plural: wordForms[2] };\n\n return (num: number) => {\n const m10 = Math.abs(num) % 10;\n const m100 = Math.abs(num) % 100;\n\n return !(m10 >= 1 && m10 <= 4) || (m100 >= 11 && m100 <= 14)\n ? plural\n : 1 === m10\n ? singular\n : dual;\n };\n }\n }\n\n const RusNumber = _RusNumber.Init();\n\n export namespace Rus {\n /**\n * @summary Число в русском языке\n * @example 1 - \"день\", 2-3-4 - \"дня\", 0-5+ - \"дней\"\n */\n export namespace Number {\n export type Key = typeof RusNumber.Key;\n\n /**\n * @summary Формы слова на русском языке в единственном, двойственном и множественном числе\n */\n export type WordForms = Record<Key, string>;\n\n export interface WithSubstantive {\n /**\n * @summary Выбор формы существительного по переданному математическому числу\n * @param wordForms Формы слова на русском языке в единственном, двойственном и множественном числе\n * @param num Математическое число\n */\n (wordForms: WordForms): (num: number) => string;\n\n /**\n * @summary Выбор формы существительного по переданному математическому числу\n * @param singular Форма слова на русском языке в единственном числе\n * @param dual Форма слова на русском языке в двойственном числе\n * @param plural Форма слова на русском языке во множественном числе\n * @param num Математическое число\n */\n (singular: string, dual: string, plural: string): (num: number) => string;\n }\n }\n\n export type Number = typeof RusNumber.Item;\n }\n\n export namespace Code {\n export interface Rus {\n /**\n * @summary Число в русском языке\n * @example 1 - \"день\", 2-3-4 - \"дня\", 0-5+ - \"дней\"\n */\n Number: typeof RusNumber;\n }\n }\n\n avstantso._reg.Rus.Number(() => RusNumber);\n}\n","import Rus = AVStantso.Rus;\n\nexport {\n Rus\n};\n"],"names":["AVStantso"],"mappings":";;;;;;;AAAA,IAAUA,WAAS;AAAnB,CAAA,UAAU,SAAS,EAAA;IAqBJ,SAAA,CAAA,GAAG,GAAa,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACrD,CAAC,EAtBSA,WAAS,KAATA,WAAS,GAAA,EAAA,CAAA,CAAA;;ACAnB,CAAA,UAAU,SAAS,EAAA;IACjB,MAAM,QAAyC,SAAQ,mBAA2B,CAAA;QACzE,OAAO,KAAK,GAAG;AACpB;;;AAGG;AACH,YAAA,UAAU,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC;AAE3B;;;AAGG;AACH,YAAA,QAAQ,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC;AAEzB;;;AAGG;AACH,YAAA,MAAM,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC;AAEvB;;;AAGG;AACH,YAAA,UAAU,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC;AAE3B;;;AAGG;AACH,YAAA,YAAY,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC;AAE7B;;;AAGG;AACH,YAAA,aAAa,EAAE,IAAI,QAAQ,CAAC,CAAC;SAC9B;;AAGH,IAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE;AAkB/B,IAAA,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC;AACxC,CAAC,EA5DkB,CAAA;;ACAnB,CAAA,UAAU,SAAS,EAAA;IACjB,MAAM,UAA2C,SAAQ,mBAA2B,CAAA;QAC3E,OAAO,KAAK,GAAG;AACpB;;;AAGG;AACH,YAAA,QAAQ,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC;AAE3B;;;AAGG;AACH,YAAA,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC;AAEvB;;;AAGG;AACH,YAAA,MAAM,EAAE,IAAI,UAAU,CAAC,CAAC;SACzB;QAEM,OAAO,OAAO;AAId,QAAA,OAAO,eAAe,CAAC,GAAG,SAAiB,EAAA;YAChD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAChC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAuB,SAAS,CAAC,CAAC,CAAC;AACvD,kBAAE,SAAS,CAAC,CAAC;kBACX,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE;YAExE,OAAO,CAAC,GAAW,KAAI;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;AAEhC,gBAAA,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE;AACzD,sBAAE;sBACA,CAAC,KAAK;AACN,0BAAE;0BACA,IAAI;AACZ,YAAA,CAAC;QACH;;AAGF,IAAA,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE;AA+CnC,IAAA,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC;AAC5C,CAAC,EA7FkB,CAAA;;ACAnB,IAAO,GAAG,GAAG,SAAS,CAAC;;;;"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@avstantso/utils-languages",
3
3
  "license": "MIT",
4
4
  "author": "avstantso",
5
- "version": "1.1.0",
5
+ "version": "1.2.2",
6
6
  "description": "AVStantso framework utils: languages",
7
7
  "keywords": [
8
8
  "Rus"
@@ -23,13 +23,13 @@
23
23
  "test": "NODE_ENV=test jest --coverage"
24
24
  },
25
25
  "dependencies": {
26
- "@avstantso/concepts": "1.1.0",
27
- "@avstantso/core": "1.1.0",
28
- "@avstantso/errors": "1.1.0",
29
- "@avstantso/js": "1.1.0",
30
- "@avstantso/std-ext": "1.1.0",
31
- "@avstantso/ts": "1.1.0",
32
- "@avstantso/utils-enum-class": "1.1.0"
26
+ "@avstantso/concepts": "1.2.2",
27
+ "@avstantso/core": "1.2.1",
28
+ "@avstantso/errors": "1.2.1",
29
+ "@avstantso/js": "1.2.2",
30
+ "@avstantso/std-ext": "1.2.1",
31
+ "@avstantso/ts": "1.3.0",
32
+ "@avstantso/utils-enum-class": "1.2.2"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@avstantso/dev-basic": "1.0.0"