typia 5.3.12 → 5.4.0-dev.20240124-2

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.
@@ -2,19 +2,30 @@ import { Customizable } from "./typings/Customizable";
2
2
  export interface IRandomGenerator {
3
3
  boolean(): boolean;
4
4
  integer(minimum?: number, maximum?: number): number;
5
- number(minimum?: number, maximum?: number): number;
6
5
  bigint(minimum?: bigint, maximum?: bigint): bigint;
6
+ number(minimum?: number, maximum?: number): number;
7
7
  string(length?: number): string;
8
8
  array<T>(closure: (index: number) => T, count?: number): T[];
9
9
  length(): number;
10
+ pattern(regex: RegExp): string;
11
+ byte(): string;
12
+ password(): string;
13
+ regex(): string;
10
14
  uuid(): string;
11
15
  email(): string;
12
- url(): string;
16
+ hostname(): string;
13
17
  ipv4(): string;
14
18
  ipv6(): string;
15
- pattern(regex: RegExp): string;
16
- date(minimum?: number, maximum?: number): string;
19
+ uri(): string;
20
+ uriReference(): string;
21
+ uriTemplate(): string;
22
+ url(): string;
17
23
  datetime(minimum?: number, maximum?: number): string;
24
+ date(minimum?: number, maximum?: number): string;
25
+ time(): string;
26
+ duration(): string;
27
+ jsonPointer(): string;
28
+ relativeJsonPointer(): string;
18
29
  customs?: IRandomGenerator.CustomMap;
19
30
  }
20
31
  export declare namespace IRandomGenerator {
@@ -3,7 +3,7 @@ export declare const stringify: (method: string) => {
3
3
  string: (str: string) => string;
4
4
  tail: (str: string) => string;
5
5
  rest: (str: string) => string;
6
- throws: (props: Pick<import("../..").TypeGuardError.IProps, "expected" | "value">) => never;
6
+ throws: (props: Pick<import("../..").TypeGuardError.IProps, "value" | "expected">) => never;
7
7
  is_between: (value: number, minimum: number, maximum: number) => boolean;
8
8
  is_bigint_string: (str: string) => boolean;
9
9
  };
@@ -1,11 +1,11 @@
1
1
  export declare const clone: (method: string) => {
2
- throws: (props: Pick<import("../..").TypeGuardError.IProps, "expected" | "value">) => never;
2
+ throws: (props: Pick<import("../..").TypeGuardError.IProps, "value" | "expected">) => never;
3
3
  any: (val: any) => any;
4
4
  is_between: (value: number, minimum: number, maximum: number) => boolean;
5
5
  is_bigint_string: (str: string) => boolean;
6
6
  };
7
7
  export declare const prune: (method: string) => {
8
- throws: (props: Pick<import("../..").TypeGuardError.IProps, "expected" | "value">) => never;
8
+ throws: (props: Pick<import("../..").TypeGuardError.IProps, "value" | "expected">) => never;
9
9
  is_between: (value: number, minimum: number, maximum: number) => boolean;
10
10
  is_bigint_string: (str: string) => boolean;
11
11
  };
@@ -1,18 +1,18 @@
1
1
  export declare const camel: (method: string) => {
2
2
  any: (input: any) => any;
3
- throws: (props: Pick<import("../..").TypeGuardError.IProps, "expected" | "value">) => never;
3
+ throws: (props: Pick<import("../..").TypeGuardError.IProps, "value" | "expected">) => never;
4
4
  is_between: (value: number, minimum: number, maximum: number) => boolean;
5
5
  is_bigint_string: (str: string) => boolean;
6
6
  };
7
7
  export declare const pascal: (method: string) => {
8
8
  any: (input: any) => any;
9
- throws: (props: Pick<import("../..").TypeGuardError.IProps, "expected" | "value">) => never;
9
+ throws: (props: Pick<import("../..").TypeGuardError.IProps, "value" | "expected">) => never;
10
10
  is_between: (value: number, minimum: number, maximum: number) => boolean;
11
11
  is_bigint_string: (str: string) => boolean;
12
12
  };
13
13
  export declare const snake: (method: string) => {
14
14
  any: (input: any) => any;
15
- throws: (props: Pick<import("../..").TypeGuardError.IProps, "expected" | "value">) => never;
15
+ throws: (props: Pick<import("../..").TypeGuardError.IProps, "value" | "expected">) => never;
16
16
  is_between: (value: number, minimum: number, maximum: number) => boolean;
17
17
  is_bigint_string: (str: string) => boolean;
18
18
  };
@@ -3,7 +3,7 @@ import { $ProtobufSizer } from "../$ProtobufSizer";
3
3
  import { $ProtobufWriter } from "../$ProtobufWriter";
4
4
  export declare const decode: (method: string) => {
5
5
  Reader: typeof $ProtobufReader;
6
- throws: (props: Pick<import("../..").TypeGuardError.IProps, "expected" | "value">) => never;
6
+ throws: (props: Pick<import("../..").TypeGuardError.IProps, "value" | "expected">) => never;
7
7
  is_between: (value: number, minimum: number, maximum: number) => boolean;
8
8
  is_bigint_string: (str: string) => boolean;
9
9
  };
@@ -11,7 +11,7 @@ export declare const encode: (method: string) => {
11
11
  Sizer: typeof $ProtobufSizer;
12
12
  Writer: typeof $ProtobufWriter;
13
13
  strlen: (s: string) => number;
14
- throws: (props: Pick<import("../..").TypeGuardError.IProps, "expected" | "value">) => never;
14
+ throws: (props: Pick<import("../..").TypeGuardError.IProps, "value" | "expected">) => never;
15
15
  is_between: (value: number, minimum: number, maximum: number) => boolean;
16
16
  is_bigint_string: (str: string) => boolean;
17
17
  };
@@ -410,7 +410,7 @@ var RandomProgrammer;
410
410
  for (var tags_1 = __values(tags), tags_1_1 = tags_1.next(); !tags_1_1.done; tags_1_1 = tags_1.next()) {
411
411
  var t = tags_1_1.value;
412
412
  if (t.kind === "format")
413
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)(t.value === "date-time" ? "datetime" : t.value), undefined, undefined);
413
+ return typescript_1.default.factory.createCallExpression(COALESCE(importer)(emendFormat(t.value)), undefined, undefined);
414
414
  else if (t.kind === "pattern")
415
415
  return typescript_1.default.factory.createCallExpression(COALESCE(importer)("pattern"), undefined, [typescript_1.default.factory.createIdentifier("/".concat(t.value, "/"))]);
416
416
  }
@@ -662,4 +662,16 @@ var COALESCE = function (importer) { return function (name) {
662
662
  ? typescript_1.default.factory.createPropertyAccessChain(typescript_1.default.factory.createIdentifier("generator"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), typescript_1.default.factory.createIdentifier(name))
663
663
  : typescript_1.default.factory.createElementAccessChain(typescript_1.default.factory.createIdentifier("generator"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), typescript_1.default.factory.createStringLiteral(name)))(IdentifierFactory_1.IdentifierFactory.access(importer.use("generator"))(name));
664
664
  }; };
665
+ var emendFormat = function (key) {
666
+ return key === "date-time"
667
+ ? "datetime"
668
+ : key
669
+ .split("-")
670
+ .map(function (str, i) {
671
+ return i === 0 || str.length === 0
672
+ ? str
673
+ : str[0].toUpperCase() + str.substring(1);
674
+ })
675
+ .join("");
676
+ };
665
677
  //# sourceMappingURL=RandomProgrammer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RandomProgrammer.js","sourceRoot":"","sources":["../../src/programmers/RandomProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RandomProgrammer.js","sourceRoot":"","sources":["../../src/programmers/RandomProgrammer.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export declare namespace IJsonSchema {
18
18
  minLength?: undefined | (number & Type<"uint32">);
19
19
  maxLength?: undefined | (number & Type<"uint32">);
20
20
  pattern?: undefined | string;
21
- format?: undefined | string;
21
+ format?: undefined | "byte" | "password" | "regex" | "uuid" | "email" | "hostname" | "ipv4" | "ipv6" | "uri" | "uri-reference" | "uri-template" | "url" | "date-time" | "date" | "time" | "duration" | "json-pointer" | "relative-json-pointer" | (string & {});
22
22
  "x-typia-typeTags"?: undefined | IMetadataTypeTag[];
23
23
  }
24
24
  interface INumber extends IAtomic<"number"> {
@@ -1,8 +1,32 @@
1
1
  import { TagBase } from "./TagBase";
2
- export type Format<Value extends "email" | "uuid" | "ipv4" | "ipv6" | "url" | "date" | "date-time"> = TagBase<{
2
+ export type Format<Value extends keyof Format.Validator> = TagBase<{
3
3
  target: "string";
4
4
  kind: "format";
5
5
  value: Value;
6
- validate: Value extends "email" ? `/^(([^<>()[\\]\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\"]+)*)|(\\".+\\"))@(([^<>()[\\]\\.,;:\\s@\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\"]{2,})$/i.test($input)` : Value extends "uuid" ? `/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i.test($input)` : Value extends "ipv4" ? `/^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test($input)` : Value extends "ipv6" ? `/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/.test($input)` : Value extends "url" ? `/^[a-zA-Z0-9]+:\\/\\/(?:www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)$/.test($input)` : Value extends "date" ? `/^(\\d{4})-(\\d{2})-(\\d{2})$/.test($input)` : `!isNaN(new Date($input).getTime())`;
6
+ validate: Format.Validator[Value];
7
7
  exclusive: ["format", "pattern"];
8
8
  }>;
9
+ export declare namespace Format {
10
+ export type Validator = {
11
+ byte: RegexCall<`/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm`>;
12
+ password: `true`;
13
+ regex: `(() => { try { new RegExp($input); return true; } catch { return false; } })()`;
14
+ uuid: RegexCall<`/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i`>;
15
+ email: RegexCall<`/^[a-z0-9!#$%&'*+/=?^_\`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_\`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i`>;
16
+ hostname: RegexCall<`/^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i`>;
17
+ ipv4: RegexCall<`/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/`>;
18
+ ipv6: RegexCall<`/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i`>;
19
+ uri: `${RegexCall<`/\\/|:/`>} && ${RegexCall<`/^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`>}`;
20
+ "uri-reference": RegexCall<`/^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`>;
21
+ "uri-template": RegexCall<`/^(?:(?:[^\\x00-\\x20"'<>%\\\\^\`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i`>;
22
+ url: RegexCall<`/^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu`>;
23
+ "date-time": `!isNaN(new Date($input).getTime())`;
24
+ date: RegexCall<`/^(\\d{4})-(\\d{2})-(\\d{2})$/`>;
25
+ time: RegexCall<`/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i`>;
26
+ duration: RegexCall<`/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/`>;
27
+ "json-pointer": RegexCall<`/^(?:\\/(?:[^~/]|~0|~1)*)*$/`>;
28
+ "relative-json-pointer": RegexCall<`/^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/`>;
29
+ };
30
+ type RegexCall<Exp extends string> = `${Exp}.test($input)`;
31
+ export {};
32
+ }
@@ -6,11 +6,22 @@ export declare const string: (length?: number) => string;
6
6
  export declare const array: <T>(closure: (index: number) => T, count?: number) => T[];
7
7
  export declare const pick: <T>(array: T[]) => T;
8
8
  export declare const length: () => number;
9
+ export declare const pattern: (regex: RegExp) => string;
10
+ export declare const byte: () => string;
11
+ export declare const password: () => string;
12
+ export declare const regex: () => string;
9
13
  export declare const uuid: () => string;
10
14
  export declare const email: () => string;
11
- export declare const url: () => string;
15
+ export declare const hostname: () => string;
12
16
  export declare const ipv4: () => string;
13
17
  export declare const ipv6: () => string;
14
- export declare const pattern: (regex: RegExp) => string;
15
- export declare const date: (min?: number, max?: number) => string;
18
+ export declare const uri: () => string;
19
+ export declare const uriReference: () => string;
20
+ export declare const uriTemplate: () => string;
21
+ export declare const url: () => string;
16
22
  export declare const datetime: (min?: number, max?: number) => string;
23
+ export declare const date: (min?: number, max?: number) => string;
24
+ export declare const time: () => string;
25
+ export declare const duration: () => string;
26
+ export declare const jsonPointer: () => string;
27
+ export declare const relativeJsonPointer: () => string;
@@ -1,14 +1,30 @@
1
1
  "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
2
18
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
20
  };
5
21
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.datetime = exports.date = exports.pattern = exports.ipv6 = exports.ipv4 = exports.url = exports.email = exports.uuid = exports.length = exports.pick = exports.array = exports.string = exports.number = exports.bigint = exports.integer = exports.boolean = void 0;
22
+ exports.relativeJsonPointer = exports.jsonPointer = exports.duration = exports.time = exports.date = exports.datetime = exports.url = exports.uriTemplate = exports.uriReference = exports.uri = exports.ipv6 = exports.ipv4 = exports.hostname = exports.email = exports.uuid = exports.regex = exports.password = exports.byte = exports.pattern = exports.length = exports.pick = exports.array = exports.string = exports.number = exports.bigint = exports.integer = exports.boolean = void 0;
7
23
  var randexp_1 = __importDefault(require("randexp"));
8
24
  var ALPHABETS = "abcdefghijklmnopqrstuvwxyz";
9
25
  /* -----------------------------------------------------------
10
- REGULAR
11
- ----------------------------------------------------------- */
26
+ REGULAR
27
+ ----------------------------------------------------------- */
12
28
  var boolean = function () { return Math.random() < 0.5; };
13
29
  exports.boolean = boolean;
14
30
  var integer = function (min, max) {
@@ -18,9 +34,7 @@ var integer = function (min, max) {
18
34
  };
19
35
  exports.integer = integer;
20
36
  var bigint = function (min, max) {
21
- min !== null && min !== void 0 ? min : (min = BigInt(0));
22
- max !== null && max !== void 0 ? max : (max = BigInt(100));
23
- return BigInt((0, exports.integer)(Number(min), Number(max)));
37
+ return BigInt((0, exports.integer)(Number(min !== null && min !== void 0 ? min : BigInt(0)), Number(max !== null && max !== void 0 ? max : BigInt(100))));
24
38
  };
25
39
  exports.bigint = bigint;
26
40
  var number = function (min, max) {
@@ -44,9 +58,20 @@ var pick = function (array) { return array[(0, exports.integer)(0, array.length
44
58
  exports.pick = pick;
45
59
  var length = function () { return (0, exports.integer)(0, 3); };
46
60
  exports.length = length;
61
+ var pattern = function (regex) { return new randexp_1.default(regex).gen(); };
62
+ exports.pattern = pattern;
47
63
  /* -----------------------------------------------------------
48
- SECIAL FORMATS
49
- ----------------------------------------------------------- */
64
+ SECIAL FORMATS
65
+ ----------------------------------------------------------- */
66
+ // SPECIAL CHARACTERS
67
+ var byte = function () { return "vt7ekz4lIoNTTS9sDQYdWKharxIFAR54+z/umIxSgUM="; };
68
+ exports.byte = byte;
69
+ var password = function () { return (0, exports.string)((0, exports.integer)(4, 16)); };
70
+ exports.password = password;
71
+ var regex = function () {
72
+ return "/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/";
73
+ };
74
+ exports.regex = regex;
50
75
  var uuid = function () {
51
76
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
52
77
  var r = (Math.random() * 16) | 0;
@@ -55,29 +80,72 @@ var uuid = function () {
55
80
  });
56
81
  };
57
82
  exports.uuid = uuid;
83
+ // ADDRESSES
58
84
  var email = function () { return "".concat((0, exports.string)(10), "@").concat((0, exports.string)(10), ".").concat((0, exports.string)(3)); };
59
85
  exports.email = email;
60
- var url = function () { return "https://".concat((0, exports.string)(10), ".").concat((0, exports.string)(3)); };
61
- exports.url = url;
86
+ var hostname = function () { return "".concat((0, exports.string)(10), ".").concat((0, exports.string)(3)); };
87
+ exports.hostname = hostname;
62
88
  var ipv4 = function () { return (0, exports.array)(function () { return (0, exports.integer)(0, 255); }, 4).join("."); };
63
89
  exports.ipv4 = ipv4;
64
90
  var ipv6 = function () {
65
91
  return (0, exports.array)(function () { return (0, exports.integer)(0, 65535).toString(16); }, 8).join(":");
66
92
  };
67
93
  exports.ipv6 = ipv6;
68
- var pattern = function (regex) { return new randexp_1.default(regex).gen(); };
69
- exports.pattern = pattern;
94
+ var uri = function () { return (0, exports.url)(); };
95
+ exports.uri = uri;
96
+ var uriReference = function () { return (0, exports.url)(); };
97
+ exports.uriReference = uriReference;
98
+ var uriTemplate = function () { return (0, exports.url)(); };
99
+ exports.uriTemplate = uriTemplate;
100
+ var url = function () { return "https://".concat((0, exports.string)(10), ".").concat((0, exports.string)(3)); };
101
+ exports.url = url;
102
+ // TIMESTAMPS
103
+ var datetime = function (min, max) {
104
+ return new Date((0, exports.number)(min !== null && min !== void 0 ? min : Date.now() - 30 * DAY, max !== null && max !== void 0 ? max : Date.now() + 7 * DAY)).toISOString();
105
+ };
106
+ exports.datetime = datetime;
70
107
  var date = function (min, max) {
71
- min !== null && min !== void 0 ? min : (min = 0);
72
- max !== null && max !== void 0 ? max : (max = Date.now() * 2);
73
- return new Date((0, exports.number)(min, max)).toISOString().substring(0, 10);
108
+ return new Date((0, exports.number)(min !== null && min !== void 0 ? min : 0, max !== null && max !== void 0 ? max : Date.now() * 2))
109
+ .toISOString()
110
+ .substring(0, 10);
74
111
  };
75
112
  exports.date = date;
76
- var datetime = function (min, max) {
77
- min !== null && min !== void 0 ? min : (min = Date.now() - 30 * DAY);
78
- max !== null && max !== void 0 ? max : (max = Date.now() + 7 * DAY);
79
- return new Date((0, exports.number)(min, max)).toISOString();
113
+ var time = function () {
114
+ return new Date((0, exports.number)(0, DAY)).toISOString().substring(11, 23);
80
115
  };
81
- exports.datetime = datetime;
116
+ exports.time = time;
117
+ var duration = function () {
118
+ var period = durate([
119
+ ["Y", (0, exports.integer)(0, 100)],
120
+ ["M", (0, exports.integer)(0, 12)],
121
+ ["D", (0, exports.integer)(0, 31)],
122
+ ]);
123
+ var time = durate([
124
+ ["H", (0, exports.integer)(0, 24)],
125
+ ["M", (0, exports.integer)(0, 60)],
126
+ ["S", (0, exports.integer)(0, 60)],
127
+ ]);
128
+ if (period.length + time.length === 0)
129
+ return "PT0S";
130
+ return "P".concat(period).concat(time.length ? "T" : "").concat(time);
131
+ };
132
+ exports.duration = duration;
133
+ // POINTERS
134
+ var jsonPointer = function () { return "/components/schemas/".concat((0, exports.string)(10)); };
135
+ exports.jsonPointer = jsonPointer;
136
+ var relativeJsonPointer = function () { return "".concat((0, exports.integer)(0, 10), "#"); };
137
+ exports.relativeJsonPointer = relativeJsonPointer;
82
138
  var DAY = 86400000;
139
+ var durate = function (elements) {
140
+ return elements
141
+ .filter(function (_a) {
142
+ var _b = __read(_a, 2), _unit = _b[0], value = _b[1];
143
+ return value !== 0;
144
+ })
145
+ .map(function (_a) {
146
+ var _b = __read(_a, 2), unit = _b[0], value = _b[1];
147
+ return "".concat(value).concat(unit);
148
+ })
149
+ .join("");
150
+ };
83
151
  //# sourceMappingURL=RandomGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RandomGenerator.js","sourceRoot":"","sources":["../../../src/utils/RandomGenerator/RandomGenerator.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA8B;AAE9B,IAAM,SAAS,GAAG,4BAA4B,CAAC;AAE/C;;gEAEgE;AACzD,IAAM,OAAO,GAAG,cAAM,OAAA,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAnB,CAAmB,CAAC;AAApC,QAAA,OAAO,WAA6B;AAE1C,IAAM,OAAO,GAAG,UAAC,GAAY,EAAE,GAAY;IAChD,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,CAAC,EAAC;IACV,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,GAAG,EAAC;IACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3D,CAAC,CAAC;AAJW,QAAA,OAAO,WAIlB;AAEK,IAAM,MAAM,GAAG,UAAC,GAAY,EAAE,GAAY;IAC/C,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,MAAM,CAAC,CAAC,CAAC,EAAC;IAClB,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,MAAM,CAAC,GAAG,CAAC,EAAC;IACpB,OAAO,MAAM,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC;AAJW,QAAA,MAAM,UAIjB;AAEK,IAAM,MAAM,GAAG,UAAC,GAAY,EAAE,GAAY;IAC/C,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,CAAC,EAAC;IACV,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,GAAG,EAAC;IACZ,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3C,CAAC,CAAC;AAJW,QAAA,MAAM,UAIjB;AAEK,IAAM,MAAM,GAAG,UAAC,MAAe;IACpC,OAAA,IAAI,KAAK,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAA,eAAO,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAChC,IAAI,CAAC,CAAC,CAAC;SACP,GAAG,CAAC,cAAM,OAAA,SAAS,CAAC,IAAA,eAAO,EAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAA3C,CAA2C,CAAC;SACtD,IAAI,CAAC,EAAE,CAAC;AAHX,CAGW,CAAC;AAJD,QAAA,MAAM,UAIL;AAEP,IAAM,KAAK,GAAG,UAAI,OAA6B,EAAE,KAAc;IACpE,OAAA,IAAI,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,cAAM,GAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,EAAE,EAAE,KAAK,IAAK,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc,CAAC;AAAvE,CAAuE,CAAC;AAD7D,QAAA,KAAK,SACwD;AAEnE,IAAM,IAAI,GAAG,UAAI,KAAU,IAAQ,OAAA,KAAK,CAAC,IAAA,eAAO,EAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE,EAApC,CAAoC,CAAC;AAAlE,QAAA,IAAI,QAA8D;AAExE,IAAM,MAAM,GAAG,cAAM,OAAA,IAAA,eAAO,EAAC,CAAC,EAAE,CAAC,CAAC,EAAb,CAAa,CAAC;AAA7B,QAAA,MAAM,UAAuB;AAE1C;;gEAEgE;AACzD,IAAM,IAAI,GAAG;IAClB,OAAA,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAC,CAAC;QACxD,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,IAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC;AAJF,CAIE,CAAC;AALQ,QAAA,IAAI,QAKZ;AAEE,IAAM,KAAK,GAAG,cAAM,OAAA,UAAG,IAAA,cAAM,EAAC,EAAE,CAAC,cAAI,IAAA,cAAM,EAAC,EAAE,CAAC,cAAI,IAAA,cAAM,EAAC,CAAC,CAAC,CAAE,EAA1C,CAA0C,CAAC;AAAzD,QAAA,KAAK,SAAoD;AAE/D,IAAM,GAAG,GAAG,cAAM,OAAA,kBAAW,IAAA,cAAM,EAAC,EAAE,CAAC,cAAI,IAAA,cAAM,EAAC,CAAC,CAAC,CAAE,EAApC,CAAoC,CAAC;AAAjD,QAAA,GAAG,OAA8C;AAEvD,IAAM,IAAI,GAAG,cAAM,OAAA,IAAA,aAAK,EAAC,cAAM,OAAA,IAAA,eAAO,EAAC,CAAC,EAAE,GAAG,CAAC,EAAf,CAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAzC,CAAyC,CAAC;AAAvD,QAAA,IAAI,QAAmD;AAE7D,IAAM,IAAI,GAAG;IAClB,OAAA,IAAA,aAAK,EAAC,cAAM,OAAA,IAAA,eAAO,EAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAA9B,CAA8B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAAxD,CAAwD,CAAC;AAD9C,QAAA,IAAI,QAC0C;AAEpD,IAAM,OAAO,GAAG,UAAC,KAAa,IAAa,OAAA,IAAI,iBAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAxB,CAAwB,CAAC;AAA9D,QAAA,OAAO,WAAuD;AAEpE,IAAM,IAAI,GAAG,UAAC,GAAY,EAAE,GAAY;IAC7C,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,CAAC,EAAC;IACV,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAC;IACvB,OAAO,IAAI,IAAI,CAAC,IAAA,cAAM,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC,CAAC;AAJW,QAAA,IAAI,QAIf;AAEK,IAAM,QAAQ,GAAG,UAAC,GAAY,EAAE,GAAY;IACjD,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAC;IAC9B,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAC;IAC7B,OAAO,IAAI,IAAI,CAAC,IAAA,cAAM,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAClD,CAAC,CAAC;AAJW,QAAA,QAAQ,YAInB;AAEF,IAAM,GAAG,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"RandomGenerator.js","sourceRoot":"","sources":["../../../src/utils/RandomGenerator/RandomGenerator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "5.3.12",
3
+ "version": "5.4.0-dev.20240124-2",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -70,7 +70,7 @@
70
70
  "randexp": "^0.5.3"
71
71
  },
72
72
  "peerDependencies": {
73
- "typescript": ">=4.8.0 <5.4.0"
73
+ "typescript": ">=4.8.0 <5.5.0"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@trivago/prettier-plugin-sort-imports": "^3.3.0",
@@ -1,22 +1,45 @@
1
1
  import { Customizable } from "./typings/Customizable";
2
2
 
3
3
  export interface IRandomGenerator {
4
+ // REGULAR
4
5
  boolean(): boolean;
5
6
  integer(minimum?: number, maximum?: number): number;
6
- number(minimum?: number, maximum?: number): number;
7
7
  bigint(minimum?: bigint, maximum?: bigint): bigint;
8
+ number(minimum?: number, maximum?: number): number;
8
9
  string(length?: number): string;
10
+
9
11
  array<T>(closure: (index: number) => T, count?: number): T[];
10
12
  length(): number;
13
+ pattern(regex: RegExp): string;
11
14
 
15
+ //----
16
+ // FORMAT
17
+ //----
18
+ // SPECIAL CHARACTERS
19
+ byte(): string;
20
+ password(): string;
21
+ regex(): string;
12
22
  uuid(): string;
23
+
24
+ // ADDRESSES
13
25
  email(): string;
14
- url(): string;
26
+ hostname(): string;
15
27
  ipv4(): string;
16
28
  ipv6(): string;
17
- pattern(regex: RegExp): string;
18
- date(minimum?: number, maximum?: number): string;
29
+ uri(): string;
30
+ uriReference(): string;
31
+ uriTemplate(): string;
32
+ url(): string;
33
+
34
+ // TIMESTAMPS
19
35
  datetime(minimum?: number, maximum?: number): string;
36
+ date(minimum?: number, maximum?: number): string;
37
+ time(): string;
38
+ duration(): string;
39
+
40
+ // POINTERS
41
+ jsonPointer(): string;
42
+ relativeJsonPointer(): string;
20
43
 
21
44
  customs?: IRandomGenerator.CustomMap;
22
45
  }
@@ -21,6 +21,7 @@ import { TransformerError } from "../transformers/TransformerError";
21
21
 
22
22
  import { Escaper } from "../utils/Escaper";
23
23
 
24
+ import { Format } from "../tags";
24
25
  import { FunctionImporter } from "./helpers/FunctionImporeter";
25
26
  import { RandomJoiner } from "./helpers/RandomJoiner";
26
27
  import { RandomRanger } from "./helpers/RandomRanger";
@@ -383,9 +384,7 @@ export namespace RandomProgrammer {
383
384
  for (const t of tags)
384
385
  if (t.kind === "format")
385
386
  return ts.factory.createCallExpression(
386
- COALESCE(importer)(
387
- t.value === "date-time" ? "datetime" : t.value,
388
- ),
387
+ COALESCE(importer)(emendFormat(t.value)),
389
388
  undefined,
390
389
  undefined,
391
390
  );
@@ -823,3 +822,15 @@ const COALESCE = (importer: FunctionImporter) => (name: string) =>
823
822
  ts.factory.createStringLiteral(name),
824
823
  ),
825
824
  )(IdentifierFactory.access(importer.use("generator"))(name));
825
+
826
+ const emendFormat = (key: keyof Format.Validator) =>
827
+ key === "date-time"
828
+ ? "datetime"
829
+ : key
830
+ .split("-")
831
+ .map((str, i) =>
832
+ i === 0 || str.length === 0
833
+ ? str
834
+ : str[0]!.toUpperCase() + str.substring(1),
835
+ )
836
+ .join("");
@@ -42,7 +42,27 @@ export namespace IJsonSchema {
42
42
  minLength?: undefined | (number & Type<"uint32">);
43
43
  maxLength?: undefined | (number & Type<"uint32">);
44
44
  pattern?: undefined | string;
45
- format?: undefined | string;
45
+ format?:
46
+ | undefined
47
+ | "byte"
48
+ | "password"
49
+ | "regex"
50
+ | "uuid"
51
+ | "email"
52
+ | "hostname"
53
+ | "ipv4"
54
+ | "ipv6"
55
+ | "uri"
56
+ | "uri-reference"
57
+ | "uri-template"
58
+ | "url"
59
+ | "date-time"
60
+ | "date"
61
+ | "time"
62
+ | "duration"
63
+ | "json-pointer"
64
+ | "relative-json-pointer"
65
+ | (string & {});
46
66
  "x-typia-typeTags"?: undefined | IMetadataTypeTag[];
47
67
  }
48
68
  export interface INumber extends IAtomic<"number"> {
@@ -1,30 +1,40 @@
1
1
  import { TagBase } from "./TagBase";
2
2
 
3
- export type Format<
4
- Value extends
5
- | "email"
6
- | "uuid"
7
- | "ipv4"
8
- | "ipv6"
9
- | "url"
10
- | "date"
11
- | "date-time",
12
- > = TagBase<{
3
+ export type Format<Value extends keyof Format.Validator> = TagBase<{
13
4
  target: "string";
14
5
  kind: "format";
15
6
  value: Value;
16
- validate: Value extends "email"
17
- ? `/^(([^<>()[\\]\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\"]+)*)|(\\".+\\"))@(([^<>()[\\]\\.,;:\\s@\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\"]{2,})$/i.test($input)`
18
- : Value extends "uuid"
19
- ? `/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i.test($input)`
20
- : Value extends "ipv4"
21
- ? `/^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test($input)`
22
- : Value extends "ipv6"
23
- ? `/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/.test($input)`
24
- : Value extends "url"
25
- ? `/^[a-zA-Z0-9]+:\\/\\/(?:www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)$/.test($input)`
26
- : Value extends "date"
27
- ? `/^(\\d{4})-(\\d{2})-(\\d{2})$/.test($input)`
28
- : `!isNaN(new Date($input).getTime())`;
7
+ validate: Format.Validator[Value];
29
8
  exclusive: ["format", "pattern"];
30
9
  }>;
10
+ export namespace Format {
11
+ // reference: https://github.dev/ajv-validator/ajv-formats/blob/master/src/formats.ts
12
+ export type Validator = {
13
+ // SPECIAL CHARACTERS
14
+ byte: RegexCall<`/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm`>;
15
+ password: `true`;
16
+ regex: `(() => { try { new RegExp($input); return true; } catch { return false; } })()`;
17
+ uuid: RegexCall<`/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i`>;
18
+
19
+ // ADDRESSES
20
+ email: RegexCall<`/^[a-z0-9!#$%&'*+/=?^_\`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_\`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i`>;
21
+ hostname: RegexCall<`/^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i`>;
22
+ ipv4: RegexCall<`/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/`>;
23
+ ipv6: RegexCall<`/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i`>;
24
+ uri: `${RegexCall<`/\\/|:/`>} && ${RegexCall<`/^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`>}`;
25
+ "uri-reference": RegexCall<`/^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`>;
26
+ "uri-template": RegexCall<`/^(?:(?:[^\\x00-\\x20"'<>%\\\\^\`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i`>;
27
+ url: RegexCall<`/^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu`>;
28
+
29
+ // TIMESTAMPS
30
+ "date-time": `!isNaN(new Date($input).getTime())`;
31
+ date: RegexCall<`/^(\\d{4})-(\\d{2})-(\\d{2})$/`>;
32
+ time: RegexCall<`/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i`>;
33
+ duration: RegexCall<`/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/`>;
34
+
35
+ // POINTERS
36
+ "json-pointer": RegexCall<`/^(?:\\/(?:[^~/]|~0|~1)*)*$/`>;
37
+ "relative-json-pointer": RegexCall<`/^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/`>;
38
+ };
39
+ type RegexCall<Exp extends string> = `${Exp}.test($input)`;
40
+ }
@@ -3,28 +3,21 @@ import RandExp from "randexp";
3
3
  const ALPHABETS = "abcdefghijklmnopqrstuvwxyz";
4
4
 
5
5
  /* -----------------------------------------------------------
6
- REGULAR
7
- ----------------------------------------------------------- */
6
+ REGULAR
7
+ ----------------------------------------------------------- */
8
8
  export const boolean = () => Math.random() < 0.5;
9
-
10
9
  export const integer = (min?: number, max?: number) => {
11
10
  min ??= 0;
12
11
  max ??= 100;
13
12
  return Math.floor(Math.random() * (max - min + 1)) + min;
14
13
  };
15
-
16
- export const bigint = (min?: bigint, max?: bigint) => {
17
- min ??= BigInt(0);
18
- max ??= BigInt(100);
19
- return BigInt(integer(Number(min), Number(max)));
20
- };
21
-
14
+ export const bigint = (min?: bigint, max?: bigint) =>
15
+ BigInt(integer(Number(min ?? BigInt(0)), Number(max ?? BigInt(100))));
22
16
  export const number = (min?: number, max?: number) => {
23
17
  min ??= 0;
24
18
  max ??= 100;
25
19
  return Math.random() * (max - min) + min;
26
20
  };
27
-
28
21
  export const string = (length?: number): string =>
29
22
  new Array(length ?? integer(5, 10))
30
23
  .fill(0)
@@ -33,14 +26,18 @@ export const string = (length?: number): string =>
33
26
 
34
27
  export const array = <T>(closure: (index: number) => T, count?: number): T[] =>
35
28
  new Array(count ?? length()).fill(0).map((_e, index) => closure(index));
36
-
37
29
  export const pick = <T>(array: T[]): T => array[integer(0, array.length - 1)]!;
38
-
39
30
  export const length = () => integer(0, 3);
31
+ export const pattern = (regex: RegExp): string => new RandExp(regex).gen();
40
32
 
41
33
  /* -----------------------------------------------------------
42
- SECIAL FORMATS
43
- ----------------------------------------------------------- */
34
+ SECIAL FORMATS
35
+ ----------------------------------------------------------- */
36
+ // SPECIAL CHARACTERS
37
+ export const byte = () => "vt7ekz4lIoNTTS9sDQYdWKharxIFAR54+z/umIxSgUM=";
38
+ export const password = () => string(integer(4, 16));
39
+ export const regex = () =>
40
+ "/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/";
44
41
  export const uuid = () =>
45
42
  "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
46
43
  const r = (Math.random() * 16) | 0;
@@ -48,27 +45,50 @@ export const uuid = () =>
48
45
  return v.toString(16);
49
46
  });
50
47
 
48
+ // ADDRESSES
51
49
  export const email = () => `${string(10)}@${string(10)}.${string(3)}`;
52
-
53
- export const url = () => `https://${string(10)}.${string(3)}`;
54
-
50
+ export const hostname = () => `${string(10)}.${string(3)}`;
55
51
  export const ipv4 = () => array(() => integer(0, 255), 4).join(".");
56
-
57
52
  export const ipv6 = (): string =>
58
53
  array(() => integer(0, 65535).toString(16), 8).join(":");
54
+ export const uri = () => url();
55
+ export const uriReference = () => url();
56
+ export const uriTemplate = () => url();
57
+ export const url = () => `https://${string(10)}.${string(3)}`;
59
58
 
60
- export const pattern = (regex: RegExp): string => new RandExp(regex).gen();
61
-
62
- export const date = (min?: number, max?: number) => {
63
- min ??= 0;
64
- max ??= Date.now() * 2;
65
- return new Date(number(min, max)).toISOString().substring(0, 10);
59
+ // TIMESTAMPS
60
+ export const datetime = (min?: number, max?: number) =>
61
+ new Date(
62
+ number(min ?? Date.now() - 30 * DAY, max ?? Date.now() + 7 * DAY),
63
+ ).toISOString();
64
+ export const date = (min?: number, max?: number) =>
65
+ new Date(number(min ?? 0, max ?? Date.now() * 2))
66
+ .toISOString()
67
+ .substring(0, 10);
68
+ export const time = () =>
69
+ new Date(number(0, DAY)).toISOString().substring(11, 23);
70
+ export const duration = () => {
71
+ const period: string = durate([
72
+ ["Y", integer(0, 100)],
73
+ ["M", integer(0, 12)],
74
+ ["D", integer(0, 31)],
75
+ ]);
76
+ const time: string = durate([
77
+ ["H", integer(0, 24)],
78
+ ["M", integer(0, 60)],
79
+ ["S", integer(0, 60)],
80
+ ]);
81
+ if (period.length + time.length === 0) return "PT0S";
82
+ return `P${period}${time.length ? "T" : ""}${time}`;
66
83
  };
67
84
 
68
- export const datetime = (min?: number, max?: number) => {
69
- min ??= Date.now() - 30 * DAY;
70
- max ??= Date.now() + 7 * DAY;
71
- return new Date(number(min, max)).toISOString();
72
- };
85
+ // POINTERS
86
+ export const jsonPointer = () => `/components/schemas/${string(10)}`;
87
+ export const relativeJsonPointer = () => `${integer(0, 10)}#`;
73
88
 
74
89
  const DAY = 86400000;
90
+ const durate = (elements: [string, number][]) =>
91
+ elements
92
+ .filter(([_unit, value]) => value !== 0)
93
+ .map(([unit, value]) => `${value}${unit}`)
94
+ .join("");