namefully 1.1.0 → 1.2.1

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.
Files changed (136) hide show
  1. package/dist/lib/config.js +112 -0
  2. package/dist/lib/constants.js +30 -0
  3. package/dist/lib/error.js +92 -0
  4. package/dist/lib/full-name.js +115 -0
  5. package/dist/lib/index.js +27 -12
  6. package/dist/lib/name.js +230 -0
  7. package/dist/lib/namefully.js +368 -681
  8. package/dist/lib/parser.js +138 -0
  9. package/dist/lib/types.js +107 -0
  10. package/dist/lib/utils.js +92 -0
  11. package/dist/lib/validator.js +301 -0
  12. package/dist/types/config.d.ts +97 -0
  13. package/dist/types/constants.d.ts +4 -0
  14. package/dist/types/error.d.ts +158 -0
  15. package/dist/types/full-name.d.ts +54 -0
  16. package/dist/types/index.d.ts +21 -0
  17. package/dist/types/name.d.ts +126 -0
  18. package/dist/types/namefully.d.ts +313 -0
  19. package/dist/types/parser.d.ts +41 -0
  20. package/dist/types/types.d.ts +127 -0
  21. package/dist/types/utils.d.ts +53 -0
  22. package/dist/types/validator.d.ts +57 -0
  23. package/dist/umd/namefully.js +1503 -2900
  24. package/dist/umd/namefully.min.js +1 -3
  25. package/package.json +28 -38
  26. package/readme.md +138 -167
  27. package/changelog.md +0 -134
  28. package/dist/lib/core/constants.d.ts +0 -48
  29. package/dist/lib/core/constants.js +0 -101
  30. package/dist/lib/core/constants.js.map +0 -1
  31. package/dist/lib/core/core.d.ts +0 -17
  32. package/dist/lib/core/core.js +0 -24
  33. package/dist/lib/core/core.js.map +0 -1
  34. package/dist/lib/core/index.d.ts +0 -9
  35. package/dist/lib/core/index.js +0 -13
  36. package/dist/lib/core/index.js.map +0 -1
  37. package/dist/lib/core/parsers/array-name.parser.d.ts +0 -41
  38. package/dist/lib/core/parsers/array-name.parser.js +0 -86
  39. package/dist/lib/core/parsers/array-name.parser.js.map +0 -1
  40. package/dist/lib/core/parsers/array-string.parser.d.ts +0 -47
  41. package/dist/lib/core/parsers/array-string.parser.js +0 -95
  42. package/dist/lib/core/parsers/array-string.parser.js.map +0 -1
  43. package/dist/lib/core/parsers/index.d.ts +0 -11
  44. package/dist/lib/core/parsers/index.js +0 -11
  45. package/dist/lib/core/parsers/index.js.map +0 -1
  46. package/dist/lib/core/parsers/nama.parser.d.ts +0 -33
  47. package/dist/lib/core/parsers/nama.parser.js +0 -74
  48. package/dist/lib/core/parsers/nama.parser.js.map +0 -1
  49. package/dist/lib/core/parsers/parser.d.ts +0 -28
  50. package/dist/lib/core/parsers/parser.js +0 -3
  51. package/dist/lib/core/parsers/parser.js.map +0 -1
  52. package/dist/lib/core/parsers/string.parser.d.ts +0 -60
  53. package/dist/lib/core/parsers/string.parser.js +0 -62
  54. package/dist/lib/core/parsers/string.parser.js.map +0 -1
  55. package/dist/lib/core/utils.d.ts +0 -52
  56. package/dist/lib/core/utils.js +0 -178
  57. package/dist/lib/core/utils.js.map +0 -1
  58. package/dist/lib/index.d.ts +0 -10
  59. package/dist/lib/index.js.map +0 -1
  60. package/dist/lib/models/enums.d.ts +0 -106
  61. package/dist/lib/models/enums.js +0 -114
  62. package/dist/lib/models/enums.js.map +0 -1
  63. package/dist/lib/models/firstname.d.ts +0 -77
  64. package/dist/lib/models/firstname.js +0 -131
  65. package/dist/lib/models/firstname.js.map +0 -1
  66. package/dist/lib/models/fullname.d.ts +0 -73
  67. package/dist/lib/models/fullname.js +0 -99
  68. package/dist/lib/models/fullname.js.map +0 -1
  69. package/dist/lib/models/index.d.ts +0 -13
  70. package/dist/lib/models/index.js +0 -16
  71. package/dist/lib/models/index.js.map +0 -1
  72. package/dist/lib/models/lastname.d.ts +0 -80
  73. package/dist/lib/models/lastname.js +0 -157
  74. package/dist/lib/models/lastname.js.map +0 -1
  75. package/dist/lib/models/misc.d.ts +0 -108
  76. package/dist/lib/models/misc.js +0 -3
  77. package/dist/lib/models/misc.js.map +0 -1
  78. package/dist/lib/models/name.d.ts +0 -76
  79. package/dist/lib/models/name.js +0 -115
  80. package/dist/lib/models/name.js.map +0 -1
  81. package/dist/lib/models/summary.d.ts +0 -26
  82. package/dist/lib/models/summary.js +0 -61
  83. package/dist/lib/models/summary.js.map +0 -1
  84. package/dist/lib/namefully.d.ts +0 -302
  85. package/dist/lib/namefully.js.map +0 -1
  86. package/dist/lib/validators/array-name.validator.d.ts +0 -25
  87. package/dist/lib/validators/array-name.validator.js +0 -75
  88. package/dist/lib/validators/array-name.validator.js.map +0 -1
  89. package/dist/lib/validators/array-string.validator.d.ts +0 -43
  90. package/dist/lib/validators/array-string.validator.js +0 -76
  91. package/dist/lib/validators/array-string.validator.js.map +0 -1
  92. package/dist/lib/validators/common/validation-error.d.ts +0 -19
  93. package/dist/lib/validators/common/validation-error.js +0 -26
  94. package/dist/lib/validators/common/validation-error.js.map +0 -1
  95. package/dist/lib/validators/common/validation-rule.d.ts +0 -72
  96. package/dist/lib/validators/common/validation-rule.js +0 -76
  97. package/dist/lib/validators/common/validation-rule.js.map +0 -1
  98. package/dist/lib/validators/common/validation-type.d.ts +0 -24
  99. package/dist/lib/validators/common/validation-type.js +0 -28
  100. package/dist/lib/validators/common/validation-type.js.map +0 -1
  101. package/dist/lib/validators/firstname.validator.d.ts +0 -20
  102. package/dist/lib/validators/firstname.validator.js +0 -29
  103. package/dist/lib/validators/firstname.validator.js.map +0 -1
  104. package/dist/lib/validators/fullname.validator.d.ts +0 -21
  105. package/dist/lib/validators/fullname.validator.js +0 -38
  106. package/dist/lib/validators/fullname.validator.js.map +0 -1
  107. package/dist/lib/validators/index.d.ts +0 -21
  108. package/dist/lib/validators/index.js +0 -35
  109. package/dist/lib/validators/index.js.map +0 -1
  110. package/dist/lib/validators/lastname.validator.d.ts +0 -20
  111. package/dist/lib/validators/lastname.validator.js +0 -29
  112. package/dist/lib/validators/lastname.validator.js.map +0 -1
  113. package/dist/lib/validators/middlename.validator.d.ts +0 -20
  114. package/dist/lib/validators/middlename.validator.js +0 -38
  115. package/dist/lib/validators/middlename.validator.js.map +0 -1
  116. package/dist/lib/validators/nama.validator.d.ts +0 -21
  117. package/dist/lib/validators/nama.validator.js +0 -44
  118. package/dist/lib/validators/nama.validator.js.map +0 -1
  119. package/dist/lib/validators/namon.validator.d.ts +0 -20
  120. package/dist/lib/validators/namon.validator.js +0 -29
  121. package/dist/lib/validators/namon.validator.js.map +0 -1
  122. package/dist/lib/validators/prefix.validator.d.ts +0 -14
  123. package/dist/lib/validators/prefix.validator.js +0 -31
  124. package/dist/lib/validators/prefix.validator.js.map +0 -1
  125. package/dist/lib/validators/string-name.validator.d.ts +0 -20
  126. package/dist/lib/validators/string-name.validator.js +0 -29
  127. package/dist/lib/validators/string-name.validator.js.map +0 -1
  128. package/dist/lib/validators/suffix.validator.d.ts +0 -14
  129. package/dist/lib/validators/suffix.validator.js +0 -31
  130. package/dist/lib/validators/suffix.validator.js.map +0 -1
  131. package/dist/lib/validators/validator.d.ts +0 -13
  132. package/dist/lib/validators/validator.js +0 -9
  133. package/dist/lib/validators/validator.js.map +0 -1
  134. package/dist/umd/namefully.js.map +0 -1
  135. package/dist/umd/namefully.min.js.LICENSE.txt +0 -29
  136. package/dist/umd/namefully.min.js.map +0 -1
@@ -1,101 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Constants
5
- *
6
- * Created on March 07, 2020
7
- * @author Ralph Florent <ralflornt@gmail.com>
8
- */
9
- const index_1 = require("../models/index");
10
- const core_1 = require("./core");
11
- /**
12
- * The current version of `Namefully`.
13
- * @constant
14
- */
15
- exports.version = '1.1.0';
16
- /**
17
- * CONFIG
18
- * @constant
19
- * @type {Config}
20
- * @default
21
- */
22
- exports.CONFIG = {
23
- orderedBy: 'firstname',
24
- separator: index_1.Separator.SPACE,
25
- titling: 'uk',
26
- ending: false,
27
- bypass: false,
28
- lastnameFormat: 'father',
29
- };
30
- /**
31
- * NAME_INDEX
32
- * @constant
33
- * @type {NameIndex}
34
- * @default
35
- */
36
- exports.NAME_INDEX = {
37
- prefix: 0,
38
- firstname: 1,
39
- middlename: 2,
40
- lastname: 3,
41
- suffix: 4,
42
- };
43
- exports.FIRST_LAST_NAME_INDEX = 2;
44
- exports.LAST_FIRST_NAME_INDEX = 2;
45
- exports.FIRST_MIDDLE_LAST_NAME_INDEX = 3;
46
- exports.LAST_FIRST_MIDDLE_NAME_INDEX = 3;
47
- exports.PREFIX_FIRST_MIDDLE_LAST_NAME_INDEX = 4;
48
- exports.PREFIX_LAST_FIRST_MIDDLE_NAME_INDEX = 4;
49
- exports.PREFIX_FIRST_MIDDLE_LAST_SUFFIX_NAME_INDEX = 5;
50
- exports.PREFIX_LAST_FIRST_MIDDLE_SUFFIX_NAME_INDEX = 5;
51
- exports.MIN_NUMBER_NAME_PART = 2;
52
- exports.MAX_NUMBER_NAME_PART = 5;
53
- /**
54
- * RESTRICTED_CHARS
55
- * @constant
56
- * @default
57
- */
58
- exports.RESTRICTED_CHARS = [
59
- index_1.Separator.SPACE,
60
- index_1.Separator.SINGLE_QUOTE,
61
- index_1.Separator.HYPHEN,
62
- index_1.Separator.PERIOD,
63
- index_1.Separator.COMMA,
64
- ];
65
- /**
66
- * PASSWORD_MAPPER
67
- * @constant
68
- */
69
- exports.PASSWORD_MAPPER = new Map([
70
- ['a', new core_1.CharSet(['a', 'A', '@', '4'])],
71
- ['b', new core_1.CharSet(['b', 'B', '6', '|)', '|3', '|>'])],
72
- ['c', new core_1.CharSet(['c', 'C', '(', '<'])],
73
- ['d', new core_1.CharSet(['d', 'D', '(|', '<|'])],
74
- ['e', new core_1.CharSet(['e', 'E', '3', '*'])],
75
- ['f', new core_1.CharSet(['f', 'F', '7', '(-'])],
76
- ['g', new core_1.CharSet(['g', 'G', '8', '&', '**'])],
77
- ['h', new core_1.CharSet(['h', 'H', '#', '|-|'])],
78
- ['i', new core_1.CharSet(['i', 'I', '!', '1', '|', '--'])],
79
- ['j', new core_1.CharSet(['j', 'J', ')', '1'])],
80
- ['k', new core_1.CharSet(['k', 'K', '%', '|<'])],
81
- ['l', new core_1.CharSet(['l', 'L', '1', '!', '|_'])],
82
- ['m', new core_1.CharSet(['m', 'M', '^^', '>>'])],
83
- ['n', new core_1.CharSet(['n', 'N', '!=', '++'])],
84
- ['o', new core_1.CharSet(['o', 'O', '0', '.', '*'])],
85
- ['p', new core_1.CharSet(['p', 'P', '|3', '|)', '|>'])],
86
- ['q', new core_1.CharSet(['q', 'Q', '&', '9', '<|'])],
87
- ['r', new core_1.CharSet(['r', 'R', '7', '&'])],
88
- ['s', new core_1.CharSet(['s', 'S', '5', '$'])],
89
- ['t', new core_1.CharSet(['t', 'T', '7', '['])],
90
- ['u', new core_1.CharSet(['u', 'U', '|_|', 'v'])],
91
- ['v', new core_1.CharSet(['v', 'V', '>', '<', '^'])],
92
- ['w', new core_1.CharSet(['w', 'W', '[|]', 'vv'])],
93
- ['x', new core_1.CharSet(['x', 'X', '%', '#'])],
94
- ['z', new core_1.CharSet(['z', 'Z', '2', '!='])],
95
- ['$', new core_1.CharSet([
96
- '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '+', '[',
97
- '_', '=', '{', '}', ':', ';', ',', '.', '<', '>', '|', '~', ']',
98
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
99
- ])],
100
- ]);
101
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/constants.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Core contents
3
- *
4
- * Created on June 30, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- /**
8
- * Extends `Set` functionalities by shuffling the set values and return one
9
- */
10
- export declare class CharSet<T> extends Set<T> {
11
- random(): T;
12
- }
13
- /**
14
- * Extends `Array` functionalities
15
- */
16
- export declare class CharArray<T> extends Array<T> {
17
- }
@@ -1,24 +0,0 @@
1
- "use strict";
2
- /**
3
- * Core contents
4
- *
5
- * Created on June 30, 2020
6
- * @author Ralph Florent <ralflornt@gmail.com>
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- /**
10
- * Extends `Set` functionalities by shuffling the set values and return one
11
- */
12
- class CharSet extends Set {
13
- random() {
14
- return Array.from(this)[Math.floor(Math.random() * this.size)];
15
- }
16
- }
17
- exports.CharSet = CharSet;
18
- /**
19
- * Extends `Array` functionalities
20
- */
21
- class CharArray extends Array {
22
- }
23
- exports.CharArray = CharArray;
24
- //# sourceMappingURL=core.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/core/core.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH;;GAEG;AACH,MAAa,OAAW,SAAQ,GAAM;IAClC,MAAM;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;CACJ;AAJD,0BAIC;AAED;;GAEG;AACH,MAAa,SAAa,SAAQ,KAAQ;CAEzC;AAFD,8BAEC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Make all the locals available
3
- *
4
- * Created on March 06, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- export * from './parsers/index';
8
- export * from './utils';
9
- export * from './constants';
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- /**
5
- * Make all the locals available
6
- *
7
- * Created on March 06, 2020
8
- * @author Ralph Florent <ralflornt@gmail.com>
9
- */
10
- tslib_1.__exportStar(require("./parsers/index"), exports);
11
- tslib_1.__exportStar(require("./utils"), exports);
12
- tslib_1.__exportStar(require("./constants"), exports);
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,0DAAgC;AAChC,kDAAwB;AACxB,sDAA4B"}
@@ -1,41 +0,0 @@
1
- /**
2
- * An array `Name` parser
3
- *
4
- * Created on March 15, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { Name, Fullname, LastnameFormat } from '../../models';
8
- import { Parser } from './parser';
9
- /**
10
- * Represents a `Name[]` parser
11
- * @class
12
- * @implements {Parser<Name[]>}
13
- *
14
- * This parser parses an array of the class `Name` while checking that every part
15
- * plays the role they are supposed to play. The class `Name` is a ready-made
16
- * recipe that saves the how-to parsing for a raw data input.
17
- *
18
- * **NOTE**:
19
- * In this specific case, the user is expected to carefully set each name part
20
- * and submit a high-quality data. Why is this parser if the data is already
21
- * shaped as wanted? Well, it is better to be safe than sorry, so we implement a
22
- * double-check of these values and reconfirm a cleaner data. Remember, namefully
23
- * works like a trapdoor, once the data is set and confirmed safe, no editing is
24
- * possible.
25
- */
26
- export default class ArrayNameParser implements Parser<Name[]> {
27
- raw: Name[];
28
- /**
29
- * Create a parser ready to parse the raw data
30
- * @param {Name[]} raw data
31
- */
32
- constructor(raw: Name[]);
33
- /**
34
- * Parses the raw data into a full name
35
- */
36
- parse(options: {
37
- bypass: boolean;
38
- lastnameFormat: LastnameFormat;
39
- }): Fullname;
40
- private distribute;
41
- }
@@ -1,86 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * An array `Name` parser
5
- *
6
- * Created on March 15, 2020
7
- * @author Ralph Florent <ralflornt@gmail.com>
8
- */
9
- const models_1 = require("../../models");
10
- const index_1 = require("../../validators/index");
11
- /**
12
- * Represents a `Name[]` parser
13
- * @class
14
- * @implements {Parser<Name[]>}
15
- *
16
- * This parser parses an array of the class `Name` while checking that every part
17
- * plays the role they are supposed to play. The class `Name` is a ready-made
18
- * recipe that saves the how-to parsing for a raw data input.
19
- *
20
- * **NOTE**:
21
- * In this specific case, the user is expected to carefully set each name part
22
- * and submit a high-quality data. Why is this parser if the data is already
23
- * shaped as wanted? Well, it is better to be safe than sorry, so we implement a
24
- * double-check of these values and reconfirm a cleaner data. Remember, namefully
25
- * works like a trapdoor, once the data is set and confirmed safe, no editing is
26
- * possible.
27
- */
28
- class ArrayNameParser {
29
- /**
30
- * Create a parser ready to parse the raw data
31
- * @param {Name[]} raw data
32
- */
33
- constructor(raw) {
34
- this.raw = raw;
35
- }
36
- /**
37
- * Parses the raw data into a full name
38
- */
39
- parse(options) {
40
- const { bypass, lastnameFormat } = options;
41
- // validate first
42
- if (!bypass)
43
- new index_1.ArrayNameValidator().validate(this.raw);
44
- // then distribute all the elements accordingly
45
- const fullname = this.distribute(lastnameFormat);
46
- // finally return high quality of data
47
- return fullname;
48
- }
49
- distribute(lastnameFormat) {
50
- const fullname = {
51
- firstname: null,
52
- lastname: null,
53
- middlename: [],
54
- prefix: null,
55
- suffix: null,
56
- };
57
- this.raw.forEach(name => {
58
- switch (name.type) {
59
- case models_1.Namon.PREFIX:
60
- fullname.prefix = name.namon;
61
- break;
62
- case models_1.Namon.FIRST_NAME:
63
- if (name instanceof models_1.Firstname)
64
- fullname.firstname = new models_1.Firstname(name.namon, ...name.more);
65
- else
66
- fullname.firstname = new models_1.Firstname(name.namon);
67
- break;
68
- case models_1.Namon.LAST_NAME:
69
- if (name instanceof models_1.Lastname)
70
- fullname.lastname = new models_1.Lastname(name.father, name.mother, lastnameFormat);
71
- else
72
- fullname.lastname = new models_1.Lastname(name.namon, null, lastnameFormat);
73
- break;
74
- case models_1.Namon.MIDDLE_NAME:
75
- fullname.middlename.push(name);
76
- break;
77
- case models_1.Namon.SUFFIX:
78
- fullname.suffix = name.namon;
79
- break;
80
- }
81
- });
82
- return fullname;
83
- }
84
- }
85
- exports.default = ArrayNameParser;
86
- //# sourceMappingURL=array-name.parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-name.parser.js","sourceRoot":"","sources":["../../../../src/core/parsers/array-name.parser.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,yCASsB;AACtB,kDAA4D;AAI5D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAqB,eAAe;IAEhC;;;OAGG;IACH,YAAmB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAElC;;OAEG;IACH,KAAK,CAAC,OAA4D;QAC9D,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAC3C,iBAAiB;QACjB,IAAI,CAAC,MAAM;YAAE,IAAI,0BAAkB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzD,+CAA+C;QAC/C,MAAM,QAAQ,GAAa,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAE3D,sCAAsC;QACtC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,UAAU,CAAC,cAA8B;QAE7C,MAAM,QAAQ,GAAa;YACvB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;SACf,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACpB,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACf,KAAK,cAAK,CAAC,MAAM;oBACb,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAe,CAAC;oBACvC,MAAM;gBACV,KAAK,cAAK,CAAC,UAAU;oBACjB,IAAI,IAAI,YAAY,kBAAS;wBACzB,QAAQ,CAAC,SAAS,GAAG,IAAI,kBAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;;wBAE7D,QAAQ,CAAC,SAAS,GAAG,IAAI,kBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,cAAK,CAAC,SAAS;oBAChB,IAAI,IAAI,YAAY,iBAAQ;wBACxB,QAAQ,CAAC,QAAQ,GAAG,IAAI,iBAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;;wBAE1E,QAAQ,CAAC,QAAQ,GAAG,IAAI,iBAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;oBACvE,MAAM;gBACV,KAAK,cAAK,CAAC,WAAW;oBAClB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC/B,MAAM;gBACV,KAAK,cAAK,CAAC,MAAM;oBACb,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAe,CAAC;oBACvC,MAAM;aACb;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AA7DD,kCA6DC"}
@@ -1,47 +0,0 @@
1
- /**
2
- * An array of string parser
3
- *
4
- * Created on March 15, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { Fullname, NameOrder } from '../../models';
8
- import { Parser } from './parser';
9
- /**
10
- * Represents an array string parser
11
- * @class
12
- * @implements {Parser<string[]>}
13
- *
14
- * This parser parses an array of string name following a specific order based
15
- * on the count of elements. It is expected that the array has to be between two
16
- * and five elements. Also, the order of appearance set in the configuration
17
- * influences how this parsing is carried out.
18
- *
19
- * Ordered by first name, the parser works as follows:
20
- * - 2 elements: firstname lastname
21
- * - 3 elements: firstname middlename lastname
22
- * - 4 elements: prefix firstname middlename lastname
23
- * - 5 elements: prefix firstname middlename lastname suffix
24
- *
25
- * Ordered by last name, the parser works as follows:
26
- * - 2 elements: lastname firstname
27
- * - 3 elements: lastname firstname middlename
28
- * - 4 elements: prefix lastname firstname middlename
29
- * - 5 elements: prefix lastname firstname middlename suffix
30
- *
31
- */
32
- export default class ArrayStringParser implements Parser<string[]> {
33
- raw: string[];
34
- /**
35
- * Create a parser ready to parse the raw data
36
- * @param {string[]} raw data
37
- */
38
- constructor(raw: string[]);
39
- /**
40
- * Parses the raw data into a full name
41
- */
42
- parse(options: {
43
- orderedBy: NameOrder;
44
- bypass: boolean;
45
- }): Fullname;
46
- private distribute;
47
- }
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * An array of string parser
5
- *
6
- * Created on March 15, 2020
7
- * @author Ralph Florent <ralflornt@gmail.com>
8
- */
9
- const models_1 = require("../../models");
10
- const validators_1 = require("../../validators");
11
- const core_1 = require("../../core");
12
- /**
13
- * Represents an array string parser
14
- * @class
15
- * @implements {Parser<string[]>}
16
- *
17
- * This parser parses an array of string name following a specific order based
18
- * on the count of elements. It is expected that the array has to be between two
19
- * and five elements. Also, the order of appearance set in the configuration
20
- * influences how this parsing is carried out.
21
- *
22
- * Ordered by first name, the parser works as follows:
23
- * - 2 elements: firstname lastname
24
- * - 3 elements: firstname middlename lastname
25
- * - 4 elements: prefix firstname middlename lastname
26
- * - 5 elements: prefix firstname middlename lastname suffix
27
- *
28
- * Ordered by last name, the parser works as follows:
29
- * - 2 elements: lastname firstname
30
- * - 3 elements: lastname firstname middlename
31
- * - 4 elements: prefix lastname firstname middlename
32
- * - 5 elements: prefix lastname firstname middlename suffix
33
- *
34
- */
35
- class ArrayStringParser {
36
- /**
37
- * Create a parser ready to parse the raw data
38
- * @param {string[]} raw data
39
- */
40
- constructor(raw) {
41
- this.raw = raw;
42
- }
43
- /**
44
- * Parses the raw data into a full name
45
- */
46
- parse(options) {
47
- // given this setting
48
- const { orderedBy, bypass } = options;
49
- // validate first
50
- const raw = this.raw.map(n => n.trim()); // cleanup
51
- const index = core_1.organizeNameIndex(orderedBy, raw.length);
52
- if (!bypass)
53
- new validators_1.ArrayStringValidator(index).validate(raw);
54
- // then distribute all the elements accordingly
55
- const fullname = this.distribute(raw, index);
56
- // finally return high quality of data
57
- return fullname;
58
- }
59
- distribute(raw, index) {
60
- const fullname = {
61
- firstname: null,
62
- lastname: null,
63
- middlename: [],
64
- prefix: null,
65
- suffix: null,
66
- };
67
- switch (raw.length) {
68
- case 2: // first name + last name
69
- fullname.firstname = new models_1.Firstname(raw[index.firstname]);
70
- fullname.lastname = new models_1.Lastname(raw[index.lastname]);
71
- break;
72
- case 3: // first name + middle name + last name
73
- fullname.firstname = new models_1.Firstname(raw[index.firstname]);
74
- fullname.middlename.push(new models_1.Name(raw[index.middlename], models_1.Namon.MIDDLE_NAME));
75
- fullname.lastname = new models_1.Lastname(raw[index.lastname]);
76
- break;
77
- case 4: // prefix + first name + middle name + last name
78
- fullname.prefix = raw[index.prefix];
79
- fullname.firstname = new models_1.Firstname(raw[index.firstname]);
80
- fullname.middlename.push(new models_1.Name(raw[index.middlename], models_1.Namon.MIDDLE_NAME));
81
- fullname.lastname = new models_1.Lastname(raw[index.lastname]);
82
- break;
83
- case 5: // prefix + first name + middle name + last name + suffix
84
- fullname.prefix = raw[index.prefix];
85
- fullname.firstname = new models_1.Firstname(raw[index.firstname]);
86
- fullname.middlename.push(new models_1.Name(raw[index.middlename], models_1.Namon.MIDDLE_NAME));
87
- fullname.lastname = new models_1.Lastname(raw[index.lastname]);
88
- fullname.suffix = raw[index.suffix];
89
- break;
90
- }
91
- return fullname;
92
- }
93
- }
94
- exports.default = ArrayStringParser;
95
- //# sourceMappingURL=array-string.parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-string.parser.js","sourceRoot":"","sources":["../../../../src/core/parsers/array-string.parser.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Export the local parsers
3
- *
4
- * Created on March 03, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- export * from './parser';
8
- export { default as ArrayNameParser } from './array-name.parser';
9
- export { default as ArrayStringParser } from './array-string.parser';
10
- export { default as NamaParser } from './nama.parser';
11
- export { default as StringParser } from './string.parser';
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var array_name_parser_1 = require("./array-name.parser");
4
- exports.ArrayNameParser = array_name_parser_1.default;
5
- var array_string_parser_1 = require("./array-string.parser");
6
- exports.ArrayStringParser = array_string_parser_1.default;
7
- var nama_parser_1 = require("./nama.parser");
8
- exports.NamaParser = nama_parser_1.default;
9
- var string_parser_1 = require("./string.parser");
10
- exports.StringParser = string_parser_1.default;
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/parsers/index.ts"],"names":[],"mappings":";;AAOA,yDAAiE;AAAxD,8CAAA,OAAO,CAAmB;AACnC,6DAAqE;AAA5D,kDAAA,OAAO,CAAqB;AACrC,6CAAsD;AAA7C,mCAAA,OAAO,CAAc;AAC9B,iDAA0D;AAAjD,uCAAA,OAAO,CAAgB"}
@@ -1,33 +0,0 @@
1
- /**
2
- * A `Nama` (JSON signature) parser
3
- *
4
- * Created on March 15, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { Nama, Fullname } from '../../models/index';
8
- import { Parser } from './parser';
9
- /**
10
- * Represents a `Nama` parser
11
- * @class
12
- * @implements {Parser<Nama>}
13
- *
14
- * This parser parses a JSON signature of the name parts provided as string
15
- * values. This is to facilitate a developer's life that holds users' info in a
16
- * JSON format. In other words, the developer only needs to provide similar info
17
- * and the rest will follow.
18
- */
19
- export default class NamaParser implements Parser<Nama> {
20
- raw: Nama;
21
- /**
22
- * Create a parser ready to parse the raw data
23
- * @param {Nama} raw data as JSON object
24
- */
25
- constructor(raw: Nama);
26
- /**
27
- * Parses the raw data into a full name
28
- */
29
- parse(options: {
30
- bypass: boolean;
31
- }): Fullname;
32
- private distribute;
33
- }
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * A `Nama` (JSON signature) parser
5
- *
6
- * Created on March 15, 2020
7
- * @author Ralph Florent <ralflornt@gmail.com>
8
- */
9
- const index_1 = require("../../models/index");
10
- const index_2 = require("../../validators/index");
11
- /**
12
- * Represents a `Nama` parser
13
- * @class
14
- * @implements {Parser<Nama>}
15
- *
16
- * This parser parses a JSON signature of the name parts provided as string
17
- * values. This is to facilitate a developer's life that holds users' info in a
18
- * JSON format. In other words, the developer only needs to provide similar info
19
- * and the rest will follow.
20
- */
21
- class NamaParser {
22
- /**
23
- * Create a parser ready to parse the raw data
24
- * @param {Nama} raw data as JSON object
25
- */
26
- constructor(raw) {
27
- this.raw = raw;
28
- }
29
- /**
30
- * Parses the raw data into a full name
31
- */
32
- parse(options) {
33
- // validate first
34
- if (!options.bypass)
35
- new index_2.NamaValidator().validate(this.raw);
36
- // then distribute all the elements accordingly
37
- const fullname = this.distribute();
38
- // finally return high quality of data
39
- return fullname;
40
- }
41
- distribute() {
42
- const fullname = {
43
- firstname: null,
44
- lastname: null,
45
- middlename: [],
46
- prefix: null,
47
- suffix: null,
48
- };
49
- for (const entry of Object.entries(this.raw)) {
50
- const key = entry[0];
51
- const value = entry[1];
52
- switch (key) {
53
- case index_1.Namon.FIRST_NAME:
54
- fullname.firstname = new index_1.Firstname(value);
55
- break;
56
- case index_1.Namon.LAST_NAME:
57
- fullname.lastname = new index_1.Lastname(value);
58
- break;
59
- case index_1.Namon.MIDDLE_NAME:
60
- fullname.middlename.push(new index_1.Name(value, index_1.Namon.MIDDLE_NAME));
61
- break;
62
- case index_1.Namon.PREFIX:
63
- fullname.prefix = value;
64
- break;
65
- case index_1.Namon.SUFFIX:
66
- fullname.suffix = value;
67
- break;
68
- }
69
- }
70
- return fullname;
71
- }
72
- }
73
- exports.default = NamaParser;
74
- //# sourceMappingURL=nama.parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nama.parser.js","sourceRoot":"","sources":["../../../../src/core/parsers/nama.parser.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,8CAAsG;AACtG,kDAAuD;AAIvD;;;;;;;;;GASG;AACH,MAAqB,UAAU;IAC3B;;;OAGG;IACH,YAAmB,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;IAAI,CAAC;IAEjC;;OAEG;IACH,KAAK,CAAC,OAA4B;QAE9B,iBAAiB;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,IAAI,qBAAa,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5D,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEnC,sCAAsC;QACtC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,UAAU;QACd,MAAM,QAAQ,GAAa;YACvB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;SACf,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAe,CAAC;YACnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;YACjC,QAAQ,GAAG,EAAE;gBACT,KAAK,aAAK,CAAC,UAAU;oBACjB,QAAQ,CAAC,SAAS,GAAG,IAAI,iBAAS,CAAC,KAAK,CAAC,CAAC;oBAC1C,MAAM;gBACV,KAAK,aAAK,CAAC,SAAS;oBAChB,QAAQ,CAAC,QAAQ,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;oBACxC,MAAM;gBACV,KAAK,aAAK,CAAC,WAAW;oBAClB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAI,CAAC,KAAK,EAAE,aAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC7D,MAAM;gBACV,KAAK,aAAK,CAAC,MAAM;oBACb,QAAQ,CAAC,MAAM,GAAG,KAAe,CAAC;oBAClC,MAAM;gBACV,KAAK,aAAK,CAAC,MAAM;oBACb,QAAQ,CAAC,MAAM,GAAG,KAAe,CAAC;oBAClC,MAAM;aACb;SACJ;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AAtDD,6BAsDC"}
@@ -1,28 +0,0 @@
1
- /**
2
- * A `Parser` contract
3
- *
4
- * Created on March 15, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { Fullname, Separator, NameOrder, LastnameFormat } from '../../models/index';
8
- /**
9
- * Interface for JSON signature that represents a generic parser
10
- * @interface
11
- */
12
- export interface Parser<T> {
13
- /**
14
- * raw data to be parsed
15
- * @type {T}
16
- */
17
- raw: T;
18
- /**
19
- * Parses the raw data into a full name
20
- * @param {Config} [options]
21
- */
22
- parse(options?: Partial<{
23
- orderedBy: NameOrder;
24
- separator: Separator;
25
- bypass: boolean;
26
- lastnameFormat: LastnameFormat;
27
- }>): Fullname;
28
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/core/parsers/parser.ts"],"names":[],"mappings":""}