rut.ts 2.0.0 → 2.1.0

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.
@@ -2,6 +2,10 @@ type DecomposedRut = {
2
2
  body: string;
3
3
  verifier: string;
4
4
  };
5
+ type FormatOptions = {
6
+ incremental?: boolean;
7
+ dots?: boolean;
8
+ };
5
9
  export declare const getInvalidRutError: (rut: string) => string;
6
10
  /**
7
11
  * Cleans the input string by removing leading zeros, non-numeric characters, and ensures the RUT is uppercased. Throws an error if the cleaned RUT is not within the valid length range or if 'K' is not in the correct position.
@@ -49,11 +53,12 @@ declare const validate: (rut: string, strict?: boolean) => boolean;
49
53
  /**
50
54
  * Formats a given RUT string, with options for incremental formatting and dot separators.
51
55
  * @param {string} rut - The RUT string to format.
52
- * @param {boolean} [incremental=false] - Whether to format the RUT incrementally.
53
- * @param {boolean} [dots=true] - Whether to include dot separators in the formatted RUT.
56
+ * @param options {FormatOptions} - The formatting options.
57
+ * @param {boolean} options.incremental - Whether to format the RUT incrementally.
58
+ * @param {boolean} options.dots - Whether to include dot separators in the formatted RUT.
54
59
  * @returns {string} The formatted RUT string.
55
60
  */
56
- declare const format: (rut: string, incremental?: boolean, dots?: boolean) => string;
61
+ declare const format: (rut: string, options?: FormatOptions) => string;
57
62
  /**
58
63
  * Generates a random valid RUT string.
59
64
  * @returns {string} A randomly generated, valid RUT string.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.generate=exports.decompose=exports.getVerifier=exports.getBody=exports.calculateVerifier=exports.format=exports.clean=exports.validate=exports.getInvalidRutError=void 0;const getInvalidRutError=e=>`String "${e}" is not valid as a RUT input`;exports.getInvalidRutError=getInvalidRutError;const MIN_RUT_LENGTH=8,MAX_RUT_LENGTH=9,patterns={cleaning:/^0+|[^0-9kK]+/g,rutLike:/^0*(\d{1,3}(\.?\d{3})*)-?([\dkK])$/,suspicious:/^(\d)\1?\.?(\1{3})\.?(\1{3})-?(\d|k)?$/},clean=e=>{const t=e.replace(patterns.cleaning,"").toUpperCase();if(t.length<8||t.length>9)throw new Error((0,exports.getInvalidRutError)(e));if(t.includes("K")&&t.indexOf("K")!==t.length-1)throw new Error((0,exports.getInvalidRutError)(e));return t};exports.clean=clean;const getBody=e=>clean(e).slice(0,-1);exports.getBody=getBody;const getVerifier=e=>clean(e).slice(-1);exports.getVerifier=getVerifier;const decompose=e=>({body:getBody(e),verifier:getVerifier(e)});exports.decompose=decompose;const isRutLike=e=>patterns.rutLike.test(e),isSuspicious=e=>patterns.suspicious.test(e),calculateVerifier=e=>{const t=clean(e);if(0===t.length)throw new Error((0,exports.getInvalidRutError)(e));const r=11-t.split("").reverse().reduce(((e,t,r)=>e+Number(t)*(r%6+2)),0)%11;return 11===r?"0":10===r?"K":r.toString()};exports.calculateVerifier=calculateVerifier;const validate=(e,t)=>{if(!isRutLike(e))return!1;if(t&&isSuspicious(e))return!1;const{body:r,verifier:o}=decompose(e);return calculateVerifier(r)===o};exports.validate=validate;const format=(e,t=!1,r=!0)=>{if(0===e.length)return"";if(e.length<=6&&!r)return e;const o=clean(e);if(t){let e=o.slice(-1);o.length>1&&(e=o.slice(-4,-1)+"-"+e);for(let t=4;t<o.length;t+=3){const i=o.length-3-t<0?0:o.length-3-t;e=r?o.slice(i,o.length-t)+"."+e:o.slice(i,o.length-t)+e}return e}if(r){let e=o.slice(-4,-1)+"-"+o.substring(o.length-1);for(let t=4;t<o.length;t+=3)e=o.slice(-3-t,-t)+"."+e;return e}return o.slice(0,-1)+"-"+o.substring(o.length-1)};exports.format=format;const generate=()=>{const e=Math.floor(10000003+9e7*Math.random()).toString(),t=calculateVerifier(e);return format(e+t)};exports.generate=generate;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.generate=exports.decompose=exports.getVerifier=exports.getBody=exports.calculateVerifier=exports.format=exports.clean=exports.validate=exports.getInvalidRutError=void 0;const getInvalidRutError=e=>`String "${e}" is not valid as a RUT input`;exports.getInvalidRutError=getInvalidRutError;const MIN_RUT_LENGTH=8,MAX_RUT_LENGTH=9,patterns={cleaning:/^0+|[^0-9kK]+/g,rutLike:/^0*(\d{1,3}(\.?\d{3})*)-?([\dkK])$/,suspicious:/^(\d)\1?\.?(\1{3})\.?(\1{3})-?(\d|k)?$/},clean=e=>{const t=e.replace(patterns.cleaning,"").toUpperCase();if(t.length<8||t.length>9)throw new Error((0,exports.getInvalidRutError)(e));if(t.includes("K")&&t.indexOf("K")!==t.length-1)throw new Error((0,exports.getInvalidRutError)(e));return t};exports.clean=clean;const getBody=e=>clean(e).slice(0,-1);exports.getBody=getBody;const getVerifier=e=>clean(e).slice(-1);exports.getVerifier=getVerifier;const decompose=e=>({body:getBody(e),verifier:getVerifier(e)});exports.decompose=decompose;const isRutLike=e=>patterns.rutLike.test(e),isSuspicious=e=>patterns.suspicious.test(e),calculateVerifier=e=>{const t=clean(e);if(0===t.length)throw new Error((0,exports.getInvalidRutError)(e));const r=11-t.split("").reverse().reduce(((e,t,r)=>e+Number(t)*(r%6+2)),0)%11;return 11===r?"0":10===r?"K":r.toString()};exports.calculateVerifier=calculateVerifier;const validate=(e,t)=>{if(!isRutLike(e))return!1;if(t&&isSuspicious(e))return!1;const{body:r,verifier:o}=decompose(e);return calculateVerifier(r)===o};exports.validate=validate;const format=(e,t)=>{var r,o;const i=null!==(r=null==t?void 0:t.incremental)&&void 0!==r&&r,n=null===(o=null==t?void 0:t.dots)||void 0===o||o;if(0===e.length)return"";if(e.length<=6&&!n)return e;const s=clean(e);if(i){let e=s.slice(-1);s.length>1&&(e=s.slice(-4,-1)+"-"+e);for(let t=4;t<s.length;t+=3){const r=s.length-3-t<0?0:s.length-3-t;e=n?s.slice(r,s.length-t)+"."+e:s.slice(r,s.length-t)+e}return e}if(n){let e=s.slice(-4,-1)+"-"+s.substring(s.length-1);for(let t=4;t<s.length;t+=3)e=s.slice(-3-t,-t)+"."+e;return e}return s.slice(0,-1)+"-"+s.substring(s.length-1)};exports.format=format;const generate=()=>{const e=Math.floor(10000003+9e7*Math.random()).toString(),t=calculateVerifier(e);return format(e+t)};exports.generate=generate;
@@ -2,6 +2,10 @@ type DecomposedRut = {
2
2
  body: string;
3
3
  verifier: string;
4
4
  };
5
+ type FormatOptions = {
6
+ incremental?: boolean;
7
+ dots?: boolean;
8
+ };
5
9
  export declare const getInvalidRutError: (rut: string) => string;
6
10
  /**
7
11
  * Cleans the input string by removing leading zeros, non-numeric characters, and ensures the RUT is uppercased. Throws an error if the cleaned RUT is not within the valid length range or if 'K' is not in the correct position.
@@ -49,11 +53,12 @@ declare const validate: (rut: string, strict?: boolean) => boolean;
49
53
  /**
50
54
  * Formats a given RUT string, with options for incremental formatting and dot separators.
51
55
  * @param {string} rut - The RUT string to format.
52
- * @param {boolean} [incremental=false] - Whether to format the RUT incrementally.
53
- * @param {boolean} [dots=true] - Whether to include dot separators in the formatted RUT.
56
+ * @param options {FormatOptions} - The formatting options.
57
+ * @param {boolean} options.incremental - Whether to format the RUT incrementally.
58
+ * @param {boolean} options.dots - Whether to include dot separators in the formatted RUT.
54
59
  * @returns {string} The formatted RUT string.
55
60
  */
56
- declare const format: (rut: string, incremental?: boolean, dots?: boolean) => string;
61
+ declare const format: (rut: string, options?: FormatOptions) => string;
57
62
  /**
58
63
  * Generates a random valid RUT string.
59
64
  * @returns {string} A randomly generated, valid RUT string.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export const getInvalidRutError=e=>`String "${e}" is not valid as a RUT input`;const MIN_RUT_LENGTH=8,MAX_RUT_LENGTH=9,patterns={cleaning:/^0+|[^0-9kK]+/g,rutLike:/^0*(\d{1,3}(\.?\d{3})*)-?([\dkK])$/,suspicious:/^(\d)\1?\.?(\1{3})\.?(\1{3})-?(\d|k)?$/},clean=e=>{const t=e.replace(patterns.cleaning,"").toUpperCase();if(t.length<8||t.length>9)throw new Error(getInvalidRutError(e));if(t.includes("K")&&t.indexOf("K")!==t.length-1)throw new Error(getInvalidRutError(e));return t},getBody=e=>clean(e).slice(0,-1),getVerifier=e=>clean(e).slice(-1),decompose=e=>({body:getBody(e),verifier:getVerifier(e)}),isRutLike=e=>patterns.rutLike.test(e),isSuspicious=e=>patterns.suspicious.test(e),calculateVerifier=e=>{const t=clean(e);if(0===t.length)throw new Error(getInvalidRutError(e));const r=11-t.split("").reverse().reduce(((e,t,r)=>e+Number(t)*(r%6+2)),0)%11;return 11===r?"0":10===r?"K":r.toString()},validate=(e,t)=>{if(!isRutLike(e))return!1;if(t&&isSuspicious(e))return!1;const{body:r,verifier:i}=decompose(e);return calculateVerifier(r)===i},format=(e,t=!1,r=!0)=>{if(0===e.length)return"";if(e.length<=6&&!r)return e;const i=clean(e);if(t){let e=i.slice(-1);i.length>1&&(e=i.slice(-4,-1)+"-"+e);for(let t=4;t<i.length;t+=3){const n=i.length-3-t<0?0:i.length-3-t;e=r?i.slice(n,i.length-t)+"."+e:i.slice(n,i.length-t)+e}return e}if(r){let e=i.slice(-4,-1)+"-"+i.substring(i.length-1);for(let t=4;t<i.length;t+=3)e=i.slice(-3-t,-t)+"."+e;return e}return i.slice(0,-1)+"-"+i.substring(i.length-1)},generate=()=>{const e=Math.floor(10000003+9e7*Math.random()).toString(),t=calculateVerifier(e);return format(e+t)};export{validate,clean,format,calculateVerifier,getBody,getVerifier,decompose,generate};
1
+ export const getInvalidRutError=e=>`String "${e}" is not valid as a RUT input`;const MIN_RUT_LENGTH=8,MAX_RUT_LENGTH=9,patterns={cleaning:/^0+|[^0-9kK]+/g,rutLike:/^0*(\d{1,3}(\.?\d{3})*)-?([\dkK])$/,suspicious:/^(\d)\1?\.?(\1{3})\.?(\1{3})-?(\d|k)?$/},clean=e=>{const t=e.replace(patterns.cleaning,"").toUpperCase();if(t.length<8||t.length>9)throw new Error(getInvalidRutError(e));if(t.includes("K")&&t.indexOf("K")!==t.length-1)throw new Error(getInvalidRutError(e));return t},getBody=e=>clean(e).slice(0,-1),getVerifier=e=>clean(e).slice(-1),decompose=e=>({body:getBody(e),verifier:getVerifier(e)}),isRutLike=e=>patterns.rutLike.test(e),isSuspicious=e=>patterns.suspicious.test(e),calculateVerifier=e=>{const t=clean(e);if(0===t.length)throw new Error(getInvalidRutError(e));const r=11-t.split("").reverse().reduce(((e,t,r)=>e+Number(t)*(r%6+2)),0)%11;return 11===r?"0":10===r?"K":r.toString()},validate=(e,t)=>{if(!isRutLike(e))return!1;if(t&&isSuspicious(e))return!1;const{body:r,verifier:i}=decompose(e);return calculateVerifier(r)===i},format=(e,t)=>{var r,i;const n=null!==(r=null==t?void 0:t.incremental)&&void 0!==r&&r,l=null===(i=null==t?void 0:t.dots)||void 0===i||i;if(0===e.length)return"";if(e.length<=6&&!l)return e;const o=clean(e);if(n){let e=o.slice(-1);o.length>1&&(e=o.slice(-4,-1)+"-"+e);for(let t=4;t<o.length;t+=3){const r=o.length-3-t<0?0:o.length-3-t;e=l?o.slice(r,o.length-t)+"."+e:o.slice(r,o.length-t)+e}return e}if(l){let e=o.slice(-4,-1)+"-"+o.substring(o.length-1);for(let t=4;t<o.length;t+=3)e=o.slice(-3-t,-t)+"."+e;return e}return o.slice(0,-1)+"-"+o.substring(o.length-1)},generate=()=>{const e=Math.floor(10000003+9e7*Math.random()).toString(),t=calculateVerifier(e);return format(e+t)};export{validate,clean,format,calculateVerifier,getBody,getVerifier,decompose,generate};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rut.ts",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Handle chilean RUT values with ease.",
5
5
  "author": "hansfpc",
6
6
  "main": "./dist/cjs/index.min.js",