@caucasus/az-utils 0.1.10 → 0.2.3

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/README.md CHANGED
@@ -28,7 +28,7 @@ More utilities (FIN, IBAN, passport, addresses) will be added incrementally.
28
28
  ## 📦 Installation
29
29
 
30
30
  ```bash
31
- npm install @samurai-jack/az-utils
31
+ npm install @caucasus/az-utils
32
32
 
33
33
  ```
34
34
 
@@ -38,7 +38,9 @@ npm install @samurai-jack/az-utils
38
38
  import {
39
39
  isValidAzPhone,
40
40
  normalizeAzPhone,
41
- getAzMobileOperator
41
+ getAzMobileOperator,
42
+ IsAzPhone,
43
+ TransformAzPhone
42
44
  } from "az-utils";
43
45
 
44
46
  ```
@@ -82,6 +84,15 @@ getAzMobileOperator("0771234567");
82
84
 
83
85
  ```
84
86
 
87
+ ## Decorator support (DTO)
88
+
89
+ ```
90
+ class TestDto {
91
+ @IsAzPhone()
92
+ phone!: string;
93
+ }
94
+ ```
95
+
85
96
  ### Supported Prefixes
86
97
 
87
98
  | Prefix | Operator |
@@ -0,0 +1,2 @@
1
+ export { IsAzPhone } from "./isAzPhone.decorator";
2
+ export { TransformAzPhone } from "./transformAzPhone.decorator";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransformAzPhone = exports.IsAzPhone = void 0;
4
+ var isAzPhone_decorator_1 = require("./isAzPhone.decorator");
5
+ Object.defineProperty(exports, "IsAzPhone", { enumerable: true, get: function () { return isAzPhone_decorator_1.IsAzPhone; } });
6
+ var transformAzPhone_decorator_1 = require("./transformAzPhone.decorator");
7
+ Object.defineProperty(exports, "TransformAzPhone", { enumerable: true, get: function () { return transformAzPhone_decorator_1.TransformAzPhone; } });
@@ -0,0 +1,2 @@
1
+ import { ValidationOptions } from "class-validator";
2
+ export declare function IsAzPhone(validationOptions?: ValidationOptions): PropertyDecorator;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.IsAzPhone = IsAzPhone;
7
+ const class_validator_1 = require("class-validator");
8
+ const isValidAzPhone_1 = __importDefault(require("../isValidAzPhone"));
9
+ function IsAzPhone(validationOptions) {
10
+ return (target, propertyName) => {
11
+ (0, class_validator_1.registerDecorator)({
12
+ name: "IsAzPhone",
13
+ target: target.constructor,
14
+ propertyName: propertyName,
15
+ options: validationOptions,
16
+ validator: {
17
+ validate(value) {
18
+ return typeof value === "string" && (0, isValidAzPhone_1.default)(value);
19
+ },
20
+ defaultMessage(args) {
21
+ return `${args.property} must be a valid Azerbaijan phone number`;
22
+ },
23
+ },
24
+ });
25
+ };
26
+ }
@@ -0,0 +1 @@
1
+ export declare function TransformAzPhone(): PropertyDecorator;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransformAzPhone = TransformAzPhone;
4
+ const class_transformer_1 = require("class-transformer");
5
+ const normalizeAzPhone_1 = require("../normalizeAzPhone");
6
+ function TransformAzPhone() {
7
+ return (0, class_transformer_1.Transform)(({ value }) => {
8
+ if (value === undefined || value === null)
9
+ return value;
10
+ if (typeof value !== "string")
11
+ return value;
12
+ return (0, normalizeAzPhone_1.normalizeAzPhone)(value);
13
+ });
14
+ }
@@ -2,3 +2,4 @@ export { isValidAzPhone } from "./isValidAzPhone";
2
2
  export { normalizeAzPhone } from "./normalizeAzPhone";
3
3
  export { getAzMobileOperator } from "./getAzMobileOperator";
4
4
  export type { AzMobileOperator } from "./operators";
5
+ export * from './decorators';
@@ -1,4 +1,18 @@
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
17
  exports.getAzMobileOperator = exports.normalizeAzPhone = exports.isValidAzPhone = void 0;
4
18
  var isValidAzPhone_1 = require("./isValidAzPhone");
@@ -7,3 +21,4 @@ var normalizeAzPhone_1 = require("./normalizeAzPhone");
7
21
  Object.defineProperty(exports, "normalizeAzPhone", { enumerable: true, get: function () { return normalizeAzPhone_1.normalizeAzPhone; } });
8
22
  var getAzMobileOperator_1 = require("./getAzMobileOperator");
9
23
  Object.defineProperty(exports, "getAzMobileOperator", { enumerable: true, get: function () { return getAzMobileOperator_1.getAzMobileOperator; } });
24
+ __exportStar(require("./decorators"), exports);
@@ -1 +1,2 @@
1
1
  export declare function isValidAzPhone(phone: string): boolean;
2
+ export default isValidAzPhone;
@@ -31,3 +31,4 @@ function isValidAzPhone(phone) {
31
31
  const operatorPrefix = localNumber.slice(0, 2);
32
32
  return operatorPrefix in operators_1.OPERATOR_PREFIX_MAP;
33
33
  }
34
+ exports.default = isValidAzPhone;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caucasus/az-utils",
3
- "version": "0.1.10",
3
+ "version": "0.2.3",
4
4
  "description": "Azerbaijan-specific utility functions for Node.js backends",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -34,5 +34,10 @@
34
34
  "access": "public"
35
35
  },
36
36
  "author": "Javid Guliyev",
37
- "license": "MIT"
37
+ "license": "MIT",
38
+ "dependencies": {
39
+ "class-transformer": "^0.5.1",
40
+ "class-validator": "^0.14.3",
41
+ "reflect-metadata": "^0.2.2"
42
+ }
38
43
  }