@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,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PasswordType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class PasswordType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.__name = 'password';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
return typeof value === 'string';
|
|
12
|
+
}
|
|
13
|
+
parse(value) {
|
|
14
|
+
const str = String(value);
|
|
15
|
+
if (!this.validate(str)) {
|
|
16
|
+
throw new Error(`Value is not a valid password string`);
|
|
17
|
+
}
|
|
18
|
+
return str;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.PasswordType = PasswordType;
|
|
22
|
+
//# sourceMappingURL=password.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/types/password.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAGzC,MAAa,YAAa,SAAQ,qBAAsB;IAGtD,YAAY,UAAyB,EAAE;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,WAAM,GAAG,UAAU,CAAC;IAIpB,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,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,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAlBD,oCAkBC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseSchemaType } from '../base';
|
|
2
|
+
import { SchemaOptions } from '../types';
|
|
3
|
+
export interface StringOptions extends SchemaOptions {
|
|
4
|
+
minLength?: number;
|
|
5
|
+
maxLength?: number;
|
|
6
|
+
pattern?: RegExp;
|
|
7
|
+
enum?: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare class StringType extends BaseSchemaType<string> {
|
|
10
|
+
__name: string;
|
|
11
|
+
constructor(options?: StringOptions);
|
|
12
|
+
validate(value: any): boolean;
|
|
13
|
+
parse(value: any): string;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=string.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/types/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,qBAAa,UAAW,SAAQ,cAAc,CAAC,MAAM,CAAC;IACpD,MAAM,SAAY;gBAEN,OAAO,GAAE,aAAkB;IAIvC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAsB7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAO1B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StringType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class StringType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.__name = 'string';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
if (typeof value !== 'string') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const options = this.__options;
|
|
15
|
+
if (options.minLength !== undefined && value.length < options.minLength) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (options.maxLength !== undefined && value.length > options.maxLength) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
if (options.pattern && !options.pattern.test(value)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
if (options.enum && !options.enum.includes(value)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
parse(value) {
|
|
30
|
+
const str = String(value);
|
|
31
|
+
if (!this.validate(str)) {
|
|
32
|
+
throw new Error(`Value '${str}' does not meet string constraints`);
|
|
33
|
+
}
|
|
34
|
+
return str;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.StringType = StringType;
|
|
38
|
+
//# sourceMappingURL=string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/types/string.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAUzC,MAAa,UAAW,SAAQ,qBAAsB;IAGpD,YAAY,UAAyB,EAAE;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,WAAM,GAAG,QAAQ,CAAC;IAIlB,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,SAA0B,CAAC;QAChD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,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,IAAI,KAAK,CAAC,UAAU,GAAG,oCAAoC,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AApCD,gCAoCC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseSchemaType } from '../base';
|
|
2
|
+
import { SchemaOptions } from '../types';
|
|
3
|
+
export interface TextOptions extends SchemaOptions {
|
|
4
|
+
length?: 'tiny' | 'medium' | 'long';
|
|
5
|
+
}
|
|
6
|
+
export declare class TextType extends BaseSchemaType<string> {
|
|
7
|
+
__name: string;
|
|
8
|
+
constructor(options?: TextOptions);
|
|
9
|
+
validate(value: any): boolean;
|
|
10
|
+
parse(value: any): string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/types/text.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,GAAG,QAAQ,GAAG,MAAM,CAAC;CACrC;AAED,qBAAa,QAAS,SAAQ,cAAc,CAAC,MAAM,CAAC;IAClD,MAAM,SAAU;gBAEJ,OAAO,GAAE,WAAgB;IAIrC,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.TextType = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
class TextType extends base_1.BaseSchemaType {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.__name = 'text';
|
|
9
|
+
}
|
|
10
|
+
validate(value) {
|
|
11
|
+
return typeof value === 'string';
|
|
12
|
+
}
|
|
13
|
+
parse(value) {
|
|
14
|
+
const str = String(value);
|
|
15
|
+
if (!this.validate(str)) {
|
|
16
|
+
throw new Error(`Value is not a valid text`);
|
|
17
|
+
}
|
|
18
|
+
return str;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.TextType = TextType;
|
|
22
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/types/text.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAOzC,MAAa,QAAS,SAAQ,qBAAsB;IAGlD,YAAY,UAAuB,EAAE;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,WAAM,GAAG,MAAM,CAAC;IAIhB,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,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,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAlBD,4BAkBC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface SchemaOptions {
|
|
2
|
+
comment?: string;
|
|
3
|
+
optional?: boolean;
|
|
4
|
+
default?: any;
|
|
5
|
+
example?: any;
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}
|
|
8
|
+
export interface SchemaType<T = any> {
|
|
9
|
+
__name: string;
|
|
10
|
+
__options: SchemaOptions;
|
|
11
|
+
to(target: string): any;
|
|
12
|
+
validate(value: any): boolean;
|
|
13
|
+
parse(value: any): T;
|
|
14
|
+
toSwagger?(): any;
|
|
15
|
+
toSequelize?(): any;
|
|
16
|
+
}
|
|
17
|
+
export interface SchemaPlugin {
|
|
18
|
+
name: string;
|
|
19
|
+
transform(type: SchemaType, options: SchemaOptions): any;
|
|
20
|
+
}
|
|
21
|
+
export type SchemaFactory<T extends SchemaOptions = SchemaOptions> = (options?: T) => SchemaType;
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC;IACzB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;IACrB,SAAS,CAAC,IAAI,GAAG,CAAC;IAClB,WAAW,CAAC,IAAI,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,GAAG,CAAC;CAC1D;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@asapjs/schema",
|
|
3
|
+
"version": "1.0.0-alpha.0",
|
|
4
|
+
"description": "Schema definition and validation system for AsapJS",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"clean": "rm -rf dist"
|
|
13
|
+
},
|
|
14
|
+
"author": "",
|
|
15
|
+
"license": "ISC",
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@types/node": "^17.0.21",
|
|
21
|
+
"typescript": "^5.8.3"
|
|
22
|
+
},
|
|
23
|
+
"gitHead": "79561e3604dc505813035558d1bfcc6cda0b088a"
|
|
24
|
+
}
|