@spinajs/validation 2.0.86 → 2.0.88

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 (93) hide show
  1. package/lib/{bootstrap.d.ts → cjs/bootstrap.d.ts} +0 -0
  2. package/lib/cjs/bootstrap.d.ts.map +1 -0
  3. package/lib/cjs/bootstrap.js +24 -0
  4. package/lib/cjs/bootstrap.js.map +1 -0
  5. package/lib/{config → cjs/config}/validation.d.ts +0 -0
  6. package/lib/cjs/config/validation.d.ts.map +1 -0
  7. package/lib/cjs/config/validation.js +16 -0
  8. package/lib/cjs/config/validation.js.map +1 -0
  9. package/lib/{decorators.d.ts → cjs/decorators.d.ts} +0 -0
  10. package/lib/cjs/decorators.d.ts.map +1 -0
  11. package/lib/cjs/decorators.js +17 -0
  12. package/lib/cjs/decorators.js.map +1 -0
  13. package/lib/{exceptions → cjs/exceptions}/index.d.ts +0 -0
  14. package/lib/cjs/exceptions/index.d.ts.map +1 -0
  15. package/lib/cjs/exceptions/index.js +15 -0
  16. package/lib/cjs/exceptions/index.js.map +1 -0
  17. package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
  18. package/lib/cjs/index.d.ts.map +1 -0
  19. package/lib/cjs/index.js +35 -0
  20. package/lib/cjs/index.js.map +1 -0
  21. package/lib/{schemas → cjs/schemas}/validation.d.ts +0 -0
  22. package/lib/cjs/schemas/validation.d.ts.map +1 -0
  23. package/lib/cjs/schemas/validation.js +16 -0
  24. package/lib/cjs/schemas/validation.js.map +1 -0
  25. package/lib/{sources.d.ts → cjs/sources.d.ts} +0 -0
  26. package/lib/cjs/sources.d.ts.map +1 -0
  27. package/lib/cjs/sources.js +94 -0
  28. package/lib/cjs/sources.js.map +1 -0
  29. package/lib/{types.d.ts → cjs/types.d.ts} +0 -0
  30. package/lib/cjs/types.d.ts.map +1 -0
  31. package/lib/cjs/types.js +7 -0
  32. package/lib/cjs/types.js.map +1 -0
  33. package/lib/{validator.d.ts → cjs/validator.d.ts} +10 -2
  34. package/lib/cjs/validator.d.ts.map +1 -0
  35. package/lib/cjs/validator.js +165 -0
  36. package/lib/cjs/validator.js.map +1 -0
  37. package/lib/mjs/bootstrap.d.ts +5 -0
  38. package/lib/mjs/bootstrap.d.ts.map +1 -0
  39. package/lib/{bootstrap.js → mjs/bootstrap.js} +0 -0
  40. package/lib/mjs/bootstrap.js.map +1 -0
  41. package/lib/mjs/config/validation.d.ts +10 -0
  42. package/lib/mjs/config/validation.d.ts.map +1 -0
  43. package/lib/{config → mjs/config}/validation.js +0 -0
  44. package/lib/mjs/config/validation.js.map +1 -0
  45. package/lib/mjs/decorators.d.ts +9 -0
  46. package/lib/mjs/decorators.d.ts.map +1 -0
  47. package/lib/{decorators.js → mjs/decorators.js} +0 -0
  48. package/lib/mjs/decorators.js.map +1 -0
  49. package/lib/mjs/exceptions/index.d.ts +12 -0
  50. package/lib/mjs/exceptions/index.d.ts.map +1 -0
  51. package/lib/{exceptions → mjs/exceptions}/index.js +0 -0
  52. package/lib/mjs/exceptions/index.js.map +1 -0
  53. package/lib/mjs/index.d.ts +14 -0
  54. package/lib/mjs/index.d.ts.map +1 -0
  55. package/lib/{index.js → mjs/index.js} +0 -0
  56. package/lib/mjs/index.js.map +1 -0
  57. package/lib/mjs/schemas/validation.d.ts +22 -0
  58. package/lib/mjs/schemas/validation.d.ts.map +1 -0
  59. package/lib/{schemas → mjs/schemas}/validation.js +0 -0
  60. package/lib/mjs/schemas/validation.js.map +1 -0
  61. package/lib/mjs/sources.d.ts +14 -0
  62. package/lib/mjs/sources.d.ts.map +1 -0
  63. package/lib/{sources.js → mjs/sources.js} +0 -0
  64. package/lib/mjs/sources.js.map +1 -0
  65. package/lib/mjs/types.d.ts +18 -0
  66. package/lib/mjs/types.d.ts.map +1 -0
  67. package/lib/{types.js → mjs/types.js} +0 -0
  68. package/lib/mjs/types.js.map +1 -0
  69. package/lib/mjs/validator.d.ts +62 -0
  70. package/lib/mjs/validator.d.ts.map +1 -0
  71. package/lib/{validator.js → mjs/validator.js} +15 -1
  72. package/lib/mjs/validator.js.map +1 -0
  73. package/lib/tsconfig.cjs.tsbuildinfo +1 -0
  74. package/lib/tsconfig.tsbuildinfo +1 -0
  75. package/package.json +15 -6
  76. package/lib/bootstrap.d.ts.map +0 -1
  77. package/lib/bootstrap.js.map +0 -1
  78. package/lib/config/validation.d.ts.map +0 -1
  79. package/lib/config/validation.js.map +0 -1
  80. package/lib/decorators.d.ts.map +0 -1
  81. package/lib/decorators.js.map +0 -1
  82. package/lib/exceptions/index.d.ts.map +0 -1
  83. package/lib/exceptions/index.js.map +0 -1
  84. package/lib/index.d.ts.map +0 -1
  85. package/lib/index.js.map +0 -1
  86. package/lib/schemas/validation.d.ts.map +0 -1
  87. package/lib/schemas/validation.js.map +0 -1
  88. package/lib/sources.d.ts.map +0 -1
  89. package/lib/sources.js.map +0 -1
  90. package/lib/types.d.ts.map +0 -1
  91. package/lib/types.js.map +0 -1
  92. package/lib/validator.d.ts.map +0 -1
  93. package/lib/validator.js.map +0 -1
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAG3D,qBACa,oBAAqB,SAAQ,YAAY;IAC7C,SAAS,IAAI,IAAI;CAGzB"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ValidatorBootstraper = void 0;
13
+ const di_1 = require("@spinajs/di");
14
+ const validation_js_1 = __importDefault(require("./schemas/validation.js"));
15
+ let ValidatorBootstraper = class ValidatorBootstraper extends di_1.Bootstrapper {
16
+ bootstrap() {
17
+ di_1.DI.register(validation_js_1.default).asValue('__configurationSchema__');
18
+ }
19
+ };
20
+ ValidatorBootstraper = __decorate([
21
+ (0, di_1.Injectable)(di_1.Bootstrapper)
22
+ ], ValidatorBootstraper);
23
+ exports.ValidatorBootstraper = ValidatorBootstraper;
24
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAA2D;AAC3D,4EAA2D;AAGpD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,iBAAY;IAC7C,SAAS;QACd,OAAE,CAAC,QAAQ,CAAC,uBAAoB,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvE,CAAC;CACF,CAAA;AAJY,oBAAoB;IADhC,IAAA,eAAU,EAAC,iBAAY,CAAC;GACZ,oBAAoB,CAIhC;AAJY,oDAAoB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/config/validation.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;;;;;;;CAcX,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const config = {
4
+ validation: {
5
+ // enable all errors on validation, not only first one that occurred
6
+ allErrors: true,
7
+ // remove properties that are not defined in schema
8
+ removeAdditional: true,
9
+ // set default values if possible
10
+ useDefaults: true,
11
+ // The option coerceTypes allows you to have your data types coerced to the types specified in your schema type keywords
12
+ coerceTypes: true,
13
+ },
14
+ };
15
+ exports.default = config;
16
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/config/validation.ts"],"names":[],"mappings":";;AAAA,MAAM,MAAM,GAAG;IACb,UAAU,EAAE;QACV,qEAAqE;QACrE,SAAS,EAAE,IAAI;QAEf,mDAAmD;QACnD,gBAAgB,EAAE,IAAI;QAEtB,iCAAiC;QACjC,WAAW,EAAE,IAAI;QAEjB,wHAAwH;QACxH,WAAW,EAAE,IAAI;KAClB;CACF,CAAC;AAEF,kBAAe,MAAM,CAAC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,YAC5B,GAAG,UAGpB"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Schema = exports.SCHEMA_SYMBOL = void 0;
4
+ exports.SCHEMA_SYMBOL = Symbol('SCHEMA_SYMBOL');
5
+ /**
6
+ *
7
+ * Add schema for object eg. model or dto.
8
+ *
9
+ * @param schema - schema for object or schema name
10
+ */
11
+ function Schema(schema) {
12
+ return (target) => {
13
+ Reflect.defineMetadata(exports.SCHEMA_SYMBOL, schema, target.prototype ?? target);
14
+ };
15
+ }
16
+ exports.Schema = Schema;
17
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAErD;;;;;GAKG;AACH,SAAgB,MAAM,CAAC,MAAuB;IAC5C,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,qBAAa,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IAC5E,CAAC,CAAC;AACJ,CAAC;AAJD,wBAIC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAClC;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IACtC,SAAS,EAAE,GAAG,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE;CAIlE;AAGD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;CAAG"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationFailed = void 0;
4
+ const exceptions_1 = require("@spinajs/exceptions");
5
+ /**
6
+ * The exception that is thrown when JSON entity is checked against schema and is invalid
7
+ */
8
+ class ValidationFailed extends exceptions_1.Exception {
9
+ constructor(message, validationErrors) {
10
+ super(message);
11
+ this.parameter = validationErrors;
12
+ }
13
+ }
14
+ exports.ValidationFailed = ValidationFailed;
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exceptions/index.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEhD;;GAEG;AACH,MAAa,gBAAiB,SAAQ,sBAAS;IAG7C,YAAY,OAAe,EAAE,gBAAoC;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;IACpC,CAAC;CACF;AAPD,4CAOC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,35 @@
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
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.default = void 0;
21
+ /**
22
+ * We export default configuration for webpack modules
23
+ * Normally we load configuration from disk via filesystem
24
+ * But webpack is bundlig all files into one.
25
+ *
26
+ * When we export, we can see configuration variable
27
+ * in webpack module cache and webpack config loader can see it
28
+ */
29
+ var validation_js_1 = require("./config/validation.js");
30
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(validation_js_1).default; } });
31
+ __exportStar(require("./decorators.js"), exports);
32
+ __exportStar(require("./exceptions/index.js"), exports);
33
+ __exportStar(require("./sources.js"), exports);
34
+ __exportStar(require("./validator.js"), exports);
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,wDAAiD;AAAxC,yHAAA,OAAO,OAAA;AAChB,kDAAgC;AAChC,wDAAsC;AACtC,+CAA6B;AAC7B,iDAA+B"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/schemas/validation.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;CAWzB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const CONFIGURATION_SCHEMA = {
4
+ $id: 'spinajs/validation.configuration.schema.json',
5
+ $configurationModule: 'validation',
6
+ description: 'Validation module configuration schema',
7
+ type: 'object',
8
+ properties: {
9
+ allErrors: { type: 'boolean' },
10
+ removeAdditional: { type: 'boolean' },
11
+ useDefaults: { type: 'boolean' },
12
+ coerceTypes: { type: 'boolean' },
13
+ },
14
+ };
15
+ exports.default = CONFIGURATION_SCHEMA;
16
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/schemas/validation.ts"],"names":[],"mappings":";;AAAA,MAAM,oBAAoB,GAAG;IAC3B,GAAG,EAAE,8CAA8C;IACnD,oBAAoB,EAAE,YAAY;IAClC,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAChC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KACjC;CACF,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/sources.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAElE,qBACa,gBAAiB,SAAQ,YAAY;IAEzC,UAAU,EAAE,MAAM,EAAE,CAAC;IAEf,YAAY;;;;IAuBlB,cAAc;;;;IAaR,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;CAMxC"}
@@ -0,0 +1,94 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.FileSystemSource = void 0;
39
+ const configuration_1 = require("@spinajs/configuration");
40
+ const di_1 = require("@spinajs/di");
41
+ const fs = __importStar(require("fs"));
42
+ const glob_1 = __importDefault(require("glob"));
43
+ const path = __importStar(require("path"));
44
+ const types_js_1 = require("./types.js");
45
+ let FileSystemSource = class FileSystemSource extends types_js_1.SchemaSource {
46
+ async LoadJSSchema() {
47
+ if (!this.SchemaDirs)
48
+ return [];
49
+ const promises = this.SchemaDirs.filter((dir) => fs.existsSync(dir))
50
+ .flatMap((d) => glob_1.default.sync(path.join(d, '/**/*.+(js|cjs)').replace(/\\/g, '/')))
51
+ .map((f) => {
52
+ var _a;
53
+ return (_a = `file://${f}`, Promise.resolve().then(() => __importStar(require(_a)))).then((result) => {
54
+ return {
55
+ result: result,
56
+ file: path.basename(f),
57
+ };
58
+ });
59
+ });
60
+ const result = await Promise.all(promises);
61
+ return result.map((x) => {
62
+ return {
63
+ schema: x.result.default,
64
+ file: x.file,
65
+ };
66
+ });
67
+ }
68
+ LoadJSONSchema() {
69
+ if (!this.SchemaDirs)
70
+ return [];
71
+ return this.SchemaDirs.filter((dir) => fs.existsSync(dir))
72
+ .flatMap((d) => glob_1.default.sync(path.join(d, '/**/*.+(json)').replace(/\\/g, '/')))
73
+ .map((f) => {
74
+ return {
75
+ schema: JSON.parse(fs.readFileSync(f, 'utf-8')),
76
+ file: path.basename(f),
77
+ };
78
+ });
79
+ }
80
+ async Load() {
81
+ const sJS = await this.LoadJSSchema();
82
+ const sJSON = this.LoadJSONSchema();
83
+ return sJS.concat(sJSON);
84
+ }
85
+ };
86
+ __decorate([
87
+ (0, configuration_1.Config)('system.dirs.schemas'),
88
+ __metadata("design:type", Array)
89
+ ], FileSystemSource.prototype, "SchemaDirs", void 0);
90
+ FileSystemSource = __decorate([
91
+ (0, di_1.Injectable)(types_js_1.SchemaSource)
92
+ ], FileSystemSource);
93
+ exports.FileSystemSource = FileSystemSource;
94
+ //# sourceMappingURL=sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/sources.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAgD;AAChD,oCAAyC;AACzC,uCAAyB;AACzB,gDAAwB;AACxB,2CAA6B;AAC7B,yCAAkE;AAG3D,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,uBAAY;IAIzC,KAAK,CAAC,YAAY;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACjE,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;aACtF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;YACT,OAAO,MAAO,UAAU,CAAC,EAAE,2DAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC3C,OAAO;oBACL,MAAM,EAAE,MAA8B;oBACtC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACvB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,OAAO;gBACL,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,OAAwB;gBACzC,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,cAAc;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAEhC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACvD,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;aACpF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAkB;gBAChE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;aACvB,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF,CAAA;AA7CC;IAAC,IAAA,sBAAM,EAAC,qBAAqB,CAAC;;oDACF;AAFjB,gBAAgB;IAD5B,IAAA,eAAU,EAAC,uBAAY,CAAC;GACZ,gBAAgB,CA8C5B;AA9CY,4CAAgB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,8BAAsB,YAAY;aAChB,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,kBAAkB;IAEjC,SAAS,EAAE,OAAO,CAAC;IAGnB,gBAAgB,EAAE,OAAO,CAAC;IAG1B,WAAW,EAAE,OAAO,CAAC;IAGrB,WAAW,EAAE,OAAO,CAAC;CACtB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchemaSource = void 0;
4
+ class SchemaSource {
5
+ }
6
+ exports.SchemaSource = SchemaSource;
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAUA,MAAsB,YAAY;CAEjC;AAFD,oCAEC"}
@@ -1,14 +1,22 @@
1
1
  import { Container, AsyncService } from '@spinajs/di';
2
- import Ajv from 'ajv';
3
2
  import { IValidationError } from './exceptions/index.js';
4
3
  import { IValidationOptions, SchemaSource, ISchemaObject } from './types.js';
5
4
  import { ILog } from '@spinajs/log';
6
5
  import './sources.js';
6
+ /**
7
+ * HACK:
8
+ * Becouse of ajv not supporting esm default exports we need to
9
+ * check for default export module property and if not provided use module itself
10
+ */
7
11
  export declare class DataValidator extends AsyncService {
8
12
  Options: IValidationOptions;
9
13
  protected Sources: SchemaSource[];
10
14
  protected Log: ILog;
11
- protected Validator: Ajv.default;
15
+ /**
16
+ * We ignore this error because ajv have problems with
17
+ * commonjs / esm default exports
18
+ */
19
+ protected Validator: any;
12
20
  protected Container: Container;
13
21
  resolve(): Promise<void>;
14
22
  addSchema(schemaObject: object, identifier: string): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,YAAY,EAAa,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,gBAAgB,EAAoB,MAAM,uBAAuB,CAAC;AAG3E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAU,IAAI,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,cAAc,CAAC;AAQtB;;;;GAIG;AAGH,qBACa,aAAc,SAAQ,YAAY;IAEtC,OAAO,EAAE,kBAAkB,CAAC;IAGnC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;IAGlC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;IAEpB;;;OAGG;IAEH,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;IAGzB,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAElB,OAAO;IAkEb,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAOzD;;;;;;OAMG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;;OAKG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC/D;;;;;OAKG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAyBjF,aAAa,CAAC,MAAM,EAAE,OAAO;IAIpC;;;;;OAKG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAEnC;;;;;;OAMG;IACI,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAc7D"}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.DataValidator = void 0;
16
+ const di_1 = require("@spinajs/di");
17
+ const ajv_1 = __importDefault(require("ajv"));
18
+ const configuration_1 = require("@spinajs/configuration");
19
+ const index_js_1 = require("./exceptions/index.js");
20
+ const exceptions_1 = require("@spinajs/exceptions");
21
+ const decorators_js_1 = require("./decorators.js");
22
+ const types_js_1 = require("./types.js");
23
+ const log_1 = require("@spinajs/log");
24
+ // import default souces
25
+ require("./sources.js");
26
+ const ajv_merge_patch_1 = __importDefault(require("ajv-merge-patch"));
27
+ const ajv_formats_1 = __importDefault(require("ajv-formats"));
28
+ const ajv_keywords_1 = __importDefault(require("ajv-keywords"));
29
+ /**
30
+ * HACK:
31
+ * Becouse of ajv not supporting esm default exports we need to
32
+ * check for default export module property and if not provided use module itself
33
+ */
34
+ let DataValidator = class DataValidator extends di_1.AsyncService {
35
+ async resolve() {
36
+ if (!this.Sources || this.Sources.length === 0) {
37
+ throw new exceptions_1.InvalidOperation('No schema sources avaible. Register any in DI container');
38
+ }
39
+ const ajvConfig = {
40
+ logger: {
41
+ log: (msg) => this.Log.info(msg),
42
+ warn: (msg) => this.Log.warn(msg),
43
+ error: (msg) => this.Log.error(msg),
44
+ },
45
+ ...this.Options,
46
+ $data: true,
47
+ };
48
+ // @ts-ignore
49
+ if (ajv_1.default.default) {
50
+ // @ts-ignore
51
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
52
+ this.Validator = new ajv_1.default.default(ajvConfig);
53
+ }
54
+ else {
55
+ // @ts-ignore
56
+ this.Validator = new ajv_1.default(ajvConfig);
57
+ }
58
+ // add $merge & $patch for json schema
59
+ (0, ajv_merge_patch_1.default)(this.Validator);
60
+ // add common formats validation eg: date time
61
+ ajv_formats_1.default.default(this.Validator);
62
+ // add keywords
63
+ ajv_keywords_1.default.default(this.Validator);
64
+ const pSources = this.Sources.map((x) => x.Load());
65
+ const result = await Promise.all(pSources);
66
+ result
67
+ .reduce((prev, curr) => {
68
+ return prev.concat(curr);
69
+ }, [])
70
+ .filter((s) => {
71
+ // validate schema can throw sometimes
72
+ try {
73
+ const vResult = this.Validator.validateSchema(s.schema, true);
74
+ if (!vResult) {
75
+ this.Log.error(`Schema at ${s.file} invalid`, 'validator');
76
+ return false;
77
+ }
78
+ return true;
79
+ }
80
+ catch (err) {
81
+ this.Log.error(`Schema at ${s.file} invalid, reason: ${err.message}`, 'validator');
82
+ return false;
83
+ }
84
+ })
85
+ .forEach((s) => {
86
+ this.addSchema(s.schema, s.schema.$id);
87
+ });
88
+ await super.resolve();
89
+ }
90
+ addSchema(schemaObject, identifier) {
91
+ if (!this.hasSchema(identifier)) {
92
+ this.Validator.addSchema(schemaObject, identifier);
93
+ this.Log.trace(`Schema ${identifier} added !`, 'validator');
94
+ }
95
+ }
96
+ /**
97
+ *
98
+ * Checks if schema is loaded ( from file )
99
+ *
100
+ * @param schemaId - schema id to check
101
+ * @returns true if schema is loaded, false otherwise
102
+ */
103
+ hasSchema(schemaId) {
104
+ return !!this.Validator.getSchema(schemaId);
105
+ }
106
+ tryValidate(schemaOrData, data) {
107
+ let schema = null;
108
+ if (data === null || data === undefined) {
109
+ schema = Reflect.getMetadata(decorators_js_1.SCHEMA_SYMBOL, schemaOrData);
110
+ }
111
+ else {
112
+ if (typeof schemaOrData === 'string') {
113
+ /* eslint-disable */
114
+ schema = this.Validator.getSchema(schemaOrData)?.schema ?? null;
115
+ }
116
+ else {
117
+ schema = schemaOrData;
118
+ }
119
+ }
120
+ if (schema) {
121
+ const result = this.Validator.validate(schema, data !== null && data !== undefined ? data : schemaOrData);
122
+ if (!result) {
123
+ return [false, this.Validator.errors ?? null];
124
+ }
125
+ }
126
+ return [true, null];
127
+ }
128
+ extractSchema(object) {
129
+ return Reflect.getMetadata(decorators_js_1.SCHEMA_SYMBOL, object);
130
+ }
131
+ validate(schemaOrData, data) {
132
+ const [isValid, errors] = this.tryValidate(schemaOrData, data);
133
+ if (!isValid) {
134
+ switch (errors[0].keyword) {
135
+ case 'invalid_argument':
136
+ throw new exceptions_1.InvalidArgument('data is null or undefined');
137
+ case 'empty_schema':
138
+ throw new exceptions_1.InvalidArgument('objects schema is not set');
139
+ default:
140
+ throw new index_js_1.ValidationFailed('validation error', errors);
141
+ }
142
+ }
143
+ }
144
+ };
145
+ __decorate([
146
+ (0, configuration_1.Config)('validation'),
147
+ __metadata("design:type", Object)
148
+ ], DataValidator.prototype, "Options", void 0);
149
+ __decorate([
150
+ (0, di_1.Autoinject)(types_js_1.SchemaSource),
151
+ __metadata("design:type", Array)
152
+ ], DataValidator.prototype, "Sources", void 0);
153
+ __decorate([
154
+ (0, log_1.Logger)('validation'),
155
+ __metadata("design:type", Object)
156
+ ], DataValidator.prototype, "Log", void 0);
157
+ __decorate([
158
+ (0, di_1.Autoinject)(),
159
+ __metadata("design:type", di_1.Container)
160
+ ], DataValidator.prototype, "Container", void 0);
161
+ DataValidator = __decorate([
162
+ (0, di_1.Singleton)()
163
+ ], DataValidator);
164
+ exports.DataValidator = DataValidator;
165
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Bootstrapper } from '@spinajs/di';
2
+ export declare class ValidatorBootstraper extends Bootstrapper {
3
+ bootstrap(): void;
4
+ }
5
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAG3D,qBACa,oBAAqB,SAAQ,YAAY;IAC7C,SAAS,IAAI,IAAI;CAGzB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAGpD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,YAAY;IAC7C,SAAS;QACd,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvE,CAAC;CACF,CAAA;AAJY,oBAAoB;IADhC,UAAU,CAAC,YAAY,CAAC;GACZ,oBAAoB,CAIhC;SAJY,oBAAoB"}
@@ -0,0 +1,10 @@
1
+ declare const config: {
2
+ validation: {
3
+ allErrors: boolean;
4
+ removeAdditional: boolean;
5
+ useDefaults: boolean;
6
+ coerceTypes: boolean;
7
+ };
8
+ };
9
+ export default config;
10
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/config/validation.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;;;;;;;CAcX,CAAC;AAEF,eAAe,MAAM,CAAC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/config/validation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IACb,UAAU,EAAE;QACV,qEAAqE;QACrE,SAAS,EAAE,IAAI;QAEf,mDAAmD;QACnD,gBAAgB,EAAE,IAAI;QAEtB,iCAAiC;QACjC,WAAW,EAAE,IAAI;QAEjB,wHAAwH;QACxH,WAAW,EAAE,IAAI;KAClB;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const SCHEMA_SYMBOL: unique symbol;
2
+ /**
3
+ *
4
+ * Add schema for object eg. model or dto.
5
+ *
6
+ * @param schema - schema for object or schema name
7
+ */
8
+ export declare function Schema(schema: object | string): (target: any) => void;
9
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,YAC5B,GAAG,UAGpB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,MAAuB;IAC5C,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IAC5E,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Exception } from '@spinajs/exceptions';
2
+ import { ErrorObject } from 'ajv';
3
+ /**
4
+ * The exception that is thrown when JSON entity is checked against schema and is invalid
5
+ */
6
+ export declare class ValidationFailed extends Exception {
7
+ parameter: any;
8
+ constructor(message: string, validationErrors: IValidationError[]);
9
+ }
10
+ export interface IValidationError extends ErrorObject {
11
+ }
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAClC;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IACtC,SAAS,EAAE,GAAG,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE;CAIlE;AAGD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;CAAG"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAG7C,YAAY,OAAe,EAAE,gBAAoC;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * We export default configuration for webpack modules
3
+ * Normally we load configuration from disk via filesystem
4
+ * But webpack is bundlig all files into one.
5
+ *
6
+ * When we export, we can see configuration variable
7
+ * in webpack module cache and webpack config loader can see it
8
+ */
9
+ export { default } from './config/validation.js';
10
+ export * from './decorators.js';
11
+ export * from './exceptions/index.js';
12
+ export * from './sources.js';
13
+ export * from './validator.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
File without changes