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,302 +0,0 @@
1
- import { Fullname, Name, Nama, Summary, Config, NameOrder, NameType, LastnameFormat } from './models';
2
- /**
3
- * Person name handler
4
- * @class
5
- *
6
- * `Namefully` does not magically guess which part of the name is what. It relies
7
- * actually on how the developer indicates the roles of the name parts so that
8
- * it, internally, can perform certain operations and saves the developer some
9
- * calculations/processings. Nevertheless, Namefully can be constructed using
10
- * distinct raw data shape. This is intended to give some flexibility to the
11
- * developer so that he or she is not bound to a particular data format. Please,
12
- * do follow closely the APIs to know how to properly use it in order to avoid
13
- * some errors (mainly validation's).
14
- *
15
- * `Namefully` also works like a trap door. Once a raw data is provided and
16
- * validated, a developer can only ACCESS in a vast amount of, yet effective ways
17
- * the name info. NO EDITING is possible. If the name is mistaken, a new instance
18
- * of `Namefully` must be created. Remember, this utility's primary objective is
19
- * to help to **handle** a person name.
20
- *
21
- * Note that the name standards used for the current version of this library are
22
- * as follows:
23
- * [Prefix] Firstname [Middlename] Lastname [Suffix]
24
- * The opening `[` and closing `]` brackets mean that these parts are optional.
25
- * In other words, the most basic and typical case is a name that looks like this:
26
- * `John Smith`, where `John` is the first name and `Smith`, the last name.
27
- * @see https://departments.weber.edu/qsupport&training/Data_Standards/Name.htm
28
- * for more info on name standards.
29
- *
30
- * **IMPORTANT**: Keep in mind that the order of appearance matters and can be
31
- * altered through configured parameters, which we will be seeing later on. By
32
- * default, the order of appearance is as shown above and will be used as a basis
33
- * for future examples and use cases.
34
- *
35
- * Once imported, all that is required to do is to create an instance of
36
- * `Namefully` and the rest will follow.
37
- *
38
- * Some terminologies used across the library are:
39
- * - namon: 1 piece of a name (e.g., firstname)
40
- * - nama: 2+ pieces of a name (e.g., firstname + lastname)
41
- *
42
- * Happy handling!
43
- */
44
- export declare class Namefully {
45
- /**
46
- * Holds a json-like high quality of data
47
- * @see {Fullname} description for more details
48
- */
49
- private fullname;
50
- /**
51
- * Holds statistical info on the name
52
- * @see {Summary} class description for more details
53
- */
54
- private summary;
55
- /**
56
- * Holds a json-like copy of the preset configuration
57
- * @see {Config} description for more details
58
- */
59
- private config;
60
- /**
61
- * Constructs an instance of the utility and helps to benefit from many helpers
62
- * @param {string | string[] | Name[] | Nama | Fullname} raw element to parse or
63
- * construct the pieces of the name
64
- * @param {Config} options to configure how to run the utility
65
- */
66
- constructor(raw: string | string[] | Name[] | Nama | Fullname, options?: Partial<Config>);
67
- /**
68
- * Gets the full name ordered as configured
69
- * @param {NameOrder} orderedBy force to order by first or last
70
- * name by overriding the preset configuration
71
- *
72
- * @see {format} to alter manually the order of appearance of the full name.
73
- * For example, ::format('l f m') outputs `lastname firstname middlename`.
74
- */
75
- getFullname(orderedBy?: NameOrder): string;
76
- /**
77
- * Gets the birth name ordered as configured, no prefix or suffix
78
- * @param {NameOrder} orderedBy force to order by first or last
79
- * name by overriding the preset configuration
80
- */
81
- getBirthname(orderedBy?: NameOrder): string;
82
- /**
83
- * Gets the first name part of the full name
84
- * @param {boolean} includeAll whether to include other pieces of the first
85
- * name
86
- */
87
- getFirstname(includeAll?: boolean): string;
88
- /**
89
- * Gets the last name part of the full name
90
- * @param {LastnameFormat} [format] overrides the how-to format of a surname
91
- * output, considering its subparts.
92
- */
93
- getLastname(format?: LastnameFormat): string;
94
- /**
95
- * Gets the middle names part of the full name
96
- */
97
- getMiddlenames(): string[];
98
- /**
99
- * Gets the prefix part of the full name
100
- */
101
- getPrefix(): string;
102
- /**
103
- * Gets the suffix part of the full name
104
- */
105
- getSuffix(): string;
106
- /**
107
- * Gets the initials of the full name
108
- * @param {NameOrder} orderedBy force to order by first or last name by
109
- * overriding the preset configuration
110
- * @param {boolean} [withMid] whether to include middle names's
111
- *
112
- * @example
113
- * Given the names:
114
- * - `John Smith` => ['J', 'S']
115
- * - `John Ben Smith` => ['J', 'S']
116
- * when `withMid` is set to true:
117
- * - `John Ben Smith` => ['J', 'B', 'S']
118
- *
119
- * **NOTE**:
120
- * Ordered by last name obeys the following format:
121
- * `lastname firstname [middlename]`
122
- * which means that if no middle name was set, setting `withMid` to true
123
- * will output nothing and warn the end user about it.
124
- */
125
- getInitials(orderedBy?: NameOrder, withMid?: boolean): string[];
126
- /**
127
- * Gives some descriptive statistics that summarize the central tendency,
128
- * dispersion and shape of the characters' distribution.
129
- * @param what which variant to use when describe a name part
130
- *
131
- * Treated as a categorical dataset, the summary contains the following info:
132
- * `count` : the number of *unrestricted* characters of the name;
133
- * `frequency` : the highest frequency within the characters;
134
- * `top` : the character with the highest frequency;
135
- * `unique` : the count of unique characters of the name;
136
- * `distribution` : the characters' distribution.
137
- *
138
- * @example
139
- * Given the name "Thomas Alva Edison", the summary will output as follows:
140
- *
141
- * Descriptive statistics for "Thomas Alva Edison"
142
- * count : 16
143
- * frequency: 3
144
- * top : A
145
- * unique : 12
146
- * distribution: { T: 1, H: 1, O: 2, M: 1, A: 2, S: 2, ' ': 2, L: 1, V: 1,
147
- * E: 1, D: 1, I: 1, N: 1 }
148
- *
149
- * **NOTE:**
150
- * During the setup, a set of restricted characters can be defined to be removed
151
- * from the stats. By default, the only restricted character is the `space`.
152
- * That is why the `count` for the example below result in `16` instead of
153
- * `16`.
154
- * Another thing to consider is that the summary is case *insensitive*. Note
155
- * that the letter `a` has the top frequency, be it `3`.
156
- */
157
- describe(what?: NameType): Summary;
158
- /**
159
- * Shortens a complex full name to a simple typical name, a combination of
160
- * first name and last name.
161
- * @param {NameOrder} orderedBy force to order by first or last
162
- * name by overriding the preset configuration
163
- *
164
- * @example
165
- * For a given name such as `Mr Keanu Charles Reeves`, shortening this name
166
- * is equivalent to making it `Keanu Reeves`.
167
- *
168
- * As a shortened name, the namon of the first name is favored over the other
169
- * names forming part of the entire first names, if any. Meanwhile, for
170
- * the last name, the configured `lastnameFormat` is prioritized.
171
- *
172
- * @example
173
- * For a given `Firstname Fathername Mothername`, shortening this name when
174
- * the lastnameFormat is set as `mother` is equivalent to making it:
175
- * `Firstname Mothername`.
176
- */
177
- shorten(orderedBy?: NameOrder): string;
178
- /**
179
- * Compresses a name by using different forms of variants
180
- * @param {number} [limit] a threshold to limit the number of characters
181
- * @param {'firstname'|'lastname'|'middlename'|'firstmid'|'midlast'} [by]
182
- * a variant to use when compressing the long name. The last two variants
183
- * represent respectively the combination of `firstname + middlename` and
184
- * `middlename + lastname`.
185
- * @param {boolean} [warning] should warn when the set limit is violated
186
- *
187
- * @example
188
- * The compressing operation is only executed iff there is valid entry and it
189
- * surpasses the limit set. In the examples below, let us assume that the
190
- * name goes beyond the limit value.
191
- *
192
- * Compressing a long name refers to reducing the name to the following forms:
193
- * 1. by firstname: 'John Moe Beau Lennon' => 'J. Moe Beau Lennon'
194
- * 2. by middlename: 'John Moe Beau Lennon' => 'John M. B. Lennon'
195
- * 3. by lastname: 'John Moe Beau Lennon' => 'John Moe Beau L.'
196
- * 4. by firstmid: 'John Moe Beau Lennon' => 'J. M. B. Lennon'
197
- * 5. by midlast: 'John Moe Beau Lennon' => 'John M. B. L.'
198
- *
199
- * By default, it compresses by 'firstmid' variant: 'J. M. B. Lennon'.
200
- */
201
- compress(limit?: number, by?: 'fn' | 'ln' | 'mn' | 'fm' | 'ml' | 'firstname' | 'lastname' | 'middlename' | 'firstmid' | 'midlast', warning?: boolean): string;
202
- /**
203
- * Zips or compresses a name by using different forms of variants
204
- * @param by a variant to use when compressing the long name. The last two
205
- * variants represent respectively the combination of `firstname + middlename`
206
- * and `middlename + lastname`.
207
- */
208
- zip(by?: 'fn' | 'ln' | 'mn' | 'fm' | 'ml' | 'firstname' | 'lastname' | 'middlename' | 'firstmid' | 'midlast'): string;
209
- /**
210
- * Suggests possible (randomly) usernames closest to the name
211
- *
212
- * **NOTE**
213
- * The validity of these usernames are not checked against any social media
214
- * or web app online.
215
- */
216
- username(): string[];
217
- /**
218
- * Formats the name as desired
219
- * @param {string} how to format the full name
220
- *
221
- * How to format it?
222
- * string format
223
- * -------------
224
- * 'short': typical first + last name
225
- * 'long': birth name (without prefix and suffix)
226
- *
227
- * char format
228
- * -----------
229
- * 'b': birth name
230
- * 'B': capitalized birth name
231
- * 'f': first name
232
- * 'F': capitalized first name
233
- * 'l': last name (official)
234
- * 'L': capitalized last name
235
- * 'm': middle names
236
- * 'M': capitalized middle names
237
- * 'o': official document format
238
- * 'O': official document format in capital letters
239
- * 'p': prefix
240
- * 'P': capitalized prefix
241
- * 's': suffix
242
- * 'S': capitalized suffix
243
- *
244
- * punctuations
245
- * ------------
246
- * '.': period
247
- * ',': comma
248
- * ' ': space
249
- * '-': hyphen
250
- * '_': underscore
251
- *
252
- * @example
253
- * Given the name `Joe Jim Smith`, call the `format` with the how string.
254
- * - format('l f') => 'Smith Joe'
255
- * - format('L, f') => 'SMITH, Joe'
256
- * - format('short') => 'Joe Smith'
257
- * - format() => 'SMITH, Joe Jim'
258
- */
259
- format(how?: string): string;
260
- /**
261
- * Returns the count of characters of the birth name, excluding punctuations
262
- */
263
- size(): number;
264
- /**
265
- * Returns an ascii representation of each characters of a name as specified
266
- * @param options use specifics to shape conversion
267
- */
268
- ascii(options?: Partial<{
269
- nameType: NameType;
270
- exceptions: string[];
271
- }>): number[];
272
- /**
273
- * Transforms a birth name to a specific case
274
- * @param case which case to convert a birth name to
275
- */
276
- to(_case: 'upper' | 'lower' | 'camel' | 'pascal' | 'snake' | 'hyphen' | 'dot' | 'toggle'): string;
277
- /**
278
- * Returns a password-like representation of a name
279
- * @param {NameType} [what] which name part
280
- */
281
- passwd(what?: NameType): string;
282
- private hasMiddlename;
283
- private configure;
284
- private initialize;
285
- private parseNameOrder;
286
- private map;
287
- private build;
288
- }
289
- /**
290
- * Aliases for `Namefully`
291
- */
292
- export interface Namefully {
293
- full: typeof Namefully.prototype.getFullname;
294
- birth: typeof Namefully.prototype.getBirthname;
295
- fn: typeof Namefully.prototype.getFirstname;
296
- ln: typeof Namefully.prototype.getLastname;
297
- mn: typeof Namefully.prototype.getMiddlenames;
298
- px: typeof Namefully.prototype.getPrefix;
299
- sx: typeof Namefully.prototype.getSuffix;
300
- inits: typeof Namefully.prototype.getInitials;
301
- stats: typeof Namefully.prototype.describe;
302
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"namefully.js","sourceRoot":"","sources":["../../src/namefully.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;GAaG;AACH,iCAagB;AAChB,qCAWkB;AAClB,6CAAiD;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAa,SAAS;IAiBlB;;;;;OAKG;IACH,YACI,GAAiD,EACjD,OAAyB;QAEzB,0BAA0B;QAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExB,iCAAiC;QACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,SAAqB;QAC7B,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAE3C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,QAAQ;QAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,UAAU;QACxD,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;YACpB,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;QAElE,IAAI,SAAS,KAAK,WAAW,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;SAChE;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACxE;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,SAAqB;QAC9B,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,IAAI,SAAS,KAAK,WAAW,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SACjC;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;SACvC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,aAAsB,IAAI;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAuB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,cAAc;QACV,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,SAAS;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM;YACvB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI;gBAC5B,CAAC,CAAC,kBAAS,CAAC,MAAM;gBAClB,CAAC,CAAC,kBAAS,CAAC,KAAK,CACpB,CAAA,CAAC,CAAC,kBAAS,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,SAAS;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,kBAAS,CAAC,KAAK,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CACP,SAAqB,EACrB,UAAmB,KAAK;QAExB,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5D,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;SACpE;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,SAAS,KAAK,WAAW,EAAE;YAC3B,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACxD,IAAI,OAAO;gBAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;SAC1D;aAAM;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACxD,IAAI,OAAO;gBAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC3D;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,QAAQ,CAAC,IAAe;QACpB,IAAI,GAAG,yBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/B,QAAO,IAAI,EAAE;YACT,KAAK,WAAW;gBACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC9C,KAAK,UAAU;gBACX,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,KAAK,YAAY;gBACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;oBACvB,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;oBAChE,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,IAAI,gBAAO,CACd,IAAI,CAAC,QAAQ,CAAC,UAAU;qBACnB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;qBACjB,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAC7B,CAAC;YACN;gBACI,OAAO,IAAI,CAAC,OAAO,CAAC;SAC3B;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,SAAqB;QACzB,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,kBAAkB;QAClE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9C,OAAO,SAAS,KAAK,WAAW;YAC5B,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC;YAC9D,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CACJ,QAAgB,EAAE,EAClB,KACoE,IAAI,EACxE,UAAmB,IAAI;QAEvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,IAAI,KAAK,EAAE,sBAAsB;YAC1D,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAE9B,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,MAAM,GAAY,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,kBAAS,CAAC,MAAM,CAAC;QAE7B,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM;YACf,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YAC5D,CAAC,CAAC,kBAAS,CAAC,KAAK,CAAC;QACtB,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE;YACvC,QAAQ,EAAE,EAAE;gBACR,KAAK,WAAW,CAAC;gBAAC,KAAK,IAAI;oBACvB,KAAK,GAAG,MAAM,CAAC,CAAC;wBACZ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBACnD,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;oBAC9C,MAAM;gBACd,KAAK,UAAU,CAAC;gBAAC,KAAK,IAAI;oBACtB,KAAK,GAAG,MAAM,CAAC,CAAC;wBACZ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBAClD,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;oBAC7C,MAAM;gBACd,KAAK,YAAY,CAAC;gBAAC,KAAK,IAAI;oBACxB,KAAK,GAAG,MAAM,CAAC,CAAC;wBACZ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC5D,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;oBACrD,MAAM;gBACd,KAAK,UAAU,CAAC;gBAAC,KAAK,IAAI;oBACtB,KAAK,GAAG,MAAM,CAAC,CAAC;wBACZ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBACrD,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;oBAC9C,MAAM;gBACd,KAAK,SAAS,CAAC;gBAAC,KAAK,IAAI;oBACrB,KAAK,GAAG,MAAM,CAAC,CAAC;wBACZ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;oBACjD,MAAM;aACb;SACJ;aACI;YACD,QAAQ,EAAE,EAAE;gBACR,KAAK,WAAW,CAAC;gBAAC,KAAK,IAAI;oBACvB,KAAK,GAAG,MAAM,CAAC,CAAC;wBACZ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBACnD,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;oBAC9C,MAAM;gBACV,KAAK,UAAU,CAAC;gBAAC,KAAK,IAAI;oBAC1B,KAAK,GAAG,MAAM,CAAC,CAAC;wBACZ,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBAClD,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;oBAC7C,MAAM;gBACd,KAAK,YAAY,CAAC;gBAAC,KAAK,IAAI;oBACxB,KAAK,GAAG,MAAM,CAAC,CAAC;wBACZ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC5D,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;oBACrD,MAAM;gBACd,KAAK,UAAU,CAAC;gBAAC,KAAK,IAAI;oBACtB,KAAK,GAAG,MAAM,CAAC,CAAC;wBACZ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBACrD,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;oBAC9C,MAAM;gBACd,KAAK,SAAS,CAAC;gBAAC,KAAK,IAAI;oBACrB,KAAK,GAAG,MAAM,CAAC,CAAC;wBACZ,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;oBACjD,MAAM;aACb;SACJ;QAED,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK;YAC/B,OAAO,CAAC,IAAI,CAAC,wBAAwB,KAAK,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAE1F,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CACC,KACoE,IAAI;QAExE,IAAI,CAAmE,CAAC;QACxE,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,WAAW;YAAE,CAAC,GAAG,WAAW,CAAC;QACvD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,YAAY;YAAE,CAAC,GAAG,YAAY,CAAC;QACzD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,UAAU;YAAE,CAAC,GAAG,UAAU,CAAC;QACrD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,UAAU;YAAE,CAAC,GAAG,UAAU,CAAC;QACrD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS;YAAE,CAAC,GAAG,SAAS,CAAC;QACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACJ,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9C,MAAM,CAAC,GAAG,kBAAS,CAAC,MAAM,CAAC;QAC3B,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAEzC,qBAAqB;QACrB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY;QAClC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY;QAClC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;QAClC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ;QACjC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU;QACvC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;QACtC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU;QAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;QAC3C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW;QACjD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU;QAEhD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,MAAM,CAAC,MAAc,UAAU;QAC3B,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3C,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/C,IAAI,GAAG,KAAK,UAAU;YAAE,GAAG,GAAG,GAAG,CAAC;QAElC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG;YACX,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YAC/D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;SACzC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;YACjB,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;YACzE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,OAAO,SAAS,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,IAAI;QACA,OAAO,IAAI,gBAAO,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,uBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,KAAK,CACD,UAGK,EAAE;QAEP,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;QAC7C,MAAM,QAAQ,GAAG,yBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1D,QAAO,QAAQ,EAAE;YACb,KAAK,WAAW;gBACZ,OAAO,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACzC,KAAK,UAAU;gBACX,OAAO,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACxC,KAAK,YAAY;gBACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBACrB,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;gBAC7E,OAAO,UAAU;qBACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;qBAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe;YACvE;gBACI,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,UAAU;qBAClB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;qBAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE;oBACvC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;iBACrC;gBACD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACzC;IACL,CAAC;IAED;;;OAGG;IACH,EAAE,CACE,KAAqF;QAErF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,SAAS;aACjB,OAAO,CAAC,QAAQ,EAAE,kBAAS,CAAC,KAAK,CAAC;aAClC,KAAK,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;QAE5B,QAAO,KAAK,EAAE;YACV,KAAK,OAAO;gBACR,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,OAAO;gBACR,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,OAAO,CAAC;YAAC,KAAK,QAAQ;gBACvB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;gBACtE,OAAO,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACrE,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,UAAU,CAAC,CAAC;YACrE,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,MAAM,CAAC,CAAC;YACjE,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,MAAM,CAAC,CAAC;YACjE,KAAK,QAAQ;gBACT,OAAO,iBAAU,CAAC,SAAS,CAAC,CAAC;YACjC;gBACI,OAAO,kBAAS,CAAC,KAAK,CAAC;SAC9B;IACL,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAe;QAClB,IAAI,GAAG,yBAAkB,CAAC,IAAI,CAAC,CAAC;QAChC,QAAO,IAAI,EAAE;YACT,KAAK,WAAW;gBACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC5C,KAAK,UAAU;gBACX,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3C,KAAK,YAAY;gBACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBACrB,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;gBACrE,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU;qBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;qBACpB,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;YAC/B;gBACI,OAAO,uBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;SACpD;IACL,CAAC;IAEO,aAAa;QACjB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1F,CAAC;IAEO,SAAS,CAAC,OAAyB;QACvC,6DAA6D;QAC7D,IAAI,CAAC,MAAM,mCAAQ,aAAM,GAAK,OAAO,CAAE,CAAC,CAAC,kCAAkC;QAC3E,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,0BAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvE,CAAC;IAEO,UAAU,CAAI,MAAiB;QACnC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACnF,CAAC;IAEO,cAAc,CAAC,SAAqB;QACxC,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,kBAAkB;QAClE,OAAO,0BAAmB,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAEO,GAAG,CAAC,CAAS;QACjB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE1E,QAAO,CAAC,EAAE;YACN,KAAK,GAAG;gBACJ,OAAO,kBAAS,CAAC,MAAM,CAAC;YAC5B,KAAK,GAAG;gBACJ,OAAO,kBAAS,CAAC,KAAK,CAAC;YAC3B,KAAK,GAAG;gBACJ,OAAO,kBAAS,CAAC,KAAK,CAAC;YAC3B,KAAK,GAAG;gBACJ,OAAO,kBAAS,CAAC,MAAM,CAAC;YAC5B,KAAK,GAAG;gBACJ,OAAO,kBAAS,CAAC,UAAU,CAAC;YAChC,KAAK,GAAG;gBACJ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/B,KAAK,GAAG;gBACJ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,GAAG;gBACJ,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;YAChC,KAAK,GAAG;gBACJ,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;YAC9C,KAAK,GAAG;gBACJ,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC/B,KAAK,GAAG;gBACJ,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,GAAG;gBACJ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;oBACvB,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;oBACnE,OAAO,kBAAS,CAAC,KAAK,CAAC;iBAC1B;gBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;YAC5E,KAAK,GAAG;gBACJ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;oBACvB,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;oBACnE,OAAO,kBAAS,CAAC,KAAK,CAAC;iBAC1B;gBACD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC;YAC5E,KAAK,GAAG,CAAC;YAAC,KAAK,GAAG;gBACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACxC,MAAM,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAS,CAAC,KAAK,CAAC;gBACpE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAS,CAAC,KAAK,CAAC;gBAE7C,MAAM,IAAI,GAAa,EAAE,CAAC;gBAC1B,IAAI,MAAM;oBACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gBACrE,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;oBACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC/E;qBAAM;oBACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBACjD;gBACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,kBAAS,CAAC,KAAK,CAAC,CAAC;gBAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnD,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzD,KAAK,GAAG;gBACJ,OAAO,MAAM,IAAI,kBAAS,CAAC,KAAK,CAAC;YACrC,KAAK,GAAG;gBACJ,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,kBAAS,CAAC,KAAK,CAAC;YAC3D,KAAK,GAAG;gBACJ,OAAO,MAAM,IAAI,kBAAS,CAAC,KAAK,CAAC;YACrC,KAAK,GAAG;gBACJ,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,kBAAS,CAAC,KAAK,CAAC;SAC9D;IACL,CAAC;IAEO,KAAK,CAAC,GAAiD;QAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACvC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,EAAE,wBAAwB;YAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,mBAAY,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1C;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,gBAAgB;YAC3D,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,EAAE,qBAAqB;gBACnD,KAAK,MAAM,GAAG,IAAI,GAAe;oBAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ;wBACvB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBACtE,IAAI,CAAC,UAAU,CAAC,IAAI,wBAAiB,CAAC,GAAe,CAAC,CAAC,CAAA;aAC1D;iBAAM,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,aAAI,EAAE,EAAE,mBAAmB;gBACpD,KAAK,MAAM,GAAG,IAAI,GAAe;oBAC7B,IAAI,CAAC,CAAC,GAAU,YAAY,aAAI,CAAC;wBAC7B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACpE,IAAI,CAAC,UAAU,CAAC,IAAI,sBAAe,CAAC,GAAa,CAAC,CAAC,CAAC;aACvD;iBAAM;gBACH,yEAAyE;gBACzE,MAAM,IAAI,KAAK,CACX,kEAAkE,CACrE,CAAC;aACL;SACJ;aAAM,IAAI,GAAG,YAAY,MAAM,EAAE,EAAE,wBAAwB;YACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,6BAA6B;gBAC3E,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC/E,MAAM,IAAI,KAAK,CACX,qEAAqE;wBACrE,IAAI,MAAM,CAAC,IAAI,CAAC,cAAK,CAAC,GAAG,CAC5B,CAAC;gBAEN,mDAAmD;gBACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;oBACtD,MAAM,IAAI,KAAK,CACX,mCAAmC,GAAG,oCAAoC,CAC7E,CAAC;aACT;YACD,IAAI,OAAc,GAAI,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,6BAA6B;gBAC3E,IAAI,CAAC,UAAU,CAAC,IAAI,iBAAU,CAAC,GAAW,CAAC,CAAC,CAAC;;gBAE7C,IAAI,CAAC,QAAQ,GAAG,GAAe,CAAC;SACvC;aAAM;YACH,+EAA+E;YAC/E,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC5E;QACD,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,IAAI,8BAAiB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC;CACJ;AAxsBD,8BAwsBC;AAiBD,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC;AAC3D,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;AAC7D,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;AAC1D,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC;AACzD,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC;AAC5D,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;AACvD,SAAS,CAAC,SAAS,CAAC,EAAE,GAAI,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;AACxD,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC;AAC5D,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Array of `Name` validator
3
- *
4
- * Created on March 15, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { Name } from '../models';
8
- import { Validator, ValidatorType } from './index';
9
- /**
10
- * Represents a validator to help the array `Name` parser
11
- * @class
12
- * @classdesc
13
- * This validator validates a array of `Name` objects following a specific order
14
- * based on the count of elements. It is expected that the array has to be
15
- * between two and five elements.
16
- *
17
- */
18
- export default class ArrayNameValidator implements Validator<Name[]> {
19
- readonly type: ValidatorType;
20
- /**
21
- * Validates the content of a set of custom `Name`s
22
- * @param {Name[]} value data to validate
23
- */
24
- validate(values: Name[]): void;
25
- }
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Array of `Name` validator
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("./index");
11
- const constants_1 = require("../core/constants");
12
- /**
13
- * Represents a validator to help the array `Name` parser
14
- * @class
15
- * @classdesc
16
- * This validator validates a array of `Name` objects following a specific order
17
- * based on the count of elements. It is expected that the array has to be
18
- * between two and five elements.
19
- *
20
- */
21
- class ArrayNameValidator {
22
- constructor() {
23
- this.type = index_1.ValidatorType.ARR_NAMES;
24
- }
25
- /**
26
- * Validates the content of a set of custom `Name`s
27
- * @param {Name[]} value data to validate
28
- */
29
- validate(values) {
30
- if (values.length < constants_1.MIN_NUMBER_NAME_PART || values.length > constants_1.MAX_NUMBER_NAME_PART)
31
- throw new index_1.ValidationError(`must be an array of ${constants_1.MIN_NUMBER_NAME_PART} - ` +
32
- `${constants_1.MAX_NUMBER_NAME_PART} 'Name's`, 'Array of Names');
33
- const validators = {
34
- [models_1.Namon.PREFIX]: new index_1.PrefixValidator(),
35
- [models_1.Namon.FIRST_NAME]: new index_1.FirstnameValidator(),
36
- [models_1.Namon.MIDDLE_NAME]: new index_1.MiddlenameValidator(),
37
- [models_1.Namon.LAST_NAME]: new index_1.LastnameValidator(),
38
- [models_1.Namon.SUFFIX]: new index_1.SuffixValidator(),
39
- };
40
- switch (values.length) {
41
- case constants_1.FIRST_LAST_NAME_INDEX:
42
- values.forEach(n => {
43
- if (![models_1.Namon.FIRST_NAME, models_1.Namon.LAST_NAME].includes(n.type))
44
- throw new index_1.ValidationError('Both first and last names are required');
45
- validators[n.type].validate(n.tostring());
46
- });
47
- break;
48
- case constants_1.FIRST_MIDDLE_LAST_NAME_INDEX:
49
- values.forEach(n => {
50
- if (![models_1.Namon.FIRST_NAME, models_1.Namon.MIDDLE_NAME, models_1.Namon.LAST_NAME].includes(n.type))
51
- throw new index_1.ValidationError('First, middle and last names are required');
52
- validators[n.type].validate(n.tostring());
53
- });
54
- break;
55
- case constants_1.PREFIX_FIRST_MIDDLE_LAST_NAME_INDEX:
56
- values.forEach(n => {
57
- if (![models_1.Namon.PREFIX, models_1.Namon.FIRST_NAME, models_1.Namon.MIDDLE_NAME,
58
- models_1.Namon.LAST_NAME].includes(n.type))
59
- throw new index_1.ValidationError('More fields are required');
60
- validators[n.type].validate(n.tostring());
61
- });
62
- break;
63
- case constants_1.PREFIX_FIRST_MIDDLE_LAST_SUFFIX_NAME_INDEX:
64
- values.forEach(n => {
65
- if (![models_1.Namon.PREFIX, models_1.Namon.FIRST_NAME, models_1.Namon.MIDDLE_NAME, models_1.Namon.LAST_NAME,
66
- models_1.Namon.SUFFIX].includes(n.type))
67
- throw new index_1.ValidationError('More fields are required');
68
- validators[n.type].validate(n.tostring());
69
- });
70
- break;
71
- }
72
- }
73
- }
74
- exports.default = ArrayNameValidator;
75
- //# sourceMappingURL=array-name.validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-name.validator.js","sourceRoot":"","sources":["../../../src/validators/array-name.validator.ts"],"names":[],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- /**
2
- * Array of string validator
3
- *
4
- * Created on March 15, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { NameIndex } from '../models';
8
- import { Validator, ValidatorType } from './index';
9
- /**
10
- * Represents a validator to help the array string parser
11
- * @class
12
- * @classdesc
13
- * This validator validates an array of string name following a specific order
14
- * based on the count of elements. It is expected that the array has to be between
15
- * two and five elements. Also, the order of appearance set in the configuration
16
- * influences how this validation is carried out.
17
- *
18
- * Ordered by first name, the validator validates the following:
19
- * - 2 elements: firstname lastname
20
- * - 3 elements: firstname middlename lastname
21
- * - 4 elements: prefix firstname middlename lastname
22
- * - 5 elements: prefix firstname middlename lastname suffix
23
- *
24
- * Ordered by last name, the validator validates the following:
25
- * - 2 elements: lastname firstname
26
- * - 3 elements: lastname firstname middlename
27
- * - 4 elements: prefix lastname firstname middlename
28
- * - 5 elements: prefix lastname firstname middlename suffix
29
- */
30
- export default class ArrayStringValidator implements Validator<string[]> {
31
- indexing: NameIndex;
32
- readonly type: ValidatorType;
33
- /**
34
- * Creates an instance of the validator
35
- * @param indexing how to index the name parts
36
- */
37
- constructor(indexing: NameIndex);
38
- /**
39
- * Validates the content of a name
40
- * @param {string} value data to validate
41
- */
42
- validate(values: string[]): void;
43
- }
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const constants_1 = require("../core/constants");
4
- const index_1 = require("./index");
5
- /**
6
- * Represents a validator to help the array string parser
7
- * @class
8
- * @classdesc
9
- * This validator validates an array of string name following a specific order
10
- * based on the count of elements. It is expected that the array has to be between
11
- * two and five elements. Also, the order of appearance set in the configuration
12
- * influences how this validation is carried out.
13
- *
14
- * Ordered by first name, the validator validates the following:
15
- * - 2 elements: firstname lastname
16
- * - 3 elements: firstname middlename lastname
17
- * - 4 elements: prefix firstname middlename lastname
18
- * - 5 elements: prefix firstname middlename lastname suffix
19
- *
20
- * Ordered by last name, the validator validates the following:
21
- * - 2 elements: lastname firstname
22
- * - 3 elements: lastname firstname middlename
23
- * - 4 elements: prefix lastname firstname middlename
24
- * - 5 elements: prefix lastname firstname middlename suffix
25
- */
26
- class ArrayStringValidator {
27
- /**
28
- * Creates an instance of the validator
29
- * @param indexing how to index the name parts
30
- */
31
- constructor(indexing) {
32
- this.indexing = indexing;
33
- this.type = index_1.ValidatorType.ARR_STRING;
34
- }
35
- /**
36
- * Validates the content of a name
37
- * @param {string} value data to validate
38
- */
39
- validate(values) {
40
- if (values.length < constants_1.MIN_NUMBER_NAME_PART || values.length > constants_1.MAX_NUMBER_NAME_PART)
41
- throw new index_1.ValidationError(`must be an array of ${constants_1.MIN_NUMBER_NAME_PART} - ` +
42
- `${constants_1.MAX_NUMBER_NAME_PART} elements`, 'Array of names');
43
- const pf = new index_1.PrefixValidator();
44
- const sf = new index_1.SuffixValidator();
45
- const fn = new index_1.FirstnameValidator();
46
- const ln = new index_1.LastnameValidator();
47
- const mn = new index_1.MiddlenameValidator();
48
- const index = this.indexing;
49
- switch (values.length) {
50
- case constants_1.FIRST_LAST_NAME_INDEX:
51
- fn.validate(values[index.firstname]);
52
- ln.validate(values[index.lastname]);
53
- break;
54
- case constants_1.FIRST_MIDDLE_LAST_NAME_INDEX:
55
- fn.validate(values[index.firstname]);
56
- mn.validate(values[index.middlename]);
57
- ln.validate(values[index.lastname]);
58
- break;
59
- case constants_1.PREFIX_FIRST_MIDDLE_LAST_NAME_INDEX:
60
- pf.validate(values[index.prefix]);
61
- fn.validate(values[index.firstname]);
62
- mn.validate(values[index.middlename]);
63
- ln.validate(values[index.lastname]);
64
- break;
65
- case constants_1.PREFIX_FIRST_MIDDLE_LAST_SUFFIX_NAME_INDEX:
66
- pf.validate(values[index.prefix]);
67
- fn.validate(values[index.firstname]);
68
- mn.validate(values[index.middlename]);
69
- ln.validate(values[index.lastname]);
70
- sf.validate(values[index.suffix]);
71
- break;
72
- }
73
- }
74
- }
75
- exports.default = ArrayStringValidator;
76
- //# sourceMappingURL=array-string.validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-string.validator.js","sourceRoot":"","sources":["../../../src/validators/array-string.validator.ts"],"names":[],"mappings":";;AAOA,iDAO2B;AAC3B,mCASiB;AAEjB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAqB,oBAAoB;IAGrC;;;OAGG;IACH,YAAmB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAN7B,SAAI,GAAkB,qBAAa,CAAC,UAAU,CAAC;IAMf,CAAC;IAE1C;;;OAGG;IACH,QAAQ,CAAC,MAAgB;QAErB,IAAI,MAAM,CAAC,MAAM,GAAG,gCAAoB,IAAI,MAAM,CAAC,MAAM,GAAG,gCAAoB;YAC5E,MAAM,IAAI,uBAAe,CACrB,uBAAuB,gCAAoB,KAAK;gBAChD,GAAG,gCAAoB,WAAW,EAClC,gBAAgB,CACnB,CAAA;QAEL,MAAM,EAAE,GAAG,IAAI,uBAAe,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,uBAAe,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,0BAAkB,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,yBAAiB,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,IAAI,2BAAmB,EAAE,CAAC;QAErC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE5B,QAAO,MAAM,CAAC,MAAM,EAAE;YAClB,KAAK,iCAAqB;gBACtB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpC,MAAM;YACV,KAAK,wCAA4B;gBAC7B,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;gBACtC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpC,MAAM;YACV,KAAK,+CAAmC;gBACpC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;gBACtC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpC,MAAM;YACV,KAAK,sDAA0C;gBAC3C,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;gBACtC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;gBACjC,MAAM;SACb;IACL,CAAC;CACJ;AAvDD,uCAuDC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Validation error
3
- *
4
- * Created on March 06, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- /**
8
- * Represents a validation error
9
- * @class
10
- * @extends Error
11
- */
12
- export declare class ValidationError extends Error {
13
- /**
14
- * Create a validation `Error`
15
- * @param message of error to display
16
- * @param type categorizes the error
17
- */
18
- constructor(message?: string, type?: string);
19
- }
@@ -1,26 +0,0 @@
1
- "use strict";
2
- /**
3
- * Validation error
4
- *
5
- * Created on March 06, 2020
6
- * @author Ralph Florent <ralflornt@gmail.com>
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- /**
10
- * Represents a validation error
11
- * @class
12
- * @extends Error
13
- */
14
- class ValidationError extends Error {
15
- /**
16
- * Create a validation `Error`
17
- * @param message of error to display
18
- * @param type categorizes the error
19
- */
20
- constructor(message, type) {
21
- super(`${type ? type + ' :: ' + message : message}`);
22
- this.name = 'ValidationError';
23
- }
24
- }
25
- exports.ValidationError = ValidationError;
26
- //# sourceMappingURL=validation-error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../../../../src/validators/common/validation-error.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH;;;;GAIG;AACH,MAAa,eAAgB,SAAQ,KAAK;IACtC;;;;OAIG;IACH,YAAY,OAAgB,EAAE,IAAa;QACvC,KAAK,CAAC,GAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAQ,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ;AAVD,0CAUC"}