rut.ts 1.3.0 → 1.3.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/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "rut.ts",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "Handle chilean RUT values with ease.",
5
5
  "author": "hansfpc",
6
6
  "main": "./dist/cjs/index.min.js",
7
7
  "module": "./dist/esm/index.min.js",
8
8
  "types": "./dist/esm/index.d.ts",
9
9
  "scripts": {
10
- "build": "npm run build:esm && npm run build:cjs && npm run minify",
10
+ "build": "npm run build:esm && npm run build:cjs && npm run minify && npm run afterbuild",
11
+ "afterbuild": "rm -rf dist/esm/index.js && rm -rf dist/cjs/index.js",
11
12
  "build:esm": "tsc",
12
13
  "build:cjs": "tsc --module commonjs --outDir dist/cjs",
13
14
  "lint": "eslint \"{**/*,*}.{js,ts,jsx,tsx}\"",
package/dist/cjs/index.js DELETED
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generate = exports.decompose = exports.getVerifier = exports.getBody = exports.calculateVerifier = exports.format = exports.clean = exports.validate = void 0;
4
- const getInvalidRutError = (rut) => `String "${rut}" is not valid as a RUT input`;
5
- const patterns = {
6
- cleaning: /^0+|[^0-9kK]+/g,
7
- rutLike: /^0*(\d{1,3}(\.?\d{3})*)-?([\dkK])$/,
8
- suspicious: /^(\d)\1?\.?(\1{3})\.?(\1{3})-?(\d|kK)?$/gi,
9
- };
10
- const clean = (rut) => {
11
- const cleanRut = rut.toUpperCase().replace(patterns.cleaning, '');
12
- if (cleanRut.length < 8 || cleanRut.length > 9)
13
- throw new Error(getInvalidRutError(rut));
14
- return cleanRut;
15
- };
16
- exports.clean = clean;
17
- const isRutLike = (rut) => patterns.rutLike.test(rut);
18
- const isSuspicious = (rut) => patterns.suspicious.test(rut);
19
- const validate = (rut, strict) => {
20
- if (!isRutLike(rut))
21
- return false;
22
- if (strict && isSuspicious(rut))
23
- return false;
24
- const r = clean(rut);
25
- let t = parseInt(r.slice(0, -1), 10);
26
- let m = 0;
27
- let s = 1;
28
- while (t > 0) {
29
- s = (s + (t % 10) * (9 - (m++ % 6))) % 11;
30
- t = Math.floor(t / 10);
31
- }
32
- const v = s > 0 ? '' + (s - 1) : 'K';
33
- return v === r.slice(-1);
34
- };
35
- exports.validate = validate;
36
- const format = (rut, dots = true) => {
37
- if (rut.length === 0)
38
- return '';
39
- const cleanRut = clean(rut);
40
- if (dots) {
41
- let result = cleanRut.slice(-4, -1) + '-' + cleanRut.substring(cleanRut.length - 1);
42
- for (let i = 4; i < cleanRut.length; i += 3) {
43
- result = cleanRut.slice(-3 - i, -i) + '.' + result;
44
- }
45
- return result;
46
- }
47
- return cleanRut.slice(0, -1) + '-' + cleanRut.substring(cleanRut.length - 1);
48
- };
49
- exports.format = format;
50
- const calculateVerifier = (rut) => {
51
- const r = Array.from(clean(rut), Number);
52
- if (r.length === 0 || r.includes(NaN))
53
- throw new Error(getInvalidRutError(rut));
54
- const modulus = 11;
55
- const initialValue = 0;
56
- const sum = r
57
- .reverse()
58
- .reduce((accumulator, currentValue, index) => accumulator + currentValue * ((index % 6) + 2), initialValue);
59
- const verifierDigit = modulus - (sum % modulus);
60
- if (verifierDigit === 10)
61
- return 'K';
62
- if (verifierDigit === 11)
63
- return '0';
64
- return `${verifierDigit}`;
65
- };
66
- exports.calculateVerifier = calculateVerifier;
67
- const getBody = (rut) => clean(rut).slice(0, -1);
68
- exports.getBody = getBody;
69
- const getVerifier = (rut) => clean(rut).slice(-1);
70
- exports.getVerifier = getVerifier;
71
- const decompose = (rut) => ({ body: getBody(rut), verifier: getVerifier(rut) });
72
- exports.decompose = decompose;
73
- const generate = () => {
74
- const body = Math.floor(Math.random() * (24999999 - 1000000 + 1) + 1000000).toString();
75
- const verifier = calculateVerifier(body);
76
- return format(body + verifier);
77
- };
78
- exports.generate = generate;
79
- //# sourceMappingURL=index.js.map
package/dist/esm/index.js DELETED
@@ -1,69 +0,0 @@
1
- const getInvalidRutError = (rut) => `String "${rut}" is not valid as a RUT input`;
2
- const patterns = {
3
- cleaning: /^0+|[^0-9kK]+/g,
4
- rutLike: /^0*(\d{1,3}(\.?\d{3})*)-?([\dkK])$/,
5
- suspicious: /^(\d)\1?\.?(\1{3})\.?(\1{3})-?(\d|kK)?$/gi,
6
- };
7
- const clean = (rut) => {
8
- const cleanRut = rut.toUpperCase().replace(patterns.cleaning, '');
9
- if (cleanRut.length < 8 || cleanRut.length > 9)
10
- throw new Error(getInvalidRutError(rut));
11
- return cleanRut;
12
- };
13
- const isRutLike = (rut) => patterns.rutLike.test(rut);
14
- const isSuspicious = (rut) => patterns.suspicious.test(rut);
15
- const validate = (rut, strict) => {
16
- if (!isRutLike(rut))
17
- return false;
18
- if (strict && isSuspicious(rut))
19
- return false;
20
- const r = clean(rut);
21
- let t = parseInt(r.slice(0, -1), 10);
22
- let m = 0;
23
- let s = 1;
24
- while (t > 0) {
25
- s = (s + (t % 10) * (9 - (m++ % 6))) % 11;
26
- t = Math.floor(t / 10);
27
- }
28
- const v = s > 0 ? '' + (s - 1) : 'K';
29
- return v === r.slice(-1);
30
- };
31
- const format = (rut, dots = true) => {
32
- if (rut.length === 0)
33
- return '';
34
- const cleanRut = clean(rut);
35
- if (dots) {
36
- let result = cleanRut.slice(-4, -1) + '-' + cleanRut.substring(cleanRut.length - 1);
37
- for (let i = 4; i < cleanRut.length; i += 3) {
38
- result = cleanRut.slice(-3 - i, -i) + '.' + result;
39
- }
40
- return result;
41
- }
42
- return cleanRut.slice(0, -1) + '-' + cleanRut.substring(cleanRut.length - 1);
43
- };
44
- const calculateVerifier = (rut) => {
45
- const r = Array.from(clean(rut), Number);
46
- if (r.length === 0 || r.includes(NaN))
47
- throw new Error(getInvalidRutError(rut));
48
- const modulus = 11;
49
- const initialValue = 0;
50
- const sum = r
51
- .reverse()
52
- .reduce((accumulator, currentValue, index) => accumulator + currentValue * ((index % 6) + 2), initialValue);
53
- const verifierDigit = modulus - (sum % modulus);
54
- if (verifierDigit === 10)
55
- return 'K';
56
- if (verifierDigit === 11)
57
- return '0';
58
- return `${verifierDigit}`;
59
- };
60
- const getBody = (rut) => clean(rut).slice(0, -1);
61
- const getVerifier = (rut) => clean(rut).slice(-1);
62
- const decompose = (rut) => ({ body: getBody(rut), verifier: getVerifier(rut) });
63
- const generate = () => {
64
- const body = Math.floor(Math.random() * (24999999 - 1000000 + 1) + 1000000).toString();
65
- const verifier = calculateVerifier(body);
66
- return format(body + verifier);
67
- };
68
- export { validate, clean, format, calculateVerifier, getBody, getVerifier, decompose, generate };
69
- //# sourceMappingURL=index.js.map