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.
- package/dist/lib/config.js +112 -0
- package/dist/lib/constants.js +30 -0
- package/dist/lib/error.js +92 -0
- package/dist/lib/full-name.js +115 -0
- package/dist/lib/index.js +27 -12
- package/dist/lib/name.js +230 -0
- package/dist/lib/namefully.js +368 -681
- package/dist/lib/parser.js +138 -0
- package/dist/lib/types.js +107 -0
- package/dist/lib/utils.js +92 -0
- package/dist/lib/validator.js +301 -0
- package/dist/types/config.d.ts +97 -0
- package/dist/types/constants.d.ts +4 -0
- package/dist/types/error.d.ts +158 -0
- package/dist/types/full-name.d.ts +54 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/name.d.ts +126 -0
- package/dist/types/namefully.d.ts +313 -0
- package/dist/types/parser.d.ts +41 -0
- package/dist/types/types.d.ts +127 -0
- package/dist/types/utils.d.ts +53 -0
- package/dist/types/validator.d.ts +57 -0
- package/dist/umd/namefully.js +1503 -2900
- package/dist/umd/namefully.min.js +1 -3
- package/package.json +28 -38
- package/readme.md +138 -167
- package/changelog.md +0 -134
- package/dist/lib/core/constants.d.ts +0 -48
- package/dist/lib/core/constants.js +0 -101
- package/dist/lib/core/constants.js.map +0 -1
- package/dist/lib/core/core.d.ts +0 -17
- package/dist/lib/core/core.js +0 -24
- package/dist/lib/core/core.js.map +0 -1
- package/dist/lib/core/index.d.ts +0 -9
- package/dist/lib/core/index.js +0 -13
- package/dist/lib/core/index.js.map +0 -1
- package/dist/lib/core/parsers/array-name.parser.d.ts +0 -41
- package/dist/lib/core/parsers/array-name.parser.js +0 -86
- package/dist/lib/core/parsers/array-name.parser.js.map +0 -1
- package/dist/lib/core/parsers/array-string.parser.d.ts +0 -47
- package/dist/lib/core/parsers/array-string.parser.js +0 -95
- package/dist/lib/core/parsers/array-string.parser.js.map +0 -1
- package/dist/lib/core/parsers/index.d.ts +0 -11
- package/dist/lib/core/parsers/index.js +0 -11
- package/dist/lib/core/parsers/index.js.map +0 -1
- package/dist/lib/core/parsers/nama.parser.d.ts +0 -33
- package/dist/lib/core/parsers/nama.parser.js +0 -74
- package/dist/lib/core/parsers/nama.parser.js.map +0 -1
- package/dist/lib/core/parsers/parser.d.ts +0 -28
- package/dist/lib/core/parsers/parser.js +0 -3
- package/dist/lib/core/parsers/parser.js.map +0 -1
- package/dist/lib/core/parsers/string.parser.d.ts +0 -60
- package/dist/lib/core/parsers/string.parser.js +0 -62
- package/dist/lib/core/parsers/string.parser.js.map +0 -1
- package/dist/lib/core/utils.d.ts +0 -52
- package/dist/lib/core/utils.js +0 -178
- package/dist/lib/core/utils.js.map +0 -1
- package/dist/lib/index.d.ts +0 -10
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/models/enums.d.ts +0 -106
- package/dist/lib/models/enums.js +0 -114
- package/dist/lib/models/enums.js.map +0 -1
- package/dist/lib/models/firstname.d.ts +0 -77
- package/dist/lib/models/firstname.js +0 -131
- package/dist/lib/models/firstname.js.map +0 -1
- package/dist/lib/models/fullname.d.ts +0 -73
- package/dist/lib/models/fullname.js +0 -99
- package/dist/lib/models/fullname.js.map +0 -1
- package/dist/lib/models/index.d.ts +0 -13
- package/dist/lib/models/index.js +0 -16
- package/dist/lib/models/index.js.map +0 -1
- package/dist/lib/models/lastname.d.ts +0 -80
- package/dist/lib/models/lastname.js +0 -157
- package/dist/lib/models/lastname.js.map +0 -1
- package/dist/lib/models/misc.d.ts +0 -108
- package/dist/lib/models/misc.js +0 -3
- package/dist/lib/models/misc.js.map +0 -1
- package/dist/lib/models/name.d.ts +0 -76
- package/dist/lib/models/name.js +0 -115
- package/dist/lib/models/name.js.map +0 -1
- package/dist/lib/models/summary.d.ts +0 -26
- package/dist/lib/models/summary.js +0 -61
- package/dist/lib/models/summary.js.map +0 -1
- package/dist/lib/namefully.d.ts +0 -302
- package/dist/lib/namefully.js.map +0 -1
- package/dist/lib/validators/array-name.validator.d.ts +0 -25
- package/dist/lib/validators/array-name.validator.js +0 -75
- package/dist/lib/validators/array-name.validator.js.map +0 -1
- package/dist/lib/validators/array-string.validator.d.ts +0 -43
- package/dist/lib/validators/array-string.validator.js +0 -76
- package/dist/lib/validators/array-string.validator.js.map +0 -1
- package/dist/lib/validators/common/validation-error.d.ts +0 -19
- package/dist/lib/validators/common/validation-error.js +0 -26
- package/dist/lib/validators/common/validation-error.js.map +0 -1
- package/dist/lib/validators/common/validation-rule.d.ts +0 -72
- package/dist/lib/validators/common/validation-rule.js +0 -76
- package/dist/lib/validators/common/validation-rule.js.map +0 -1
- package/dist/lib/validators/common/validation-type.d.ts +0 -24
- package/dist/lib/validators/common/validation-type.js +0 -28
- package/dist/lib/validators/common/validation-type.js.map +0 -1
- package/dist/lib/validators/firstname.validator.d.ts +0 -20
- package/dist/lib/validators/firstname.validator.js +0 -29
- package/dist/lib/validators/firstname.validator.js.map +0 -1
- package/dist/lib/validators/fullname.validator.d.ts +0 -21
- package/dist/lib/validators/fullname.validator.js +0 -38
- package/dist/lib/validators/fullname.validator.js.map +0 -1
- package/dist/lib/validators/index.d.ts +0 -21
- package/dist/lib/validators/index.js +0 -35
- package/dist/lib/validators/index.js.map +0 -1
- package/dist/lib/validators/lastname.validator.d.ts +0 -20
- package/dist/lib/validators/lastname.validator.js +0 -29
- package/dist/lib/validators/lastname.validator.js.map +0 -1
- package/dist/lib/validators/middlename.validator.d.ts +0 -20
- package/dist/lib/validators/middlename.validator.js +0 -38
- package/dist/lib/validators/middlename.validator.js.map +0 -1
- package/dist/lib/validators/nama.validator.d.ts +0 -21
- package/dist/lib/validators/nama.validator.js +0 -44
- package/dist/lib/validators/nama.validator.js.map +0 -1
- package/dist/lib/validators/namon.validator.d.ts +0 -20
- package/dist/lib/validators/namon.validator.js +0 -29
- package/dist/lib/validators/namon.validator.js.map +0 -1
- package/dist/lib/validators/prefix.validator.d.ts +0 -14
- package/dist/lib/validators/prefix.validator.js +0 -31
- package/dist/lib/validators/prefix.validator.js.map +0 -1
- package/dist/lib/validators/string-name.validator.d.ts +0 -20
- package/dist/lib/validators/string-name.validator.js +0 -29
- package/dist/lib/validators/string-name.validator.js.map +0 -1
- package/dist/lib/validators/suffix.validator.d.ts +0 -14
- package/dist/lib/validators/suffix.validator.js +0 -31
- package/dist/lib/validators/suffix.validator.js.map +0 -1
- package/dist/lib/validators/validator.d.ts +0 -13
- package/dist/lib/validators/validator.js +0 -9
- package/dist/lib/validators/validator.js.map +0 -1
- package/dist/umd/namefully.js.map +0 -1
- package/dist/umd/namefully.min.js.LICENSE.txt +0 -29
- package/dist/umd/namefully.min.js.map +0 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
+
};
|
|
13
|
+
var _Config_instances, _a, _Config_name, _Config_orderedBy, _Config_separator, _Config_title, _Config_ending, _Config_bypass, _Config_surname, _Config_genNewName;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.Config = void 0;
|
|
16
|
+
const types_1 = require("./types");
|
|
17
|
+
const defaultName = 'default';
|
|
18
|
+
const copyAlias = '_copy';
|
|
19
|
+
class Config {
|
|
20
|
+
get orderedBy() {
|
|
21
|
+
return __classPrivateFieldGet(this, _Config_orderedBy, "f");
|
|
22
|
+
}
|
|
23
|
+
get separator() {
|
|
24
|
+
return __classPrivateFieldGet(this, _Config_separator, "f");
|
|
25
|
+
}
|
|
26
|
+
get title() {
|
|
27
|
+
return __classPrivateFieldGet(this, _Config_title, "f");
|
|
28
|
+
}
|
|
29
|
+
get ending() {
|
|
30
|
+
return __classPrivateFieldGet(this, _Config_ending, "f");
|
|
31
|
+
}
|
|
32
|
+
get bypass() {
|
|
33
|
+
return __classPrivateFieldGet(this, _Config_bypass, "f");
|
|
34
|
+
}
|
|
35
|
+
get surname() {
|
|
36
|
+
return __classPrivateFieldGet(this, _Config_surname, "f");
|
|
37
|
+
}
|
|
38
|
+
get name() {
|
|
39
|
+
return __classPrivateFieldGet(this, _Config_name, "f");
|
|
40
|
+
}
|
|
41
|
+
constructor(name, orderedBy = types_1.NameOrder.FIRST_NAME, separator = types_1.Separator.SPACE, title = types_1.Title.UK, ending = false, bypass = true, surname = types_1.Surname.FATHER) {
|
|
42
|
+
_Config_instances.add(this);
|
|
43
|
+
_Config_name.set(this, void 0);
|
|
44
|
+
_Config_orderedBy.set(this, void 0);
|
|
45
|
+
_Config_separator.set(this, void 0);
|
|
46
|
+
_Config_title.set(this, void 0);
|
|
47
|
+
_Config_ending.set(this, void 0);
|
|
48
|
+
_Config_bypass.set(this, void 0);
|
|
49
|
+
_Config_surname.set(this, void 0);
|
|
50
|
+
__classPrivateFieldSet(this, _Config_name, name, "f");
|
|
51
|
+
__classPrivateFieldSet(this, _Config_orderedBy, orderedBy, "f");
|
|
52
|
+
__classPrivateFieldSet(this, _Config_separator, separator, "f");
|
|
53
|
+
__classPrivateFieldSet(this, _Config_title, title, "f");
|
|
54
|
+
__classPrivateFieldSet(this, _Config_ending, ending, "f");
|
|
55
|
+
__classPrivateFieldSet(this, _Config_bypass, bypass, "f");
|
|
56
|
+
__classPrivateFieldSet(this, _Config_surname, surname, "f");
|
|
57
|
+
}
|
|
58
|
+
static create(name = defaultName) {
|
|
59
|
+
if (!_a.cache.has(name))
|
|
60
|
+
_a.cache.set(name, new this(name));
|
|
61
|
+
return _a.cache.get(name);
|
|
62
|
+
}
|
|
63
|
+
static merge(other) {
|
|
64
|
+
var _b, _c, _d, _e, _f, _g;
|
|
65
|
+
if (!other) {
|
|
66
|
+
return _a.create();
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const config = _a.create(other.name);
|
|
70
|
+
__classPrivateFieldSet(config, _Config_orderedBy, (_b = other.orderedBy) !== null && _b !== void 0 ? _b : config.orderedBy, "f");
|
|
71
|
+
__classPrivateFieldSet(config, _Config_separator, (_c = other.separator) !== null && _c !== void 0 ? _c : config.separator, "f");
|
|
72
|
+
__classPrivateFieldSet(config, _Config_title, (_d = other.title) !== null && _d !== void 0 ? _d : config.title, "f");
|
|
73
|
+
__classPrivateFieldSet(config, _Config_ending, (_e = other.ending) !== null && _e !== void 0 ? _e : config.ending, "f");
|
|
74
|
+
__classPrivateFieldSet(config, _Config_bypass, (_f = other.bypass) !== null && _f !== void 0 ? _f : config.bypass, "f");
|
|
75
|
+
__classPrivateFieldSet(config, _Config_surname, (_g = other.surname) !== null && _g !== void 0 ? _g : config.surname, "f");
|
|
76
|
+
return config;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
copyWith(options = {}) {
|
|
80
|
+
const { name, orderedBy, separator, title, ending, bypass, surname } = options;
|
|
81
|
+
const config = _a.create(__classPrivateFieldGet(this, _Config_instances, "m", _Config_genNewName).call(this, name !== null && name !== void 0 ? name : this.name + copyAlias));
|
|
82
|
+
__classPrivateFieldSet(config, _Config_orderedBy, orderedBy !== null && orderedBy !== void 0 ? orderedBy : this.orderedBy, "f");
|
|
83
|
+
__classPrivateFieldSet(config, _Config_separator, separator !== null && separator !== void 0 ? separator : this.separator, "f");
|
|
84
|
+
__classPrivateFieldSet(config, _Config_title, title !== null && title !== void 0 ? title : this.title, "f");
|
|
85
|
+
__classPrivateFieldSet(config, _Config_ending, ending !== null && ending !== void 0 ? ending : this.ending, "f");
|
|
86
|
+
__classPrivateFieldSet(config, _Config_bypass, bypass !== null && bypass !== void 0 ? bypass : this.bypass, "f");
|
|
87
|
+
__classPrivateFieldSet(config, _Config_surname, surname !== null && surname !== void 0 ? surname : this.surname, "f");
|
|
88
|
+
return config;
|
|
89
|
+
}
|
|
90
|
+
clone() {
|
|
91
|
+
return this.copyWith();
|
|
92
|
+
}
|
|
93
|
+
reset() {
|
|
94
|
+
__classPrivateFieldSet(this, _Config_orderedBy, types_1.NameOrder.FIRST_NAME, "f");
|
|
95
|
+
__classPrivateFieldSet(this, _Config_separator, types_1.Separator.SPACE, "f");
|
|
96
|
+
__classPrivateFieldSet(this, _Config_title, types_1.Title.UK, "f");
|
|
97
|
+
__classPrivateFieldSet(this, _Config_ending, false, "f");
|
|
98
|
+
__classPrivateFieldSet(this, _Config_bypass, true, "f");
|
|
99
|
+
__classPrivateFieldSet(this, _Config_surname, types_1.Surname.FATHER, "f");
|
|
100
|
+
_a.cache.set(this.name, this);
|
|
101
|
+
}
|
|
102
|
+
updateOrder(order) {
|
|
103
|
+
if (order && order !== __classPrivateFieldGet(this, _Config_orderedBy, "f")) {
|
|
104
|
+
__classPrivateFieldSet(_a.cache.get(this.name), _Config_orderedBy, order, "f");
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.Config = Config;
|
|
109
|
+
_a = Config, _Config_name = new WeakMap(), _Config_orderedBy = new WeakMap(), _Config_separator = new WeakMap(), _Config_title = new WeakMap(), _Config_ending = new WeakMap(), _Config_bypass = new WeakMap(), _Config_surname = new WeakMap(), _Config_instances = new WeakSet(), _Config_genNewName = function _Config_genNewName(name) {
|
|
110
|
+
return name === this.name || _a.cache.has(name) ? __classPrivateFieldGet(this, _Config_instances, "m", _Config_genNewName).call(this, name + copyAlias) : name;
|
|
111
|
+
};
|
|
112
|
+
Config.cache = new Map();
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ALLOWED_TOKENS = exports.MAX_NUMBER_OF_NAME_PARTS = exports.MIN_NUMBER_OF_NAME_PARTS = exports.VERSION = void 0;
|
|
4
|
+
exports.VERSION = '1.2.1';
|
|
5
|
+
exports.MIN_NUMBER_OF_NAME_PARTS = 2;
|
|
6
|
+
exports.MAX_NUMBER_OF_NAME_PARTS = 5;
|
|
7
|
+
exports.ALLOWED_TOKENS = [
|
|
8
|
+
'.',
|
|
9
|
+
',',
|
|
10
|
+
' ',
|
|
11
|
+
'-',
|
|
12
|
+
'_',
|
|
13
|
+
'b',
|
|
14
|
+
'B',
|
|
15
|
+
'f',
|
|
16
|
+
'F',
|
|
17
|
+
'l',
|
|
18
|
+
'L',
|
|
19
|
+
'm',
|
|
20
|
+
'M',
|
|
21
|
+
'n',
|
|
22
|
+
'N',
|
|
23
|
+
'o',
|
|
24
|
+
'O',
|
|
25
|
+
'p',
|
|
26
|
+
'P',
|
|
27
|
+
's',
|
|
28
|
+
'S',
|
|
29
|
+
'$',
|
|
30
|
+
];
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnknownError = exports.NotAllowedError = exports.ValidationError = exports.InputError = exports.NameError = exports.NameErrorType = void 0;
|
|
4
|
+
const utils_1 = require("./utils");
|
|
5
|
+
var NameErrorType;
|
|
6
|
+
(function (NameErrorType) {
|
|
7
|
+
NameErrorType[NameErrorType["INPUT"] = 0] = "INPUT";
|
|
8
|
+
NameErrorType[NameErrorType["VALIDATION"] = 1] = "VALIDATION";
|
|
9
|
+
NameErrorType[NameErrorType["NOT_ALLOWED"] = 2] = "NOT_ALLOWED";
|
|
10
|
+
NameErrorType[NameErrorType["UNKNOWN"] = 3] = "UNKNOWN";
|
|
11
|
+
})(NameErrorType || (exports.NameErrorType = NameErrorType = {}));
|
|
12
|
+
class NameError extends Error {
|
|
13
|
+
constructor(source, message, type = NameErrorType.UNKNOWN) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.source = source;
|
|
16
|
+
this.type = type;
|
|
17
|
+
this.name = 'NameError';
|
|
18
|
+
}
|
|
19
|
+
get sourceAsString() {
|
|
20
|
+
let input = '';
|
|
21
|
+
if (!this.source)
|
|
22
|
+
input = '<undefined>';
|
|
23
|
+
if (typeof this.source === 'string')
|
|
24
|
+
input = this.source;
|
|
25
|
+
if ((0, utils_1.isNameArray)(this.source))
|
|
26
|
+
input = this.source.map((n) => n.toString()).join(' ');
|
|
27
|
+
if ((0, utils_1.isStringArray)(this.source))
|
|
28
|
+
input = this.source.join(' ');
|
|
29
|
+
return input;
|
|
30
|
+
}
|
|
31
|
+
get hasMessage() {
|
|
32
|
+
return this.message && this.message.trim().length > 0;
|
|
33
|
+
}
|
|
34
|
+
toString() {
|
|
35
|
+
let report = `${this.name} (${this.sourceAsString})`;
|
|
36
|
+
if (this.hasMessage)
|
|
37
|
+
report = `${report}: ${this.message}`;
|
|
38
|
+
return report;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.NameError = NameError;
|
|
42
|
+
class InputError extends NameError {
|
|
43
|
+
constructor(error) {
|
|
44
|
+
super(error.source, error.message, NameErrorType.INPUT);
|
|
45
|
+
this.name = 'InputError';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.InputError = InputError;
|
|
49
|
+
class ValidationError extends NameError {
|
|
50
|
+
constructor(error) {
|
|
51
|
+
super(error.source, error.message, NameErrorType.VALIDATION);
|
|
52
|
+
this.nameType = error.nameType;
|
|
53
|
+
this.name = 'ValidationError';
|
|
54
|
+
}
|
|
55
|
+
toString() {
|
|
56
|
+
let report = `${this.name} (${this.nameType}='${this.sourceAsString}')`;
|
|
57
|
+
if (this.hasMessage)
|
|
58
|
+
report = `${report}: ${this.message}`;
|
|
59
|
+
return report;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.ValidationError = ValidationError;
|
|
63
|
+
class NotAllowedError extends NameError {
|
|
64
|
+
constructor(error) {
|
|
65
|
+
super(error.source, error.message, NameErrorType.NOT_ALLOWED);
|
|
66
|
+
this.operation = error.operation;
|
|
67
|
+
this.name = 'NotAllowedError';
|
|
68
|
+
}
|
|
69
|
+
toString() {
|
|
70
|
+
let report = `${this.name} (${this.sourceAsString})`;
|
|
71
|
+
if (this.operation && this.operation.trim().length > 0)
|
|
72
|
+
report = `${report} - ${this.operation}`;
|
|
73
|
+
if (this.hasMessage)
|
|
74
|
+
report = `${report}: ${this.message}`;
|
|
75
|
+
return report;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.NotAllowedError = NotAllowedError;
|
|
79
|
+
class UnknownError extends NameError {
|
|
80
|
+
constructor(error) {
|
|
81
|
+
super(error.source, error.message, NameErrorType.UNKNOWN);
|
|
82
|
+
this.origin = error.error;
|
|
83
|
+
this.name = 'UnknownError';
|
|
84
|
+
}
|
|
85
|
+
toString() {
|
|
86
|
+
let report = super.toString();
|
|
87
|
+
if (this.origin)
|
|
88
|
+
report += `\n${this.origin.toString()}`;
|
|
89
|
+
return report;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.UnknownError = UnknownError;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _FullName_prefix, _FullName_firstName, _FullName_middleName, _FullName_lastName, _FullName_suffix, _FullName_config;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.FullName = void 0;
|
|
16
|
+
const config_1 = require("./config");
|
|
17
|
+
const error_1 = require("./error");
|
|
18
|
+
const name_1 = require("./name");
|
|
19
|
+
const types_1 = require("./types");
|
|
20
|
+
const validator_1 = require("./validator");
|
|
21
|
+
class FullName {
|
|
22
|
+
constructor(options) {
|
|
23
|
+
_FullName_prefix.set(this, void 0);
|
|
24
|
+
_FullName_firstName.set(this, void 0);
|
|
25
|
+
_FullName_middleName.set(this, []);
|
|
26
|
+
_FullName_lastName.set(this, void 0);
|
|
27
|
+
_FullName_suffix.set(this, void 0);
|
|
28
|
+
_FullName_config.set(this, void 0);
|
|
29
|
+
__classPrivateFieldSet(this, _FullName_config, config_1.Config.merge(options), "f");
|
|
30
|
+
}
|
|
31
|
+
get config() {
|
|
32
|
+
return __classPrivateFieldGet(this, _FullName_config, "f");
|
|
33
|
+
}
|
|
34
|
+
get prefix() {
|
|
35
|
+
return __classPrivateFieldGet(this, _FullName_prefix, "f");
|
|
36
|
+
}
|
|
37
|
+
get firstName() {
|
|
38
|
+
return __classPrivateFieldGet(this, _FullName_firstName, "f");
|
|
39
|
+
}
|
|
40
|
+
get lastName() {
|
|
41
|
+
return __classPrivateFieldGet(this, _FullName_lastName, "f");
|
|
42
|
+
}
|
|
43
|
+
get middleName() {
|
|
44
|
+
return __classPrivateFieldGet(this, _FullName_middleName, "f");
|
|
45
|
+
}
|
|
46
|
+
get suffix() {
|
|
47
|
+
return __classPrivateFieldGet(this, _FullName_suffix, "f");
|
|
48
|
+
}
|
|
49
|
+
static parse(json, config) {
|
|
50
|
+
try {
|
|
51
|
+
const fullName = new FullName(config);
|
|
52
|
+
fullName.setPrefix(json.prefix);
|
|
53
|
+
fullName.setFirstName(json.firstName);
|
|
54
|
+
fullName.setMiddleName(json.middleName);
|
|
55
|
+
fullName.setLastName(json.lastName);
|
|
56
|
+
fullName.setSuffix(json.suffix);
|
|
57
|
+
return fullName;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
if (error instanceof error_1.NameError)
|
|
61
|
+
throw error;
|
|
62
|
+
throw new error_1.UnknownError({
|
|
63
|
+
source: Object.values(json).join(' '),
|
|
64
|
+
message: 'could not parse JSON content',
|
|
65
|
+
error,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
setPrefix(name) {
|
|
70
|
+
if (!name)
|
|
71
|
+
return this;
|
|
72
|
+
if (!__classPrivateFieldGet(this, _FullName_config, "f").bypass)
|
|
73
|
+
validator_1.Validators.prefix.validate(name);
|
|
74
|
+
const prefix = name instanceof name_1.Name ? name.value : name;
|
|
75
|
+
__classPrivateFieldSet(this, _FullName_prefix, name_1.Name.prefix(__classPrivateFieldGet(this, _FullName_config, "f").title === types_1.Title.US ? `${prefix}.` : prefix), "f");
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
setFirstName(name) {
|
|
79
|
+
if (!__classPrivateFieldGet(this, _FullName_config, "f").bypass)
|
|
80
|
+
validator_1.Validators.firstName.validate(name);
|
|
81
|
+
__classPrivateFieldSet(this, _FullName_firstName, name instanceof name_1.FirstName ? name : new name_1.FirstName(name), "f");
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
setLastName(name) {
|
|
85
|
+
if (!__classPrivateFieldGet(this, _FullName_config, "f").bypass)
|
|
86
|
+
validator_1.Validators.lastName.validate(name);
|
|
87
|
+
__classPrivateFieldSet(this, _FullName_lastName, name instanceof name_1.LastName ? name : new name_1.LastName(name), "f");
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
setMiddleName(names) {
|
|
91
|
+
if (!Array.isArray(names))
|
|
92
|
+
return this;
|
|
93
|
+
if (!__classPrivateFieldGet(this, _FullName_config, "f").bypass)
|
|
94
|
+
validator_1.Validators.middleName.validate(names);
|
|
95
|
+
__classPrivateFieldSet(this, _FullName_middleName, names.map((name) => (name instanceof name_1.Name ? name : name_1.Name.middle(name))), "f");
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
setSuffix(name) {
|
|
99
|
+
if (!name)
|
|
100
|
+
return this;
|
|
101
|
+
if (!__classPrivateFieldGet(this, _FullName_config, "f").bypass)
|
|
102
|
+
validator_1.Validators.suffix.validate(name);
|
|
103
|
+
__classPrivateFieldSet(this, _FullName_suffix, name_1.Name.suffix(name instanceof name_1.Name ? name.value : name), "f");
|
|
104
|
+
return this;
|
|
105
|
+
}
|
|
106
|
+
has(namon) {
|
|
107
|
+
if (namon.equal(types_1.Namon.PREFIX))
|
|
108
|
+
return !!__classPrivateFieldGet(this, _FullName_prefix, "f");
|
|
109
|
+
if (namon.equal(types_1.Namon.SUFFIX))
|
|
110
|
+
return !!__classPrivateFieldGet(this, _FullName_suffix, "f");
|
|
111
|
+
return namon.equal(types_1.Namon.MIDDLE_NAME) ? __classPrivateFieldGet(this, _FullName_middleName, "f").length > 0 : true;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.FullName = FullName;
|
|
115
|
+
_FullName_prefix = new WeakMap(), _FullName_firstName = new WeakMap(), _FullName_middleName = new WeakMap(), _FullName_lastName = new WeakMap(), _FullName_suffix = new WeakMap(), _FullName_config = new WeakMap();
|
package/dist/lib/index.js
CHANGED
|
@@ -1,14 +1,29 @@
|
|
|
1
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
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
exports.NameIndex = exports.Parser = exports.version = void 0;
|
|
18
|
+
__exportStar(require("./config"), exports);
|
|
19
|
+
var constants_1 = require("./constants");
|
|
20
|
+
Object.defineProperty(exports, "version", { enumerable: true, get: function () { return constants_1.VERSION; } });
|
|
21
|
+
__exportStar(require("./error"), exports);
|
|
22
|
+
__exportStar(require("./full-name"), exports);
|
|
23
|
+
__exportStar(require("./name"), exports);
|
|
24
|
+
__exportStar(require("./namefully"), exports);
|
|
25
|
+
var parser_1 = require("./parser");
|
|
26
|
+
Object.defineProperty(exports, "Parser", { enumerable: true, get: function () { return parser_1.Parser; } });
|
|
27
|
+
__exportStar(require("./types"), exports);
|
|
28
|
+
var utils_1 = require("./utils");
|
|
29
|
+
Object.defineProperty(exports, "NameIndex", { enumerable: true, get: function () { return utils_1.NameIndex; } });
|
package/dist/lib/name.js
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _Name_namon, _FirstName_more, _LastName_mother;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.LastName = exports.FirstName = exports.Name = void 0;
|
|
16
|
+
const error_1 = require("./error");
|
|
17
|
+
const types_1 = require("./types");
|
|
18
|
+
const utils_1 = require("./utils");
|
|
19
|
+
class Name {
|
|
20
|
+
constructor(value, type, capsRange) {
|
|
21
|
+
this.type = type;
|
|
22
|
+
_Name_namon.set(this, void 0);
|
|
23
|
+
this.capsRange = capsRange !== null && capsRange !== void 0 ? capsRange : types_1.CapsRange.INITIAL;
|
|
24
|
+
this.value = value;
|
|
25
|
+
if (capsRange)
|
|
26
|
+
this.caps(capsRange);
|
|
27
|
+
}
|
|
28
|
+
set value(newValue) {
|
|
29
|
+
this.validate(newValue);
|
|
30
|
+
__classPrivateFieldSet(this, _Name_namon, newValue, "f");
|
|
31
|
+
this.initial = newValue[0];
|
|
32
|
+
}
|
|
33
|
+
get value() {
|
|
34
|
+
return __classPrivateFieldGet(this, _Name_namon, "f");
|
|
35
|
+
}
|
|
36
|
+
get length() {
|
|
37
|
+
return __classPrivateFieldGet(this, _Name_namon, "f").length;
|
|
38
|
+
}
|
|
39
|
+
get isPrefix() {
|
|
40
|
+
return this.type === types_1.Namon.PREFIX;
|
|
41
|
+
}
|
|
42
|
+
get isFirstName() {
|
|
43
|
+
return this.type === types_1.Namon.FIRST_NAME;
|
|
44
|
+
}
|
|
45
|
+
get isMiddleName() {
|
|
46
|
+
return this.type === types_1.Namon.MIDDLE_NAME;
|
|
47
|
+
}
|
|
48
|
+
get isLastName() {
|
|
49
|
+
return this.type === types_1.Namon.LAST_NAME;
|
|
50
|
+
}
|
|
51
|
+
get isSuffix() {
|
|
52
|
+
return this.type === types_1.Namon.SUFFIX;
|
|
53
|
+
}
|
|
54
|
+
static prefix(value) {
|
|
55
|
+
return new this(value, types_1.Namon.PREFIX);
|
|
56
|
+
}
|
|
57
|
+
static first(value) {
|
|
58
|
+
return new this(value, types_1.Namon.FIRST_NAME);
|
|
59
|
+
}
|
|
60
|
+
static middle(value) {
|
|
61
|
+
return new this(value, types_1.Namon.MIDDLE_NAME);
|
|
62
|
+
}
|
|
63
|
+
static last(value) {
|
|
64
|
+
return new this(value, types_1.Namon.LAST_NAME);
|
|
65
|
+
}
|
|
66
|
+
static suffix(value) {
|
|
67
|
+
return new this(value, types_1.Namon.SUFFIX);
|
|
68
|
+
}
|
|
69
|
+
initials() {
|
|
70
|
+
return [this.initial];
|
|
71
|
+
}
|
|
72
|
+
toString() {
|
|
73
|
+
return __classPrivateFieldGet(this, _Name_namon, "f");
|
|
74
|
+
}
|
|
75
|
+
equal(other) {
|
|
76
|
+
return other instanceof Name && other.value === this.value && other.type === this.type;
|
|
77
|
+
}
|
|
78
|
+
caps(range) {
|
|
79
|
+
this.value = (0, utils_1.capitalize)(__classPrivateFieldGet(this, _Name_namon, "f"), range !== null && range !== void 0 ? range : this.capsRange);
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
decaps(range) {
|
|
83
|
+
this.value = (0, utils_1.decapitalize)(__classPrivateFieldGet(this, _Name_namon, "f"), range !== null && range !== void 0 ? range : this.capsRange);
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
validate(name) {
|
|
87
|
+
if ((name === null || name === void 0 ? void 0 : name.trim().length) < 2) {
|
|
88
|
+
throw new error_1.InputError({ source: name, message: 'must be 2+ characters' });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.Name = Name;
|
|
93
|
+
_Name_namon = new WeakMap();
|
|
94
|
+
class FirstName extends Name {
|
|
95
|
+
constructor(value, ...more) {
|
|
96
|
+
super(value, types_1.Namon.FIRST_NAME);
|
|
97
|
+
_FirstName_more.set(this, void 0);
|
|
98
|
+
more.forEach((n) => this.validate(n));
|
|
99
|
+
__classPrivateFieldSet(this, _FirstName_more, more, "f");
|
|
100
|
+
}
|
|
101
|
+
get hasMore() {
|
|
102
|
+
return __classPrivateFieldGet(this, _FirstName_more, "f").length > 0;
|
|
103
|
+
}
|
|
104
|
+
get length() {
|
|
105
|
+
return super.length + (this.hasMore ? __classPrivateFieldGet(this, _FirstName_more, "f").reduce((acc, n) => acc + n).length : 0);
|
|
106
|
+
}
|
|
107
|
+
get asNames() {
|
|
108
|
+
const names = [Name.first(this.value)];
|
|
109
|
+
if (this.hasMore) {
|
|
110
|
+
names.push(...__classPrivateFieldGet(this, _FirstName_more, "f").map((n) => Name.first(n)));
|
|
111
|
+
}
|
|
112
|
+
return names;
|
|
113
|
+
}
|
|
114
|
+
get more() {
|
|
115
|
+
return __classPrivateFieldGet(this, _FirstName_more, "f");
|
|
116
|
+
}
|
|
117
|
+
toString(withMore = false) {
|
|
118
|
+
return withMore && this.hasMore ? `${this.value} ${__classPrivateFieldGet(this, _FirstName_more, "f").join(' ')}`.trim() : this.value;
|
|
119
|
+
}
|
|
120
|
+
initials(withMore = false) {
|
|
121
|
+
const inits = [this.initial];
|
|
122
|
+
if (withMore && this.hasMore) {
|
|
123
|
+
inits.push(...__classPrivateFieldGet(this, _FirstName_more, "f").map((n) => n[0]));
|
|
124
|
+
}
|
|
125
|
+
return inits;
|
|
126
|
+
}
|
|
127
|
+
caps(range) {
|
|
128
|
+
range = range || this.capsRange;
|
|
129
|
+
this.value = (0, utils_1.capitalize)(this.value, range);
|
|
130
|
+
if (this.hasMore)
|
|
131
|
+
__classPrivateFieldSet(this, _FirstName_more, __classPrivateFieldGet(this, _FirstName_more, "f").map((n) => (0, utils_1.capitalize)(n, range)), "f");
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
decaps(range) {
|
|
135
|
+
range = range || this.capsRange;
|
|
136
|
+
this.value = (0, utils_1.decapitalize)(this.value, range);
|
|
137
|
+
if (this.hasMore)
|
|
138
|
+
__classPrivateFieldSet(this, _FirstName_more, __classPrivateFieldGet(this, _FirstName_more, "f").map((n) => (0, utils_1.decapitalize)(n, range)), "f");
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
copyWith(values) {
|
|
142
|
+
var _a, _b;
|
|
143
|
+
return new FirstName((_a = values.first) !== null && _a !== void 0 ? _a : this.value, ...((_b = values.more) !== null && _b !== void 0 ? _b : __classPrivateFieldGet(this, _FirstName_more, "f")));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.FirstName = FirstName;
|
|
147
|
+
_FirstName_more = new WeakMap();
|
|
148
|
+
class LastName extends Name {
|
|
149
|
+
constructor(father, mother, format = types_1.Surname.FATHER) {
|
|
150
|
+
super(father, types_1.Namon.LAST_NAME);
|
|
151
|
+
this.format = format;
|
|
152
|
+
_LastName_mother.set(this, void 0);
|
|
153
|
+
this.validate(mother);
|
|
154
|
+
__classPrivateFieldSet(this, _LastName_mother, mother, "f");
|
|
155
|
+
}
|
|
156
|
+
get father() {
|
|
157
|
+
return this.value;
|
|
158
|
+
}
|
|
159
|
+
get mother() {
|
|
160
|
+
return __classPrivateFieldGet(this, _LastName_mother, "f");
|
|
161
|
+
}
|
|
162
|
+
get hasMother() {
|
|
163
|
+
return !!__classPrivateFieldGet(this, _LastName_mother, "f");
|
|
164
|
+
}
|
|
165
|
+
get length() {
|
|
166
|
+
var _a, _b;
|
|
167
|
+
return super.length + ((_b = (_a = __classPrivateFieldGet(this, _LastName_mother, "f")) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
|
|
168
|
+
}
|
|
169
|
+
get asNames() {
|
|
170
|
+
const names = [Name.last(this.value)];
|
|
171
|
+
if (this.hasMother) {
|
|
172
|
+
names.push(Name.last(__classPrivateFieldGet(this, _LastName_mother, "f")));
|
|
173
|
+
}
|
|
174
|
+
return names;
|
|
175
|
+
}
|
|
176
|
+
toString(format) {
|
|
177
|
+
var _a;
|
|
178
|
+
format = format !== null && format !== void 0 ? format : this.format;
|
|
179
|
+
switch (format) {
|
|
180
|
+
case types_1.Surname.FATHER:
|
|
181
|
+
return this.value;
|
|
182
|
+
case types_1.Surname.MOTHER:
|
|
183
|
+
return (_a = this.mother) !== null && _a !== void 0 ? _a : '';
|
|
184
|
+
case types_1.Surname.HYPHENATED:
|
|
185
|
+
return this.hasMother ? `${this.value}-${__classPrivateFieldGet(this, _LastName_mother, "f")}` : this.value;
|
|
186
|
+
case types_1.Surname.ALL:
|
|
187
|
+
return this.hasMother ? `${this.value} ${__classPrivateFieldGet(this, _LastName_mother, "f")}` : this.value;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
initials(format) {
|
|
191
|
+
format = format || this.format;
|
|
192
|
+
const inits = [];
|
|
193
|
+
switch (format) {
|
|
194
|
+
case types_1.Surname.MOTHER:
|
|
195
|
+
if (this.hasMother)
|
|
196
|
+
inits.push(__classPrivateFieldGet(this, _LastName_mother, "f")[0]);
|
|
197
|
+
break;
|
|
198
|
+
case types_1.Surname.HYPHENATED:
|
|
199
|
+
case types_1.Surname.ALL:
|
|
200
|
+
inits.push(this.initial);
|
|
201
|
+
if (this.hasMother)
|
|
202
|
+
inits.push(__classPrivateFieldGet(this, _LastName_mother, "f")[0]);
|
|
203
|
+
break;
|
|
204
|
+
case types_1.Surname.FATHER:
|
|
205
|
+
default:
|
|
206
|
+
inits.push(this.initial);
|
|
207
|
+
}
|
|
208
|
+
return inits;
|
|
209
|
+
}
|
|
210
|
+
caps(range) {
|
|
211
|
+
range = range || this.capsRange;
|
|
212
|
+
this.value = (0, utils_1.capitalize)(this.value, range);
|
|
213
|
+
if (this.hasMother)
|
|
214
|
+
__classPrivateFieldSet(this, _LastName_mother, (0, utils_1.capitalize)(__classPrivateFieldGet(this, _LastName_mother, "f"), range), "f");
|
|
215
|
+
return this;
|
|
216
|
+
}
|
|
217
|
+
decaps(range) {
|
|
218
|
+
range = range || this.capsRange;
|
|
219
|
+
this.value = (0, utils_1.decapitalize)(this.value, range);
|
|
220
|
+
if (this.hasMother)
|
|
221
|
+
__classPrivateFieldSet(this, _LastName_mother, (0, utils_1.decapitalize)(__classPrivateFieldGet(this, _LastName_mother, "f"), range), "f");
|
|
222
|
+
return this;
|
|
223
|
+
}
|
|
224
|
+
copyWith(values) {
|
|
225
|
+
var _a, _b, _c;
|
|
226
|
+
return new LastName((_a = values.father) !== null && _a !== void 0 ? _a : this.value, (_b = values.mother) !== null && _b !== void 0 ? _b : this.mother, (_c = values.format) !== null && _c !== void 0 ? _c : this.format);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
exports.LastName = LastName;
|
|
230
|
+
_LastName_mother = new WeakMap();
|