chilean-plate-validator 0.7.6 → 0.8.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.
@@ -0,0 +1,15 @@
1
+ /**
2
+ * RegExes build by chilean civil registration specifications.<br>
3
+ * [«Instructivo para Validación de Patentes - Servicio de Registro Civil e Identificación»](https://www.registrocivil.cl/PortalOI/Manuales/ValidacionPatentes.pdf)
4
+ */
5
+ export declare const REGEX_LIST: {
6
+ name: string;
7
+ regex: RegExp;
8
+ }[];
9
+ /**
10
+ * Source [Wikipedia: Matrículas automovilísticas de Chile](https://es.wikipedia.org/wiki/Matrículas_automovilísticas_de_Chile)
11
+ */
12
+ export declare const SPECIAL_PLATES: {
13
+ combination: string;
14
+ name: string;
15
+ }[];
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SPECIAL_PLATES = exports.REGEX_LIST = void 0;
4
+ /**
5
+ * RegExes build by chilean civil registration specifications.<br>
6
+ * [«Instructivo para Validación de Patentes - Servicio de Registro Civil e Identificación»](https://www.registrocivil.cl/PortalOI/Manuales/ValidacionPatentes.pdf)
7
+ */
8
+ exports.REGEX_LIST = [
9
+ { name: 'OLD_PLATE', regex: /^(?=.{6}$)[A-Z]{2}\d{4}[^s]*$/ },
10
+ { name: 'NEW_VEHICLE_PLATE', regex: /^(?=.{6}$)[B-DF-HJ-LPR-TV-Z]{4}[1-9]\d[^s]*$/ },
11
+ { name: 'NEW_MOTORCYCLE_PLATE', regex: /^(?=.{6}$)[B-DF-HJ-LPR-TV-Z]{3}\d{3}[^s]*$/ },
12
+ { name: 'POLICE', regex: /^(?=.{5}$)[BCJMZ]\d{4}[^s]*$/ },
13
+ { name: 'AMBULANCE', regex: /^(?=.{5}$)A\d{4}[^s]*$/ },
14
+ ];
15
+ /**
16
+ * Source [Wikipedia: Matrículas automovilísticas de Chile](https://es.wikipedia.org/wiki/Matrículas_automovilísticas_de_Chile)
17
+ */
18
+ exports.SPECIAL_PLATES = [
19
+ { combination: 'AG', name: 'GRÚA' },
20
+ { combination: 'AP', name: 'CAMIONETA_APOYO_POLICIAL' },
21
+ { combination: 'AT', name: 'ASISTENCIA_TÉCNICA_PERSONAL' },
22
+ { combination: 'CB', name: 'CARRO_BLINDADO' },
23
+ { combination: 'CC', name: 'CUERPO_CONSULAR' },
24
+ { combination: 'CD', name: 'CUERPO_DIPLOMÁTICO' },
25
+ { combination: 'CH', name: 'CÓNSUL_HONORARIO' },
26
+ { combination: 'CR', name: 'CARRO_RODANTE' },
27
+ { combination: 'LA', name: 'CARRO_LANZA_AGUA' },
28
+ { combination: 'LC', name: 'LANCHA' },
29
+ { combination: 'OI', name: 'ORGANISMO_INTERNACIONAL' },
30
+ { combination: 'PR', name: 'PATENTE_PROVISORIA' },
31
+ { combination: 'RP', name: 'RADIOPATRULLA' },
32
+ { combination: 'TC', name: 'TRANSPORTE_ESCUELA_CABALLERÍA' }
33
+ ];
34
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,UAAU,GAAG;IACxB,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,+BAA+B,EAAE;IAC7D,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,8CAA8C,EAAE;IACpF,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,4CAA4C,EAAE;IACrF,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,8BAA8B,EAAE;IACzD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,wBAAwB,EAAE;CACvD,CAAA;AAED;;GAEG;AACU,QAAA,cAAc,GAAG;IAC5B,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IACnC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,0BAA0B,EAAE;IACvD,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,6BAA6B,EAAE;IAC1D,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAC7C,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC9C,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE;IACjD,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;IAC/C,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE;IAC5C,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;IAC/C,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACtD,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE;IACjD,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE;IAC5C,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,+BAA+B,EAAE;CAC7D,CAAA"}
package/dist/index.js CHANGED
@@ -1,15 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CLPlate = exports.plateType = exports.plateValid = void 0;
4
- /**
5
- * RegExes build by chilean civil registration specifications.<br>
6
- * [«Instructivo para Validación de Patentes - Servicio de Registro Civil e Identificación»](https://www.registrocivil.cl/PortalOI/Manuales/ValidacionPatentes.pdf)
7
- */
8
- var REGEX_LIST = [
9
- { name: 'OLD_PLATE', regex: /^(?=.{6}$)[A-Z]{2}\d{4}[^s]*$/ },
10
- { name: 'NEW_VEHICLE_PLATE', regex: /^(?=.{6}$)[B-DF-HJ-LPR-TV-Z]{4}[1-9]\d[^s]*$/ },
11
- { name: 'NEW_MOTORCYCLE_PLATE', regex: /^(?=.{6}$)[B-DF-HJ-LPR-TV-Z]{3}\d{3}[^s]*$/ },
12
- ];
4
+ var constants_1 = require("./constants");
13
5
  /**
14
6
  * Verifies if the plate is valid in Chile.
15
7
  *
@@ -19,9 +11,7 @@ var REGEX_LIST = [
19
11
  * false otherwise.
20
12
  */
21
13
  function plateValid(plate) {
22
- if (plate == null)
23
- return false;
24
- return !!REGEX_LIST.find(function (reg) { return reg.regex.test(plate.toUpperCase()); });
14
+ return !!constants_1.REGEX_LIST.find(function (reg) { return reg.regex.test(plate.toUpperCase()); });
25
15
  }
26
16
  exports.plateValid = plateValid;
27
17
  /**
@@ -32,9 +22,13 @@ exports.plateValid = plateValid;
32
22
  * @returns The type according to the RegEx that matches the plate submitted.
33
23
  */
34
24
  function plateType(plate) {
35
- if (plate == null)
36
- return 'INVALID';
37
- var findPlate = REGEX_LIST.find(function (reg) { return reg.regex.test(plate.toUpperCase()); });
25
+ var _plate = plate.toUpperCase();
26
+ var findPlate = constants_1.REGEX_LIST.find(function (reg) { return reg.regex.test(_plate); });
27
+ if ((findPlate === null || findPlate === void 0 ? void 0 : findPlate.name) === 'OLD_PLATE') {
28
+ var specialPlate = constants_1.SPECIAL_PLATES.find(function (sp) { return _plate.indexOf(sp.combination) > -1; });
29
+ if (!!specialPlate)
30
+ return specialPlate.name;
31
+ }
38
32
  return (findPlate ? findPlate.name : 'INVALID');
39
33
  }
40
34
  exports.plateType = plateType;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAM,UAAU,GAAG;IACjB,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,+BAA+B,EAAE;IAC7D,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,8CAA8C,EAAE;IACpF,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,4CAA4C,EAAE;CACtF,CAAA;AAED;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,KAAa;IACtC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAnC,CAAmC,CAAC,CAAC;AACvE,CAAC;AAHD,gCAGC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,KAAa;IACrC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,IAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAnC,CAAmC,CAAC,CAAC;IAC9E,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAJD,8BAIC;AAED;;GAEG;AACH;IAIE;;;;OAIG;IACH,iBAAY,KAAa;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,sBAAI,0BAAK;aAAT;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;;;OAAA;IAED,sBAAI,yBAAI;aAAR;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;;;OAAA;IAEH,cAAC;AAAD,CAAC,AAtBD,IAsBC;AAtBY,0BAAO"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAyD;AAEzD;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,CAAC,CAAC,sBAAU,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAnC,CAAmC,CAAC,CAAC;AACvE,CAAC;AAFD,gCAEC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,KAAa;IACrC,IAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACnC,IAAM,SAAS,GAAG,sBAAU,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAtB,CAAsB,CAAC,CAAC;IACjE,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,WAAW,EAAE;QACnC,IAAM,YAAY,GAAG,0BAAc,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAnC,CAAmC,CAAE,CAAC;QACrF,IAAG,CAAC,CAAC,YAAY;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC;KAC7C;IACD,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AARD,8BAQC;AAED;;GAEG;AACH;IAIE;;;;OAIG;IACH,iBAAY,KAAa;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,sBAAI,0BAAK;aAAT;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;;;OAAA;IAED,sBAAI,yBAAI;aAAR;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;;;OAAA;IAEH,cAAC;AAAD,CAAC,AAtBD,IAsBC;AAtBY,0BAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chilean-plate-validator",
3
- "version": "0.7.6",
3
+ "version": "0.8.0",
4
4
  "description": "Simple chilean plate validator",
5
5
  "author": "Gabriel Galilea",
6
6
  "license": "MIT License",