@asapjs/schema 1.0.0-alpha.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.
- package/dist/TypeIs.d.ts +31 -0
- package/dist/TypeIs.d.ts.map +1 -0
- package/dist/TypeIs.js +52 -0
- package/dist/TypeIs.js.map +1 -0
- package/dist/base.d.ts +12 -0
- package/dist/base.d.ts.map +1 -0
- package/dist/base.js +25 -0
- package/dist/base.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/sequelize.d.ts +3 -0
- package/dist/plugins/sequelize.d.ts.map +1 -0
- package/dist/plugins/sequelize.js +128 -0
- package/dist/plugins/sequelize.js.map +1 -0
- package/dist/plugins/swagger.d.ts +3 -0
- package/dist/plugins/swagger.d.ts.map +1 -0
- package/dist/plugins/swagger.js +138 -0
- package/dist/plugins/swagger.js.map +1 -0
- package/dist/registry.d.ts +12 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +28 -0
- package/dist/registry.js.map +1 -0
- package/dist/types/array.d.ts +17 -0
- package/dist/types/array.d.ts.map +1 -0
- package/dist/types/array.js +54 -0
- package/dist/types/array.js.map +1 -0
- package/dist/types/bigint.d.ts +7 -0
- package/dist/types/bigint.d.ts.map +1 -0
- package/dist/types/bigint.js +29 -0
- package/dist/types/bigint.js.map +1 -0
- package/dist/types/boolean.d.ts +7 -0
- package/dist/types/boolean.d.ts.map +1 -0
- package/dist/types/boolean.js +24 -0
- package/dist/types/boolean.js.map +1 -0
- package/dist/types/dateonly.d.ts +7 -0
- package/dist/types/dateonly.d.ts.map +1 -0
- package/dist/types/dateonly.js +27 -0
- package/dist/types/dateonly.js.map +1 -0
- package/dist/types/datetime.d.ts +7 -0
- package/dist/types/datetime.d.ts.map +1 -0
- package/dist/types/datetime.js +25 -0
- package/dist/types/datetime.js.map +1 -0
- package/dist/types/decimal.d.ts +13 -0
- package/dist/types/decimal.d.ts.map +1 -0
- package/dist/types/decimal.js +22 -0
- package/dist/types/decimal.js.map +1 -0
- package/dist/types/double.d.ts +7 -0
- package/dist/types/double.d.ts.map +1 -0
- package/dist/types/double.js +22 -0
- package/dist/types/double.js.map +1 -0
- package/dist/types/dto.d.ts +17 -0
- package/dist/types/dto.d.ts.map +1 -0
- package/dist/types/dto.js +31 -0
- package/dist/types/dto.js.map +1 -0
- package/dist/types/enum.d.ts +12 -0
- package/dist/types/enum.d.ts.map +1 -0
- package/dist/types/enum.js +27 -0
- package/dist/types/enum.js.map +1 -0
- package/dist/types/float.d.ts +15 -0
- package/dist/types/float.d.ts.map +1 -0
- package/dist/types/float.js +35 -0
- package/dist/types/float.js.map +1 -0
- package/dist/types/int.d.ts +13 -0
- package/dist/types/int.d.ts.map +1 -0
- package/dist/types/int.js +35 -0
- package/dist/types/int.js.map +1 -0
- package/dist/types/json.d.ts +12 -0
- package/dist/types/json.d.ts.map +1 -0
- package/dist/types/json.js +31 -0
- package/dist/types/json.js.map +1 -0
- package/dist/types/password.d.ts +9 -0
- package/dist/types/password.d.ts.map +1 -0
- package/dist/types/password.js +22 -0
- package/dist/types/password.js.map +1 -0
- package/dist/types/string.d.ts +15 -0
- package/dist/types/string.d.ts.map +1 -0
- package/dist/types/string.js +38 -0
- package/dist/types/string.js.map +1 -0
- package/dist/types/text.d.ts +12 -0
- package/dist/types/text.d.ts.map +1 -0
- package/dist/types/text.js +22 -0
- package/dist/types/text.js.map +1 -0
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +24 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArrayType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class ArrayType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor(itemsOrOptions) {
|
|
7
|
+
// 항상 super를 먼저 호출
|
|
8
|
+
const isSimpleApi = '__name' in itemsOrOptions || typeof itemsOrOptions === 'function';
|
|
9
|
+
super(isSimpleApi ? {} : itemsOrOptions);
|
|
10
|
+
this.__name = 'array';
|
|
11
|
+
if (isSimpleApi) {
|
|
12
|
+
// 새로운 API: TypeIs.ARRAY(TypeIs.STRING())
|
|
13
|
+
this.itemType = typeof itemsOrOptions === 'function' ? itemsOrOptions() : itemsOrOptions;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
// 기존 API 호환: TypeIs.ARRAY({ items: TypeIs.STRING(), comment: "..." })
|
|
17
|
+
const options = itemsOrOptions;
|
|
18
|
+
this.itemType = typeof options.items === 'function' ? options.items() : options.items;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
validate(value) {
|
|
22
|
+
if (!Array.isArray(value)) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const options = this.__options;
|
|
26
|
+
if (options.minItems !== undefined && value.length < options.minItems) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
if (options.maxItems !== undefined && value.length > options.maxItems) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (options.uniqueItems && new Set(value).size !== value.length) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
// 각 아이템 검증
|
|
36
|
+
return value.every(item => this.itemType.validate(item));
|
|
37
|
+
}
|
|
38
|
+
parse(value) {
|
|
39
|
+
if (!Array.isArray(value)) {
|
|
40
|
+
throw new Error(`Expected array, got ${typeof value}`);
|
|
41
|
+
}
|
|
42
|
+
const parsed = value.map(item => this.itemType.parse(item));
|
|
43
|
+
if (!this.validate(parsed)) {
|
|
44
|
+
throw new Error('Array validation failed');
|
|
45
|
+
}
|
|
46
|
+
return parsed;
|
|
47
|
+
}
|
|
48
|
+
// ArrayType에 특별한 getter 추가
|
|
49
|
+
get items() {
|
|
50
|
+
return this.itemType;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.ArrayType = ArrayType;
|
|
54
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/types/array.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAUzC,MAAa,SAAU,SAAQ,qBAAqB;IAIlD,YAAY,cAA8D;QACxE,kBAAkB;QAClB,MAAM,WAAW,GAAG,QAAQ,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,UAAU,CAAC;QACvF,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAA8B,CAAC,CAAC;QAN3D,WAAM,GAAG,OAAO,CAAC;QAQf,IAAI,WAAW,EAAE,CAAC;YAChB,yCAAyC;YACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAE,cAAmC,EAAE,CAAC,CAAC,CAAC,cAA4B,CAAC;QAC/H,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,MAAM,OAAO,GAAG,cAA8B,CAAC;YAC/C,IAAI,CAAC,QAAQ,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACxF,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAyB,CAAC;QAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,WAAW;QACX,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,KAAU;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,2BAA2B;IAC3B,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAzDD,8BAyDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,qBAAa,UAAW,SAAQ,cAAc,CAAC,MAAM,CAAC;IACpD,MAAM,SAAY;IAElB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAS7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAO1B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BigIntType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class BigIntType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.__name = 'bigint';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
try {
|
|
12
|
+
BigInt(value);
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
parse(value) {
|
|
20
|
+
try {
|
|
21
|
+
return BigInt(value);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
throw new Error(`Cannot parse '${value}' as bigint`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.BigIntType = BigIntType;
|
|
29
|
+
//# sourceMappingURL=bigint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAGzC,MAAa,UAAW,SAAQ,qBAAsB;IAAtD;;QACE,WAAM,GAAG,QAAQ,CAAC;IAkBpB,CAAC;IAhBC,QAAQ,CAAC,KAAU;QACjB,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAU;QACd,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,aAAa,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF;AAnBD,gCAmBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../src/types/boolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,qBAAa,WAAY,SAAQ,cAAc,CAAC,OAAO,CAAC;IACtD,MAAM,SAAa;IAEnB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;CAM3B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BooleanType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class BooleanType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.__name = 'boolean';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
return typeof value === 'boolean';
|
|
12
|
+
}
|
|
13
|
+
parse(value) {
|
|
14
|
+
if (typeof value === 'boolean')
|
|
15
|
+
return value;
|
|
16
|
+
if (value === 'true' || value === '1' || value === 1)
|
|
17
|
+
return true;
|
|
18
|
+
if (value === 'false' || value === '0' || value === 0)
|
|
19
|
+
return false;
|
|
20
|
+
throw new Error(`Cannot parse '${value}' as boolean`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.BooleanType = BooleanType;
|
|
24
|
+
//# sourceMappingURL=boolean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../src/types/boolean.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAGzC,MAAa,WAAY,SAAQ,qBAAuB;IAAxD;;QACE,WAAM,GAAG,SAAS,CAAC;IAYrB,CAAC;IAVC,QAAQ,CAAC,KAAU;QACjB,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,KAAU;QACd,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7C,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAClE,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,cAAc,CAAC,CAAC;IACxD,CAAC;CACF;AAbD,kCAaC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dateonly.d.ts","sourceRoot":"","sources":["../../src/types/dateonly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,qBAAa,YAAa,SAAQ,cAAc,CAAC,MAAM,CAAC;IACtD,MAAM,SAAc;IAEpB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAM7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAU1B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateOnlyType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class DateOnlyType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.__name = 'dateonly';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
// YYYY-MM-DD format
|
|
12
|
+
const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
|
|
13
|
+
return typeof value === 'string' && dateRegex.test(value);
|
|
14
|
+
}
|
|
15
|
+
parse(value) {
|
|
16
|
+
if (value instanceof Date) {
|
|
17
|
+
return value.toISOString().split('T')[0];
|
|
18
|
+
}
|
|
19
|
+
const str = String(value);
|
|
20
|
+
if (!this.validate(str)) {
|
|
21
|
+
throw new Error(`Value '${str}' is not a valid date (YYYY-MM-DD format)`);
|
|
22
|
+
}
|
|
23
|
+
return str;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.DateOnlyType = DateOnlyType;
|
|
27
|
+
//# sourceMappingURL=dateonly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dateonly.js","sourceRoot":"","sources":["../../src/types/dateonly.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAGzC,MAAa,YAAa,SAAQ,qBAAsB;IAAxD;;QACE,WAAM,GAAG,UAAU,CAAC;IAkBtB,CAAC;IAhBC,QAAQ,CAAC,KAAU;QACjB,oBAAoB;QACpB,MAAM,SAAS,GAAG,qBAAqB,CAAC;QACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAU;QACd,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,2CAA2C,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAnBD,oCAmBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../src/types/datetime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,qBAAa,YAAa,SAAQ,cAAc,CAAC,IAAI,CAAC;IACpD,MAAM,SAAc;IAEpB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;CAUxB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateTimeType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class DateTimeType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.__name = 'datetime';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
return value instanceof Date || !isNaN(Date.parse(value));
|
|
12
|
+
}
|
|
13
|
+
parse(value) {
|
|
14
|
+
if (value instanceof Date) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
const date = new Date(value);
|
|
18
|
+
if (isNaN(date.getTime())) {
|
|
19
|
+
throw new Error(`Cannot parse '${value}' as datetime`);
|
|
20
|
+
}
|
|
21
|
+
return date;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.DateTimeType = DateTimeType;
|
|
25
|
+
//# sourceMappingURL=datetime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../src/types/datetime.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAGzC,MAAa,YAAa,SAAQ,qBAAoB;IAAtD;;QACE,WAAM,GAAG,UAAU,CAAC;IAgBtB,CAAC;IAdC,QAAQ,CAAC,KAAU;QACjB,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAU;QACd,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,eAAe,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAjBD,oCAiBC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseSchemaType } from '../base';
|
|
2
|
+
import { SchemaOptions } from '../types';
|
|
3
|
+
export interface DecimalOptions extends SchemaOptions {
|
|
4
|
+
precision?: number;
|
|
5
|
+
scale?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class DecimalType extends BaseSchemaType<number> {
|
|
8
|
+
__name: string;
|
|
9
|
+
constructor(options?: DecimalOptions);
|
|
10
|
+
validate(value: any): boolean;
|
|
11
|
+
parse(value: any): number;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=decimal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decimal.d.ts","sourceRoot":"","sources":["../../src/types/decimal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAY,SAAQ,cAAc,CAAC,MAAM,CAAC;IACrD,MAAM,SAAa;gBAEP,OAAO,GAAE,cAAmB;IAIxC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAO1B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DecimalType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class DecimalType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.__name = 'decimal';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
return typeof value === 'number' || !isNaN(parseFloat(value));
|
|
12
|
+
}
|
|
13
|
+
parse(value) {
|
|
14
|
+
const num = parseFloat(value);
|
|
15
|
+
if (isNaN(num)) {
|
|
16
|
+
throw new Error(`Cannot parse '${value}' as decimal`);
|
|
17
|
+
}
|
|
18
|
+
return num;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.DecimalType = DecimalType;
|
|
22
|
+
//# sourceMappingURL=decimal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decimal.js","sourceRoot":"","sources":["../../src/types/decimal.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAQzC,MAAa,WAAY,SAAQ,qBAAsB;IAGrD,YAAY,UAA0B,EAAE;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,WAAM,GAAG,SAAS,CAAC;IAInB,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,KAAU;QACd,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,cAAc,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAlBD,kCAkBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"double.d.ts","sourceRoot":"","sources":["../../src/types/double.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,qBAAa,UAAW,SAAQ,cAAc,CAAC,MAAM,CAAC;IACpD,MAAM,SAAY;IAElB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAO1B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DoubleType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class DoubleType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.__name = 'double';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
return typeof value === 'number';
|
|
12
|
+
}
|
|
13
|
+
parse(value) {
|
|
14
|
+
const num = parseFloat(value);
|
|
15
|
+
if (isNaN(num)) {
|
|
16
|
+
throw new Error(`Cannot parse '${value}' as double`);
|
|
17
|
+
}
|
|
18
|
+
return num;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.DoubleType = DoubleType;
|
|
22
|
+
//# sourceMappingURL=double.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"double.js","sourceRoot":"","sources":["../../src/types/double.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAGzC,MAAa,UAAW,SAAQ,qBAAsB;IAAtD;;QACE,WAAM,GAAG,QAAQ,CAAC;IAapB,CAAC;IAXC,QAAQ,CAAC,KAAU;QACjB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,KAAU;QACd,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,aAAa,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAdD,gCAcC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseSchemaType } from '../base';
|
|
2
|
+
import { SchemaOptions } from '../types';
|
|
3
|
+
export interface DtoOptions extends SchemaOptions {
|
|
4
|
+
class?: any;
|
|
5
|
+
name?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class DtoType extends BaseSchemaType<any> {
|
|
8
|
+
__name: string;
|
|
9
|
+
private dtoClass?;
|
|
10
|
+
private dtoName?;
|
|
11
|
+
constructor(options?: DtoOptions);
|
|
12
|
+
validate(value: any): boolean;
|
|
13
|
+
parse(value: any): any;
|
|
14
|
+
get className(): string | undefined;
|
|
15
|
+
get classRef(): any;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/types/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,OAAQ,SAAQ,cAAc,CAAC,GAAG,CAAC;IAC9C,MAAM,SAAS;IACf,OAAO,CAAC,QAAQ,CAAC,CAAM;IACvB,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,OAAO,GAAE,UAAe;IAMpC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAK7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;IAQtB,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,IAAI,QAAQ,IAAI,GAAG,CAElB;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DtoType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class DtoType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.__name = 'dto';
|
|
9
|
+
this.dtoClass = options.class;
|
|
10
|
+
this.dtoName = options.name || options.class?.name;
|
|
11
|
+
}
|
|
12
|
+
validate(value) {
|
|
13
|
+
// DTO는 보통 객체 타입
|
|
14
|
+
return value !== null && typeof value === 'object';
|
|
15
|
+
}
|
|
16
|
+
parse(value) {
|
|
17
|
+
// DTO 인스턴스인지 확인
|
|
18
|
+
if (this.dtoClass && value instanceof this.dtoClass) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
get className() {
|
|
24
|
+
return this.dtoName;
|
|
25
|
+
}
|
|
26
|
+
get classRef() {
|
|
27
|
+
return this.dtoClass;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.DtoType = DtoType;
|
|
31
|
+
//# sourceMappingURL=dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/types/dto.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAQzC,MAAa,OAAQ,SAAQ,qBAAmB;IAK9C,YAAY,UAAsB,EAAE;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC;QALjB,WAAM,GAAG,KAAK,CAAC;QAMb,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;IACrD,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,gBAAgB;QAChB,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAU;QACd,gBAAgB;QAChB,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AA/BD,0BA+BC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseSchemaType } from '../base';
|
|
2
|
+
import { SchemaOptions } from '../types';
|
|
3
|
+
export interface EnumOptions extends SchemaOptions {
|
|
4
|
+
values: string[];
|
|
5
|
+
}
|
|
6
|
+
export declare class EnumType extends BaseSchemaType<string> {
|
|
7
|
+
__name: string;
|
|
8
|
+
constructor(options: EnumOptions);
|
|
9
|
+
validate(value: any): boolean;
|
|
10
|
+
parse(value: any): string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../src/types/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,QAAS,SAAQ,cAAc,CAAC,MAAM,CAAC;IAClD,MAAM,SAAU;gBAEJ,OAAO,EAAE,WAAW;IAOhC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAK7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAQ1B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EnumType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class EnumType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.__name = 'enum';
|
|
9
|
+
if (!options.values || options.values.length === 0) {
|
|
10
|
+
throw new Error('Enum must have at least one value');
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
validate(value) {
|
|
14
|
+
const options = this.__options;
|
|
15
|
+
return options.values.includes(value);
|
|
16
|
+
}
|
|
17
|
+
parse(value) {
|
|
18
|
+
const str = String(value);
|
|
19
|
+
if (!this.validate(str)) {
|
|
20
|
+
const options = this.__options;
|
|
21
|
+
throw new Error(`Value '${str}' is not one of: ${options.values.join(', ')}`);
|
|
22
|
+
}
|
|
23
|
+
return str;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.EnumType = EnumType;
|
|
27
|
+
//# sourceMappingURL=enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../../src/types/enum.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAOzC,MAAa,QAAS,SAAQ,qBAAsB;IAGlD,YAAY,OAAoB;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,WAAM,GAAG,MAAM,CAAC;QAId,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAwB,CAAC;QAC9C,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,KAAU;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAwB,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,oBAAoB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAvBD,4BAuBC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseSchemaType } from '../base';
|
|
2
|
+
import { SchemaOptions } from '../types';
|
|
3
|
+
export interface FloatOptions extends SchemaOptions {
|
|
4
|
+
length?: number;
|
|
5
|
+
decimals?: number;
|
|
6
|
+
min?: number;
|
|
7
|
+
max?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class FloatType extends BaseSchemaType<number> {
|
|
10
|
+
__name: string;
|
|
11
|
+
constructor(options?: FloatOptions);
|
|
12
|
+
validate(value: any): boolean;
|
|
13
|
+
parse(value: any): number;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=float.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"float.d.ts","sourceRoot":"","sources":["../../src/types/float.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,SAAU,SAAQ,cAAc,CAAC,MAAM,CAAC;IACnD,MAAM,SAAW;gBAEL,OAAO,GAAE,YAAiB;IAItC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAgB7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAU1B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FloatType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class FloatType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.__name = 'float';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
if (typeof value !== 'number') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const options = this.__options;
|
|
15
|
+
if (options.min !== undefined && value < options.min) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (options.max !== undefined && value > options.max) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
parse(value) {
|
|
24
|
+
const num = parseFloat(value);
|
|
25
|
+
if (isNaN(num)) {
|
|
26
|
+
throw new Error(`Cannot parse '${value}' as float`);
|
|
27
|
+
}
|
|
28
|
+
if (!this.validate(num)) {
|
|
29
|
+
throw new Error(`Value ${num} does not meet constraints`);
|
|
30
|
+
}
|
|
31
|
+
return num;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.FloatType = FloatType;
|
|
35
|
+
//# sourceMappingURL=float.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"float.js","sourceRoot":"","sources":["../../src/types/float.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAUzC,MAAa,SAAU,SAAQ,qBAAsB;IAGnD,YAAY,UAAwB,EAAE;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,WAAM,GAAG,OAAO,CAAC;IAIjB,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAyB,CAAC;QAC/C,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAU;QACd,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,YAAY,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,4BAA4B,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAjCD,8BAiCC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseSchemaType } from '../base';
|
|
2
|
+
import { SchemaOptions } from '../types';
|
|
3
|
+
export interface IntOptions extends SchemaOptions {
|
|
4
|
+
min?: number;
|
|
5
|
+
max?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class IntType extends BaseSchemaType<number> {
|
|
8
|
+
__name: string;
|
|
9
|
+
constructor(options?: IntOptions);
|
|
10
|
+
validate(value: any): boolean;
|
|
11
|
+
parse(value: any): number;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=int.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"int.d.ts","sourceRoot":"","sources":["../../src/types/int.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,OAAQ,SAAQ,cAAc,CAAC,MAAM,CAAC;IACjD,MAAM,SAAS;gBAEH,OAAO,GAAE,UAAe;IAIpC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAgB7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAU1B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IntType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class IntType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.__name = 'int';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
if (typeof value !== 'number' || !Number.isInteger(value)) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const options = this.__options;
|
|
15
|
+
if (options.min !== undefined && value < options.min) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (options.max !== undefined && value > options.max) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
parse(value) {
|
|
24
|
+
const num = parseInt(value, 10);
|
|
25
|
+
if (isNaN(num)) {
|
|
26
|
+
throw new Error(`Cannot parse '${value}' as integer`);
|
|
27
|
+
}
|
|
28
|
+
if (!this.validate(num)) {
|
|
29
|
+
throw new Error(`Value ${num} does not meet constraints`);
|
|
30
|
+
}
|
|
31
|
+
return num;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.IntType = IntType;
|
|
35
|
+
//# sourceMappingURL=int.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"int.js","sourceRoot":"","sources":["../../src/types/int.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAQzC,MAAa,OAAQ,SAAQ,qBAAsB;IAGjD,YAAY,UAAsB,EAAE;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,WAAM,GAAG,KAAK,CAAC;IAIf,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAuB,CAAC;QAC7C,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAU;QACd,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,cAAc,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,4BAA4B,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAjCD,0BAiCC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseSchemaType } from '../base';
|
|
2
|
+
import { SchemaOptions } from '../types';
|
|
3
|
+
export interface JsonOptions extends SchemaOptions {
|
|
4
|
+
schema?: Record<string, any>;
|
|
5
|
+
}
|
|
6
|
+
export declare class JsonType extends BaseSchemaType<any> {
|
|
7
|
+
__name: string;
|
|
8
|
+
constructor(options?: JsonOptions);
|
|
9
|
+
validate(value: any): boolean;
|
|
10
|
+
parse(value: any): any;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/types/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,qBAAa,QAAS,SAAQ,cAAc,CAAC,GAAG,CAAC;IAC/C,MAAM,SAAU;gBAEJ,OAAO,GAAE,WAAgB;IAIrC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAM7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;CAavB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class JsonType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.__name = 'json';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
// 기본적으로 object 타입인지만 확인
|
|
12
|
+
// 추후 JSON Schema 검증 추가 가능
|
|
13
|
+
return value !== null && typeof value === 'object';
|
|
14
|
+
}
|
|
15
|
+
parse(value) {
|
|
16
|
+
if (typeof value === 'string') {
|
|
17
|
+
try {
|
|
18
|
+
return JSON.parse(value);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
throw new Error(`Cannot parse '${value}' as JSON`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (this.validate(value)) {
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
throw new Error(`Value is not a valid JSON object`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.JsonType = JsonType;
|
|
31
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/types/json.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAOzC,MAAa,QAAS,SAAQ,qBAAmB;IAG/C,YAAY,UAAuB,EAAE;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,WAAM,GAAG,MAAM,CAAC;IAIhB,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,wBAAwB;QACxB,0BAA0B;QAC1B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAU;QACd,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,WAAW,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;CACF;AA1BD,4BA0BC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseSchemaType } from '../base';
|
|
2
|
+
import { StringOptions } from './string';
|
|
3
|
+
export declare class PasswordType extends BaseSchemaType<string> {
|
|
4
|
+
__name: string;
|
|
5
|
+
constructor(options?: StringOptions);
|
|
6
|
+
validate(value: any): boolean;
|
|
7
|
+
parse(value: any): string;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=password.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/types/password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,qBAAa,YAAa,SAAQ,cAAc,CAAC,MAAM,CAAC;IACtD,MAAM,SAAc;gBAER,OAAO,GAAE,aAAkB;IAIvC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAO1B"}
|